Points backend, frontend, and documents at the layered environment branches and teaches svc.sh to prepare a shared env root.
Why: the dependency directory existed in code but startup never passed it, so the sandbox could not import python-docx.
Evidence: component branches are synced with their mains. CI on this head is the authority.
Impact: runtime/envs is shared by instances. A failed download does not block startup.
Refs: .task/feature-layered-python-env.md
Points backend, frontend, and documents at the layered environment branches and teaches svc.sh to prepare a shared env root.
Why: the dependency directory existed in code but startup never passed it, so the sandbox could not import python-docx.
Evidence: component branches are synced with their mains. CI on this head is the authority.
Impact: runtime/envs is shared by instances. A failed download does not block startup.
Refs: .task/feature-layered-python-env.md
Why: The dependency layer already existed in the backend, but service startup never passed it, so the sandbox could not import the packages the host already had.
Evidence: SELF go tests recorded on the backend commit. svc.sh only exports the env root after env ensure leaves a current base layer, and a failed download does not block startup.
Impact: Instances share runtime/envs. Existing exec= lines are left as stored. Proposal, backend, and frontend gitlinks move to this branch.
Refs: .task/feature-layered-python-env.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Backend, frontend, and documents each gained one commit on main after this branch was cut. The feature commits have to contain those mains so the pull requests can merge.
Evidence: git merge origin/main in each submodule completed with the ort strategy and no conflicts.
Impact: Gitlinks move to the merge commits. The layered environment changes themselves are unchanged.
Refs: .task/feature-layered-python-env.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The combination build has to include the exec env tables in the SQLite-to-Postgres copy list, or backend CI and the Dev suite both reject the candidate.
Evidence: Backend ab12fea follows the storage-migrate test that CI run 3343 failed.
Impact: Only the backend gitlink moves.
Refs: Agent-System-Backend pull 206
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: app, server, and tools now call the layered Python environment. The dependency ratchet rejects those edges until they are recorded.
Evidence: CI job 5179 failed test-boundaries on exactly these three edges. scripts/lint-architecture.sh passes locally after the update.
Impact: The allowlist grows by three edges. No other package may import execenv until it is added the same way.
Refs: Agent-System-Dev pull 570
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: env ensure downloads an interpreter and wheels. The real-combination start test allows 120 seconds, and that download made rc1 start time out.
Evidence: CI job 5184 timed out in test_U3_real_agent_identity_lifecycle_sqlite on scripts/svc.sh rc1 start.
Impact: Start only mounts a base layer that already exists. The first build is an explicit env ensure, run outside start.
Refs: Agent-System-Dev pull 570
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen
merged commit 04acb027f6 into main2026-10-15 14:24:56 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Points backend, frontend, and documents at the layered environment branches and teaches svc.sh to prepare a shared env root.
Why: the dependency directory existed in code but startup never passed it, so the sandbox could not import python-docx.
Evidence: component branches are synced with their mains. CI on this head is the authority.
Impact: runtime/envs is shared by instances. A failed download does not block startup.
Refs: .task/feature-layered-python-env.md