opencodecabilloteu
c0d82212f6
ci: viser v1.0.5 (pipelines sans délai de carence)
PR Checks / hadolint (pull_request) Successful in 15s
PR Checks / build-test (pull_request) Successful in 31s
Docker Build and Push / test (pull_request) Successful in 2m19s
Docker Build and Push / integration-test (pull_request) Successful in 3m22s
PR Checks / pytest (pull_request) Successful in 3m5s
2026-10-20 21:41:32 -04:00
opencodecabilloteu
701e6678b8
ci: viser v1.0.5 (pipelines sans délai de carence)
2026-10-20 21:41:11 -04:00
opencodecabilloteu
d2268e986d
ci: viser v1.0.4 (credentials Docker Hub + GitHub corrigés)
PR Checks / hadolint (pull_request) Successful in 22s
PR Checks / build-test (pull_request) Successful in 24s
PR Checks / pytest (pull_request) Successful in 2m55s
Docker Build and Push / build (pull_request) Successful in 2m48s
Docker Build and Push / test (pull_request) Successful in 3m7s
Docker Build and Push / integration-test (pull_request) Successful in 3m29s
2026-10-20 20:56:35 -04:00
opencodecabilloteu
8de372c350
ci: viser v1.0.4 (credentials Docker Hub + GitHub corrigés)
2026-10-20 20:56:32 -04:00
opencodecabilloteu
fd19d522f0
ci: viser v1.0.3 (creds Docker Hub injectées depuis les secrets)
PR Checks / pytest (pull_request) Successful in 1m44s
PR Checks / hadolint (pull_request) Successful in 11s
PR Checks / build-test (pull_request) Successful in 20s
Docker Build and Push / build (pull_request) Successful in 2m6s
Docker Build and Push / test (pull_request) Successful in 2m2s
Docker Build and Push / integration-test (pull_request) Successful in 1m58s
2026-10-20 19:49:50 -04:00
opencodecabilloteu
67f84c0420
ci: viser v1.0.3 (creds Docker Hub injectées depuis les secrets)
2026-10-20 19:49:47 -04:00
opencodecabilloteu
5e8afe7bf6
ci: viser v1.0.2 (config Renovate avec auth Docker Hub)
PR Checks / hadolint (pull_request) Successful in 9s
PR Checks / build-test (pull_request) Successful in 20s
PR Checks / pytest (pull_request) Successful in 1m51s
Docker Build and Push / build (pull_request) Successful in 2m38s
Docker Build and Push / test (pull_request) Successful in 2m9s
Docker Build and Push / integration-test (pull_request) Successful in 2m0s
2026-10-20 18:58:26 -04:00
opencodecabilloteu
cbe62dec5f
ci: viser v1.0.2 (config Renovate avec auth Docker Hub)
2026-10-20 18:58:10 -04:00
opencodecabilloteu
d3bf31fb7b
ci: pinner les pipelines réutilisables sur v1.0.1
PR Checks / hadolint (pull_request) Successful in 10s
Docker Build and Push / test (pull_request) Successful in 1m46s
Docker Build and Push / integration-test (pull_request) Successful in 1m50s
PR Checks / build-test (pull_request) Successful in 17s
PR Checks / pytest (pull_request) Successful in 2m7s
Docker Build and Push / build (pull_request) Successful in 2m3s
2026-10-20 18:21:13 -04:00
opencodecabilloteu
aa7f97a73c
ci: pinner les pipelines réutilisables sur v1.0.1
2026-10-20 18:21:00 -04:00
jcabillot
ae80f0bca7
Merge pull request 'ci(tag): release Gitea (commit list) avant le dispatch Renovate' ( #66 ) from chore/release-notes into main
...
Main Release / hadolint (push) Successful in 8s
Renovate / renovate (push) Successful in 1m8s
Docker Build and Push / test (push) Successful in 1m32s
Docker Build and Push / integration-test (push) Successful in 1m41s
Main Release / test (push) Successful in 2m6s
Main Release / integration-test (push) Successful in 2m9s
Main Release / build (push) Successful in 20s
Main Release / tag (push) Successful in 21s
Docker Build and Push / build (push) Successful in 2m38s
Tag Release / hadolint (push) Successful in 18s
Tag Release / test (push) Successful in 2m11s
Tag Release / integration-test (push) Successful in 2m23s
Tag Release / build-push (push) Successful in 2m25s
Gitea Release / release (push) Successful in 7s
Tag Release / release (push) Successful in 7s
Tag Release / trigger-renovate (push) Successful in 3s
Reviewed-on: #66
2026-10-19 13:37:46 -04:00
opencodecabilloteu
0fc681bf56
ci(tag): release Gitea (commit list) avant le dispatch Renovate
PR Checks / hadolint (pull_request) Successful in 10s
Docker Build and Push / test (pull_request) Successful in 1m41s
Docker Build and Push / integration-test (pull_request) Successful in 1m49s
PR Checks / build-test (pull_request) Successful in 17s
PR Checks / pytest (pull_request) Successful in 1m39s
Docker Build and Push / build (pull_request) Successful in 1m10s
2026-10-19 13:09:29 -04:00
jcabillot
b670538c7f
Merge pull request 'fix(ci): corps JSON valide dans le dispatch Renovate (accolades doublées → 422)' ( #64 ) from fix/renovate-dispatch-json into main
...
Main Release / hadolint (push) Successful in 8s
Docker Build and Push / test (push) Successful in 1m54s
Docker Build and Push / integration-test (push) Successful in 1m56s
Main Release / test (push) Successful in 1m51s
Renovate / renovate (push) Successful in 1m8s
Main Release / integration-test (push) Successful in 1m54s
Main Release / build (push) Successful in 16s
Docker Build and Push / build (push) Successful in 3m5s
Main Release / tag (push) Successful in 16s
Tag Release / hadolint (push) Successful in 14s
Tag Release / test (push) Successful in 1m40s
Tag Release / integration-test (push) Successful in 1m53s
Tag Release / build-push (push) Successful in 3m22s
Tag Release / trigger-renovate (push) Successful in 6s
Reviewed-on: #64
2026-10-19 11:43:52 -04:00
opencodecabilloteu
c4a3cb742e
fix(ci): corps JSON valide pour le dispatch Renovate
PR Checks / hadolint (pull_request) Successful in 11s
Docker Build and Push / test (pull_request) Successful in 1m57s
PR Checks / build-test (pull_request) Successful in 17s
Docker Build and Push / integration-test (pull_request) Successful in 2m31s
PR Checks / pytest (pull_request) Successful in 3m11s
Docker Build and Push / build (pull_request) Successful in 2m6s
2026-10-18 22:14:36 -04:00
jcabillot
2e247141fc
Merge pull request 'ci(tag): déclenche Renovate sur tf-depl-kubernetes dès que l'image de release est poussée (mcp-maildir)' ( #62 ) from ci/renovate-dispatch-on-release into main
...
Main Release / hadolint (push) Successful in 37s
Docker Build and Push / test (push) Successful in 4m47s
Main Release / test (push) Successful in 4m57s
Docker Build and Push / integration-test (push) Successful in 5m53s
Renovate / renovate (push) Successful in 1m32s
Main Release / integration-test (push) Successful in 7m25s
Docker Build and Push / build (push) Successful in 6m22s
Main Release / build (push) Successful in 6m13s
Main Release / tag (push) Successful in 20s
Tag Release / hadolint (push) Successful in 37s
Tag Release / test (push) Successful in 3m21s
Tag Release / integration-test (push) Successful in 4m25s
Tag Release / build-push (push) Successful in 4m11s
Tag Release / trigger-renovate (push) Failing after 20s
PR Checks / hadolint (pull_request) Successful in 12s
Docker Build and Push / test (pull_request) Successful in 1m44s
PR Checks / build-test (pull_request) Successful in 15s
Docker Build and Push / integration-test (pull_request) Successful in 2m18s
PR Checks / pytest (pull_request) Successful in 1m47s
Docker Build and Push / build (pull_request) Successful in 2m35s
Reviewed-on: #62
2026-10-18 14:42:34 -04:00
opencodecabilloteu
ef480dfd97
ci(tag): dispatch Renovate on tf-depl-kubernetes once the release image is pushed
...
PR Checks / hadolint (pull_request) Successful in 28s
PR Checks / pytest (pull_request) Successful in 7m14s
PR Checks / build-test (pull_request) Successful in 5m15s
Docker Build and Push / test (pull_request) Successful in 3m40s
Docker Build and Push / integration-test (pull_request) Successful in 3m54s
Docker Build and Push / build (pull_request) Successful in 3m4s
A release only reached perso_private/tf-depl-kubernetes on the next hourly
Renovate scan, so the image bump PR could lag up to an hour behind the tag.
After the image push completes, dispatch that repo's Renovate workflow through
the Gitea API (workflow_dispatch is already enabled there). It authenticates
with the RENOVATE_TOKEN org secret of this organisation — the same token the
Renovate instance itself uses, no extra credential. The job fails loudly so a
rotated token shows up instead of the trigger silently going missing.
2026-10-18 13:22:32 -04:00
jcabillot
1115db82ed
Merge pull request 'ci: harden the qdrant integration job (5s client timeout + cold storage)' ( #60 ) from ci/harden-qdrant-integration into main
...
Main Release / test (push) Successful in 2m54s
Docker Build and Push / integration-test (push) Successful in 3m12s
Main Release / integration-test (push) Successful in 3m17s
Main Release / hadolint (push) Successful in 17s
Docker Build and Push / test (push) Successful in 3m0s
Main Release / build (push) Successful in 21s
Renovate / renovate (push) Successful in 59s
Main Release / tag (push) Successful in 17s
Tag Release / hadolint (push) Successful in 24s
Docker Build and Push / build (push) Successful in 4m25s
Tag Release / test (push) Successful in 2m42s
Tag Release / integration-test (push) Successful in 2m35s
Tag Release / build-push (push) Successful in 3m4s
Reviewed-on: #60
2026-10-17 17:42:56 -04:00
jcabillot
dd41603a0b
Merge pull request 'fix: serve MCP over Streamable HTTP instead of legacy SSE' ( #58 ) from fix/streamable-http-transport into main
...
Main Release / build (push) Canceled after 0s
Main Release / tag (push) Canceled after 0s
Main Release / integration-test (push) Canceled after 1m8s
Main Release / hadolint (push) Canceled after 1m12s
Main Release / test (push) Canceled after 1m10s
Docker Build and Push / test (push) Successful in 2m14s
Renovate / renovate (push) Successful in 1m32s
Docker Build and Push / integration-test (push) Failing after 11m3s
Docker Build and Push / build (push) Skipped
Reviewed-on: #58
2026-10-17 17:42:33 -04:00
Sagent
01d15c486e
ci: harden the qdrant integration job
...
PR Checks / hadolint (pull_request) Successful in 23s
Docker Build and Push / test (pull_request) Successful in 5m19s
PR Checks / build-test (pull_request) Successful in 47s
Docker Build and Push / integration-test (pull_request) Successful in 5m30s
PR Checks / pytest (pull_request) Successful in 3m7s
Docker Build and Push / build (pull_request) Successful in 3m14s
The integration test job has been failing intermittently on main and on
open pull requests with `httpx.ReadTimeout: timed out` on the first write
to Qdrant, while `GET /collections` and `/healthz` kept answering.
Cause: the qdrant-client default request timeout is 5 seconds, and the job
only waits for `/healthz`, which is served before the storage engine
accepts writes. On a shared runner doing several builds at once, the first
collection creation or indexing exceeds 5s and the whole fixture errors
out.
- pin qdrant/qdrant to v1.19 (the digest `latest` and the cluster already
run) and let Renovate track the pin in the workflows as well
- wait for a real write round-trip (create + delete a probe collection)
instead of `/healthz` alone, and dump the container logs if it never
becomes writable
- make the Qdrant client timeout configurable via QDRANT_TIMEOUT and set
it to 60s in CI, where there is no latency SLA
2026-10-17 21:24:18 +00:00
jcabillot
e883a791fb
Merge pull request 'fix(indexer): restore module-level embedding/batch constants (cronjobs cassés)' ( #59 ) from fix/indexer-missing-constants into main
...
Docker Build and Push / integration-test (push) Failing after 5m58s
Main Release / hadolint (push) Successful in 50s
Docker Build and Push / test (push) Successful in 5m1s
Docker Build and Push / build (push) Skipped
Main Release / test (push) Successful in 2m25s
Main Release / integration-test (push) Successful in 2m32s
Main Release / build (push) Successful in 3m56s
Main Release / tag (push) Successful in 47s
Renovate / renovate (push) Failing after 14m44s
Tag Release / hadolint (push) Successful in 19s
Tag Release / test (push) Successful in 3m17s
Tag Release / integration-test (push) Failing after 3m3s
Tag Release / build-push (push) Skipped
Reviewed-on: #59
2026-10-17 17:11:51 -04:00
Sagent
3b575bbf83
fix(indexer): restore module-level embedding/batch constants
...
PR Checks / hadolint (pull_request) Successful in 12s
Docker Build and Push / test (pull_request) Successful in 2m17s
Docker Build and Push / integration-test (pull_request) Successful in 2m38s
PR Checks / pytest (pull_request) Successful in 2m19s
Docker Build and Push / build (pull_request) Successful in 2m39s
PR Checks / build-test (pull_request) Successful in 3m5s
The "make indexer importable without env" refactor (e32806a , merged via PR
#52 on 2026-10-09) removed EMBEDDING_MODEL_NAME, BATCH_SIZE and
EMBEDDING_BATCH_SIZE from the module scope while main() kept referencing
them, so every indexer run died before reaching Qdrant:
File "/app/src/indexer.py", line 264, in main
print(f"Loading embedding model: {EMBEDDING_MODEL_NAME}...")
NameError: name 'EMBEDDING_MODEL_NAME' is not defined
CI never caught it because no test executes main(). Both *-indexer cronjobs
have been failing (BackoffLimitExceeded) since 2026-10-16, i.e. the first
run after the image pin moved to v0.0.22-latest.
- restore the three constants with their pre-refactor defaults
- cover them in tests/test_indexer.py and cross-check that the indexer
embeds with the same model as server.py (vectors must stay comparable)
- add a ruff F821 gate to the unit job so undefined names fail CI
Fixes mcp-maildir-cabilloteu-indexer and mcp-maildir-gmail-indexer.
2026-10-17 21:04:34 +00:00
Sagent
bc3deb8676
fix: serve MCP over Streamable HTTP instead of legacy SSE
...
PR Checks / hadolint (pull_request) Successful in 40s
PR Checks / build-test (pull_request) Successful in 3m19s
PR Checks / pytest (pull_request) Successful in 2m47s
Docker Build and Push / test (pull_request) Successful in 3m1s
Docker Build and Push / integration-test (pull_request) Successful in 3m24s
Docker Build and Push / build (pull_request) Successful in 3m4s
Current MCP clients (OpenCode, Claude, ...) only speak Streamable HTTP: they
POST JSON-RPC to the configured URL, so a legacy SSE endpoint answers
405 Method Not Allowed and not a single tool can be reached.
Run FastMCP's http_app (build_app()) under uvicorn instead of mcp.run(sse):
the MCP endpoint is now /mcp, and the custom GET /health route keeps serving
the Kubernetes probes.
Add transport tests asserting /mcp and /health are exposed and /sse is gone.
2026-10-17 20:45:26 +00:00