Repository navigation
fix(ci): check every service lock and build core-worker's image (M-01) - #1983
Merged
Merged
Conversation
Contributor
|
Claude Code Review — skipped: draft PR |
eldad-caura-ai
force-pushed
the
check-locks-and-build-worker-image
branch
2 times, most recently
from
October 7, 2026 12:53
7ed1bb0 to
1e9036f
Compare
eldad-caura-ai
marked this pull request as ready for review
October 7, 2026 12:54
Contributor
|
Claude Code Review — skipped: no source files to review (only tests/docs/config) |
Each service image installs its own uv.lock as it stands (uv export --frozen), while CI tests the pyproject ranges, resolved afresh, and nothing checked that a lock still matched its pyproject. A pyproject edit made without a re-lock passed CI and was missing from the image. The CI job now runs uv lock --check for every service before it installs anything, and names each stale lock. No workflow built core-worker's image, the write path in deferred mode. The image job now builds it and imports the app its CMD serves from what the image installed. A dependency core-worker never declared fails that import, while in CI's shared venv another service's copy stands in for it. Tests fail when CI does not check a service's uv.lock or build a service's Dockerfile. Signed-off-by: eldad-caura <eldad@caura.ai> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
eldad-caura-ai
force-pushed
the
check-locks-and-build-worker-image
branch
from
October 7, 2026 12:59
1e9036f to
94264bb
Compare
Member
Author
Contributor
Claude Code Review ✅ No issues found. Reviewed by |
Member
Author
|
@erni-a plasr arprpvoe |
erni-a
approved these changes
Oct 7, 2026
Merged
eldad-caura-ai
pushed a commit
that referenced
this pull request
Oct 7, 2026
🤖 I have created a release *beep* *boop* --- <details><summary>backend: 3.27.0</summary> ## [3.27.0](backend-v3.26.4...backend-v3.27.0) (2026-10-07) ### Features * **memories:** hold the broker's gate-refused writes for review (g2.5) ([#1985](#1985)) ([2892bc9](2892bc9)) ### Bug Fixes * **ci:** check every service lock and build core-worker's image (M-01) ([#1983](#1983)) ([54040d8](54040d8)) * **memories:** decide a write again when the hold changed after it was decided ([#1984](#1984)) ([7ce0212](7ce0212)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: release-please[bot] <release-please[bot]@users.noreply.github.com> Co-authored-by: caura-deploy-bot[bot] <265395343+caura-deploy-bot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes part 1 of M-01 from the 2026-10-01 OSS audit.
Every service lock is checked
Each service image installs its own
uv.lockas it stands (uv export --frozen), while CI tests the pyproject ranges, resolved afresh, and nothing checked that a lock still matched its pyproject. A pyproject edit made without a re-lock passed CI and was missing from the image.uv lock --check --directory <service>for all four services, before it installs anything, and names every stale lock in one error.uv lock --checkfails when re-locking would change the lock; it exists since uv 0.5.8, and CI runs 0.9.26.uv.lockwith itspyproject.toml(fix(release): keep the core-operations version in sync #1717 does the same for core-operations), Dependabot's uv updates re-lock, and its pip updates touch only the rootrequirements.txt.core-worker's image is built
No workflow built core-worker's image, the write path in deferred mode. The image job ("core-api image bakes a real version") now builds it and runs
python -c "import uvicorn, core_worker.app"inside it: the app its CMD serves, from what the image installed. In CI's shared venv another service's dependency can stand in for one core-worker never declared; in the image it cannot.The import needs no environment: every setting has a default,
ddtraceis imported undertry/except ImportError, and the event bus and storage client start only in the app's lifespan. Every other third-party module the app loads at import is a declared core-worker dependency.Tests
tests/test_m01_every_lock_is_checked_and_every_image_built.pyfails when a service'suv.lockis not named in a ci.yml step that runsuv lock --check, or a service's Dockerfile is not built by a ci.ymldocker build. A guard checks that the scans find all four services, and the core-api image build.docker buildbuilt core-worker's Dockerfile. The guard and 9,654 other tests passed. The first push (46383fe) had stopped at the root-tests ruff check (SIM300) before the tests ran; the amend flipped two comparisons.Not in this PR
🤖 Generated with Claude Code