fix(ci+docker): install from uv.lock — stop resolving dependencies at build time #81
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes issue #2194 (Scribe). Green on
devat1b81310(run 3009), image build included.The hole
CI ran
uv pip install -e ".[dev]"and the Dockerfile ranpip install .without ever copyinguv.lock. Both resolved from the pyproject constraints, souv.lockgoverned nothing. Consequences, in the order they bit:mcp2.0.0 published mid-session on 2026-07-28 and turnedmainred with no repo change — the identical tree had passed ondevan hour earlier.--lockedimmediately surfaced that the lock had been missingpgvectorentirely — added to pyproject for the vector-search work, never re-locked, and nothing noticed because nothing read the lock.The fix
uv sync --locked --extra dev.--lockedfails on a stale lock, so a dependency edit must go through a deliberateuv lock.uv.lockregenerated (uv lockin a throwawayci-python:3.14container). Conservative as expected:pgvector 0.5.0added and not one existing pin moved — verified by diffing name=version across all 106 packages.uv.lockadded to the workflowpaths:filter. It was absent, so a lock-only change — which is exactly what a dependency bump now looks like — would not have triggered CI.http-eceinstall and thesetuptools wheelstep that existed only to support its--no-build-isolationbuild. Nothing importshttp_ece; it's a leftover from the web-push subsystem dropped in the MCP-First pivot, and it was never in pyproject or the lock either.Why this matters beyond today
Renovate's dashboard-approval discipline (rules #42–#45) was being bypassed entirely: upstream could bump this project with no PR and no approval. It can't now. Only
APSchedulerandmcpcarry upper bounds, so that protection was the only thing standing between a major release and a redmain.🤖 Generated with Claude Code
https://claude.ai/code/session_01UaYUaouG9jjhATyuxCKrQs