Why: host integration step 3/8 — Dev modules/backend gitlink bump to Backend main post-merge of PR #219 (IAM U1 + U3A). This is a controlled host-side submodule bump to enable U3B/U4 consumption of the new CapabilityExplain DTO.
Evidence: Backend PR #219 merged (commit 3f4b34a); Dev verify receipts /tmp/iam-link-u1-verify-20261019.json + /tmp/iam-link-u3a-verify-20261019.json exit=0.
Impact: Backend U1+U3A available to L1's RDM/Frontend consumers; U3B can now consume CapabilityExplain from pins/agent-system-backend at the new commit.
Refs: plan revision 3 U1+U3A; PR #628; host integration per user directive (steps 1-8).
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: 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 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: include the current integration baseline before verification.
Evidence: fetched origin/main=dc86a023605d00fccca1b9679b4cdad96373bdee.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Settings plaintext loses to secret_keys, so replacing the env key did not change the key a conversation actually sent.
Evidence: python3 -m unittest tests.test_svc.SvcDbRecoveryTests.test_seed_replaces_old_system_secret tests.test_svc.SvcDbRecoveryTests.test_seed_warns_when_old_secret_stays_active tests.test_svc.SvcDbRecoveryTests.test_seed_puts_without_credentials_when_auth_off (SELF).
Impact: Embedded databases now compare the active system secret fingerprint after seeding, and the backend gitlink carries the adoption fix.
Refs: fix/model-key-secret-overlay
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: frontend and documents were updated so their heads contain origin/main before merge.
Evidence: SELF frontend vitest 293 passed on 04269ee; both pull requests merged.
Impact: modules/frontend is 04269ee and modules/documents is 5f41149.
Refs: .task/feature-rdm-duty-matrix.md
Why: the combo has to build the frontend that drops a dirty duty draft when a save result is unknown.
Evidence: SELF frontend vitest, tsc, knip, and Playwright passed on 985fc0f.
Impact: modules/frontend moves from 6093beb to 985fc0f.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: acceptance has to include the current main, including newer backend, core, and UI pins, while the duties page stays assignment-only.
Evidence: SELF frontend vitest 292 passed after merging the duties conflict; the earlier task-sync receipt records the submodule conflict that this commit resolves.
Impact: frontend pin is 6093beb; backend, core, and UI follow origin/main.
Refs: .task/feature-rdm-duty-matrix.md
Co-authored-by: Cursor <cursoragent@cursor.com>