Why: Backend #195 and Frontend #82 (parallel task feature/project-member-access)
merged after the original targets (Backend 15566f9 / Frontend c294835), and Dev
main 20e086e pins exactly those new heads (5d5fc989/eb2d6d32). Tagging the stale
SHAs would make RDM pins->v0.4.0 a downgrade versus Dev main, so the release must
land on current main HEADs; the checkout origin/main command already does this.
Evidence: SELF rows on the card - four-repo ls-remote (main HEADs recorded, all
v0.4.0 tag refs empty), git ls-tree origin/main pins, and 15566f9../42cda9c0..
commit ranges showing the parallel merges.
Impact: Dev task card release-plan section only; no code or pins change.
Refs: task feature/rdm-increment-settings-duties; related Backend #195,
Frontend #82, Dev #527.
Why: The final umbrella head needs its own gate after main components merge.
Evidence: Final task-sync receipt saved; candidate and merged component trees match.
Impact: Task-only checkpoint, keeping the same implementation and runtime boundary.
Refs: Dev PR526; project-member-access
Why: The final base combination must reference actual reviewed main commits.
Evidence: Component PRs are merged, and each merged tree matches the independently tested candidate; whole review receipts remain unmodified.
Impact: Advance gitlinks and preserve acceptance evidence; new exact-head CI follows with no runtime changes.
Refs: Backend195 Frontend82 Documents97; feature/project-member-access
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d2c23f3a55a77711ded4328aa6215d9469c2b420.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Final merge gates require the latest main and exact component ancestry.
Evidence: Tool-written task-sync passed; Frontend tree equality preserves functional replay evidence while current HEAD CI will run again.
Impact: Task record only; no product source change.
Refs: feature/project-member-access
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=946cc13c9a10a2023a766b211e1148e625b62943.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The composed candidate and its validation limits must be available for independent review and current-head CI.
Evidence: Original receipts, fixed manifests, independent identities and real before/after task outcomes are preserved without source relabeling.
Impact: Archive acceptance and gate references in the canonical task; no product code, deployment or live data changes.
Refs: feature/project-member-access; Backend195 Frontend82 Documents97
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d5428c5f05fc5f625e6232ab3156b17f13e14d6a.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Existing upload history must stay private after project adoption, and final object evidence must remain traceable.
Evidence: Original tool receipts and independent reports saved byte-for-byte; new fixed combination and CI remain pending.
Impact: Select Backend d26f3cf and proposal r1.1 with unchanged public downstream contracts; preserve workspaces and live data.
Refs: feature/project-member-access; Frontend PR82; Documents PR97
Why: Shared project identity resolution is one private module used by app and server.
Evidence: Boundary scan passes 85 edges and its injected illegal-edge negative check; previous full run stopped at this documented boundary.
Impact: Add only app/server to projectscope and projectscope to store, without allowing transport/composition dependencies in the resolver.
Refs: system-project-membership proposal r1; feature/project-member-access
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=143e6367367760deceac91ac3de5ccb3ed6adebc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Final review and real composition exposed member upload rejection, private project cards and stale duty selection.
Evidence: Component correction receipts and fixed clean source SHAs; independent replays and final composition are in progress.
Impact: Select Backend d2f96e7 and Frontend 2ba275b with current UI, preserving private originals and verified project commands.
Refs: feature/project-member-access
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=86d975b822c2384e96edd75f9c3a2dca63593b3a.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Host-only project creation and domain membership must form one verified identity.
Evidence: Tool-imported SELF receipts and independent Backend and Frontend replay attestations; composed acceptance and final CI remain in progress.
Impact: Advance fixed component pins and record the authorized implementation and privacy boundaries without deployment or runtime changes.
Refs: .task/feature-project-member-access.md; system-project-membership proposal r1
Why: retain the repeatable membership check and current integration checkpoint.
Evidence: SELF receipts in the task card; readiness fails on the reported data state.
Impact: diagnosis metadata only; product implementation remains pending stage review.
Refs: .task/feature-project-member-access.md
Why: a saved host-project membership has no registered RDM project or binding,
so member discovery and private conversation creation cannot resolve it.
Evidence: metadata-only read probes and forge scans are preserved as SELF
receipts in the task card; HTTP and browser replay remain NOT_RUN.
Impact: task documentation and read-only diagnostic helpers only; product
code, runtime databases and deployments are unchanged pending stage review.
Refs: .task/feature-project-member-access.md; policy/delivery.md
Why: the task card needs the pull request that carries this closeout, and the review has to name the commit it actually read.
Evidence: reviewed 814451b1fc8435a92ef7b29ac4fe8480a330c3b1; pull request 517.
Impact: task metadata only.
Refs: .task/feature-d1-closeout-evidence.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=55cecae703cf8c4f33185e9e4556597c11817b3b.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the archived D1 card still marked merge, CI, and lifecycle as NOT_RUN after the four pull requests had landed.
Evidence: Gitea runs 2625, 2631, and 2667; make test-lifecycle receipt 1a4650d89e589321 (SELF, exit 0 on 2df298affe).
Impact: task cards only. Login, rdm.ping, and the full-track deploy stay NOT_RUN.
Refs: .task/archive/feature-svc-d1-identity-flow.md .task/feature-d1-closeout-evidence.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-project-member-access.md; R0=55cecae703cf8c4f33185e9e4556597c11817b3b.
Impact: task metadata only; the feature workspace starts at 55cecae703.
Refs: .task/feature-project-member-access.md
Why: The login recovery contract reserved the owner browser login step
for the user (passwords never pass through the agent); the user
confirmed the test passed on 2026-10-13, closing the final acceptance
loop.
Evidence: User session confirmation 2026-10-13; deploy and prior
verifiable acceptance under receipt 5396054b.
Impact: Doc-only status update in the leftover section.
Refs: docs/svc-deploy/2026-10-13-login-recovery-contract.md.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-d1-closeout-evidence.md; R0=c39321ab7bae6e618f13ec2b48df7abf89d44604.
Impact: task metadata only; the feature workspace starts at c39321ab7b.
Refs: .task/feature-d1-closeout-evidence.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-increment-settings-duties.md(PR#502) feature-svc-account-hardening.md(PR#511) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The user dropped RDM DHF document templates at .templates/ for
upcoming use and wants them synced through the repository instead of a
local ignore; the temporary .gitignore entry is reverted and .DS_Store
junk is excluded.
Evidence: 44 template files staged (18MB, .doc/.docx across DHF stages);
.DS_Store ignored; working tree clean after staging (owner-directed
disposition of these files per session instruction).
Impact: Data-only addition under .templates/; .gitignore gains
.DS_Store; no code paths touched.
Refs: User instruction 2026-10-13 (templates to be used later).
Why: The remaining open items (API-key SSE closure, cross-instance
redeem backoff, U7 atomic bootstrap/create, CLI credential delivery)
landed in Backend #192; Dev pins it and closes the contract leftovers.
Evidence: Backend #192 CI success at head bc1e0a3 (GATE); composite CI
on this PR re-runs the suite incl. test-pg (GATE).
Impact: backend pin cfb8308; contract leftover section now records all
items closed; task card H1-H6 requirement table.
Refs: Backend #192; docs/svc-deploy/2026-10-13-login-recovery-contract.md.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-account-hardening.md; R0=3e5416a8226c2dfdd108d6282566639c2ed41f1e.
Impact: task metadata only; the feature workspace starts at 3e5416a822.
Refs: .task/feature-svc-account-hardening.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-login-recovery-flow.md(PR#504) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the D3 real-scenario card is merged and must leave the open set.
Evidence: CI on aa5d0512bf35d1a860dea2a44b98bddcd8e2364e; ci/test, ci/test-pg, ci/svc-realcombo success.
Impact: archives only this card. Login and rdm.ping stay NOT_RUN.
Refs: .task/archive/feature-svc-d3-real-scenarios.md
Why: the branch is on main, so this card must leave the open set without closing unrelated cards.
Evidence: merge 719bfe945f46d43a22d7ac7025d2313faa4bf0e4; CI run 2853 success on 424892258b.
Impact: task metadata only. Login and rdm.ping stay NOT_RUN.
Refs: .task/archive/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the runnable D3 scenarios now execute against real RDM artifacts.
Evidence: CI run on 424892258b19a8bdd1c9dd430d89334ea0cafa78; ci/test, ci/test-pg, ci/svc-realcombo success.
Impact: login and rdm.ping stay NOT_RUN.
Refs: .task/feature-svc-d3-real-scenarios.md
Why: check-pins failed on the follow-up CI: the newly pinned backend
(741da4a) carries deps/agent-system-core at 0f94e4b while Dev's
modules/core stayed at ba289e7 - the three-layer pin rule requires the
top-level core pin to match.
Evidence: 0f94e4b verified as an ancestor of Core origin/main; this
PR's composite CI re-runs check-pins (GATE).
Impact: modules/core gitlink to 0f94e4b; no source changes.
Refs: check-pins failure on job 4204.
Why: The follow-up CI exposed that backend #188 broke the Dev
multi-instance suite: serve --mock seeded runtime.mock at the user
scope, which system-managed settings now reject, so instances never
became healthy. Backend #190 seeds the startup flag into the system
scope; this PR repins and drops the now-invalid alice user-scope write.
Evidence: Backend #190 CI success at head 0af1ebc (GATE); this PR's
composite CI re-runs make test-multi-instance (GATE for the fix).
Impact: backend pin 741da4a; multi-instance test comments updated to
the system-managed regime.
Refs: Backend #188, #190.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6fd51fec9fed2a95f51420d2c1a8bd5d82db2ae6.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The completion audit flagged four gaps over the merged login
recovery implementation: real-browser acceptance, the login-key e2e
spec, SSE stream invalidation, and the Documents write-back.
Evidence: Browser acceptance receipts be7ae9a2/b3a9e691 (SELF, bound to
Dev HEAD 268ef29); Backend #189 CI success at head 8b73afe (GATE);
Documents #94 merged; this PR's composite CI is the GATE for frontend
pin 44b9646.
Impact: Pins backend=349a47d (SSE close) and frontend=44b9646 (e2e
spec); contract doc leftovers updated; task card carries the follow-up
record for closure.
Refs: docs/svc-deploy/2026-10-13-login-recovery-contract.md; Documents
proposal r3; Backend #189; Frontend #77.
Why: The merge record was committed after PR 501 merged, so the closeout archived the card without it.
Evidence: The two lines match commit 2771196 on the task branch. Run 2832 on head 72763c9 passed, and merge d40d1c2 has the same tree.
Impact: Archived task card text only. Second-instance writes stay closed.
Refs: .task/archive/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The specs branch merged, but its merge subject lacks the default branch tail, so the close scan did not select this card.
Evidence: merge d40d1c2 of PR 501 is in origin/main and its tree matches head 72763c9. Backfill follows the card_backfill format.
Impact: One task card moved to .task/archive with status backfilled. No code change. Second-instance writes stay closed.
Refs: .task/archive/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d40d1c2e5d29bb0ce429edf2221d9c4e4bcb0dcb.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The remaining U7 release gates needed a durable spec before anyone replays them or wires CI.
Evidence: Run 2832 on head 72763c9 has test, test-pg, and svc-realcombo success on home-runner. Review found docs only and unchanged evidence grades.
Impact: Docs and the task card. Checklist grades stay SELF or not started. Second-instance writes stay closed.
Refs: .task/feature-u7-release-roadmap.md
Why: Main advanced with the login recovery merge while CI was running, so the branch had to take it in before merge. The new combination needed its own test evidence.
Evidence: make task-sync merged origin/main 268ef29 with no conflicts (SELF). make test exit 0 on the merged tree (SELF). CI on the new head is still required before merge.
Impact: Task card plus the merge of main. The release specs are unchanged. Second-instance writes stay closed.
Refs: .task/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: depth 1 makes prev_sha and sha unrelated shallow roots, so update reports a fork instead of an upgrade.
Evidence: SELF the pin-fetch credential test; CI run 2829 showed the fork message.
Impact: test-pg fetches 200 commits from each pin, not the full history.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=268ef2999ca2ff3481c6bebd588cae51d6b90709.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the CI fix needs a tool-written receipt on the commit that contains it.
Evidence: SELF make evidence, exit 0.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Merge requires the current head CI result on the task card, with the run link, executor, and SHA.
Evidence: Run 2821 attempt 2 on head 3090dd9 has test, test-pg, and svc-realcombo success on home-runner (GATE). Attempt 1 failed in an unrelated timing-sensitive governance test and was rerun.
Impact: Task card only. Second-instance writes stay closed.
Refs: .task/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The Dev composite must carry the exact backend (467718a) and
frontend (9fc7da2) commits implementing the login recovery contract.
Evidence: component branches pushed to their origins; make test runs in
this task worktree validate the composite (receipts in task card).
Impact: gitlink bump only; no other Dev tree changes.
Refs: docs/svc-deploy/2026-10-13-login-recovery-contract.md
Why: The 2026-10-13 login flow plan requires a frozen contract record
(three adjudications against the r2 proposal) and a traceable task card
before implementation merges.
Evidence: doc-only commit; acceptance matrix cites backend/frontend test
files added in companion commits (SELF).
Impact: docs/svc-deploy/2026-10-13-login-recovery-contract.md becomes
the authoritative login-recovery contract; task card records user
authorization and requirement table L1-L9.
Refs: modules/documents/docs/proposals/2026-10-12-svc-unified-deploy-and-login-key.md r2
Why: the card's main record must point at the review object before CI is accepted.
Evidence: PR 503 exists on the current branch.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the sync checkpoint must be a tool-written receipt on the same card as the tests.
Evidence: SELF CMD make task-sync, exit 0, sync_base 3fb8210f64.
Impact: task metadata only.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: completion claims need tool-written receipts, including the SSH timeout and the passing rerun.
Evidence: SELF make evidence rows on this card.
Impact: task metadata only; login and rdm.ping stay NOT_RUN.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The merge step requires a fresh sync against origin/main recorded on the task card.
Evidence: make task-sync exit 0; sync_base 3fb8210f, tested_head d3f8677, already up to date (SELF).
Impact: Task card only.
Refs: .task/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The merge gate needs a review record on the task card for the PR head.
Evidence: Review of base 3fb8210f against head dd77d27 found docs and the task card only, unchanged evidence grades, and no secrets. No blockers.
Impact: Task card only. Second-instance writes stay closed.
Refs: .task/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Acceptance needs the task-sync and make test outputs on the task card before the PR. The first make test failed because an unrelated process held port 18795; the rerun passed.
Evidence: make task-sync exit 0 against origin/main 3fb8210f (SELF). make test exit 0 after the port was freed (SELF). CI on the PR head remains the authority.
Impact: Task card only. Evidence grades are unchanged and second-instance writes stay closed.
Refs: .task/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-increment-settings-duties.md; R0=3fb8210f6495a78e70a67af3661bdfe9c00fb9de.
Impact: task metadata only; the feature workspace starts at 3fb8210f64.
Refs: .task/feature-rdm-increment-settings-duties.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-login-recovery-flow.md; R0=3fb8210f6495a78e70a67af3661bdfe9c00fb9de.
Impact: task metadata only; the feature workspace starts at 3fb8210f64.
Refs: .task/feature-svc-login-recovery-flow.md
Why: The user authorized continuous delivery of the release-gate specs through merge and task-card closeout. The card still said no continuous authorization and left stages 1-6 unreviewed.
Evidence: Startup precheck READY, receipt imported into the task card (SELF). Spec claims rechecked locally: tree equality holds, policy/facts.md and the Documents repo are untouched, and checklist grades stay SELF or not started.
Impact: Task card text only. No replay, no workflow change, no second host, and second-instance writes stay closed.
Refs: .task/feature-u7-release-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Second-instance writes stay closed until an independent replay or an admitted CI gate, plus a second host. Those remaining steps needed a durable spec.
Evidence: Task-card evidence rows read the merged PRs, tree equality, CI runs 2783/2810/2816, and Dev main branch protection. Source SELF. Drills were not run.
Impact: Docs and the task card only. Checklist grades stay SELF or not started. The collaboration proposal body stays r2.3.
Refs: docs/release-multi-instance.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3fb8210f6495a78e70a67af3661bdfe9c00fb9de.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the card still had the task-start placeholders, so review would not see the NOT_RUN boundary.
Evidence: documentation only; command evidence follows via make evidence.
Impact: login and rdm.ping stay NOT_RUN, and the card does not claim full coverage.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: test-pg only cloned the default branch, so prev_sha and legacy_sha were never built or attested.
Evidence: SELF python3 -m unittest tests.test_ci_credentials tests.test_lifecycle_pin (11 tests, exit 0).
Impact: the lifecycle suite prints the combination inventory and keeps login and rdm.ping as NOT_RUN.
Refs: .task/feature-svc-d3-real-scenarios.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-u7-release-roadmap.md; R0=3fb8210f6495a78e70a67af3661bdfe9c00fb9de.
Impact: task metadata only; the feature workspace starts at 3fb8210f64.
Refs: .task/feature-u7-release-roadmap.md
Why: A real process must not keep the caller DSN in its command line, environment, log, history, or svc.env. Domain events written by -bootstrap have to survive a later pin deploy.
Evidence: SELF unittest of the two new LifecycleRealTests methods exited 0.
Impact: The scan uses a sentinel that is not a live database password. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/test_lifecycle_real.py
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: A static dev deploy deleted the worktree before copying dist, so a mixed batch could not update the workbench. Missing manifests and a second instance on the same Postgres database must fail closed the same way on real artifacts.
Evidence: SELF unittest of the mixed batch, the three-entry manifest-loss case, and the PG cross-instance case exited 0. The PG case used a temporary cluster.
Impact: static dev deploys copy dist before recycling the worktree. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/test_lifecycle_real.py
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the merged upload fix had left its task card open.
Evidence: GATE run on e25869a840 for test, test-pg, and svc-realcombo. Independent review approved. Only the K4 card is archived.
Impact: task metadata. Second-instance writes stay closed.
Refs: #500#497
Why: the result section still described Documents and Dev as unmerged after those pulls had landed.
Evidence: Documents #92 is 05c13a42b14d; Dev #497 is bb5343ca0d4c; GATE run 2810 on cfa8230d4c.
Impact: task card text only. Second-instance writes stay closed.
Refs: #500
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the archived card still said the Dev merge and cleanup had not happened.
Evidence: merge bb5343ca0d4c; GATE run 2810 on cfa8230d4cbb73f0a91a4816f8c884705866a4dd; task-finish observed_head cfa8230d.
Impact: task card text only. Second-instance writes stay closed.
Refs: #497
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the upload fix is on main, and its task card should not stay open.
Evidence: merge bb5343ca0d of PR #497. GATE run 2810 jobs 4080/4081/4082 success on cfa8230d4c. task-finish exit 0, observed_head cfa8230d.
Impact: one task card moves to .task/archive/. No code or submodule change. Other open cards stay open.
Refs: #497
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Stub journals do not prove that a real RDM binary rolls back after a switched fault, a failed build, or a candidate that exits on serve.
Evidence: SELF unittest of the three new LifecycleRealTests methods exited 0. Staging leaves the old pid and release in place; the next start clears that journal. Switched and an immediate serve exit both restore the previous real binary.
Impact: The crash candidate delegates version and identity to the real binary so the gate still sees a capable artifact. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/test_lifecycle_real.py
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: unset object storage panicked on upload, and the retested local fallback is ready to land.
Evidence: GATE run 2804 jobs 4070/4071/4072 success on 42ba9cdf7d, then main only archived a task card. GATE run on cfa8230d4c covers test, test-pg, and svc-realcombo. Backend dc736e339d01 and Documents 05c13a42b14d are pinned. Independent review approved with no blockers.
Impact: unconfigured blob stores use the local artifacts directory. Second-instance writes stay closed.
Refs: #497#186#92
Why: main archived the RDM recovery card after the previous CI, and the branch head has to contain that main.
Evidence: make task-sync exit 0; sync_base=e23cee5561; merge 62422afe5d. SELF. Card archive only.
Impact: task metadata.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=e23cee5561ecb90ba3d52980b239990c0f4def4f.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The lifecycle gate only ran four realcombo cases. A legacy candidate and a missing or mismatched identity row must be refused before the old process stops, and the prev/sha pins must switch without changing the identity row.
Evidence: SELF unittest of the four LifecycleRealTests methods exited 0 against a private RDM clone. The pin moved to the identity merge and a later commit on the same backend pin, because the previous card-close SHAs build a binary with no ensure/verify.
Impact: make test still skips this class unless SVC_TEST_REAL, SVC_RDM_SRC_DIR and SVC_REAL_RDM_BIN are set. make test-lifecycle now runs the module. Login and rdm.ping stay NOT_RUN.
Refs: tests/integration/lifecycle/rdm.pin
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: main gained the RDM admin recovery after the previous CI, and this head has to contain it.
Evidence: make task-sync exit 0; sync_base=6193db1b54; merge e2e3d25418. SELF. No store-open change, so the K4 drill is not rerun.
Impact: task metadata plus the upstream frontend pin and svc admin tooling.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6193db1b548b964ab3133557ddbb9d83a3643d31.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-admin-lockout-recovery.md(PR#498) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the pinned head has to show it already contains origin/main before the final CI.
Evidence: make task-sync exit 0; already up to date; sync_base=5aebedebeb; tested_head=b35d9946bc. SELF.
Impact: task metadata only.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev has to follow the commits that landed on Backend and Documents main, which share trees with the drilled objects.
Evidence: Backend dc736e339d01 tree 498f61947564 equals 46073d30. Documents 05c13a42b14d tree equals 5335499. GATE run 2794 on 6d8b746 succeeded before this pin.
Impact: gitlinks move to the merge commits. Second-instance writes stay closed.
Refs: #186#92#497
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: acceptance has to record that this branch contains the current main before review.
Evidence: make task-sync exit 0; sync_base=5aebedebeb; merge d480b2d058; checkpoint 4a06bb4991. SELF.
Impact: task metadata only.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5aebedebeb963b5c01f39fd9122ec60dbe6d34d3.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the restored drill passed artifact recovery, and the handbook, checklist, and collaboration plan have to say so without opening write traffic.
Evidence: backup-20261013-013354 on Dev a83588dd and backend 46073d30; K1-K7 true, RPO 65s, RTO 3s, five artifacts matched, cross-user access 404. SELF. Documents 5335499 is PR #92.
Impact: C5 is marked SELF-pass. Second-instance writes stay closed until REPLAY or CI and a second host exist.
Refs: docs/svc.md docs/release-multi-instance.md modules/documents
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-d3-real-scenarios.md; R0=5aebedebeb963b5c01f39fd9122ec60dbe6d34d3.
Impact: task metadata only; the feature workspace starts at 5aebedebeb.
Refs: .task/feature-svc-d3-real-scenarios.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5aebedebeb963b5c01f39fd9122ec60dbe6d34d3.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: pick up Agent-System-Frontend dcd2699 (PR #75) so the Dev combined
CI validates the RDM roles panel rejected-state fix together with the
svc.sh rdm-admin recovery tooling in this task.
Evidence: gitlink 43d1933 -> dcd2699; merge-base --is-ancestor of the
reviewed head 0159f00 into frontend main OK (SELF).
Impact: gitlink bump only; combination validated by make test in this
worktree before PR.
Refs: task card feature-rdm-admin-lockout-recovery (R3/I2)
Why: archive the D1 and D3 cards after their merges.
Evidence: GATE run 2787 jobs 4039/4040/4041 success on fef5a64462.
Impact: task cards only.
Refs: #496
Why: the pin needs a recorded local red/green roundtrip and a combination test before the backup drill.
Evidence: cross_artifact_roundtrip exited 1 on backend c6fb130 and 0 on 46073d30; make test exited 0 on ca0ab46. Backend vet-and-test run 2783 succeeded. All SELF.
Impact: task card only.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The archive move staged only the rename, so the completed status and merge record were still unstaged.
Evidence: The cards now cite merge cd61bbb (#485) and 6ecf903 (#495).
Impact: Task card text only.
Refs: Dev #485#495
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Those two branches are on main, and a global task-close would also mark unrelated in-progress cards complete.
Evidence: origin/main contains merge cd61bbb (#485) and 6ecf903 (#495).
Impact: Only .task/feature-svc-d1-identity-flow.md and .task/feature-svc-d3-lifecycle-gate.md move to .task/archive/ with status backfilled.
Refs: Dev #485#495
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: keep fault rollback and the real lifecycle gate on main.
Evidence: GATE run 2784 jobs 4032/4033/4034 success on c197b7565b.
Impact: test-pg runs make test-lifecycle. Login stays NOT_RUN.
Refs: #495
Why: U7 acceptance bootstrapped u7-admin into the shared dev runtime's
singleton rdm_admins ledger, locking the operator out of RDM admin pages
(rdm.role.list 400); recovery required forensics. KTD4 keeps base isAdmin
to audit-view only, so an operator-side trusted channel is needed.
Evidence: python3 -m unittest tests.test_svc_rdm_admin -v (25 OK, SELF);
live smoke on runtime/dev: show/status/typo-guard outputs verified.
Impact: new svc.sh <env> rdm-admin [show|transfer --to x] command, help
topic, status ledger line with stale-owner warning; no behavior change
for existing commands.
Refs: task card .task/feature-rdm-admin-lockout-recovery.md R1/R2
Why: an unset object store must keep artifact bytes available to the other process, which the store-level test does not execute.
Evidence: cross_artifact_roundtrip failed with EOF on backend c6fb130 and passed on 46073d30 (SELF, isolated u7drill-k4).
Impact: Dev now builds the fixed backend. Second-instance write traffic stays closed.
Refs: modules/backend tests/integration/multi-instance/multi_instance_test.go
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The release tests must be bound to the commit that contains the lifecycle changes, and the pre-merge sync has to be on the card.
Evidence: SELF make task-sync exit 0, receipt sha256 ef762f87ad785ef9a1759e2686a992353161e35c7a80b726e01133f1779329af. SELF python3 -m unittest tests.test_svc_u2.U2ReleaseTests -q exit 0 on 0dce930 (35 ok, 1 skipped), receipt sha256 cfe7aea9e6bb09f7a169a4caab3c1c89b4b3138c4e08fa11f53bf12d13caa46a.
Impact: Task metadata only. origin/main 5212fef was already contained.
Refs: Dev #495
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the typed-nil fallback needs a recorded local run before the component pull request.
Evidence: GOWORK=off go vet and go test ./... exited 0 against backend 46073d30; source SELF. The PostgreSQL-gated case was skipped locally.
Impact: task card only. The backend gitlink is not pinned in this commit.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-admin-lockout-recovery.md; R0=5212fef01e59b7f9e12fa7fc42cd987c6792a786.
Impact: task metadata only; the feature workspace starts at 5212fef01e.
Refs: .task/feature-rdm-admin-lockout-recovery.md
Why: the approved plan authorizes this increment through merge and close, and the task card is the record of that scope.
Evidence: stages 1-5 cite the 2026-10-13 plan approval; precheck receipt remains in the card.
Impact: task metadata only; no product code yet.
Refs: .task/fix-u7-k4-artifact-upload.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-u7-k4-artifact-upload.md; R0=5212fef01e59b7f9e12fa7fc42cd987c6792a786.
Impact: task metadata only; the feature workspace starts at 5212fef01e.
Refs: .task/fix-u7-k4-artifact-upload.md
Why: The task card needs the pull request link and the decision not to move live instance data before review.
Evidence: SELF python3 /tmp/d1d3-ro-instances.py exit 0; receipt sha256 895676aabddf85c5b36966428204fde160846b70ac5a8b5eb90ab8037bb0897a. An earlier evidence attempt failed on a broken checker and is kept.
Impact: No runtime data was moved. Login and authenticated rdm.ping stay NOT_RUN.
Refs: Dev #495
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The live deploy journal never called fault injection, and test-lifecycle failed closed on login so CI could not require the real combination cases.
Evidence: SELF python3 -m unittest tests.test_svc_u2.U2ReleaseTests -q exit 0 (35 ok, 1 skipped) on 3602a87; receipt sha256 9b5785577751e8e9e7947cf9700fb8854b1c80142f34273ae25f3097ee4c9aa8.
Impact: test-pg builds the Dev binary and runs make test-lifecycle. Login and full-track deploy without SVC_RDM_ORIGIN stay NOT_RUN. No live data move and no account CLI.
Refs: recovery plan D2/D3; Dev #485
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-d3-lifecycle-gate.md; R0=5212fef01e59b7f9e12fa7fc42cd987c6792a786.
Impact: task metadata only; the feature workspace starts at 5212fef01e.
Refs: .task/feature-svc-d3-lifecycle-gate.md
Why: close this merged task without touching other owners records.
Evidence: PR493 merge0001148 has the tested tree; exact833ea87 run2726 passed all three jobs; raw receipts retained.
Impact: only this task card is backfilled and archived; no code or component changes.
Refs: PR493, UI01-UI13, policy/delivery.md
Why: tie the delivery record to the latest authoritative main.
Evidence: task-sync passed at f6abba3865 with exact merged UI Frontend Documents objects.
Impact: card-only final candidate; implementation objects unchanged.
Refs: PR493, UI01-UI13
Why: verify the authoritative main before platform checks.
Evidence: task-sync synchronized f6abba3865 with unchanged component objects.
Impact: task record only.
Refs: UI01-UI13, U5
Why: retain raw validation receipts and platform identity before delivery.
Evidence: make evidence recorded the clean e6194a1 combination and UI run 2723.
Impact: task evidence only; component objects remain unchanged.
Refs: UI01-UI13, U5
Why: Keep exact component and verification progress recoverable before final integration gates.
Evidence: Full SELF receipts remain in the task card; independent replay and platform gates are separately identified.
Impact: Documentation and Documents version only.
Refs: feature/work-companion-ui U5
Why: Bind the final candidate to actual review fixes and stronger interface acceptance.
Evidence: Full SELF red/green receipts and original independent report identities are retained; GATE and final review remain separate.
Impact: Pin UI0da2e3a and Frontend43d1933; no Backend/Core or running service change.
Refs: UI01-UI13, ce-code-review UI and Frontend findings, work-companion-ui
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=f6abba3865e3779f3567e4cf0805f6a3e86a2052.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Keep a recoverable record of the current validated combination and honest planning status.
Evidence: Full SELF make build and isolated two-case HTTP browser receipts are retained in the task card.
Impact: Documentation and Documents pin only; no running service change.
Refs: feature/work-companion-ui, U5
Why: feature/u7-ops-drills is in origin/main and its task card was still open.
Evidence: merge 089862084f is PR #491. task-finish exit 0, receipt /tmp/u7-ops-drills-finish-4.json (SELF).
Impact: only this card moves to .task/archive/. Other open cards stay open.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=df5f8761ea9e2fb20a4b5e3f20318d748a83fbb0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Preserve task evidence before the next main synchronization.
Evidence: Complete SELF receipts are stored in the task card.
Impact: Documentation only; no runtime behavior change.
Refs: UI01-UI13, feature/work-companion-ui
Why: origin/main moved during CI by archiving an unrelated task card, so the branch had to include it before merge.
Evidence: make task-sync exit 0 via make evidence (SELF). sync_base=df5f8761ea tested_head=bb6b9877d4. The delta is that card archive only.
Impact: The earlier make test on afdf43e still covers the code. CI must go green on this new head before merge.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=df5f8761ea9e2fb20a4b5e3f20318d748a83fbb0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The pre-merge sync brought in a newer main, so the previous make test receipt no longer covers this head.
Evidence: make test exit 0 via make evidence (SELF) with before=afdf43e. CI on the pull request remains the GATE.
Impact: Frontend, UI, Python, and agent-command checks passed on the synced head. Drill verdicts are unchanged.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2c016931044bebdc4a114c1ca1127d1b40d4ab17.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# modules/documents
Why: origin/main moved before the pull request, so the branch had to take that baseline.
Evidence: make task-sync exit 0 via make evidence (SELF). sync_base=2c01693104 tested_head=9526d35f9c.
Impact: Frontend pin and release-directory uniqueness from main are now in the branch. Drill results stay bound to their measurement SHAs.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2c016931044bebdc4a114c1ca1127d1b40d4ab17.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The task card still said C4 and C5 had not run, which would make the pull request describe the wrong result.
Evidence: B6, C4, and C5 receipts already on the card (SELF). drill_driver tests pass after grouping the imports.
Impact: The card now states K4 failed and second-instance writes stay closed. No product code change.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: verify the exact UI and Frontend combination under the approved design.
Evidence: imported startup plus SELF unit, type, build, fixture browser and real HTTP/MockRunner smoke receipts in the task card.
Impact: three-pane presentation rules and fixed component revisions; existing services remain untouched.
Refs: work-companion-ui design r0.2, plan r1 and UI01-UI13.
Why: Close this task after verified merge, CI and runtime acceptance.
Evidence: Original PR results, actor/runner and exact-head CI readbacks
are preserved in the archived record.
Impact: Archive this task only; no source, configuration or other card.
Refs: Dev #483; RDM #288; Frontend #71
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2c016931044bebdc4a114c1ca1127d1b40d4ab17.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Preserve real merge results, current-head CI and runtime acceptance.
Evidence: Gitea admission/merge readbacks and independent/live replay
receipts in this task only.
Impact: Metadata only; no unrelated task closure.
Refs: Dev #483; Frontend #71/#72; RDM #288
Why: Fixed identity contract and current main must share one candidate.
Evidence: Saved final sync, real SQLite/PG replays and live public
recovery receipts; exact current-head CI will decide admission.
Impact: Task metadata only.
Refs: Dev #483/#485; Frontend #71/#72
Why: Policy requires a task-sync immediately before requesting review.
Evidence: make task-sync exit 0 via make evidence (SELF). origin/main was already contained; tested_head is 2eff856.
Impact: The branch stays aligned with authoritative main. Older drill receipts still predate the earlier main merge; the post-sync make test does not.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The acceptance sync merged main, so the earlier make test receipt predates those changes.
Evidence: make test exit 0 via make evidence (SELF) on 794e51b. CI on the pull request remains the GATE.
Impact: The local suite passed again on the synced head, including worktree, Python, frontend, UI, and agent-command checks.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The synchronization gate requires saved task evidence.
Evidence: Current product build and actual binary replay receipts are in
the canonical task record; subsequent sync uses an external receipt.
Impact: Evidence only.
Refs: Dev #483/#485
Why: Required lifecycle gates must follow the current identity contract.
Evidence: Real binary and temporary PostgreSQL replay, independent
review, and D1 synchronization records in the canonical task card.
Impact: Evidence only; application changes remain the approved recovery
and release collision protection with current main work preserved.
Refs: Dev #483/#485; Frontend #71/#72
Why: The branch had to contain authoritative main before acceptance, and that sync is part of the evidence.
Evidence: make task-sync exit 0 via make evidence (SELF). It merged origin/main and warned that the earlier make test predates the merge.
Impact: Backend pin moved with main. The combined test must be rerun on this head.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=cd61bbb112eea6a210a64e84f2cef00b0d64bfc1.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The drill, handbook, and Documents pin need a combined test result before review.
Evidence: make test exit 0 via make evidence (SELF). CI on the pull request remains the GATE.
Impact: Local suite passed, including worktree, Python, frontend, UI, and agent-command checks.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Main D1 now shares the same explicit fixture initialization contract.
Evidence: Both real SQLite and temporary PostgreSQL initialization paths
were independently replayed; capabilities JSON assertions are preserved.
Impact: Resolve duplicate PG setup through the tested helper; preserve
all main lifecycle changes and the rollback directory protection.
Refs: Dev #483/#485; D1 existing-store identity contract
Why: Current RDM identity ensure/verify intentionally refuse missing
databases and schema; the old fixture invoked them on empty stores.
Evidence: Actual RDM red failure, real SQLite and isolated PostgreSQL
green replays, and independent review receipts in the task card.
Impact: Test setup only; normal serve initializes temporary stores and
is reaped before the unchanged identity/lifecycle assertions.
Refs: Dev #483/#484; current RDM D1 existing-store contract
Why: The drill report and storage plan r2.2 are on Documents main, and this repo still pointed at the previous pin.
Evidence: Documents PR https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/90 merged as f76cce9 (SELF API merge, no CI statuses on that repo).
Impact: The gitlink moves from 3cc6438 to f76cce9. Second-instance writes stay closed.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The measured backup, PITR, and disconnect steps were only in the drill scripts, and the checklist still said those rows were not run.
Evidence: Results pgbench-20261012-131948, fault-20261012-142734, and backup-20261012-153441 (SELF). K4 stays failed.
Impact: Second-instance write traffic stays closed. The handbook records the upload panic and the short socket path.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The timed drill finished with a verdict for every criterion, including the upload failure.
Evidence: make evidence exit 1 because K4 failed; results tests/ops/results/backup-20261012-153441 (SELF). K1-K3 and K5-K7 passed. RPO 64s, RTO 4s.
Impact: Physical backup, WAL replay, and pg_dump restore are measured. Artifact upload panics when S3 is unset, so K4 is FAIL and product code was not changed.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: deploys need a side-effect-free identity probe, an isolated lifecycle child, and the release transaction already on main.
Evidence: GATE run 2667 jobs 3845 test, 3846 test-pg, 3847 svc-realcombo all success on b4eb3a814c.
Impact: update and recover run in a clean child; serve keeps the exec-tool kill switch; Backend pin is 0f192a4.
Refs: #485
Why: identity ensure no longer creates the schema, so the probe has to follow a real serve that applies migrations.
Evidence: SELF python3 -m py_compile tests/test_svc_realcombo.py. GATE run 2663 job 3839 failed on the previous head with identity table missing.
Impact: the PostgreSQL check still passes the DSN only through the environment, after serve has migrated.
Refs: #485
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The backup drill again refused to create an instance because the 1-minute load average was 18.23.
Evidence: make evidence exit 3, receipt on the task card (SELF).
Impact: No PostgreSQL instance was created.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: env -i dropped RDM_DISABLE_EXEC_TOOLS, so the real RDM binary exited immediately on runners without bwrap, and the capability probe now prints the JSON document.
Evidence: SELF bash -n scripts/svc.sh; python3 -m py_compile tests/test_svc_realcombo.py. GATE run 2656 job 3831 failed on the previous head before this fix.
Impact: serve and the lifecycle child forward that one switch; identity capabilities is checked as protocol 1 JSON.
Refs: #485
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The restored server promoted and the smoke check passed, then the drill stopped while reading artifact ids.
Evidence: make evidence exit 1, results tests/ops/results/backup-20261012-151951 (SELF). rto_s=3, smoke login/projects/conversation 200.
Impact: The instance was cleaned up. The next run records a full verdict, including a failed upload check.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: A missing artifact id aborted the drill before recovery counts, the settle window, and the logical restore.
Evidence: backup-20261012-151951 reached promoted=1 and smoke 200, then StopIteration on an empty id (SELF). bash -n passed.
Impact: K4 stays failed when uploads do not return an id. The rest of the verdict is still written.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: main gained the real-combination CI gate after the previous sync, and this branch still has to carry that gate with the isolated identity calls.
Evidence: SELF python3 -m unittest recovery/identity/u2/deploy/pin/isolation — 100 tests OK (2 skipped); bash -n scripts/svc.sh.
Impact: identity ensure/verify still pass DSN only through the environment; stop waits for the port and can keep the desired state. CI keeps the lifecycle pin step and the svc-realcombo job.
Refs: #485
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Admit the recovery fix with the latest lifecycle guardrails.
Evidence: Independent replay on the synchronized combination and live
public recovery receipts; exact current-head CI is awaited next.
Impact: Evidence only; no further source changes.
Refs: Dev #483/#484; Frontend #71/#72
Why: pg_ctl could not start the restored server, so the drill exited before a verdict.
Evidence: make evidence exit 1, results tests/ops/results/backup-20261012-150713 (SELF). The log says the Unix socket path is too long.
Impact: Cleanup removed the instance. The rerun uses a short socket path.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The restored postmaster refused to start because the results-directory socket path exceeded the 107-byte Unix socket limit.
Evidence: restore/postgres.log from backup-20261012-150713 says the socket path is too long (SELF). bash -n passed.
Impact: The restored instance listens on /tmp/u7bk-18997, and cleanup removes that directory.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: env -i dropped SVC_STUB_*, so recovery tests saw an empty serve record even though the bound DSN was still passed.
Evidence: SELF python3 -m unittest tests.test_svc.SvcDbRecoveryTests tests.test_svc_lifecycle_isolation — 34 tests OK.
Impact: only SVC_STUB_* is added at launch; serve.env still omits them, and caller AGENT_SYSTEM_* stays out of the process.
Refs: #485
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=99048dda1f48bccb3d5d798050d7beeea2907177.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Final admission must include newly merged lifecycle validation.
Evidence: Full test/build and real local/public browser acceptance are
recorded; test and PostgreSQL CI passed on a8035bf.
Impact: Task record only; subsequent synchronization receives latest main.
Refs: Dev #483/#484; Frontend #71/#72
Why: main already has one release transaction, so this branch keeps that path and only isolates update and recover in a clean child.
Evidence: SELF bash -n scripts/svc.sh; python3 -m unittest identity/recover/deploy/u2/lifecycle pin 92 tests OK (2 skipped), then 66 tests OK after dropping the obsolete journal hook.
Impact: deploy uses releases/ and deploy.journal; the lifecycle child reconciles that journal before deploy or recover. Backend pin is 0f192a4.
Refs: #485
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The backup drill refused to create an instance because the 1-minute load average was 17.72.
Evidence: make evidence exit 3, receipt on the task card (SELF).
Impact: No PostgreSQL instance was created. The rerun waits until load is at or below 16.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: record the clean UI and Frontend baseline before parallel units begin.
Evidence: make evidence receipts for startup and make test-ui test-frontend.
Impact: SELF baseline evidence only; no product behavior change.
Refs: work-companion-ui plan r1 U1-U5.
Why: isolate the approved interface work and fix its component baseline.
Evidence: imported startup precheck SELF receipt; source requirements and plan recorded in Documents.
Impact: task metadata, project links and authoritative UI/Frontend baselines; existing service state is untouched.
Refs: UI01-UI13 and work-companion-ui implementation plan r1.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-u3-realcombo.md(PR#484) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: C4 evidence is recorded, and the next measured run is the backup and PITR drill.
Evidence: The increment line is the only change.
Impact: No runtime change.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Completion must verify the served frontend and original conversation.
Evidence: Real authenticated local/public refresh and two-page preview;
HTTP2 event stream verified, credentials revoked, data identity unchanged.
Governance review and red/green outputs are in the canonical task card.
Impact: Evidence only; no application or storage change.
Refs: Dev #483; RDM #288/#289; Frontend #71/#72
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-work-companion-ui.md; R0=4d362537d0e8755a03b1757b5bad92779a064b33.
Impact: task metadata only; the feature workspace starts at 4d362537d0.
Refs: .task/feature-work-companion-ui.md
Why: on slow runners the orphaned http child of a stopped stub lingers
a few hundred milliseconds past the parent's exit (ppid-watch suicide),
and the immediately following start - notably the U2 rollback restart -
classified the unparented listener as a foreign occupant and refused to
start (CI run 3774).
Evidence: test_svc_u2/identity/svc suites 82 OK locally with the wait
in both stop paths.
Impact: adds <=3s bounded wait in do_stop/do_stop_quiet after SIGTERM
cleanup; no behavior change when the port is already free.
Why: The checklist had no measured restore path for a physical backup, WAL archive, or pg_dump onto a new target.
Evidence: bash -n, go test in tests/ops/drill_driver, and run_backup_drill.sh --self-check passed locally (SELF). The timed run is recorded separately.
Impact: Isolated u7bk only. Upload responses keep artifactId so the restore check can download the same objects.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Second-resolution release IDs let staging delete a previous release
when a same-source deployment ran within the same clock tick.
Evidence: Fixed-clock rollback regression fails before and passes after;
250 governance checks pass. Independent review replays collision and
copy-failure protection; receipts are in the primary task card.
Impact: Add invocation identity and exclusive directory creation; keep
old artifacts intact. Also retain the latest compatible frontend pointer.
Refs: User-approved I2; Dev #483; Frontend #71/#72
Why: The corrected probe measured bounded failures, sub-second recovery without restarting the apps, and Redis shared limits across both instances.
Evidence: make evidence exit 0, results tests/ops/results/fault-20261012-142734 (SELF). F1-F5 and G1-G3 passed. G4 and G5 are the expected findings.
Impact: C4 is SELF on this host. Second-instance write traffic stays closed.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: only the deploy invocation carried RDM_DISABLE_EXEC_TOOLS; the
trailing restart ran without it and the serve died on keyless runners
under the bwrap fail-closed policy (run 3765).
Evidence: local suite green; the restart now inherits the hard-disable.
Impact: tests only.
Why: the branches are ready for review but are not merged, so the card
must stay open and say what was verified on the live instances.
Evidence: local commits listed in the card. Companion pages titled RDM 工作台 returned HTTP 200. rdm.ping did not return a domain result. No data was moved.
Impact: documentation only. Login and the real lifecycle suite stay NOT_RUN.
Refs: recovery plan r3.1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the CI-only serve-exit failure left no server-side evidence in the
assertion output; the tail pinpoints the refuse reason on the runner.
Evidence: local rerun green (diagnostic inert on success).
Impact: test diagnostics only.
Why: an update that stops the old process and overwrites the binary cannot
get the previous version back, and a migration the old binary cannot read
must be refused before that stop. CI also had no fixed RDM SHA to build from.
Evidence: python3 -m unittest tests.test_svc_identity tests.test_svc_recover tests.test_svc_deploy_txn tests.test_lifecycle_pin passed. make test-lifecycle exits 2 when AGENT_PG_TEST_DSN is unset.
Impact: installs land in releases/<rid> and current switches with mv -T.
Deploy keeps the desired state and rolls back a non-terminal journal.
Schema compatFloor above the installed target is refused unless
--migrate-schema --confirm is paired with a backup. test-lifecycle fails
closed without PostgreSQL and an RDM checkout. Login stays NOT_RUN.
Refs: recovery plan r3.1 D2 and D3; Backend feature/d1-identity-open
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: on keyless runners the RDM cache clone and pins materialization
inside svc.sh fetched nested pins over raw SSH URLs (run 2608: host key
verification failed); the suite now injects the same URL-scoped token
header and insteadOf rewrite via environment when SVC_CI_GIT_* is set.
Evidence: local rerun stays green (env unset locally); CI run applies it.
Impact: tests + ci.yaml only; token travels via environment only.
Why: CI runners lack bwrap, so the real RDM binary refuses to start
under the sandbox fail-closed policy (run 2607: serve exits right after
launch); the product provides RDM_DISABLE_EXEC_TOOLS as the top-level
fallback and lifecycle semantics under test are unchanged.
Evidence: local rerun with the env set stays green.
Impact: tests only.
Why: YAML env: values do not shell-expand, so $PWD-based binary paths
reached the suite as literal strings (run 2606: SVC_REAL_BIN not
executable).
Evidence: job log run 2606; paths now exported in the run script.
Impact: ci.yaml only.
Why: the realcombo steps unset the URL-scoped token env before
'submodule update', so nested pins fell back to raw SSH URLs and failed
host-key verification on the runner (first svc-realcombo run 2605).
Evidence: job log run 2605 shows ssh clone failures; reordered steps
keep insteadOf + token header active through the pins fetch.
Impact: ci.yaml ordering only.
Why: stub suites proved the script logic but not real artifact
behavior (the 2026-10-12 incidents passed all stub tests); the report's
U3 requires real-combination gates, and realcombo dry-runs exposed two
real gaps: fresh deploys closed identity governance one lifecycle late,
and pg-bound identity calls put the DSN on the command line.
Evidence: make test exit 0; local realcombo dry-run 16 OK (rows in the
task card); CI adds svc-realcombo (SQLite, both real binaries, full RDM
track) and a real-PG identity step on test-pg with env-delivered DSN.
Impact: tests/test_svc_realcombo.py (SVC_TEST_REAL gate, explicit
NOT_RUN otherwise); ci.yaml new job + test-pg step (RDM clone via
trusted-base URL-scoped token header, allowlist addition reviewed in
this PR); svc.sh delivers identity DSN via AGENT_SYSTEM_DSN and runs
manifest adoption in the same deploy that first registers svc.env;
modules/backend pinned to main (env fallback, backend #182).
Refs: .task/feature-svc-u3-realcombo.md; user goal directive 2026-10-12
(U3); backend #182; RDM #285.
Why: Bind the fixed frontend pin to the current integration baseline.
Evidence: Startup, task-sync, regression red/green, independent reviewer
replay and browser receipts in the canonical task card.
Impact: Evidence and phase authorization only.
Refs: Frontend #71; surface-black-screen-recovery
Why: The corrected drill refused to create an instance because the 1-minute load average was 16.98.
Evidence: make evidence exit 3, receipt on the task card (SELF).
Impact: No PostgreSQL instance was created. The rerun waits until load is at or below 16.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev #452 selected a frontend pointer lacking the previously merged
SurfaceMeta hydration fix and blanked saved-page conversations.
Evidence: Independent review and regression red/green receipts are in
.task/feature-surface-black-screen-recovery.md; make test/build follow.
Impact: Pin the frontend that retains fast-slow and saved-page recovery;
no backend, UI token, storage or permission configuration change.
Refs: Frontend #68; Dev #454; Dev #452; surface-black-screen-recovery
Why: A second evidence run found port 18991 still held by the in-flight drill and exited before creating an instance.
Evidence: make evidence exit 2, receipt on the task card (SELF).
Impact: Nothing was created. The in-flight drill was stopped so the corrected probe can run.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The first pg-stop window counted an in-flight 200 at shutdown, and five writes on the timeline conversation returned 409 while a mock run held it. That measured the probe, not a proven database failure.
Evidence: go test ./... in tests/ops/drill_driver passed locally (SELF).
Impact: The outage clock starts 2s after stop or kill. RTO is five writes on new conversations. Idempotency replays only the window and retries 409 for up to 2 minutes. The Redis phase no longer uses local outside a function.
Refs: feature/u7-ops-drills
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: probing identity by running the subcommand still launched old RDM
builds, and ensure on a missing database created an empty one. A batch
update also inherited the caller's AGENT_SYSTEM_* variables.
Evidence: python3 -m unittest tests.test_svc_identity tests.test_svc_recover passed (41 tests, 1 skipped). tests.test_svc_lifecycle_isolation caller-env and restart cases passed.
Impact: capability probes use version --json only. Established instances
refuse a missing identity row until adopt --confirm. update and recover
run each service in a clean environment. serve reads a 0600 serve.env
and does not inherit the caller environment. Backend and documents pins
move to the D1 identity and recovery-plan commits.
Refs: recovery plan r3.1 D1; Backend feature/d1-identity-open; RDM feature/d1-version-json
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-u3-realcombo.md; R0=4d362537d0e8755a03b1757b5bad92779a064b33.
Impact: task metadata only; the feature workspace starts at 4d362537d0.
Refs: .task/feature-svc-u3-realcombo.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-surface-black-screen-recovery.md; R0=4d362537d0e8755a03b1757b5bad92779a064b33.
Impact: task metadata only; the feature workspace starts at 4d362537d0.
Refs: .task/feature-surface-black-screen-recovery.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-u2-release-recovery.md(PR#480) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3b9cf82cd6fb53f973f26e2039275f7858b0c654.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: deploy overwrote live artifacts after stopping the old service, so
a failed start or workbench check left instances in a mixed
registration-vs-artifact state with no recovery path (2026-10-12
rdm1/rdmcand); the report's U2 requires restorable updates.
Evidence: make test-governance 250 OK; five svc suites 105 OK (rows in
the task card); new tests cover layout/pidcheck stability, rollback on
start failure with desired-state restore, build failure keeping the old
service running, interrupted-switch journal resolution, and schema-
advance blocking rollback without touching the database.
Impact: agent deploys stage immutable releases/<id>/ and switch the
current symlink atomically; deploy.journal persists the switch and is
resolved at start/restart/deploy/update/recover entries; legacy layouts
are adopted on first deploy and remain readable; release/rdm tracks
verify sha256 before staging.
Refs: .task/feature-svc-u2-release-recovery.md; user goal directive
2026-10-12; Dev #474 (U1 gate); Documents unified-deploy plan r2.
Why: keep original closure and synchronization evidence after moving the completed card.
Evidence: existing evidence.py read_receipt and append_card validated/imported original SELF receipts; initial scope refusal retained.
Impact: archived task record only; no policy or component change.
Refs: PR #476; PR #479
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-d1-identity-flow.md; R0=6ba91239e680ef240625dc1e86232c48c4221716.
Impact: task metadata only; the feature workspace starts at 6ba91239e6.
Refs: .task/feature-svc-d1-identity-flow.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6ba91239e680ef240625dc1e86232c48c4221716.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-pr-merge.md(PR#476) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the newly integrated backend identity CLI before testing the combination.
Evidence: SELF task-sync and ancestor verification receipts in the task card; final HEAD CI is required.
Impact: task metadata only; reviewed normative files are unchanged.
Refs: .task/feature-agent-pr-merge.md; PR #476
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-u2-release-recovery.md; R0=9b5be3926eaa394a9e520fd72ffdf6d0a48d1aef.
Impact: task metadata only; the feature workspace starts at 9b5be3926e.
Refs: .task/feature-svc-u2-release-recovery.md
Why: The release checklist cannot mark disconnect recovery until an isolated drill records bounded failures, no SQLite fallback, and idempotent writes.
Evidence: bash -n passed, drill_driver go test passed, unknown arguments exit 2. The timed drill is recorded next.
Impact: New drill entry only. No product change and no release decision.
Refs: docs/release-multi-instance.md C4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=9b5be3926eaa394a9e520fd72ffdf6d0a48d1aef.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pin-backend-identity-cli.md(PR#477) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: C4 and C5 need a shared way to start, refuse, and tear down stacks without touching production ports or processes.
Evidence: tests/ops/self_check.sh passed (help, unknown arg, foreign name, production port, busy port, SIGINT cleanup). drill_driver go test passed.
Impact: New tests/ops library and HTTP driver. No drill result and no release-gate change yet.
Refs: docs/release-multi-instance.md C4 C5
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the newly merged service identity baseline before final CI.
Evidence: SELF task-sync, ancestor check, generator replay and document-link receipts in the task card.
Impact: task metadata only; all reviewed policy and generator content is unchanged.
Refs: .task/feature-agent-pr-merge.md; PR #476
Why: Backend #180 moved the identity CLI to pkg/identity (shared with
Agent-System-RDM per PR 276); Dev main should consume it so composed
binaries carry the same identity semantics and capabilities output.
Evidence: make test exit 0 (combined suite on the bumped pin);
make test-pins ok; rows in the task card.
Impact: gitlink only (bbe9773 -> acabb85, spans #177/#179/#180).
Refs: .task/feature-pin-backend-identity-cli.md; user goal directive
2026-10-12 (implement remaining U1/U2/U3 items in order).
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6a494d3977e6557e7bebe0e5bb1c4a12091296e0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The database-only baseline is usable only with the command, object SHA, and full output kept on the task card.
Evidence: CMD=tests/load/collaboration/run_pgbench.sh make evidence exit 0 at b2e129a (SELF). Six windows, zero failed transactions. An earlier parse failure and a load-gate pause stay on the card.
Impact: Evidence only. Checklist B6 is not flipped until the drill report and checklist edit land. Second-instance writes stay closed.
Refs: docs/release-multi-instance.md B6
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: preserve the actual main PR and independently reviewed object before final CI.
Evidence: completed review and authoritative synchronization receipts in the task card; CI must bind the new HEAD.
Impact: task metadata only; no normative or component change.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/476
Why: bind delivery to the completed review and the user authorized cleanup endpoint.
Evidence: independent review run 20261012-123744-f14f6caa and raw records are captured in the task card; final PR CI is still required.
Impact: task metadata only; all eight reviewed policy and generator files remain unchanged.
Refs: .task/feature-agent-pr-merge.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-pin-backend-identity-cli.md; R0=6a494d3977e6557e7bebe0e5bb1c4a12091296e0.
Impact: task metadata only; the feature workspace starts at 6a494d3977.
Refs: .task/feature-pin-backend-identity-cli.md
Why: A timed window that starts under load average above 16 is not a usable baseline, and creating the instance first only to pause wastes a startup.
Evidence: The rerun at load 24.03 exited 3 before any timed window and removed the instance.
Impact: The pause now happens before initdb. No change to the benchmark itself.
Refs: docs/release-multi-instance.md B6
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The percentile reader also opened the pgbench stdout file, so the first run exited 1 after six successful windows.
Evidence: Parser check on results/pgbench-20261012-131229 select-only-10 gave p50 0.018 ms, matching the reported average. The timed rerun is recorded next.
Impact: Percentile parsing only. The six windows themselves had zero failed transactions.
Refs: docs/release-multi-instance.md B6
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Continuous delivery needs the approved scope, stop conditions, and B6/C4/C5 acceptance on the task card before any drill runs.
Evidence: Precheck receipt imported at task-start (SELF, R0 8ebf502146); plan approved by the user on 2026-10-12.
Impact: Records authorization only. No drill, product, or release-gate change.
Refs: docs/release-multi-instance.md B6/C4/C5
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-identity-u1.md(PR#474) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-u7-ops-drills.md; R0=8ebf5021468a1301ccbe2fe0568508e16d8bb708.
Impact: task metadata only; the feature workspace starts at 8ebf502146.
Refs: .task/feature-u7-ops-drills.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=8ebf5021468a1301ccbe2fe0568508e16d8bb708.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: batch update leaked AGENT_SYSTEM_INSTANCE_ID/DBREF from one service
to the next, and RDM artifacts without the identity CLI were stopped and
overwritten before their startup identity refusal surfaced, leaving
rdm1/rdmcand in a mixed registration-vs-artifact state (2026-10-12).
Evidence: make test-governance 217 OK; tests.test_svc_identity and
tests.test_svc_precheck green; rows recorded in the task card.
Impact: env_config resets identity env per service; capability probe is
timeout-guarded and rejects serve-shaped output; identity ensure moves
to adoption/init (bare start is verify-only); deploy builds and gates
candidates before stopping the old service (refuses identityless
candidates, completes missing identity rows via the candidate); update
runs svc_manifest_migrate like every other lifecycle entry.
Refs: .task/feature-svc-identity-u1.md; user root-cause report 2026-10-12.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=8ebf5021468a1301ccbe2fe0568508e16d8bb708.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: retain the synchronization against the advancing authoritative target.
Evidence: SELF task-sync receipt in .task/feature-agent-pr-merge.md; CI on the final synchronized candidate remains pending.
Impact: task metadata only.
Refs: .task/feature-agent-pr-merge.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6a44736f03f08428e68861f923b18ca645043efe.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pin-backend-read-consumption.md(PR#470) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: avoid general manual-stage wording overriding stages eight and nine.
Evidence: SELF document and link checks captured in the task card; existing governance checks cover unchanged script and test content.
Impact: clarify two policy sentences and record review-node synchronization; no mechanism or component change.
Refs: .task/feature-agent-pr-merge.md; policy/delivery.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ac1de9c4c44a74b6a20a76ef3d948b492db84c39.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: preserve the tested policy object and separate local checks from pending review and CI.
Evidence: SELF command receipts in the task card; 212 governance cases with one existing PG-only skip and 12 verified links.
Impact: task metadata only; policy and component content are unchanged.
Refs: .task/feature-agent-pr-merge.md
Why: Archived card still said merge/cleanup NOT_RUN, and the green
make-test retry landed on the feature branch after PR #468 merged.
Evidence: merge 1325824 CI push jobs success; receipt from 30a5421.
Impact: Close record matches merged facts; SELF capacity still not a release.
Refs: Dev #468; Documents #83#86
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: make the agent responsible for merging reviewed PRs without another human merge step.
Evidence: SELF governance and generated-card checks are captured in .task/feature-agent-pr-merge.md; CI remains required on the final PR HEAD.
Impact: update project delivery policy, agent entry points, task metadata and closure guidance; preserve platform protection and scoped authorization.
Refs: .task/feature-agent-pr-merge.md; user instruction on 2026-10-12
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-identity-u1.md; R0=d8a269ab2fd20e4783ba0cde6a4794a702ad7571.
Impact: task metadata only; the feature workspace starts at d8a269ab2f.
Refs: .task/feature-svc-identity-u1.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-pr-merge.md; R0=d8a269ab2fd20e4783ba0cde6a4794a702ad7571.
Impact: task metadata only; the feature workspace starts at d8a269ab2f.
Refs: .task/feature-agent-pr-merge.md
Why: resolve archive card conflict after u7 card already landed on main.
Evidence: took main .task/archive/feature-u7-capacity-wrap-measure.md; kept audit-combo archive.
Impact: #449 only archives remaining audit-combo debt if needed.
Refs: Dev #449
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: PR head changed after resolving documents/frontend sync merge.
Evidence: CMD=make test make evidence (SELF, exit 0).
Impact: PR #468 head carries current combo verification.
Refs: Dev #468
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-pin-backend-read-consumption.md; R0=1dece88ab0eb6bbeab0ddfb4c7c57c2a7752d248.
Impact: task metadata only; the feature workspace starts at 1dece88ab0.
Refs: .task/feature-pin-backend-read-consumption.md
Why: Restore mergeability for PR #468 after main advanced; keep
Documents pin that includes capacity report r2.1 (3cc6438).
Evidence: documents contains 2026-10-12-u7-capacity-window-report.md.
Impact: PR can merge onto current main.
Refs: Dev #468; Documents #86/#87
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: evidence after merging main into account durability branch.
Evidence: make task-sync SELF; unittest tests.test_svc_user_help.
Impact: task card only.
Refs: Dev #469
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b4b042630a352eca2a399a7a64931c74978bca7f.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: make the six instance-bound user commands discoverable (T5-1) and pin Documents r2/r3.
Evidence: python3 -m unittest tests.test_svc_user_help; existing test_svc_user_binding still green.
Impact: scripts/svc.sh help accounts|user; docs/svc.md topic list; documents gitlink to plan branch tip.
Refs: Documents #87; feature/svc-account-durability-plan
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: evidence for task-sync after frontend gitlink resolve.
Evidence: make evidence task-sync SELF on this HEAD.
Impact: task card only.
Refs: Dev #454
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: keep frontend hydrate pin while absorbing main for Dev PR #454.
Evidence: resolved frontend@$ours from feature tip.
Impact: PR should become mergeable after Frontend #68 lands.
Refs: Dev #454; Frontend #68
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: evidence for task-sync after submodule conflict resolve.
Evidence: make evidence task-sync SELF on this HEAD.
Impact: task card only.
Refs: Dev #452
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: keep U1 component pins while absorbing main for Dev PR #452.
Evidence: resolved backend@4d48aba frontend@1edd872; documents from main merge.
Impact: PR should become mergeable after component PRs land.
Refs: Dev #452; Backend #177; Frontend #67
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Post-sync evidence HEAD must match the PR head under review.
Evidence: CMD=make test make evidence (SELF, exit 0).
Impact: Stage B PR can cite current combo verification.
Refs: feature/u7-capacity-wrap-measure
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: capture task-sync and governance test evidence after documents pin resolve.
Evidence: make evidence of task-sync merge + make test-governance SELF on this HEAD.
Impact: task card only; no product code change.
Refs: Dev #451
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b4b042630a352eca2a399a7a64931c74978bca7f.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: resolve modules/documents gitlink conflict for Dev PR #451.
Evidence: Documents feature tip ebf655c merges main@1048e7c with r1.1/U1 plan.
Impact: pin documents to ebf655c; PR should become mergeable after Docs #84 lands.
Refs: Documents #84; Dev #451
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pin-backend-ext8b.md(PR#466) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-pin-backend-ext8b.md; R0=a47dc76f4b1f8836a70d10c7397e390dc472cdeb.
Impact: task metadata only; the feature workspace starts at a47dc76f4b.
Refs: .task/feature-pin-backend-ext8b.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-rdm-ui-gate.md(PR#450) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=c6fefa3435dc5d9524fc35483f1d34fa1a6e0d59.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# tests/test_svc.py
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pin-frontend-perm-matrix.md(PR#462) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-pin-frontend-perm-matrix.md; R0=d93c95eaea6cd1c4a97506abcd58cc2a4bc26374.
Impact: task metadata only; the feature workspace starts at d93c95eaea.
Refs: .task/feature-pin-frontend-perm-matrix.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pin-frontend-rdm-u6.md(PR#460) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-pin-frontend-rdm-u6.md; R0=d6d46fde6d903d0d8e37440d830fb5183d6ef5e9.
Impact: task metadata only; the feature workspace starts at d6d46fde6d.
Refs: .task/feature-pin-frontend-rdm-u6.md
Why: keep the planning checks reviewable without a dirty task card.
Evidence: SELF document checks against the saved draft objects; raw receipts retained.
Impact: task metadata only; business validation remains NOT_RUN.
Refs: feature/svc-account-durability-plan
Why: preserve current source and service snapshots before final verification.
Evidence: SELF task-sync and read-only runtime receipts in the task card.
Impact: planning metadata only; no runtime or account changes.
Refs: account r2; recovery r3
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d6d46fde6d903d0d8e37440d830fb5183d6ef5e9.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: preserve evidence, current contracts and the next review scope without changing the running system.
Evidence: SELF startup, sync and document validation receipts in the task card; runtime and fault acceptance NOT_RUN.
Impact: task metadata, planning index and account specifications only; component pins and business code unchanged.
Refs: feature/svc-account-durability-plan; Documents account r2 and recovery r3
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pin-documents-rdm-plan-r1.md(PR#458) fix-svc-reclaim-own-port.md(PR#456) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=226a4af15791b8100528c9d9a31c68a32c4781d1.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-account-durability-plan.md; R0=2723e452440fc11022c0f6d916cd34cc4cd17335.
Impact: task metadata only; the feature workspace starts at 2723e45244.
Refs: .task/feature-svc-account-durability-plan.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-pin-documents-rdm-plan-r1.md; R0=2723e452440fc11022c0f6d916cd34cc4cd17335.
Impact: task metadata only; the feature workspace starts at 2723e45244.
Refs: .task/feature-pin-documents-rdm-plan-r1.md
Why: Batch update --all left SVC_PIDCHECK from the prior service in
memory, so pid_alive/reclaim_own_port misclassified the next service's
process as dead/foreign, deleted svc.pid, and failed start on a still-
occupied port (genui/rdm1/rdmcand after successful dev).
Evidence: make test-governance (SELF; receipt /tmp/svc-pidcheck-gov.json);
new test_batch_update_stops_second_service_despite_prior_pidcheck +
SVC_PIDCHECK ratchet in test_svc_precheck.
Impact: env_config clears SVC_PIDCHECK/EXEC/VERSION/SOURCE per service;
batch update correctly stops and restarts each agent. After merge:
restore genui/rdm1/rdmcand and move rdmcand to its own data dir.
Refs: .task/feature-svc-pidcheck-leak.md; complements #456 reclaim_own_port
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-pidcheck-leak.md; R0=2723e452440fc11022c0f6d916cd34cc4cd17335.
Impact: task metadata only; the feature workspace starts at 2723e45244.
Refs: .task/feature-svc-pidcheck-leak.md
Why: genui update cleared svc.pid without killing the process, then
overwrote the binary and failed start with a false "non-ours" port error.
Evidence: make test-governance (receipt /tmp/svc-reclaim-governance.json)
Impact: reclaim_own_port walks ss listener ancestry; stop/check_port/install
wire it; orphans matching pidcheck are stopped, foreign occupants still refused
Refs: fix/svc-reclaim-own-port
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-svc-reclaim-own-port.md; R0=8504b88ace66d709f27339887d6d9ecff610f77c.
Impact: task metadata only; the feature workspace starts at 8504b88ace.
Refs: .task/fix-svc-reclaim-own-port.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-svc-static-pidcheck-fresh-start.md(PR#453) — merge 4c5dd3d on origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Refresh black-screened because SurfaceMeta was written into surfaces
and PreviewPane read identity.surfaceId.
Evidence: make test (receipt /tmp/surface-hydrate-make-test2.json);
Frontend PR https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/68
Impact: Pins frontend@0f52634; openConversation hydrates via surfaceGet
Refs: fix/surface-list-hydrate
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-svc-static-pidcheck-fresh-start.md; R0=0d224ffcab82cab7def2c0b0cc36d2e6d02ce3dd.
Impact: task metadata only; the feature workspace starts at 0d224ffcab.
Refs: .task/fix-svc-static-pidcheck-fresh-start.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-surface-list-hydrate.md; R0=0d224ffcab82cab7def2c0b0cc36d2e6d02ce3dd.
Impact: task metadata only; the feature workspace starts at 0d224ffcab.
Refs: .task/fix-surface-list-hydrate.md
Why: Record open Gitea PR URLs after push so review can start from
the task card as the single status document.
Evidence: Gitea API created PRs #29/#177/#49/#67/#452 (+ docs #84/#451).
Impact: Task card metadata only; no product code.
Refs: Dev #452
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Capture make test-governance on clean HEAD after companion/UI
gates and stub orphan fix (SELF evidence for the task card).
Evidence: CMD="make test-governance" make evidence → 200 ok, 1 skipped.
Impact: Task card evidence table updated; no runtime behavior change.
Refs: .task/feature-svc-rdm-ui-gate.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the agent stub left python http.server children when tearDown
SIGKILL'd the bash parent, leaking ports 1880x into recover/identity
suites that share the same range.
Evidence: local suite re-run pending after this fix.
Impact: stub HTTP child exits when ppid changes (same as recover stub).
Refs: .task/feature-svc-rdm-ui-gate.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Record that U1 whitelist is covered by component tests and
build; full make test still hits unrelated svc port flakes.
Evidence: SELF component-tests-3 exit=0; make build exit=0;
make test governance FAIL (svc lock/port env).
Impact: Task card stage note only.
Refs: .task/feature-fast-slow-display-u1.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: RDM agent deploy left workbench htdocs unserved (prompt-only), so
environments like dev silently offered API-only 404 pages after a source
switch; static first-start also misclassified http.server as dead when
pidcheck was unset.
Evidence: CMD="make test-governance" make evidence (200 ok, 1 skipped; SELF).
Impact: rdm deploy auto-starts <name>web and asserts UI 200; cross-kind
redeploy needs --allow-source-switch; list/info flag missing workbench.
Refs: .task/feature-svc-rdm-ui-gate.md; docs/svc.md §5.4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Keep Dev gitlink on the knip-clean UI tip for combo test.
Evidence: UI knip 57<=57; awaiting make test-ui.
Impact: modules/ui gitlink only.
Refs: UI 83e80f5
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Combine U1 component SHAs so Dev can run make test against the
status mapping and L1 card body changes.
Evidence: Component unit tests; combo make test follows.
Impact: gitlinks only; R03-c/U2/U3 still out of scope.
Refs: .task/feature-fast-slow-display-u1.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-rdm-ui-gate.md; R0=0d224ffcab82cab7def2c0b0cc36d2e6d02ce3dd.
Impact: task metadata only; the feature workspace starts at 0d224ffcab.
Refs: .task/feature-svc-rdm-ui-gate.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-fast-slow-display-u1.md; R0=0d224ffcab82cab7def2c0b0cc36d2e6d02ce3dd.
Impact: task metadata only; the feature workspace starts at 0d224ffcab.
Refs: .task/feature-fast-slow-display-u1.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-audit-combo-integration.md(PR#448) feature-u7-capacity-wrap-measure.md(PR#446) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=8c1edbebece8212ec8c0cd9e646b4b0592b1503d.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Record the primary delivery link after opening the docs/runbook PR.
Evidence: Gitea PR #448 created (mergeable).
Impact: task card header only.
Refs: pulls/448
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=8c1edbebece8212ec8c0cd9e646b4b0592b1503d.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: After capability gate hid 追溯审计 on plain base, the shared dev
entry needs a pinned RDM combo and a candidate-then-cutover runbook.
Evidence: RDM #250 (310c3fe) pins to Dev main; candidate+cutover R1–R5
SELF receipts imported; FE preview showed audit entry on :8788.
Impact: docs/svc.md §5.4.1; local runtime/dev is rdm@310c3fe (ops, not
in git). Owner password was reset via recover key during verification.
Refs: feature/rdm-audit-combo-integration; RDM pulls/250
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-material-intake-lifecycle-flake.md(already-complete) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Sync warned prior evidence HEAD predated non-card changes.
Evidence: CMD=make test make evidence on post-sync HEAD (SELF, exit 0).
Impact: Stage A PR can cite current combo verification.
Refs: feature/u7-capacity-wrap-measure
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-audit-combo-integration.md; R0=1938b442b19cc18ee05fbab919873635c91eba96.
Impact: task metadata only; the feature workspace starts at 1938b442b1.
Refs: .task/feature-rdm-audit-combo-integration.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=1938b442b19cc18ee05fbab919873635c91eba96.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Completion claims need evidence-tool receipts on the task card.
Evidence: CMD=make test make evidence (SELF, exit 0).
Impact: Task card carries combo verification for stage A PR.
Refs: feature/u7-capacity-wrap-measure
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Planning progress must live in the proposal, not chat;
Documents #83 merged the r2 header, preferred-next, and lesson.
Evidence: Documents merge 8d0810b; Dev gitlink pin.
Impact: Dev main readers see U1-U7 code-done vs capacity pending.
Refs: Documents #83; feature/u7-capacity-wrap-measure
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-u7-capacity-wrap-measure.md; R0=41a5fb049323663471f1732bcda296f4eeeb3642.
Impact: task metadata only; the feature workspace starts at 41a5fb0493.
Refs: .task/feature-u7-capacity-wrap-measure.md
Why: Backend #176 aligned the test wait with CardDone + materialActive
release so done-dedup no longer races deliverNotices.
Evidence: Backend CI success on c963347; local -count=20 PASS (evidence on card).
Impact: Dev consumes backend@5e8ada7; test-only, no product behavior change.
Refs: Backend #176; fix/material-intake-lifecycle-flake
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-material-intake-lifecycle-flake.md; R0=41a5fb049323663471f1732bcda296f4eeeb3642.
Impact: task metadata only; the feature workspace starts at 41a5fb0493.
Refs: .task/fix-material-intake-lifecycle-flake.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-audit-capability-gate-changepw-form.md(PR#441) feature-rdm-audit-capability-gate.md(PR#418) feature-u7-k6-password-gate.md(PR#442) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Completion gate needs SELF rows for make test and brew-k6 dual smoke on the synced HEAD.
Evidence: make test exit=0; run_load.sh --instances 2 smoke dup_seq=0.
Impact: Card evidence table updated.
Refs: .task/feature-u7-k6-password-gate.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b008bd94ad0fe6f520a8500f40ed6297251762b7.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b008bd94ad0fe6f520a8500f40ed6297251762b7.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-u7-k6-password-gate.md; R0=4b51a134751d636f7f6ca3fedf180fd76045f2c1.
Impact: task metadata only; the feature workspace starts at 4b51a13475.
Refs: .task/feature-u7-k6-password-gate.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-u7-b5-c2-load.md(PR#439) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=dec25692c247c8923b0f9396c8f674aefec47521.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-fast-slow-display-design.md; R0=4bf6e4a0cf8b509320d54de2a6a41c5abb2f5bba.
Impact: task metadata only; the feature workspace starts at 4bf6e4a0cf.
Refs: .task/feature-fast-slow-display-design.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-recovery-u1-db-identity.md(PR#426) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: backend U4 password gate returns 403 on business APIs until must_change clears; CLI-created load passwords are terminal.
Evidence: dual smoke failed POST /api/projects 403 after login_keys pin.
Impact: load suite works on schema v26+; EXIT trap disables re-entry and waits for serve.
Refs: server enforcePasswordGate; CreateAccount must_change
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: background subshell PID was recorded instead of serve, so cleanup left orphans that stole ports and broke the next smoke.
Evidence: prior dual evidence failed with bind address already in use + probe 401 against stale instance.
Impact: trap kill now terminates the real serve process.
Refs: tests/load/collaboration/run_load.sh
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: origin/main backend broke make test after v26 login_keys without migrator list update.
Evidence: go test ./cmd/storage-migrate -run TestCopyOrderCoversAllFixtureTables (exit 0) on 741b5b0.
Impact: Dev combination gate unblocked; pairs with backend PR #175.
Refs: modules/backend@741b5b0; backend PR #175
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-unified-deploy-login-key.md(PR#422) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=673e687c5c85b9af3ce13ca30845d5e68de5dfa0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=673e687c5c85b9af3ce13ca30845d5e68de5dfa0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Dev #422 add/add on docs/svc-deploy after U1/U4 landed; documents gitlink also diverged from main.
Evidence: took main svc-deploy specs; Documents pin 9d9b152 = proposal + main merge; Backend pin 1d9e8f4
Impact: PR #422 should become mergeable; Documents #79 tip advanced.
Refs: Dev pulls/422; Documents pulls/79; merged #428/#429
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Backend login_keys gate blocks Key traffic while
must_change_password is set; U7 failed on PUT settings/user 403.
Evidence: go test -c multi-instance compiles; CI test-pg will GATE.
Impact: loginAlice does session password change alicePass0→alicePass.
Refs: Dev PR #426; Backend #170 pin e7b70c2
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-deploy-u1-account-binding.md(PR#429) feature-svc-deploy-u4-login-key.md(PR#428) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: #428 landed the same svc-deploy specs; U1 branch still had parallel copies causing add/add conflicts.
Evidence: U1 docs kept branch「已启动」; U4 docs took main (#428) versions
Impact: PR #429 should become mergeable.
Refs: Dev pulls/429; merged #428
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-u7-b5-c2-load.md; R0=b431777c9fa9c74f096d7f14fce40d1beba53fe2.
Impact: task metadata only; the feature workspace starts at b431777c9f.
Refs: .task/feature-u7-b5-c2-load.md
Why: Backend #170 rebased; design doc still said v26.
Evidence: local unittest identity+backup OK after task-sync.
Impact: docs/recovery/u1-identity-manifest.md §5.2 version note.
Refs: Backend PR #170; Dev PR #426
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b431777c9fa9c74f096d7f14fce40d1beba53fe2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Dev #429 conflicted on scripts/svc.sh (U1 user vs main backup) and Backend gitlink.
Evidence: conflict hunks resolved; actions include init|user|backup|backups
Impact: PR #429 should become mergeable after push; both U1 binding and agent backup entrypoints preserved.
Refs: Dev pulls/429; main backup #417; Backend #171
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: U1 svc user depends on --open-existing; Dev #429 conflicted on modules/backend against main.
Evidence: Backend #171 merged as 1d9e8f4 on origin/main
Impact: Unblocks task-sync; svc.sh content conflicts remain to resolve against main backup work.
Refs: Dev pulls/429; Backend #171
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync merged origin/main; Backend pin is main tip with #171; refresh SELF evidence for #428.
Evidence: go test store/server/app exit 0 at synced HEAD
Impact: PR #428 should become mergeable.
Refs: Dev pulls/428; Backend #171 (merged)
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b431777c9fa9c74f096d7f14fce40d1beba53fe2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Backend #171 landed on main as 1d9e8f4; Dev #428 conflicted on the gitlink against newer main pins.
Evidence: Backend origin/main contains OpenExisting + login_keys (merge #171)
Impact: Dev U4 tracks Backend main tip; unblocks task-sync merge of origin/main.
Refs: Backend pulls/171; Dev pulls/428
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-agent-backup.md(PR#417) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=e27810246f507c1e1c2ff6e9fb6282f6da90e0ec.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-genui-prod-deploy.md(PR#433) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ac4058a72f2496a7d5a0225c4fb4e3a7ac8ac012.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Close T4 with PR links, deploy SHA, and acceptance verdict after
evidence receipts were written.
Evidence: make evidence acceptance + make test SELF receipts on card
Impact: Task card ready for finish/close.
Refs: Dev#431 #432
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b4649d79c2bdd66c3bcb9e60752abdb99b5667df.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Ship the surface-action nil-card fix and usage-guide deploy note
into the Dev combination for the local prod instance.
Evidence: Backend #173 @ c7b30d2; Documents #81; make test/build pending
Impact: Prod redeploy can pick up B/C action stability and boundary docs.
Refs: GenUI prod deploy task; Backend#173; Documents#81
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: record CI success for review without pushing a new tip that
would retrigger runners (same convention as U1 #415 closeout).
Evidence: Dev #426bad29e0 test+test-pg success; Backend #170
0c79618 vet-and-test success.
Impact: task card only; push deferred until after merge or explicit.
Refs: PR #426; Backend #170
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-genui-prod-deploy.md; R0=c76f2bb34a11991346e3e3399a6fa968bf38c882.
Impact: task metadata only; the feature workspace starts at c76f2bb34a.
Refs: .task/feature-genui-prod-deploy.md
Why: task-sync hit a submodule conflict; pin must track Backend #170
HEAD after rebase onto main (copyOrder fix).
Evidence: backend 0c79618; origin/main merge completed in worktree.
Impact: modules/backend gitlink; sync with main.
Refs: Backend #170; Dev #426
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5942ba7a949f3032cacf75856529726a7c24fa8e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-genui-auto-trigger-optin.md(PR#425) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: PR URL is the task主记录 after push; keep the card discoverable for review.
Evidence: Gitea API created pulls/429
Impact: Card header points at open PR; no merge.
Refs: pulls/429; Backend pulls/171
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: PR URLs are the task主记录 after push; keep the card discoverable for review.
Evidence: Gitea API created pulls/428 and Backend pulls/171
Impact: Card header points at open PRs; no merge.
Refs: pulls/428; Backend pulls/171
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Completion gate requires evidence-tool receipts for go test on the pinned Backend.
Evidence: SELF receipt e4d1d56c… (store/server/app exit 0 at c2d0fdf)
Impact: Task card ready for PR review; merge still owner-only.
Refs: Backend pulls/171; docs/svc-deploy/u4-one-time-login-key.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Include #172 race fix before Dev PR CI recheck.
Evidence: go test ./internal/runmgr/ -run Material
Impact: Dev pin tracks backend main with sync-only reminders.
Refs: backend#172
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ae465d24441ab349c961a55e9b04f8c4ccaf6de8.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ae465d24441ab349c961a55e9b04f8c4ccaf6de8.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Backend #171 HEAD advanced with must_change e2e fix; keep Dev gitlink in sync and mark U4 specs started.
Evidence: Backend go test store/server/app green at 47463a9
Impact: Dev U4 branch tracks Backend PR #171 tip.
Refs: docs/svc-deploy/u4-one-time-login-key.md; Backend pulls/171
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task card and PR description share one document; link must be on-card.
Evidence: Gitea API created pull #426 for feature/recovery-u1-db-identity.
Impact: .task/feature-recovery-u1-db-identity.md header only.
Refs: PR #426; Backend #170
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Post-sync verification before opening the Dev PR.
Evidence: CMD=make test make evidence exit 0
Impact: Task card SELF receipts for acceptance.
Refs: backend#168/#169 documents#80
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-u7-load-fault-release.md(PR#410) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: increment 3 of the 2026-10-12 diagnostic - the change-password modal
lacked form semantics (no form/autocomplete/username association) and
SettingInput masked all free-text config values.
Evidence: frontend 8db7093 (vitest 24 files / 116 tests incl.
settingInputAttrs matrix; knip; tsc -b && vite build); full e2e and make
test receipts follow on this head.
Impact: modules/frontend pin follows; e2e.sh phase 4 also runs the new
changepw-form spec; task card records scope, authorization and stages.
Refs: 2026-10-12 diagnostic report, increment 3; stacked on PR #418.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3e4a79e4133202b537c888a8beeb7c10d82595f4.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Include #169 so composite lint-boundaries stays green.
Evidence: bash scripts/lint-boundaries.sh ok
Impact: Dev pin tracks backend main b6ea1a5.
Refs: backend#169
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-audit-capability-gate-changepw-form.md; R0=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: task metadata only; the feature workspace starts at 250285eebb.
Refs: .task/feature-rdm-audit-capability-gate-changepw-form.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Land Generative UI auto-trigger design and implementation pins.
Evidence: Backend unit tests PASS; component PRs #168/#80
Impact: Dev composite ready for make test and PR.
Refs: plan GenUI boundaries T2/T3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-recovery-u1-db-identity.md; R0=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: task metadata only; the feature workspace starts at b6307db015.
Refs: .task/feature-recovery-u1-db-identity.md
Why: wire Dev to the Backend feature that delivers OpenExisting and
one-time login keys for the approved deploy proposal.
Evidence: SELF Backend tests; gitlink 1ba7225.
Impact: Backend gitlink + docs; runtime via new binary.
Refs: .task/feature-svc-deploy-u4-login-key.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: card-autoclose archived U1 after #415 merge but left acceptance/cleanup
and the I3 follow-up incomplete for the next task handoff.
Evidence: PR #415 merge af9c2de; green HEAD 6d453ee; task-finish recycled
worktree; residual I3 = agent_system_identity.
Impact: .task/archive/feature-recovery-u1-instance-identity.md only.
Refs: plan U1 close then I3; PR #421
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# modules/backend
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-genui-auto-trigger-optin.md; R0=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: task metadata only; the feature workspace starts at b6307db015.
Refs: .task/feature-genui-auto-trigger-optin.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-deploy-u1-account-binding.md; R0=9a9665b458916179df6d94066dfb9aa657a13d60.
Impact: task metadata only; the feature workspace starts at 9a9665b458.
Refs: .task/feature-svc-deploy-u1-account-binding.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-deploy-u4-login-key.md; R0=9a9665b458916179df6d94066dfb9aa657a13d60.
Impact: task metadata only; the feature workspace starts at 9a9665b458.
Refs: .task/feature-svc-deploy-u4-login-key.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=9a9665b458916179df6d94066dfb9aa657a13d60.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-genui-bclass-help-intent.md(PR#419) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-adminzone-plugin-sections.md(PR#414) feature-genui-spec-repair.md(PR#416) feature-recovery-u1-instance-identity.md(PR#415) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: capture the 2026-10-12 approval so push/PR and U1/U4 starts are gated.
Evidence: SELF task-card update after user approval.
Impact: task metadata and Documents gitlink; no runtime change.
Refs: .task/feature-svc-unified-deploy-login-key.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=af9c2de663be5ff102dcab7698464a645832f569.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: land the approved review conclusions as a formal proposal, U1/U4
specs, and draft task cards without starting business implementation.
Evidence: SELF precheck READY (receipt in task card); docs-only change.
Impact: planning docs and Documents gitlink; runtime behavior unchanged.
Refs: .task/feature-svc-unified-deploy-login-key.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=af9c2de663be5ff102dcab7698464a645832f569.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: task-sync ahead of review; main advanced via #414/#415 (admin-zone
hosting, U1 instance identity).
Evidence: frontend merge verified (vitest/knip/build); dev-level make test
and e2e rerun on this head follow as evidence receipts.
Impact: resolves the modules/frontend gitlink to the component merge head.
Refs: parent evidence in this task card.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-unified-deploy-login-key.md; R0=af9c2de663be5ff102dcab7698464a645832f569.
Impact: task metadata only; the feature workspace starts at af9c2de663.
Refs: .task/feature-svc-unified-deploy-login-key.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=af9c2de663be5ff102dcab7698464a645832f569.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Component PRs #167 and #77 merged; Dev should track the merge
commits rather than pre-merge feature tips.
Evidence: IMPORT make test receipt; make build exit 0
Impact: Ready for Dev composite PR.
Refs: backend#167 documents#77
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Land the first Generative UI B-class allowlist entries with the
independent review record and button-intent hardening.
Evidence: Backend go test ./internal/genui/ ./internal/surfacesvc/ ./internal/server/
Impact: Dev composite pin to backend#167 / documents#77 heads.
Refs: plan GenUI boundaries T1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=37e3229538d64867a6a074020a072da925244fcc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: CI ci/test failed on cf4bbb4 while the identical suite passes locally (exit 0, receipt in card); the sibling head failed the other job instead - runner-side flakiness under five concurrent PRs, so retry via a fresh head.
Evidence: SELF - make test exit 0 via make evidence (full suite, 99 ok lines, no FAIL); prior CI status details fetched via API (cf4bbb4 test-pg=success test=failure; 568afbc test=success test-pg=failure).
Impact: task card evidence row only.
Refs: PR #415
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-genui-bclass-help-intent.md; R0=37e3229538d64867a6a074020a072da925244fcc.
Impact: task metadata only; the feature workspace starts at 37e3229538.
Refs: .task/feature-genui-bclass-help-intent.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=37e3229538d64867a6a074020a072da925244fcc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3fa0d3ade8beb6b534c7ffa7505426001c58e284.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: keep the dev-repo pin in lockstep with the unexport fix so make test
passes on the task HEAD.
Evidence: frontend vitest + knip pass; full make test evidence row follows.
Impact: modules/frontend pin follows the unexport head.
Refs: 2026-10-12 diagnostic report, increment 2.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3fa0d3ade8beb6b534c7ffa7505426001c58e284.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3fa0d3ade8beb6b534c7ffa7505426001c58e284.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the 2026-10-11 runtime/ deletion lost all agent SQLite data with no
backup; the svc-autorecover closing report left "agent SQLite backup" as
a follow-up and the user asked to land it (recovery plan U2 residue).
Evidence: tests/test_svc_backup.py 11/11 green locally (live WAL writer,
manifest sha, retention, guards); make test-governance full suite green
(159 tests, rerun twice after one unreproduced flake).
Impact: new service-level actions backup/backups; snapshots live in
runtime-backups/<name>/ outside runtime/; rm --purge removes them; pg
backup and other flows unchanged.
Refs: modules/documents/docs/proposals/2026-10-12-service-restart-data-recovery.md r2 (sec 6, U2 residue); task card .task/feature-svc-agent-backup.md.
Why: keep the dev-repo pin in lockstep with the spec fix.
Evidence: frontend commit follows; full e2e rerun recorded in the task card.
Impact: modules/frontend pin 986ebdb -> spec-fix head.
Refs: 2026-10-12 diagnostic report, increment 2.
Why: pages with kv/table/list nodes failed invalid-spec under
MiniMax-M3's item-style wrappers and delegated submission lacked the
present tool; backend 3d850a2 fixes both.
Evidence: composite make test runs on this worktree after the bump
(SELF); backend suites green on the branch.
Impact: generative-ui page commits restore; merge backend PR #166
before this one.
Refs: backend PR #166; task card feature/genui-spec-repair.
Why: the card is the single master record and must carry PR #415.
Evidence: SELF - PR #415 created via API on head ecbaa84.
Impact: task card only.
Refs: PR #415
Why: user green-lit delivery on 2026-10-12; the gate for formal acceptance is the PR CI itself, so the earlier 'no push before acceptance' cell was self-contradictory.
Evidence: SELF - user grant; three-segment receipts (precheck/task-sync/tests) already in card.
Impact: task card only.
Refs: AGENTS.md 完成声明三段输出
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3fa0d3ade8beb6b534c7ffa7505426001c58e284.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the rdm-audit entry must hide on plain bases lacking rdm.inspect.*
commands (2026-10-12 diagnostic, increment 2), and the dev-repo e2e driver
needs a plain-base phase to prove it end to end.
Evidence: frontend e058adc carries the gating (vitest 23 files / 112 tests
incl. new contract matrix; tsc -b && vite build pass); full e2e rerun
follows this commit (RDM combo + plain base phases).
Impact: modules/frontend pin 360d640 -> e058adc; scripts/e2e.sh gains
phase 4 (same $DATA served by the base CLI, plain-base.playwright.ts);
task card records scope, authorization chain and stage table.
Refs: 2026-10-12 diagnostic report, increment 2.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-genui-spec-repair.md; R0=501b785e17843fdf0b19184e28952e426c1a198f.
Impact: task metadata only; the feature workspace starts at 501b785e17.
Refs: .task/feature-genui-spec-repair.md
Why: post-sync evidence must be refreshed at the final head before requesting review; stage table now separates local SELF green from the pending PR CI gate and the real-PG NOT_RUN boundary.
Evidence: SELF - identity suite 21/21 and governance 169/169 re-run at the synced head via make evidence (receipts in card).
Impact: task card only.
Refs: docs/recovery/u1-identity-manifest.md section 7
Why: Close automation filled the header (PR #412) but merge/cleanup
lines still described the in-progress state.
Evidence: CI green on PR head; task-finish recycled at 6134a17.
Impact: Archived card text only.
Refs: PR #412; PR #413
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=501b785e17843fdf0b19184e28952e426c1a198f.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u7-acceptance.md(PR#412) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=475654363de3ec72df68d246ffab8217b1cfeab6.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Evidence: receipts for the contracts-mirror dirty-tree failure and the
green rerun at the final gitlinks, imported via IMPORT_RECEIPT (SELF).
Impact: task card evidence section only.
Refs: WP3-I3.
Why: Frontend #64 moved AdminZoneSection out of the generated contracts
mirror; the composite must validate against the fixed main.
Evidence: make test rerun follows via make evidence; CI is authoritative.
Impact: submodule pointer only (frontend c1225bb -> #64 merge).
Refs: WP3-I3.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-agent-backup.md; R0=475654363de3ec72df68d246ffab8217b1cfeab6.
Impact: task metadata only; the feature workspace starts at 475654363d.
Refs: .task/feature-svc-agent-backup.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-audit-capability-gate.md; R0=475654363de3ec72df68d246ffab8217b1cfeab6.
Impact: task metadata only; the feature workspace starts at 475654363d.
Refs: .task/feature-rdm-audit-capability-gate.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=475654363de3ec72df68d246ffab8217b1cfeab6.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: card sections were placeholders; gitlinks point the composite at
backend a80d3c3 / frontend c1225bb (both merged component mains) so
make test validates the shipping combination.
Evidence: make test green in this worktree at these gitlinks (local log
/tmp/i3-make-test.log; CI is authoritative); card edits are SELF.
Impact: task card content + submodule pointers.
Refs: WP3-I3; Backend #165, Frontend #63, RDM #240.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-fe-me-refresh.md(PR#407) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u7-acceptance.md; R0=b634a278de74c8a2124531ab3e35360a84332087.
Impact: task metadata only; the feature workspace starts at b634a278de.
Refs: .task/feature-generative-ui-u7-acceptance.md
Why: pin re-resolution requires a fresh composite run per the
cross-repo pin rules.
Evidence: CMD="make test" make evidence exit=0 at the merged head
with frontend pinned to 360d640 (SELF).
Impact: task card only.
Refs: task card feature/fe-me-refresh; Dev PR #407.
Why: Dev main moved the frontend pin to 41f6ce8 (U6, PR #408) while
this branch pinned fdedaa1 (admin me-refresh, frontend #61); frontend
main 360d640 contains both, so the gitlink resolves there.
Evidence: git merge-base --is-ancestor fdedaa1 360d640 and 41f6ce8
360d640 both hold in the frontend repo (SELF).
Impact: pin-only merge resolution; composite make test reruns next.
Refs: frontend PR #61/#62; Dev PR #407/#408.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3f32fdacbc5af91bd9212b2ded69f6559d1d92b2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: collaboration storage U7 (proposal sections 3/5/7) requires two-process
HTTP-level acceptance over shared PG, a reproducible load-test entry honoring
the load contract, and an auditable pre-release checklist; capacity windows and
dual-host runs need user-scheduled resources, so the deliverable here is the
verifiable entry, not capacity claims.
Evidence: make test green (composite); make test-multi-instance green locally
against an isolated PG (five scenarios incl. crash-takeover and restart
invariants); run_load.sh --profile smoke end-to-end green (SSE probe p95~18ms,
zero seq duplicates, stack auto-recycled); backend pinned to feature branch
with the three cross-instance fixes.
Impact: new tests/integration/multi-instance (CI test-pg job step), new
tests/load/collaboration (k6 + SSE probe + run_load.sh), release checklist at
docs/release-multi-instance.md; no runtime behavior change in Dev repo itself.
Refs: backend PR #164; task card feature/u7-load-fault-release.
Why: Close automation filled the header (PR #408) but merge/cleanup
lines still described the in-progress state.
Evidence: CI green on PR head (one 405 race auto-resynced);
task-finish recycled at e80baf1 on 2026-10-12.
Impact: Archived card text only.
Refs: PR #408; PR #409
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u6.md(PR#408) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-adminzone-plugin-sections.md; R0=3b6331d5849af411f7571410876d3c72558e577a.
Impact: task metadata only; the feature workspace starts at 3b6331d584.
Refs: .task/feature-adminzone-plugin-sections.md
Why: bind the completion claim to the tool-recorded composite test run
on the post-sync head with the bumped frontend pin.
Evidence: CMD="make test" make evidence exit=0 appended by the evidence
tool (SELF); CI replay expected on the PR head.
Impact: task card only; no code change.
Refs: task card feature/fe-me-refresh.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=df18c35203601bdec8d1671c60e0f4cf7d0b5aef.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-plugins-compiled-listing.md(PR#404) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=df18c35203601bdec8d1671c60e0f4cf7d0b5aef.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the admin entry vanished after every reload because store.me was
never repopulated outside the forced-change gate; frontend fdedaa1
adds store.refreshMe() to the authState ok effect.
Evidence: composite make test exit=0 on this worktree with the bumped
pin (SELF); frontend vitest 100/100 and tsc+vite build clean on
feature/me-refresh-on-auth.
Impact: dev UI keeps the system-management entry for admins across
reloads and re-logins; merge frontend PR #61 before this one so the
pin points at a merged commit.
Refs: frontend PR #61; task card feature/fe-me-refresh.
Why: the previous run failed on governance tests because two leaked
mi_dbg test fixtures (pids 1411737/9, ports 18801/2) held the test ports;
killing them restored the suite. Failure and rerun are both recorded.
Evidence: make evidence receipt (make test exit=0) at the synced head
(SELF).
Impact: task card evidence section only.
Refs: WP3-I4, Dev PR #404.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-fe-me-refresh.md; R0=a1ac948155eb8957a87f37d8da4a9feb870dd532.
Impact: task metadata only; the feature workspace starts at a1ac948155.
Refs: .task/feature-fe-me-refresh.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-service-restart-recovery-plan.md(PR#403) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync merged origin/main (a1ac948) into the branch; test evidence
must be recorded at the head offered for merge.
Evidence: make evidence receipt (make test exit=0) at 719340b (SELF).
Impact: task card evidence section only.
Refs: WP3-I4, Dev PR #404.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u6.md; R0=a1ac948155eb8957a87f37d8da4a9feb870dd532.
Impact: task metadata only; the feature workspace starts at a1ac948155.
Refs: .task/feature-generative-ui-u6.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=a1ac948155eb8957a87f37d8da4a9feb870dd532.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: task-sync flagged that the previous test receipt predates non-card
changes; the tested HEAD must match the PR head.
Evidence: make evidence receipt b8e003fa562c3b4c imported (SELF, exit=0).
Impact: task card evidence section only.
Refs: WP3-I4.
Why: card sections were placeholders (policy requires goal, requirements
and test plan before evidence/review); the gitlinks point the composite
at the I4 sub-repo commits so make test validates the real combination.
Evidence: make test green in this worktree at these gitlinks (log kept
locally; CI is authoritative); card edit is SELF.
Impact: task card content + submodule pointers (backend 9aa51e5,
frontend 01b853f).
Refs: WP3-I4.
Why: the card is the single master record and must carry the PR links once created.
Evidence: SELF - Documents PR #75 and Dev PR #403 created via API; merge order #75 then #403.
Impact: task card only.
Refs: PR #75#403
Why: the user granted push/PR authorization on 2026-10-12; the card must reflect it and carry the test-segment receipt before requesting review.
Evidence: SELF - make test-pins receipt exit 0 (pins ok; nested development-guidelines warns are pre-existing); precheck and task-sync receipts already in card.
Impact: task card only.
Refs: AGENTS.md 完成声明三段输出
Why: U1 starts per the approved recovery plan r2 - a reviewed design contract must exist before touching scripts/svc.sh, and R3 needs an enumerable data-ownership baseline.
Evidence: SELF - doc-check receipt via make evidence. First run FAILED (exit 1: proposal r2 not present in this worktree because it sits unmerged on feature/service-restart-recovery-plan); references reworded to cite the path with a pending-merge note and the check re-run PASS (exit 0). Both receipts are in the card; grounding facts verified at baseline 89174a0.
Impact: docs/recovery/ additions and task card only; no behavior change; implementation gated on design review.
Refs: modules/documents/docs/proposals/2026-10-12-service-restart-data-recovery.md r2 U1
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-recovery-u1-instance-identity.md; R0=89174a0f5c28ff7f49c794f37ea7e9528f9b526e.
Impact: task metadata only; the feature workspace starts at 89174a0f5c.
Refs: .task/feature-recovery-u1-instance-identity.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-plugins-compiled-listing.md; R0=89174a0f5c28ff7f49c794f37ea7e9528f9b526e.
Impact: task metadata only; the feature workspace starts at 89174a0f5c.
Refs: .task/feature-plugins-compiled-listing.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=89174a0f5c28ff7f49c794f37ea7e9528f9b526e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: U2's first slice landed via main (PR #396/#401); the plan card's next-task line must point at the remaining U2 delta instead of the closed task.
Evidence: SELF - documents gitlink advanced; merged main range 555fb2162f..c622372 (96 commits) inspected.
Impact: task metadata and submodule pointer only.
Refs: .task/archive/feature-svc-autorecover.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-u7-load-fault-release.md; R0=c6223724437b8c186d4ef80a20275fab4cf30004.
Impact: task metadata only; the feature workspace starts at c622372443.
Refs: .task/feature-u7-load-fault-release.md
Why: stage-review table, phase line and next-task line must carry the 2026-10-12 approval and vehicle decision.
Evidence: SELF - user decision; documents gitlink advanced to the approval-record commit.
Impact: task metadata and submodule pointer only.
Refs: modules/documents/docs/records/2026-10-12-service-restart-data-recovery-review.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-autorecover.md(PR#401) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=77391479a0645f06b631bc64ac9e55554f7e4f4e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: systemd's default KillMode=control-group kills every process in
the unit's cgroup when the oneshot finishes -- the daemon recover just
started died seconds after the recover ok event (observed live on the
host: revived at 22:13:40, gone by 22:13:42).
Evidence: unit text now carries KillMode=process (asserted in
test_watchdog_print_plan); suite 10/10 and make test-governance rerun
recorded on the card; live re-demo on the host after merge.
Impact: scripts/svc.sh wd_service_text only.
Refs: .task/feature-svc-autorecover.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=bbce8db9054b67fd8bacf3935ceb65b205682e63.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: closing the card requires the merged PR reference and honest
verification lines per the anti-debt gate.
Evidence: PR #396 merged at main (CI GATE green on e0b49d1); evidence
table rows written by make evidence.
Impact: task metadata only.
Refs: .task/feature-svc-autorecover.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3de5791e0841e9c7c40c3dc236be6d95b3969827.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: check_port_free consulted port_owner (ss -ltnp) only, so the
/dev/tcp fallback added to port_listening never ran on the start path;
CI (no iproute2) still started onto a thief-held port.
Evidence: no-ss simulation refuses a bound port and passes a free one;
full suite 10/10 and make test-governance rerun recorded on the card;
CI on the new head is authoritative.
Impact: scripts/svc.sh check_port_free only.
Refs: .task/feature-svc-autorecover.md
Why: the CI runner container has no iproute2, so port_listening went
blind: recover started a service onto a thief-held port and the health
probe hit the thief (HTTP 200), reporting a bogus start success.
Evidence: no-ss PATH simulation shows the fallback detects a bound port
and passes free ports; make test-governance rerun recorded on the task
card; CI on the new head is authoritative.
Impact: scripts/svc.sh port_listening only (ss stays primary when
present).
Refs: .task/feature-svc-autorecover.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-rdm-source.md(PR#398) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Popen returns before python http.server finishes binding, so on
slower CI runners recover won the race and started the service, turning
the port-stolen case into a flake.
Evidence: single-case rerun OK locally; make test-governance rerun
recorded on the task card; CI on the new head is authoritative.
Impact: test synchronization only.
Refs: .task/feature-svc-autorecover.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6933ec3979fef58e94461f3b80bb79fca3874c99.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: RDM capabilities (two-trees-one-net, rdm.* trace-audit command face)
only exist in the downstream Agent-System-RDM composite binary; svc's three
existing sources all produce the Dev binary, so none of it could be deployed
or lifecycle-managed. This adds --from rdm[@<sha>] with the same isolated
source-repo semantics as the dev source.
Evidence: make test-governance 138/138 (two new stub cases: deploy E2E and
commits/update track); real deployment rdm@2aef3fc recorded in the task card
(pins materialized, pure-Go build, web workbench to htdocs, serve health OK,
rdm.ping/rdm.inspect.capabilities committed, update --check reports latest);
make test full suite exit=0. All segments written by make evidence.
Impact: scripts/svc.sh (rdm source resolution/materialization/deploy/update/
commits, probe timeouts, rdm seed skip, ELF env-DSN evidence fallback),
docs/svc.md 5.4, tests/test_svc.py. RDM-side CLI alignment landed as RDM
PR #228; no base submodules touched.
Refs: task card .task/feature-svc-rdm-source.md; RDM PR #228/#229.
Why: CI containers run a PID 1 that does not reap orphans, so the
killed stub lingers as a zombie and os.kill(pid, 0) keeps succeeding;
local dev machines reap instantly, which hid the difference.
Evidence: tests/test_svc_recover 10/10 after the fix; make
test-governance re-run recorded on the task card; CI on the new head
is the authoritative gate.
Impact: test helper only (svc.sh already treats zombies as dead via
empty-cmdline pidcheck).
Refs: .task/feature-svc-autorecover.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u6-vector.md(PR#395) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-rdm-source.md; R0=acc8bf124c04b89ed05093467ebce865934bdddc.
Impact: task metadata only; the feature workspace starts at acc8bf124c.
Refs: .task/feature-svc-rdm-source.md
Why: task-sync advanced the base; key checks re-run at the merged head per the evidence gate.
Evidence: make evidence appended the post-sync make test-governance run (146/146 OK); sync row recorded by task-sync.
Impact: task metadata only.
Refs: .task/feature-svc-autorecover.md
Why: stage review needs results and evidence in the card before the PR merges.
Evidence: make test / test-backend-pg (real pgvector) / make build exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #159; Dev PR #395.
Why: stage review needs results and evidence in the card before the PR.
Evidence: make test / test-backend-pg (real pgvector) / make build exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #159.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=acc8bf124c04b89ed05093467ebce865934bdddc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the completion claim needs tool-written evidence per the evidence gate.
Evidence: make evidence wrote the make test-governance run (146/146 OK) into the card.
Impact: task metadata only.
Refs: .task/feature-svc-autorecover.md
Why: svc services are bare nohup'd processes with persisted registration
but no supervision -- a crash, an OOM kill, or a reboot left them dead
until manual restart (2026-10-11 outage: dev service lost, runtime/ also
wiped by hand, nothing brought services back).
Evidence: tests/test_svc_recover.py 10 cases green (start records
autostart, stop clears it incl. dead-process stop, SIGKILL then recover
revives with persisted exec=, lock-held skips, port-stolen fails with
recover fail event, watchdog unit text via --print); make test-governance
146/146 OK locally; real-machine watchdog install + kill -9 revival to be
recorded on the task card.
Impact: svc.sh gains autostart key in svc.env, `recover [name]
[--quiet]` (postgres-first, per-service .start.lock, recover history
events), `watchdog install|remove|status` (systemd user timer, cron
fallback hint), lifecycle lock across start/stop/restart/deploy/update;
spawned services no longer inherit the lock fd (9>&-), and lock release
no longer clobbers script stderr. Makefile adds svc-recover/svc-watchdog;
docs/svc.md documents semantics and boundaries.
Refs: task card .task/feature-svc-autorecover.md; docs/svc.md 6.5/6.6;
parallel planning card feature/service-restart-recovery-plan (same
problem space, plan-stage).
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=dc97048556caebd03168866075d959f0f55d02a7.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the parent must pin the merged component SHA for combined build and CI.
Evidence: backend origin-main tip e49f165 (includes #159 and later merges) fetched post-recovery; internal core pin 89f3906 matches Dev modules/core.
Impact: gitlink only.
Refs: backend PR #159.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-e2e-acceptance.md(PR#393) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=660f581d81bb54c9868920df07e0b8fdbec8e036.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: task-sync advanced the Dev backend gitlink past the RDM pin; a newer-schema user-create CLI migrates the fresh store beyond what the RDM binary (schema ceiling of its pin) can open.
Evidence: reproduce on 20261011-180439 run (v25 store vs v24 binary); rerun green recorded after this change.
Impact: scripts/e2e.sh only; seeding and serving now share one base version.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=aa1f87602471cc567afd5756326e994315984fc8.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: git submodule clone over the flaky Gitea SSH endpoint hangs the whole run; local archive + pinned-checkout snapshot removes the network dependency and cuts the build stage to seconds.
Evidence: this exact tree ran scripts/e2e.sh to green (4 passed) twice, recorded in the task card.
Impact: scripts/e2e.sh only; behavior unchanged when the network is healthy.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-material-intake-flow.md(PR#391) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: U4 acceptance needs a reproducible real-browser run: build the
RDM binary from its origin/main, seed projects/ingest via the command
API, serve with auth on, and drive Playwright against vite preview.
Evidence: scripts/e2e.sh --seed-only smoke (in progress this task);
frontend pin points at the Playwright harness commit.
Impact: dev tooling only (.tmp artifacts ignored; no runtime changes).
Refs: task feature/rdm-e2e-acceptance; frontend feature branch of
the same name.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=cef97ce34e0c77c83d24c9b4f39b94fb7a19ee2c.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: card closure requires the real PR link and completion backfill before archiving.
Evidence: links to merged PRs #48/#161/#390 and CI commit statuses (GATE).
Impact: task card only.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=94314361563d12271913eb5dabd4c42d03e69c19.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# modules/backend
Why: stage-7 products must be recorded before review.
Evidence: summaries reference the tool-written receipt rows above (SELF).
Impact: task card only.
Why: acceptance requires browser-level verification of the full loop.
Evidence: receipt mat-browser-e2e exit=0 (headless Chromium against the isolated AFTER instance, real MiniMax; SELF); screenshots under /tmp/mat-e2e/shots.
Impact: task card only.
Why: Branches #387/#388 merged but the close automation did not
recognize the hand-written card headers, leaving bookkeeping debt
(precheck would flag it).
Evidence: Both PRs merged with CI green (Dev #387, #388); E2E receipt
in the e2e-record card.
Impact: Cards moved to .task/archive/ with backfilled status.
Refs: PR #387; PR #388
Why: The children-repair card promised a post-deploy E2E rerun; it
now exists with a before/after contrast.
Evidence: Real MiniMax-M3 run on dev@0f61271 - present succeeded
(ok=true revision=1) where the pre-fix run fell back to a file
artifact; surfaces API returns the saved page. Receipt imported via
make evidence (SELF, key redacted).
Impact: Task card only.
Refs: PR #387
Why: The children-repair fix needs its card and evidence on the Dev
branch before publication.
Evidence: Receipts imported via make evidence (SELF); combined make
test exit 0 after clearing orphan test-server processes left by a
parallel session (earlier runs' port-collision failures retained in
/tmp receipts and noted in the card).
Impact: Task card only.
Refs: Backend PR #160
Why: honest evidence - full suite red on one svc.sh test that also fails on clean main (live dev service port collision).
Evidence: imported receipt exit=2 (SELF); main reproduction noted.
Impact: task card only.
Why: combined validation and review must run on the exact component versions of this task.
Evidence: gitlink updates only; make test to follow in the task card via make evidence.
Impact: modules/backend -> 16ed7b2 (I1-I3), modules/ui -> bfecf8b (pending-filter fix).
Refs: .task/feature-material-intake-flow.md I3.
Why: after task-sync moved backend to 25fbea85 the reviewed gaps needed re-verification, and the svc-autorecover ownership decision needed the actual worktree state rather than the empty card alone.
Evidence: SELF - drift-check receipt (bash /tmp/as-drift-check-20261011.sh) appended via make evidence, exit 0: all cited gaps hold at 25fbea85; svc-autorecover holds 373 lines of uncommitted U2-slice work whose own suite currently fails 5 of 10 tests.
Impact: task card metadata only.
Refs: AGENTS.md 证据与验证门禁
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-e2e-acceptance.md; R0=a884b5b4553ba070a4a08cbe4227718cbce856cf.
Impact: task metadata only; the feature workspace starts at a884b5b455.
Refs: .task/feature-rdm-e2e-acceptance.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-base-ext-admin-project.md(PR#385) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the reviewed candidate moves from untracked drafts to a fixed two-repo combination; task card and project index must reference r2 and record the svc-autorecover ownership decision as a human gate.
Evidence: SELF - documents gitlink cbc64eb (r1 pinned at 54fc24e, revised to r2 with SHA256 9cfda252...); resume precheck receipt imported above; task-sync merged origin/main 555fb2162f cleanly.
Impact: task metadata, submodule pointer and index only; no business code, no push/PR.
Refs: modules/documents/docs/records/2026-10-12-service-restart-data-recovery-review.md (round 2)
Why: AGENTS.md startup gate - this session resumed the task, so a fresh precheck receipt must be recorded before project writes.
Evidence: SELF - receipt /tmp/resume-recovery-plan-20261011.json captured via CMD='make precheck' make evidence; verdict READY at R0 555fb2162f.
Impact: task card evidence row only.
Refs: AGENTS.md 任务启动门禁
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=555fb2162fe47e13835c592013bc3a69e46239e2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: finish the prior session's in-flight records so the tree is clean before the resume precheck (P1.1 object pinning).
Evidence: SELF - documents gitlink now points at 54fc24e (proposal r1 + review record + INDEX); task card carries the prior session's evidence rows and authorization scope.
Impact: task metadata and submodule pointer only; no business code.
Refs: modules/documents/docs/proposals/2026-10-12-service-restart-data-recovery.md
Why: policy/delivery.md requires staged review records; the user approved the plan and four scope rulings on 2026-10-11.
Evidence: card sections filled from the approved session plan (SELF); no command outputs transcribed.
Impact: task card only; no code changes.
Refs: .task/feature-material-intake-flow.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-material-intake-flow.md; R0=555fb2162fe47e13835c592013bc3a69e46239e2.
Impact: task metadata only; the feature workspace starts at 555fb2162f.
Refs: .task/feature-material-intake-flow.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=555fb2162fe47e13835c592013bc3a69e46239e2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Close automation filled headers (PR #381/#382) but the merge and
cleanup lines still described the in-progress state.
Evidence: CI ci/test green on both PR heads (one 405 race each,
auto-resynced); task-finish recycled both worktrees on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #381; PR #382; PR #384
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-artifact-version-dedupe.md(PR#382) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u6-vector.md; R0=d8a442edbb8822c85ab79c1a9251f039a8f12880.
Impact: task metadata only; the feature workspace starts at d8a442edbb.
Refs: .task/feature-collab-storage-u6-vector.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u5-outbox.md(PR#380) fix-genui-page-visibility.md(PR#381) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-base-ext-admin-project.md; R0=b5f766a9ae59c9c67752a9c4b17f41ac21c7ebeb.
Impact: task metadata only; the feature workspace starts at b5f766a9ae.
Refs: .task/feature-base-ext-admin-project.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5e57029b439e5690f28dc6002f9784f0b08920eb.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-autorecover.md; R0=5e57029b439e5690f28dc6002f9784f0b08920eb.
Impact: task metadata only; the feature workspace starts at 5e57029b43.
Refs: .task/feature-svc-autorecover.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-service-restart-recovery-plan.md; R0=5e57029b439e5690f28dc6002f9784f0b08920eb.
Impact: task metadata only; the feature workspace starts at 5e57029b43.
Refs: .task/feature-service-restart-recovery-plan.md
Why: stage review needs results and evidence in the card before the PR.
Evidence: make test / test-backend-pg / make build exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #157.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5e57029b439e5690f28dc6002f9784f0b08920eb.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u5-closeout.md(PR#378) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: U5 injects the S3-compatible blobstore from the app composition root (env-driven, local fallback) - a legitimate dependency recorded in the baseline.
Evidence: lint-boundaries green after the update.
Impact: baseline bookkeeping only.
Refs: backend PR #157.
Why: the parent must pin the merged component SHA for combined build and CI.
Evidence: backend origin-main merge of #157 fetched post-merge.
Impact: gitlink only.
Refs: backend PR #157.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-artifact-version-dedupe.md; R0=0933a3be588739f867abebaa3aa4c0283d005e40.
Impact: task metadata only; the feature workspace starts at 0933a3be58.
Refs: .task/fix-artifact-version-dedupe.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u5-closeout.md; R0=0933a3be588739f867abebaa3aa4c0283d005e40.
Impact: task metadata only; the feature workspace starts at 0933a3be58.
Refs: .task/feature-rdm-u5-closeout.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u5-outbox.md; R0=0933a3be588739f867abebaa3aa4c0283d005e40.
Impact: task metadata only; the feature workspace starts at 0933a3be58.
Refs: .task/feature-collab-storage-u5-outbox.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-genui-page-visibility.md; R0=0933a3be588739f867abebaa3aa4c0283d005e40.
Impact: task metadata only; the feature workspace starts at 0933a3be58.
Refs: .task/fix-genui-page-visibility.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u5-ownership.md(PR#352) feature-svc-seed-auth.md(PR#371) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: main gained the U5 ownership feature during the previous CI window; branch protection requires latest main in head.
Evidence: fresh make test receipt exit=0 on the resynced head.
Impact: card only.
Refs: feature/svc-seed-auth
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5cbb38e788ab3050b8d9f23c21d98d2fd1587a31.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: main advanced again during the CI cycle; branch protection requires latest main in head.
Evidence: fresh make test receipt exit=0 on the resynced head (3a1b16f7 sync base 0b53094).
Impact: card only.
Refs: feature/svc-seed-auth
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=0b53094b0d5a6699cccdbc7ca45e649f6bef477b.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u4-closeout.md(PR#374) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: main advanced after the first review cycle; branch protection requires the head to contain latest main with fresh gate evidence.
Evidence: fresh make test receipt exit=0 on the synced head.
Impact: card only.
Refs: feature/svc-seed-auth
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=97002721485662c1e2abfa793f63d46f12cb14ce.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=97002721485662c1e2abfa793f63d46f12cb14ce.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Close automation filled the header (Dev PR #372) but the merge
and cleanup lines still described the in-progress state.
Evidence: CI ci/test green on PR head (one 405 race auto-resynced);
task-finish recycled the worktree at 0c83a54 on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #372; PR #375
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u6-gate-record.md(PR#372) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u4-closeout.md; R0=c0e123b35eeb61ee45d268a7c597b7e844f0d222.
Impact: task metadata only; the feature workspace starts at c0e123b35e.
Refs: .task/feature-rdm-u4-closeout.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u4-audit-workspace.md(PR#368) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u6-gate-record.md; R0=fefb3e060ec05cdadc6ee8bc55abff730fe79e21.
Impact: task metadata only; the feature workspace starts at fefb3e060e.
Refs: .task/feature-generative-ui-u6-gate-record.md
Why: task-sync merged newer main (fefb3e06) after the last receipt; the gate requires evidence on the exact head proposed for merge.
Evidence: fresh make test receipt exit=0 appended by make evidence.
Impact: card only.
Refs: feature-svc-seed-auth
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=fefb3e060ec05cdadc6ee8bc55abff730fe79e21.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: seed_settings PUTs /api/settings/user without credentials, so under the PG tier's always-on auth the seed always 401s and model config silently never lands (reproduced on the dev instance 2026-10-11; settings had to be written by hand).
Evidence: make test-governance && make test exit=0 (receipt 8ffc3a89); tests/test_svc.py adds three stub-based cases - auth-on seeds with a Bearer header and create/revoke around the PUT, --seed-owner skips account lookup, auth-off stays credential-free; 14/14 svc tests green.
Impact: deployments that pass SVC_MODEL_*/SVC_TAVILY_KEYS now seed reliably regardless of auth mode; a temporary apikey (name=svc-seed) is minted for the first admin (or --seed-owner/SVC_SEED_OWNER) and revoked right after; auth-off path unchanged.
Refs: task card feature-svc-seed-auth.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5d6d1d2e64bdc27fa98e9bccdc78bc4edf2956eb.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# modules/backend
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-seed-auth.md; R0=f382544ec7829abec379b9d1bba04c4ddaac52b7.
Impact: task metadata only; the feature workspace starts at f382544ec7.
Refs: .task/feature-svc-seed-auth.md
Why: U5 introduced a TS error on main; frontend branch includes the one-line fix.
Evidence: frontend tsc zero errors; push aaced87.
Impact: modules/frontend gitlink.
Refs: Dev #367/#368
Why: The close automation filled the card header (PR #367) but the
merge-record and cleanup-record lines still described the in-progress
state.
Evidence: CI ci/test green on the final synced head 04a7f36 (two 405
races from parallel merges, one documents gitlink conflict resolved to
origin/main); component chain Documents #71, Backend #155, UI
#46/#47, Frontend #56; task-finish recycled the worktree at 04a7f36.
Impact: Archived task-card text only.
Refs: PR #367; PR #370
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u5.md(PR#367) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-admin-auth-gate-fix.md(PR#360) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u1-dev-closeout.md(PR#363) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=3ef65a91428cf28e73dd2a23127dda014e455d87.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=53a3effef777c83bd6baa63f8181f34480533559.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=53a3effef777c83bd6baa63f8181f34480533559.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=53a3effef777c83bd6baa63f8181f34480533559.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-login-clear-stale-key.md(PR#362) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=27fa4fda7a0dbdf9228f9575f3fd50ca5974df76.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=27fa4fda7a0dbdf9228f9575f3fd50ca5974df76.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# modules/frontend
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u5.md; R0=f9c6ccc263c00d95919c021cb2fe31cf2f0936d8.
Impact: task metadata only; the feature workspace starts at f9c6ccc263.
Refs: .task/feature-generative-ui-u5.md
Why: task-sync merged newer main (f9c6ccc2) after the last receipt; the gate requires evidence on the exact head proposed for merge.
Evidence: latest make test receipt exit=0 appended by make evidence.
Impact: card only.
Refs: feature/login-clear-stale-key
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=f9c6ccc263c00d95919c021cb2fe31cf2f0936d8.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=f9c6ccc263c00d95919c021cb2fe31cf2f0936d8.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the gitlink moved to the post-merge frontend head, so the delivery gate needs fresh tool-written evidence on that combination.
Evidence: receipt 007543ab (make test, exit=0) with modules/frontend at 482ba88.
Impact: card only.
Refs: feature/login-clear-stale-key
Why: the frontend task branch merged latest main (PR #54 landed in parallel) to satisfy block_on_outdated_branch; the Dev pin must reference the exact combination that is tested.
Evidence: frontend vitest 20 files / 94 tests green at 482ba88; combined make test rerun via evidence after this pin.
Impact: gitlink only.
Refs: Agent-System-Frontend PR #55.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=03b2adfdc218b45ae2a3f8172fea4110783a4e05.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u4-audit-workspace.md; R0=03b2adfdc218b45ae2a3f8172fea4110783a4e05.
Impact: task metadata only; the feature workspace starts at 03b2adfdc2.
Refs: .task/feature-rdm-u4-audit-workspace.md
Why: The close automation filled the card header (Dev PR #359) but the
merge-record and cleanup-record lines still described the in-progress
state.
Evidence: Documents #70 and Dev #359 merged with CI green (one 405
race auto-resynced); task-finish recycled the worktree at 6b79aae on
2026-10-11.
Impact: Archived task-card text only.
Refs: PR #359; PR #361
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u5-scope.md(PR#359) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync flagged that pre-merge receipts predate non-card changes; the delivery gate requires fresh evidence on the synced head.
Evidence: receipt 95d71cd8 (make test, exit=0) on the synced tree, appended via make evidence.
Impact: card only.
Refs: feature/login-clear-stale-key
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u1-dev-closeout.md; R0=72e3d0c58dbd0268ecc59ec51e52f646fb6a0008.
Impact: task metadata only; the feature workspace starts at 72e3d0c58d.
Refs: .task/feature-rdm-u1-dev-closeout.md
Why: completion claims require tool-written evidence for precheck,
task-sync and tests; the combined run also validates the realigned
backend core pin (Backend#154) and both auth fixes end to end.
Evidence: CMD="make test" make evidence, exit 0 (governance 133 tests,
pins ok, libs/core/backend green, frontend 93/93, ui 106/106).
Impact: none beyond the card.
Refs: task feature/admin-auth-gate-fix.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=72e3d0c58dbd0268ecc59ec51e52f646fb6a0008.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the delivery gate requires precheck/task-sync/test outputs to be tool-written into the card before review and merge.
Evidence: evidence receipt 81973311 (make test, exit=0) appended to .task/feature-login-clear-stale-key.md; includes the earlier failed drift-check run exit=2 for honesty.
Impact: card only; no code changes.
Refs: feature/login-clear-stale-key
Why: the auth fixes landed in sub-repo main via Backend#153/#154 and
Frontend#54; the Dev tree must pin them for combined verification and
release. Also records the first make-test attempt, which failed on
test-pins due to the pre-existing backend core misalignment fixed by
Backend#154.
Evidence: gitlink pins backend 44d45e1 (auth fallback + core repin) and
frontend fcf40ff (gate fix); combined make test evidence follows in the
task card.
Impact: none beyond the recorded pins.
Refs: task feature/admin-auth-gate-fix.
Why: password logins hand the browser an HttpOnly session cookie, but a stale Bearer key left in localStorage shadows it server-side (Bearer is checked first), so every request after login returns 401 and refreshes bounce back to the login page.
Evidence: frontend commit 09310cb (vitest 19 files / 88 tests green); combined make test in this worktree recorded via evidence into the task card.
Impact: dev-instance UIs reachable by LAN IP or hostname log in cleanly with username+password; API-key flow unchanged.
Refs: .task/feature-login-clear-stale-key.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u3-closeout.md(PR#357) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-login-clear-stale-key.md; R0=259270b4e339132219490b95b42d12386f9abe1e.
Impact: task metadata only; the feature workspace starts at 259270b4e3.
Refs: .task/feature-login-clear-stale-key.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=259270b4e339132219490b95b42d12386f9abe1e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=259270b4e339132219490b95b42d12386f9abe1e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: an admin with a stale API key in localStorage was 401'd on every
request despite a valid session (Bearer precedence), and API-key holders
entering the forced-change gate could never complete it (passwords are
session-owned) while every 401 showed "wrong username or password",
masking the real cause.
Evidence: backend go test ./... and frontend vitest 93/93 green locally
(SELF); sub-repo PRs Backend#153 / Frontend#54 carry GATE CI; combined
make test evidence recorded in the task card.
Impact: pins backend 6681c3b and frontend dc18d6c via gitlinks; fills
the task card with diagnosis, requirements R1-R4 and plan.
Refs: task feature/admin-auth-gate-fix.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u5-scope.md; R0=259270b4e339132219490b95b42d12386f9abe1e.
Impact: task metadata only; the feature workspace starts at 259270b4e3.
Refs: .task/feature-generative-ui-u5-scope.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-admin-auth-gate-fix.md; R0=2e43e71209384b356ebfe664e9f27492fd514977.
Impact: task metadata only; the feature workspace starts at 2e43e71209.
Refs: .task/feature-admin-auth-gate-fix.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u3-closeout.md; R0=2e43e71209384b356ebfe664e9f27492fd514977.
Impact: task metadata only; the feature workspace starts at 2e43e71209.
Refs: .task/feature-rdm-u3-closeout.md
Why: The close automation filled the card header (PR #351) but the
merge-record and cleanup-record lines still described the in-progress
state.
Evidence: CI ci/test green on the retriggered head (first run failed
on runner network glitch and a hung test job, both infra); component
chain Core #27/#28, UI #42-#45, Frontend #53, Backend #150; task-finish
recycled the worktree at b877edd on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #351; PR #356
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u4.md(PR#351) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u2-closeout.md(PR#354) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: job 2555 failed at checkout - runner could not reach 127.0.0.1:3000 (Failed to connect); no code or test failure.
Evidence: job 2555 log tail 'Checkout refused: ... exit status 128'.
Impact: empty commit, no file change.
Refs: PR #352.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=c79a77db944b88fa7e817d632d5474bdac6d8c90.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: resolve the interrupted sync: take the reconciled Documents pin eb36571 (union of U2 progress and template/final-target plans) plus main's card/PROJECT updates.
Evidence: Documents PR #68 merge eb36571; gitlink conflict resolved to the superset tip.
Impact: task-branch integration merge only.
Refs: Documents #68; Dev #340/#354
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-template-dialog-plan.md(PR#340) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: stage review needs results and evidence in the card before the PR.
Evidence: make test / test-backend-pg / make build exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #151, #152.
Why: PR #152 merged the internal core-pin alignment after #151; the task branch must pin the final combination.
Evidence: backend origin-main tip carries internal pin 7a98a7e matching Dev modules/core.
Impact: gitlink only.
Refs: backend PR #151, #152.
Why: after merging the U5 ownership PR and the core-pin alignment, the task branch carries both; Dev pins the merged tip with the internal core pin at 7a98a7e.
Evidence: backend task branch merged origin/main, builds green, internal core checkout aligned.
Impact: gitlink + task card evidence only.
Refs: backend PR #151, #152.
Why: the evidence tool appends must be committed before task-sync can proceed.
Evidence: three receipt segments appended by make evidence.
Impact: task metadata only.
Refs: backend PR #151.
Why: the parent must pin the merged component SHA for combined build and CI.
Evidence: backend origin-main merge of #151 fetched post-merge.
Impact: gitlink only.
Refs: backend PR #151.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=0f589ed7ff5c1dc63a9700906fe9138fe607d85c.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=0f589ed7ff5c1dc63a9700906fe9138fe607d85c.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=0f589ed7ff5c1dc63a9700906fe9138fe607d85c.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u5-ownership.md; R0=0f589ed7ff5c1dc63a9700906fe9138fe607d85c.
Impact: task metadata only; the feature workspace starts at 0f589ed7ff.
Refs: .task/feature-collab-storage-u5-ownership.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u6-events.md(PR#343) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ad892d58fcad5f6b206b9aa9acf3f6fca538775b.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=a70ed114fba2d51bb93ec8cb0662703ab0bc0614.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=a70ed114fba2d51bb93ec8cb0662703ab0bc0614.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=a70ed114fba2d51bb93ec8cb0662703ab0bc0614.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u4.md; R0=a70ed114fba2d51bb93ec8cb0662703ab0bc0614.
Impact: task metadata only; the feature workspace starts at a70ed114fb.
Refs: .task/feature-generative-ui-u4.md
Why: the master record now records U2 as merged (Documents 559af219); the Dev gitlink and PROJECT.md entry must follow.
Evidence: Documents PR #67 merged=True (API); closeout doc check receipt in card; RDM PR #197 merge fe8a75b.
Impact: modules/documents gitlink, PROJECT.md planning entry, task card; no code change.
Refs: Documents PR #67; RDM PR #197/#198
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u2-closeout.md; R0=866086c2a080716195c3dd35e6ef362016347c94.
Impact: task metadata only; the feature workspace starts at 866086c2a0.
Refs: .task/feature-rdm-u2-closeout.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=866086c2a080716195c3dd35e6ef362016347c94.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# modules/backend
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=866086c2a080716195c3dd35e6ef362016347c94.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The close automation filled the card header (PR #345) but the
merge-record and cleanup-record lines still described the in-progress
state.
Evidence: CI ci/test green on the PR head (one 405 race resynced);
Backend #149 at 6abf112; task-finish recycled the worktree at ca20279
on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #345; PR #347
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u3.md(PR#345) feature-svc-db-config-recover.md(PR#342) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=56152323f6179d8f99cfb2b4808573f1d95a63a2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=56152323f6179d8f99cfb2b4808573f1d95a63a2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=56152323f6179d8f99cfb2b4808573f1d95a63a2.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-u1-closeout.md(PR#338) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2229d718c7b25941cba1c2464ddd62f9d7466bec.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2229d718c7b25941cba1c2464ddd62f9d7466bec.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b1caa7cae13d35ec6e62c883d1f379aee35e35ef.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b1caa7cae13d35ec6e62c883d1f379aee35e35ef.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u3.md; R0=b1caa7cae13d35ec6e62c883d1f379aee35e35ef.
Impact: task metadata only; the feature workspace starts at b1caa7cae1.
Refs: .task/feature-generative-ui-u3.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b1caa7cae13d35ec6e62c883d1f379aee35e35ef.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=36897a1009eb8d3ec63fac8974446bbd4c59bbc0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: stage review needs results and evidence in the card before the PR.
Evidence: make test / test-backend-pg / make build exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #147, #148.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=36897a1009eb8d3ec63fac8974446bbd4c59bbc0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the parent must pin the merged component SHA for combined build and CI.
Evidence: backend origin-main merge of #147 fetched post-merge.
Impact: gitlink only.
Refs: backend PR #147.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=36897a1009eb8d3ec63fac8974446bbd4c59bbc0.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The close automation filled the card header (PR #336) but the
merge-record and cleanup-record lines still described the in-progress
state.
Evidence: CI ci/test green on the final synced head; component chain
Core #25/#26, Backend #143/#146, UI #40/#41, Frontend #51/#52; local
combined make test/build receipts in the card; task-finish recycled
the worktree at ca4f5a5 on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #336; PR #341
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u2.md(PR#336) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u6-events.md; R0=0ecdcbd3c09397cfe7043c446a6da728f89b01bb.
Impact: task metadata only; the feature workspace starts at 0ecdcbd3c0.
Refs: .task/feature-collab-storage-u6-events.md
Why: main landed fix-svc-dsn-reuse-dbref (reuse-path dbref restore, env-DSN
aware precheck, DSN_ENV scoping) for the same restart-DSN incident; the
approved recovery plan is its superset and replaces those mechanisms with
resolve_db_config + recoverable svc.env keys + refuse-on-invalid semantics.
Evidence: tests/test_svc_precheck.py ported to the new units (18 cases green,
same scenario matrix; broken-dbref expectation updated to refusal per the
approved plan); tests/test_svc.py 11 cases green; bash -n OK.
Impact: conflict hunks resolved toward the unified resolver; main's source
guard at the script tail restored; agent_listen_rejected kept as a pure
predicate (used by the start precheck and the governance tests).
Refs: main 7acf318 (PR #317); task card .task/feature-svc-db-config-recover.md.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=0bda404ac0c0169edc8ac00688528e29ff327c3d.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u4-migrator.md(PR#337) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the exec= reuse path stripped --dsn into the process environment (G1-7)
and record_state then persisted a DSN-less exec=, while the dbref fallback only
existed in the explicit-rebuild branch - the second bare restart after a
rebind silently dropped the database (SQLite fallback on loopback). Auth
preflight also matched --dsn on the command line only, so env-delivered DSN
with auth=auto was misjudged as unauthenticated.
Evidence: bash -n OK; make test-governance 115 tests OK (new tests/test_svc.py
11 cases; 10/11 fail against the pre-fix script); make test green; make build
OK; isolated real PostgreSQL 18.6 + real binary validation 27/27 (consecutive
restarts/deploy keep binding, psql-verified database identity, DB-down restart
fails without SQLite fallback or config loss, no credential leakage) - all
recorded via make evidence in the task card.
Impact: svc.env gains db=/dbref=/dsn= recovery keys (atomic 0600 writes);
start/restart/deploy/update/db share one resolver; invalid bindings, config
conflicts, mock coexistence and env-DSN-incapable binaries now refuse to
start instead of silently downgrading; legacy exec= DSN migrates idempotently;
docs/svc.md and script help updated.
Refs: task card .task/feature-svc-db-config-recover.md; user-approved plan
(2026-10-11 session message); AGENTS.md evidence gates.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b3b48f5efa2a6a25f16f6413d8b9c89715f22960.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b3b48f5efa2a6a25f16f6413d8b9c89715f22960.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b3b48f5efa2a6a25f16f6413d8b9c89715f22960.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: leave a complete local review checkpoint for the expanded RDM goal.
Evidence: successful task-sync and fresh 112-requirement/16-unit documentation checks are recorded as SELF.
Impact: task evidence only; business tests, implementation and deployment remain NOT_RUN.
Refs: .task/feature-rdm-template-dialog-plan.md
Why: retain the clarified shared-project and private-document design with complete requirements coverage.
Evidence: SELF source receipt, 112-row requirements matrix, plan review and documentation checks in the task card.
Impact: local planning candidate only; no business implementation, push, merge to main or deployment.
Refs: modules/documents/docs/proposals/2026-10-11-rdm-final-target-completion.md
Why: the master record now records U1 as merged (Documents 2a5f658); the Dev gitlink and PROJECT.md entry must follow.
Evidence: Documents PR #66 merged=True (API); closeout doc check receipt in card; RDM PR #195 merge 05b7d1a.
Impact: modules/documents gitlink, PROJECT.md planning entry, task card; no code change.
Refs: Documents PR #66; RDM PR #195
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-db-config-recover.md; R0=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: task metadata only; the feature workspace starts at 80a518628c.
Refs: .task/feature-svc-db-config-recover.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-u1-closeout.md; R0=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: task metadata only; the feature workspace starts at 80a518628c.
Refs: .task/feature-rdm-u1-closeout.md
Why: card and PR description are one document; record the PR link before merge.
Evidence: Dev PR #337 created via Gitea API.
Impact: task metadata only.
Refs: PR #337.
Why: stage review needs results, stage verdicts and the three evidence segments in the card before the PR.
Evidence: make test / test-backend-pg (real services) / make build all exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #144, #145; documents PR #65.
Why: save this task owned pending documentation before resuming the broader system plan.
Evidence: user confirmation and SELF documentation check receipt are retained in the task card.
Impact: local documentation snapshot only; no push or implementation.
Refs: .task/feature-rdm-template-dialog-plan.md
Why: backend main pins deps/agent-system-core at 452daf3 (Surface types, core PR #25); Dev's top-level core gitlink lagged at a253a40, failing make test-pins after task-sync.
Evidence: check-pins green after the bump; core origin-main tip is 452daf3.
Impact: gitlink bump only.
Refs: core PR #25; backend PR #143.
Why: backend PR #143 added surfacesvc with app/server/store edges already merged into component main; the Dev baseline must record them (lint failed after task-sync). runmgr->cmdbus no longer exists in code.
Evidence: lint-boundaries.sh green after the update; edges match the merged backend main exactly.
Impact: baseline bookkeeping only; no dependency change made by this task.
Refs: backend PR #143; Dev U4 task.
Why: the U4 managed migration entry must ship with make build so operators and CI get the tool.
Evidence: make build emits both binaries; migrator suite green on SQLite and real PostgreSQL.
Impact: build target output adds bin/storage-migrate; no test-path change.
Refs: backend PR #144; runbook section 10.
Why: the parent must pin the merged component SHAs for the combined build and CI gates.
Evidence: backend origin-main merges of #144 (storage-migrate) and #145 (surface tables in copy list); documents origin-main merge of #65 (runbook section 10).
Impact: gitlink updates only.
Refs: backend PR #144, #145; documents PR #65.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The U2 increment landed across four component repos (Core #25
Surface contract types and validation; Backend #143 surface store,
activation guard, EXT-17 SurfaceHost, direct API; UI #40 and Frontend
#51 id/source contract mirrors); Dev pins the combined set for the
authoritative make test/build gate.
Evidence: Component PRs merged (core 452daf3, backend d795143, ui
5b03b8f, frontend a26d7c5); combined verification receipts follow in
this branch via make evidence.
Impact: Gitlink pins only in this commit; task-card updates follow.
Refs: Documents proposal r2 U2; Dev task feature/generative-ui-u2
Why: preserve the final local planning checkpoint for user review.
Evidence: successful task-sync and repeated documentation checks are recorded as SELF in the task card; the original interrupted attempt remains intact.
Impact: task evidence only; business tests, combined build, runtime acceptance and delivery remain NOT_RUN.
Refs: .task/feature-rdm-template-dialog-plan.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: retain the requested template audit and proposed delivery design in the project entrypoints.
Evidence: SELF precheck, source inventory and documentation checks are preserved in the task card; business and combination tests NOT_RUN.
Impact: local documentation candidate only; no push, merge, migration or deployment.
Refs: .task/feature-rdm-template-dialog-plan.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u4-migrator.md; R0=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: task metadata only; the feature workspace starts at 80a518628c.
Refs: .task/feature-collab-storage-u4-migrator.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u3-budget-authz.md(PR#333) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-template-dialog-plan.md; R0=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: task metadata only; the feature workspace starts at 95992d751f.
Refs: .task/feature-rdm-template-dialog-plan.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-svc-dsn-reuse-dbref.md(already-complete) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Fold the card close into PR #317 per the post-merge cleanup instruction.
Evidence: make test exit=0 re-run at the synced head 0303040 (receipt in card).
Impact: Task card only.
Refs: .task/fix-svc-dsn-reuse-dbref.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the real-PG CI gate on PR #333 exposed the stack overflow; PR #142 fixes it with a regression test.
Evidence: backend origin-main merge of #142 fetched post-merge and checked out.
Impact: gitlink only.
Refs: backend PR #142; Dev PR #333.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u2.md; R0=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: task metadata only; the feature workspace starts at 95992d751f.
Refs: .task/feature-generative-ui-u2.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=693f7f0459992c66ae672a966da4fc9fa12c193b.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-two-trees-audit-plan.md(PR#330) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ec0169cad19c9525ce6ee4d7e26632351a5e5dbc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=ec0169cad19c9525ce6ee4d7e26632351a5e5dbc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: card and PR description are one document; record the PR link before merge.
Evidence: Dev PR #333 created via Gitea API.
Impact: task metadata only.
Refs: PR #333.
Why: stage review needs results, stage verdicts and the three evidence segments in the card before the PR.
Evidence: make test / test-backend-pg (real services) / make build all exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #141; documents PR #64.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=bfcdeef9aa335ca605c5794de9fc3889eeb1c2ab.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the parent must pin the merged component SHAs for the combined build and CI gates.
Evidence: both origin-main merge commits fetched post-merge and checked out.
Impact: gitlink updates only.
Refs: backend PR #141; documents PR #64.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=bfcdeef9aa335ca605c5794de9fc3889eeb1c2ab.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The close automation filled the card header (PR #329, merge
bfcdeef) but the merge-record and cleanup-record lines still said
NOT_RUN.
Evidence: CI ci/test passed on final head 7f58e6e (run 1767) after a
pre-merge task-sync to 90c07a5; task-finish recycled the worktree and
deleted the task branch at 7f58e6e on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #329; PR #332
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-u1.md(PR#329) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u3-budget-authz.md; R0=90c07a5b4fb75251ea72b492ccb6714e5e699fe5.
Impact: task metadata only; the feature workspace starts at 90c07a5b4f.
Refs: .task/feature-collab-storage-u3-budget-authz.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=90c07a5b4fb75251ea72b492ccb6714e5e699fe5.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u3-atomicity.md(PR#328) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the plan was approved and merged in Documents (PR #63); the Dev pin and planning entry must follow the approved master record.
Evidence: modules/documents gitlink d3e40c783d1a092b67d025303f28384a564548f4 (Documents PR #63 merge, SELF API query); task card backfilled with the user rulings and merge record.
Impact: documents gitlink, PROJECT.md planning entry, and task-card metadata only; no code change.
Refs: Documents PR #63; .task/feature-rdm-two-trees-audit-plan.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6479eb5c38636e758b7e44a36fdc7ce6883ad1c9.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The U1 controlled trial finished; its fixtures, validator, runner,
per-run results, report, and renderer spike must be reviewable from the
task branch, and the task card needs the final PASS/FAIL record.
Evidence: results/summary.json + report.md (SELF, MiniMax official
channel, CNY 3 of 200 cap); make evidence receipts for precheck,
task-sync, and make test follow in this branch.
Impact: Task-scoped experiment artifacts only (.task/genui-u1/); no
production code changes.
Refs: Documents PR #62 (proposal r2); task card feature/generative-ui-u1
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6479eb5c38636e758b7e44a36fdc7ce6883ad1c9.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the user approved the bundled five stages and chose the two-tier admin model; the card must record the human review gate and both rulings.
Evidence: SELF doc-check receipt appended by make evidence (exit 0, ruled plan sha256 56c0fada60140decb40df0201599891b4702814746ed44a2c0197b4483e0763b); Documents ruling commit b857595.
Impact: task metadata only (task card); no code or submodule change.
Refs: .task/feature-rdm-two-trees-audit-plan.md
Why: card and PR description are one document; record the PR link on the branch before merge.
Evidence: Dev PR #328 created via Gitea API.
Impact: task metadata only.
Refs: PR #328.
Why: stage review needs the results, stage verdicts and three evidence segments in the card before the PR.
Evidence: make test / test-backend-pg (real services) / make build all exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #140.
Why: the parent must pin the merged component SHA for the combined build and CI gates.
Evidence: backend origin-main merge of #140 fetched and checked out.
Impact: gitlink only.
Refs: backend PR #140.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u3-atomicity.md; R0=6479eb5c38636e758b7e44a36fdc7ce6883ad1c9.
Impact: task metadata only; the feature workspace starts at 6479eb5c38.
Refs: .task/feature-collab-storage-u3-atomicity.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-pg-tier.md(PR#325) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the racing-migrator test failed deterministically on slow CI disks from the connection-open phase; PR #139 adds a bounded Begin retry and pre-materializes the racing test database.
Evidence: backend PR #139 merged (CI logs jobs 2285/2293 cited there); local store suite green.
Impact: gitlink only.
Refs: PR #325.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5771d4f1e5b692bce95eb64cc30dc9931079ad12.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-two-trees-audit-plan.md; R0=5771d4f1e5b692bce95eb64cc30dc9931079ad12.
Impact: task metadata only; the feature workspace starts at 5771d4f1e5.
Refs: .task/feature-rdm-two-trees-audit-plan.md
Why: the job runs the full backend suite against real services; internal/runtime lint tests require python-docx (job 2290: ModuleNotFoundError 'docx') which the plain test job already installs.
Evidence: job 2290 log; all PG/Redis-dependent packages green in the same run (store 2.6s, pgbus, runmgr, ratelimit, server).
Impact: test-pg job setup only.
Refs: Dev PR #325.
Why: the runner-container guard had a doubled '[[' from a string replacement (exit '[: too many arguments'), and pgvector's extension is named 'vector' (control file vector.control) - CREATE EXTENSION pgvector failed with 'extension not available' (jobs 2285/2286 logs).
Evidence: job 2286 log 'ERROR: extension pgvector is not available ... pgvector.control: No such file'; package postgresql-16-pgvector 0.6.0 installed fine.
Impact: test-pg job only; repins backend to the #138 merge (30s SQLite busy timeout for serialized migrators).
Refs: backend PR #138; Dev PR #325.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u1.md; R0=5771d4f1e5b692bce95eb64cc30dc9931079ad12.
Impact: task metadata only; the feature workspace starts at 5771d4f1e5.
Refs: .task/feature-generative-ui-u1.md
Why: the runner container executes as root without sudo; the previous $SUDO -u postgres expanded to a bare '-u' and failed with exit 127 on the first test-pg run (job 2280 log).
Evidence: job 2280 log lines '/var/run/act/workflow/3: line 6: -u: command not found', exitcode 127; postgresql service itself started fine as root.
Impact: test-pg job setup steps only; also prints pinned pgvector/pg_trgm extension versions for acceptance records.
Refs: PR #325; docs/guides/team-storage.md section 5.
Why: The close automation filled the card header (PR #324, merge
0d92b9e) but the merge-record and cleanup-record lines still described
the in-progress state.
Evidence: CI ci/test passed on PR HEAD 6b96967 (run 1738); task-finish
recycled the worktree and deleted the local/remote task branch at
6b96967 on 2026-10-11.
Impact: Archived task-card text only.
Refs: PR #324; PR #326
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-generative-ui-research.md(PR#324) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: card and PR description are one document; the PR link and the user's authorization basis must be on the branch before merge.
Evidence: Dev PR #325 created via Gitea API; user directive 2026-10-11 quoted in the card.
Impact: task metadata only.
Refs: PR #325.
Why: the card is the single record for stage review; results, stage verdicts and the three evidence runs must be in it before the PR.
Evidence: make test / test-backend-pg (real PG+Redis) / make build all exit 0, written by the evidence tool.
Impact: task metadata only.
Refs: backend PR #137; documents PR #61.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2afcfd5d6db29e76ae89b34798b8f34f030a3a69.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the parent must pin the merged component SHAs so the combined build and CI gate run against the delivered U2 code and U1 runbook.
Evidence: backend origin-main merge commit of #137 and documents origin-main merge commit of #61 (fetched post-merge, replacing a stale pre-merge pin attempt).
Impact: gitlink updates only.
Refs: backend PR #137; documents PR #61.
Why: the approved collaboration plan U2 requires CI to run the backend suite against real PostgreSQL+pgvector and Redis and fail when the services are missing, instead of silently skipping the tier.
Evidence: local gate green twice against PostgreSQL 18.6+pgvector and Redis 8.10.2 (isolated svc.sh instance); the target fails fast when AGENT_PG_TEST_DSN/AGENT_REDIS_TEST_ADDR are unset.
Impact: new make target test-backend-pg (env-guarded) and a required test-pg job (apt postgresql-16-pgvector + redis-server, ephemeral per-run services); existing test job unchanged.
Refs: proposals/2026-10-11-collaboration-storage-and-distribution.md U2; docs/guides/team-storage.md section 5.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2afcfd5d6db29e76ae89b34798b8f34f030a3a69.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
# Conflicts:
# PROJECT.md
Why: The user ruled the three open choices on 2026-10-11 (first pilot =
in-conversation analysis page; trusted compiled-plugin delivery for
enable/disable; U1 trial limited to MiniMax M3 + M2.7-highspeed,
sanitized materials, CNY 200 cap), converting the research draft into a
publishable direction record.
Evidence: Precheck and evidence receipts live in the task card;
Documents PR #60 (merged at 3304efe) carries the proposal and index
entry that this gitlink pins.
Impact: Dev-side PROJECT.md entry, documents gitlink, and the task card
only; no code or contract changes.
Refs: modules/documents/docs/proposals/2026-10-10-generative-ui-plugin.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ui-three-column-workbench.md(PR#322) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync merged authoritative main (documents pin and card
archives); receipts recorded before the merge are stale per the
evidence gate, so the key checks were rerun on the synced head.
Evidence: make test and make build rerun on 4c89175 with receipts
appended (SELF); task-sync receipt follows on the committed card.
Impact: task card only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-pg-tier.md; R0=7743f53c5dfe9ed8dfd0663d05e3be15544d8942.
Impact: task metadata only; the feature workspace starts at 7743f53c5d.
Refs: .task/feature-collab-storage-pg-tier.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=7743f53c5dfe9ed8dfd0663d05e3be15544d8942.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The evidence gate requires the three completion segments to be
written by the evidence tool into the task card rather than transcribed.
Evidence: make test and make build receipts appended (SELF); task-sync
to follow on a clean tree.
Impact: task card only.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collaboration-storage-plan.md(PR#320) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the card and PR description are one document; the PR link must be recorded on the branch before merge.
Evidence: Dev PR #320 and documents PR #59 created via Gitea API.
Impact: task metadata only.
Refs: PR #320.
Why: cross-repo gitlink changes require combined make test evidence before the Dev PR.
Evidence: make test exit 0 recorded by the evidence tool (governance, pins, libs, modules all green).
Impact: task card evidence table only.
Refs: documents PR #59; gitlink pin 45e08b9.
Why: The approved three-column redesign converges entries and hierarchy:
preview merges into a Work/Files third column, the left rail moves
project switching to the top and sinks files/workspaces/account to the
bottom, stop control consolidates into the input area with a light
fast/slow-lane status hint, and the top bar stops repeating project
identity. DESIGN.md 6 and 9.3 are revised in the same changeset per the
design gate (no token changes; 12.2 records the revision).
Evidence: Frontend npx vitest run 85/85 and npm run build passed in this
worktree (SELF receipts below); full make test to follow before review.
Impact: bumps modules/frontend to 3ed10e1 (two commits: layout rework +
workspace builtin expectations); DESIGN.md 6/9.3/12.2; task card records
requirements R1-R6 and the authorized-continuous scope.
Refs: three-column workbench proposal (2026-10-11).
Why: the approved plan r1 landed on documents main via PR #59; the Dev parent must pin it for the combined build.
Evidence: documents origin/main=95e5c9d307626727db2d1df3b42d74873bc8bbe4 containing proposal r1, index entry, review record, audit receipt.
Impact: gitlink only; no code or runtime change.
Refs: documents PR #59.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d9cd5c7dbe8bc62a8abd02f9f8f9014730be88af.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the user approved plan r1 on 2026-10-11 (instruction to start the transformation per the plan); the card must carry the authorization basis and stage-review verdicts before publication.
Evidence: user instruction quoted verbatim in the card; resume precheck receipt imported (receipt_sha256 e8e77e87fc5990b9...).
Impact: task metadata and PROJECT.md entry only; plan content lives in the documents component PR #59.
Refs: documents PR #59; plan section 5 first increment U1+U2.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-s0-workspace-overlay.md(PR#318) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ui-three-column-workbench.md; R0=73c901fa341a3653d6e0826d0da3497507995482.
Impact: task metadata only; the feature workspace starts at 73c901fa34.
Refs: .task/feature-ui-three-column-workbench.md
Why: The card's primary record must point at the real PR per the delivery gate.
Evidence: PR #317 open (API verified).
Impact: Task card only.
Refs: .task/fix-svc-dsn-reuse-dbref.md
Why: Complete the three-stage evidence (precheck/task-sync/tests) and the
self-check stage row per the evidence and delivery gates.
Evidence: make test exit=0 and make test-governance exit=0 receipts written
by make evidence at HEAD 8d73075.
Impact: Task card only.
Refs: .task/fix-svc-dsn-reuse-dbref.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=73c901fa341a3653d6e0826d0da3497507995482.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: G1-7 moved the DSN into AGENT_SYSTEM_DSN, but the precheck only read
the arg string, so a non-loopback restart with auth auto was wrongly
rejected (2026-10-10 dev incident); the reuse path no longer restored the
dbref-bound DSN and would silently fall back to SQLite; and DSN_ENV leaked
across same-process starts (update --all) into other services' env.
Evidence: tests/test_svc_precheck.py 19 cases green (auth matrix vs
config.go AuthEnabled, reuse migration/dbref restore, scope isolation);
full governance suite 123 green; incident-scenario replay allowed + DSN
carried. Recorded via make evidence.
Impact: scripts/svc.sh precheck and reuse-start DSN handling only; no
binary change, no persistence-format change.
Refs: .task/fix-svc-dsn-reuse-dbref.md; config.go AuthEnabled (on || (not
off && DSN non-empty), env DSN counts).
Why: Resume the pre-started task with the defect analysis (G1-7 precheck
mismatch, reuse-path DSN loss, DSN_ENV leakage) recorded per delivery policy.
Evidence: make precheck receipt (SELF) imported via make evidence.
Impact: Task card only; no code change yet.
Refs: .task/fix-svc-dsn-reuse-dbref.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collaboration-storage-plan.md; R0=73c901fa341a3653d6e0826d0da3497507995482.
Impact: task metadata only; the feature workspace starts at 73c901fa34.
Refs: .task/feature-collaboration-storage-plan.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-s0-workspace-overlay.md; R0=73c901fa341a3653d6e0826d0da3497507995482.
Impact: task metadata only; the feature workspace starts at 73c901fa34.
Refs: .task/feature-agent-s0-workspace-overlay.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-e4-escalation-ledger.md(PR#315) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-e4-escalation-ledger.md; R0=f9b61eaa7ffa840ad25a10dddc918ecec0861c47.
Impact: task metadata only; the feature workspace starts at f9b61eaa7f.
Refs: .task/feature-agent-e4-escalation-ledger.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-e5-model-ab.md(PR#313) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-e5-model-ab.md; R0=66b6304d1cfc8a713e1ea3dc6f98a115615c9bbb.
Impact: task metadata only; the feature workspace starts at 66b6304d1c.
Refs: .task/feature-agent-e5-model-ab.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-e3-evidence-gate.md(PR#311) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-research.md; R0=104a4142c918f7325d3a78e3e6e270e46739baea.
Impact: task metadata only; the feature workspace starts at 104a4142c9.
Refs: .task/feature-generative-ui-research.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-e3-evidence-gate.md; R0=104a4142c918f7325d3a78e3e6e270e46739baea.
Impact: task metadata only; the feature workspace starts at 104a4142c9.
Refs: .task/feature-agent-e3-evidence-gate.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-e1-parallel-fixes.md(PR#307) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=747fe54ee5c9e87311e6594caafa3b70865c996a.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-dual-speed-real-path.md(PR#308) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: backend main moved to 017b40f (agent-squad pin bump, E1 chain #129) and
Dev's top-level agent-squad must match the nested pin the components record,
otherwise test-pins flags container/Dev divergence.
Evidence: check-pins green and make test rerun recorded on this head.
Impact: modules/backend 5714c73 -> 017b40f; deps/agent-squad 8bbf850 -> 490b0b2.
Refs: Backend PR #128/#129; agent-squad PR #51.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=4c8ad93892e5c8a88d7160220288720c40805251.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the backend pin 5714c73 records agent-native c348441 (E1 parallel-tools
kernel); Dev's top-level agent-native gitlink must move with it or test-pins
flags the container/Dev divergence (three-layer pin cascade).
Evidence: check-pins green after the bump (recorded via make test evidence).
Impact: deps/agent-native gitlink 3b92cb6 -> c348441 only.
Refs: Backend PR #128; agent-native PR #44.
Why: Backend #128 (entry hint for attachment-bearing tasks, escalating
dual-speed nudge with observability log and setting, inline-think stripping
for subagent summaries and inbox cards) merged; Dev gitlink moves with it.
Evidence: Backend PR #128 ci/vet-and-test success on the synced head
(includes the E1 parallel-tools merge); Dev-level make test to be recorded.
Impact: modules/backend gitlink c6912b6 -> 5714c73 only.
Refs: Backend PR #128; task card feature/dual-speed-real-path.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-dual-speed-real-path.md; R0=4c8ad93892e5c8a88d7160220288720c40805251.
Impact: task metadata only; the feature workspace starts at 4c8ad93892.
Refs: .task/feature-dual-speed-real-path.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-empty-state-preview-fix.md(PR#305) feature-final-reply-pollution-fix.md(PR#303) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=5fa6cfbd8c8995c4267d0a76390f652b62d953dc.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Frontend PR #49 merged; the pin must point at component main so the
merged content is actually contained (branch-head pins drop unmerged diff).
Evidence: vitest 85/85 and browser replay recorded earlier cover the branch
head; make test rerun on this pin before the Dev PR.
Impact: modules/frontend gitlink 84b73ab -> 339a9eb.
Refs: Frontend PR #49; task card feature/empty-state-preview-fix.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-e1-parallel-fixes.md; R0=5fa6cfbd8c8995c4267d0a76390f652b62d953dc.
Impact: task metadata only; the feature workspace starts at 5fa6cfbd8c.
Refs: .task/feature-agent-e1-parallel-fixes.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=412c8742a6db4baea83839d24dca32bdbecffb32.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=bf2a8f073079eb6b49910142151345e87da03ae1.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the frontend fix branch carries the preview key unification, orphan-tab
adoption, conversation restore, and missing-artifact toast; the Dev gitlink
records the tested head ahead of the Frontend PR merge.
Evidence: vitest 85/85; fresh-profile browser replay in the task card.
Impact: modules/frontend gitlink 84b73ab -> 475fd3a only.
Refs: Frontend PR #49; task card feature/empty-state-preview-fix.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-exec-routing-sandbox-plan.md(PR#302) feature-dual-speed-tasks.md(PR#301) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Backend #126 (fact-check demotes the standing summary, verifier skip and
cap notices become process checks instead of final text) merged into component
main; the Dev gitlink moves with it.
Evidence: Backend PR #126 ci/vet-and-test success; Dev-level make test to be
recorded on this pin.
Impact: modules/backend gitlink d2bb936 -> c6912b6 only.
Refs: Backend PR #126; task card feature/final-reply-pollution-fix.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-empty-state-preview-fix.md; R0=d53efd5f14bb339dfe908c5d8850ed0eedec024e.
Impact: task metadata only; the feature workspace starts at d53efd5f14.
Refs: .task/feature-empty-state-preview-fix.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d53efd5f14bb339dfe908c5d8850ed0eedec024e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The proposal 2026-10-10-agent-delegation-routing-sandbox.md merged
into Documents main (#53) and needs a Dev-side pin plus its task card so
the research, the F1-F5 defect findings, and the E1-E5/S0 increment plan
have a tracked record with evidence receipts.
Evidence: Task card feature-agent-exec-routing-sandbox-plan carries five
SELF receipts (sandbox latency benchmarks, model-endpoint probes) and the
make-test/task-sync runs are appended before the PR; Documents #53 merged
at 0f6d697.
Impact: Gitlink-only bump for modules/documents (3e43193 -> 0f6d697) plus
the task card; no product code changes.
Refs: Documents PR #53; proposals/2026-10-10-agent-delegation-routing-sandbox.md.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-final-reply-pollution-fix.md; R0=d53efd5f14bb339dfe908c5d8850ed0eedec024e.
Impact: task metadata only; the feature workspace starts at d53efd5f14.
Refs: .task/feature-final-reply-pollution-fix.md
Why: Backend #125 (background subagent inbox card lifecycle, delegate/base-method
dual-speed guidance, #background mock demo) merged into component main; the Dev
gitlink must move to the merged head for the combo to build with it.
Evidence: Backend PR #125 CI green (ci/vet-and-test on 43087a7); Dev-level make
test to be rerun on the committed pin (previous run failed only the drift check
that expects exactly this commit).
Impact: modules/backend gitlink 421fee8 -> d2bb936; no other component moves.
Refs: Backend PR #125; task card feature/dual-speed-tasks.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-exec-routing-sandbox-plan.md; R0=890b9b2bf2e9b356351d373a21f358ea04ca958b.
Impact: task metadata only; the feature workspace starts at 890b9b2bf2.
Refs: .task/feature-agent-exec-routing-sandbox-plan.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-dual-speed-tasks.md; R0=890b9b2bf2e9b356351d373a21f358ea04ca958b.
Impact: task metadata only; the feature workspace starts at 890b9b2bf2.
Refs: .task/feature-dual-speed-tasks.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-svc-dsn-reuse-dbref.md; R0=890b9b2bf2e9b356351d373a21f358ea04ca958b.
Impact: task metadata only; the feature workspace starts at 890b9b2bf2.
Refs: .task/fix-svc-dsn-reuse-dbref.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-v030-backend-pin.md(PR#299) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the Dev pin sat at e03d3ac while backend main moved to 421fee8
(#124: pluginRegistry now fills the shared EXT-8 authz slot instead of
rejecting in-proc registrations — the fix that restored rdm.* command
availability in the served RDM process). The umbrella must carry it
before v0.3.0 is tagged so the release combination includes the fix.
Evidence: Backend #124 head 72b2098 CI success, merged as 421fee8;
RDM consumed it as pins 421fee8 in RDM #173 with the full MS1
re-acceptance green. Umbrella make test follows via evidence.
Impact: umbrella gitlink only.
Refs: Backend #124; RDM #173; plan G1-8.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-v030-backend-pin.md; R0=0d84792d678f7aeafefb52cf47b834be3e4e9011.
Impact: task metadata only; the feature workspace starts at 0d84792d67.
Refs: .task/feature-v030-backend-pin.md
Why: The model A/B branch merged into main via #296 (the final item of the
quality improvement plan); its task card must be backfilled and archived to
prevent bookkeeping debt.
Evidence: SELF - merge 63a2485 verified via git log --merges against
origin/main; card backfilled with the PR link.
Impact: .task/feature-agent-model-ab.md moved to .task/archive/ with status
backfilled; no code or submodule change.
Refs: task.sh close semantics (replicated from a temp worktree because the
main checkout is occupied by a parallel writer's branch).
Why: the plan section 3.4 observed the local dev service carrying the
credential-bearing DSN as a serve --dsn argument, visible to any
process on the host (ps / /proc/<pid>/cmdline) — including scripts
generated by agents. The base config layer already supports
AGENT_SYSTEM_DSN, so the launcher can move the secret out of the
argument vector without touching the binary.
Evidence: bash -n clean; make test-governance 104/104 green; an
end-to-end probe with a stub binary and a legacy exec= carrying
--dsn ...secret... shows the migration stripping the flag
(MIGRATED:yes), the process args free of the secret
(NO-LEAK-IN-CMDLINE), and AGENT_SYSTEM_DSN present in the process
environment (DSN_IN_ENV:yes). New/rebuilt launches never put the DSN
in argv; legacy persisted configs are migrated on first reuse.
Impact: scripts/svc.sh only — rebuild path sets DSN_ENV instead of
--dsn, reuse path strips --dsn from stored exec= once and logs the
migration, launch injects AGENT_SYSTEM_DSN alongside the existing
guard vars. CLI --dsn still wins inside the binary (config
precedence), so manual invocations are unchanged.
Refs: plan G1-7 (line 356) and section 3.4 (2026-10-09 ps
observation); backend config AGENT_SYSTEM_DSN.
Why: Ruling 5's final item. With the user-provided lmuai endpoint
(claude-opus-5-5) and the P5 build unchanged, the same golden task set ran
both sides to completion (6/6 turns each).
Evidence: SELF - B report .task/model-ab/ab-opus.json (2793s) vs A baseline
.task/phase05-eval/after-p5.json; smoke through the live instance confirmed
the provider switch (after fixing the active-secret shadowing: overlayKey
prefers the secret table, so provider changes need /api/secrets rotation).
Impact: Selection report in the card - opus-5-5 eliminates invented numbers
(7 -> 0, the program's core metric), restores independent verification via
lightweight=deepseek-v4-flash; MiniMax stays as the fast/fallback tier.
Recommended default documented for the owner.
Why: A small max_tokens probe passed (small pre-deduction), suggesting the
account might have been topped up; redeploying with chat=claude-sonnet-4-6
and lightweight=deepseek-v4-flash showed full-turn pre-deduction (CNY 0.62)
still exceeds the CNY 0.48 balance - 6/6 turns quota-failed again.
Evidence: SELF - .task/model-ab/ab-sonnet-quota-blocked-r2.json + evidence
row; settings confirmed chat=claude-sonnet-4-6, lightweight=deepseek-v4-flash
on the instance before the run.
Impact: Still blocked on user-only payment input. Estimated CNY 50-100 covers
multiple full comparison runs on dmxapi; alternatively any OpenAI-compatible
provider key via ~/.secrets/abmodel or .env.dev SVC_MODEL_*.
Why: Ruling 5 authorized the strong-model comparison with uncapped budget.
The A/B infrastructure is proven end to end (qa7 on remote main, seeded
claude-sonnet-4-6 via the user's existing dmxapi aggregator key, eval/live
ran the full golden set), but the account holds CNY 0.49 against a CNY 0.62
per-request pre-deduction - all six turns failed with insufficient quota,
captured honestly in the report.
Evidence: SELF - .task/model-ab/ab-sonnet-quota-blocked.json + evidence row;
smoke test of the dmxapi streaming endpoint succeeded before the run.
Impact: Task blocked on user input only (top up dmxapi or provide another
provider key). No code changes; worktree retained for immediate resumption.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-model-ab.md; R0=43f8e27b74e5e2213e2099ba04e5a69fe398586f.
Impact: task metadata only; the feature workspace starts at 43f8e27b74.
Refs: .task/feature-agent-model-ab.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-quality-phase05.md(PR#294) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-g2-2-slash-intents.md(PR#292) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=57b293d00945173f61e3a5f7bef8153053f49395.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d9786f0f4128bbee43e27bdcc1534e320aae1711.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: G2-2 lands plugin slash aliases (EXT-10②) and the intent
declaration surface — the bus binds plugin-spec Slash fields into the
shared alias table (four entrances, one audit envelope), extensions
declare intents via AddIntent, and the system.intent builtin routes
natural language through the bus deterministically (longest-phrase
containment). The umbrella carries the backend gitlink forward.
Evidence: Backend #122 head 9c4edc4 CI success, merged as 9a531a6;
full backend suite 32/32 packages green; lib pin Agent-Command 4f583ca
(PR #6).
Impact: umbrella gitlink only.
Refs: plan G2-2; Backend #122; Agent-Command #6.
Why: The Dev combination must test the gate narrowing, fact checks and lazy
search registration.
Evidence: SELF - gitlink equals backend feature/agent-quality-phase05 head.
Impact: Pointer only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-quality-phase05.md; R0=d9786f0f4128bbee43e27bdcc1534e320aae1711.
Impact: task metadata only; the feature workspace starts at d9786f0f41.
Refs: .task/feature-agent-quality-phase05.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-quality-phase04.md(PR#290) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-g2-2-slash-intents.md; R0=4713f04c94eb2512152e412fd010f846caa10021.
Impact: task metadata only; the feature workspace starts at 4713f04c94.
Refs: .task/feature-g2-2-slash-intents.md
Why: The Dev combination must test the working-method prompt set and the
compose demotion.
Evidence: SELF - gitlink equals backend feature/agent-quality-phase04 head.
Impact: Pointer only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-quality-phase04.md; R0=4713f04c94eb2512152e412fd010f846caa10021.
Impact: task metadata only; the feature workspace starts at 4713f04c94.
Refs: .task/feature-agent-quality-phase04.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-quality-phase03.md(PR#288) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The Dev combination must test the workspace-tool opening and the build
pipeline.
Evidence: SELF - gitlink equals backend feature/agent-quality-phase03 head.
Impact: Pointer only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-quality-phase03.md; R0=02f2c1bcfb1b8ac936e357b90fa7a2973f4ce0c0.
Impact: task metadata only; the feature workspace starts at 02f2c1bcfb.
Refs: .task/feature-agent-quality-phase03.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=7d52861f15f2b25dd5121301ac1e92b5a5e16f8d.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-16-exec-backend.md(PR#285) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=13e03ab15d89d13e0b1cc6848d76776c723a6f96.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Backend #114 (EXT-14, commands-as-tools) added the runmgr -> cmdbus
production import but its Dev-side ratchet update went missing, so make test
fails on any Dev head combining it (backend CI does not run the Dev
architecture check). Recorded here with the merge that surfaces it.
Evidence: SELF - lint-boundaries passes after the entry; the edge exists in
backend main (internal/runmgr/runmgr.go imports cmdbus).
Impact: Ratchet baseline only; unblocks the Dev combination for all in-flight
work.
Why: git receive-pack runs 'gc --auto' in the background after a push;
the fixture's TemporaryDirectory teardown then races the gc writer and
fails with OSError 39 (remote.git not empty) — observed on the PR #285
runner (job 1967). The fixture remote holds no durable value, so auto-gc
is pure flake surface.
Evidence: the failing test passes 5/5 locally after the fix; full
make test-governance green (104 tests).
Impact: test fixture only; no governance-script behavior change.
Refs: Dev CI run 1438 job 1967; same race family as the upload-host
TempDir flake fixed earlier.
Why: Backend #115 (transcript-authoritative switch) and #118 (squad pin
alignment) merged; the Dev combination tests the merged head.
Evidence: SELF - gitlink equals backend origin/main head; make test recorded
on the task card after this commit.
Impact: Pointer only.
Why: the EXT-16 acceptance is escape-negative driven; the tool-written
evidence row captures the local bwrap run (all probes blocked, product
task visible) and the card summary states scope and follow-ups.
Evidence: go test -run 'TestSetExecBackendValidation|TestSandboxArgvShape|
TestSandbox|TestDirect' via CMD=... make evidence exit 0 (10 tests,
bwrap 0.11.1); make test row recorded earlier at this head.
Impact: task card only.
Refs: proposal 2026-10-09-ext-g1-b1-b3 (EXT-16); Backend #119.
Why: EXT-16 abstracts the interpreter launch point into an ExecBackend
port (direct = byte-identical status quo; sandbox = bwrap isolation:
ro root, tmpfs /home+/tmp, session/skills-only writable mounts, no
network, ulimit -u fork cap, timeout kills the namespace) with config
key execBackend, env AGENT_SYSTEM_EXEC_BACKEND, CLI --exec-backend and
extension.Options.ExecBackend (SurfaceVersion 2.6.0-experimental).
DisableExecTools stays the top-priority fail-closed switch; RDM keeps
DisableExecTools=true until G3-7.
Evidence: Backend #119 head 4badecb vet-and-test CI success, merged as
1a55089; local escape negatives all blocked (home secret, sibling
session, network, 400-proc spawn storm, 60s-sleep timeout kill,
orphan die-with-namespace) recorded in the task card evidence rows;
full make test at this head recorded on the card.
Impact: umbrella gitlink only; no source edits outside modules/backend.
Refs: proposal modules/documents docs/proposals/2026-10-09-ext-g1-b1-b3
(EXT-16); Backend #119; Backend #110 (DisableExecTools).
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-16-exec-backend.md; R0=13e03ab15d89d13e0b1cc6848d76776c723a6f96.
Impact: task metadata only; the feature workspace starts at 13e03ab15d.
Refs: .task/feature-ext-16-exec-backend.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-13-15-shared-runs.md(PR#282) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-quality-phase02.md(PR#280) feature-g1-ext-b1-b3.md(PR#279) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the EXT-14 umbrella bump now carries the full pin cascade
(backend 31965fd, agent-command 5c6dd0c, agent-native 3b92cb63,
agent-squad 8bbf850) and the combined suite is green; the completion
declaration needs the tool-written evidence row plus the result summary.
Evidence: make test via 'CMD=make test make evidence' exit 0 at HEAD
(receipt appended, SELF); GATE rows cited in the summary (Backend
#114/#116/#117 CI success).
Impact: task card only.
Refs: Backend #114/#116/#117; Squad #49; agent-command lib #4/#5.
Why: consuming backend main (#115 kernel-transcript + #116 EXT-14
dependency inversion) moves backend pins for agent-native (3b92cb63)
and agent-squad (8bbf850, Squad #49 nested native bump); the umbrella
check-pins requires Dev's top-level pins and every container gitlink to
agree, and Dev's agent-command pin must follow backend's EXT-14 lib bump
(5c6dd0c, lib PRs #4/#5).
Evidence: Backend #116 (6337cd8) and #117 (5544a03) vet-and-test CI
success, merged as 8157e68/31965fd; Squad #49 merge 8bbf850 records
deps/agent-native=3b92cb63 (ls-tree verified); umbrella
lint-boundaries pre-verified green at 6337cd8 (77 edges, negative probe
ok); full make test recorded on the task card at the final head.
Impact: gitlink-only changes (modules/backend, deps/agent-squad,
deps/agent-command, deps/agent-native); no source edits in the umbrella.
Refs: Backend #115/#116/#117; Squad #49; agent-command lib #4/#5;
proposal 2026-10-09-ext-g1-b1-b3 (EXT-14).
Why: Squad #49 aligned its nested agent-native pin with the Dev top-level
pointer; the Dev worktree records the merged head.
Evidence: SELF - gitlink equals Agent-Squad main head.
Impact: Pointer only.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6c763cc1cf4b3e980835de0ad864220f97f3c93c.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Backend #115 merged the transcript-authoritative switch; the Dev
combination must test the merged head (with main's concurrent EXT-14).
Evidence: SELF - gitlink equals backend origin/main head.
Impact: Pointer only.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=6c763cc1cf4b3e980835de0ad864220f97f3c93c.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: EXT-14 lands commands-as-tools in the base — CommandTool projection
from the command bus (ExposeAsTool+Enabled only) and ExecuteTool dispatch
through DispatchCommand with Entrance=agent, Actor/Owner bound to the
conversation owner and high-risk commands gated by the confirm card.
The Dev umbrella must carry the backend gitlink forward so combined CI
and downstream pins consume it.
Evidence: Backend #114 head 0209262 CI success (vet-and-test), merged as
545dc404e50d2a739ab29d83f320ccf54049e190; go test ./... 32/32 packages
green on the branch; main push CI status checked before this bump.
Impact: umbrella-only gitlink change; no source edits outside
modules/backend; RDM pins unaffected until a separate bump task.
Refs: docs/proposals/2026-10-09-ext-g1-b1-b3-exec-backend.md (EXT-14);
Backend PR #114; agent-command lib PRs #4/#5 (merge 9effe90/5c6dd0c).
Why: RDM G1 sequence-4 needs the base to share retrieval inside runs and
open project listing/conversations to adapter-authorized members; the
implementation is merged on Backend main and the Dev gitlink is the
delivery vehicle.
Evidence: SELF - Backend PR #113 CI success at the merge head 9fa1787
(run rerun green after an unrelated ordering flake; the full suite passed
locally 32/32 first); Dev composite CI on this PR is the GATE.
Impact: modules/backend gitlink 449d8a6 -> 9fa1787. No other pin changes.
Refs: Backend #113; proposal 2026-10-09-ext-g1-b1-b3-exec-backend (EXT-13/15)
Why: I2 switches the direct path to the kernel transcript as the authoritative
context; the backend head carries that switch plus the nested kernel pin.
Evidence: SELF - gitlinks equal the pushed branch heads; combined make test
recorded on the task card after this commit.
Impact: Pointer only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-13-15-shared-runs.md; R0=bc74b9a0c5ac4f137b00aa53af37ec67e4aeb1cb.
Impact: task metadata only; the feature workspace starts at bc74b9a0c5.
Refs: .task/feature-ext-13-15-shared-runs.md
Why: EXT-13..EXT-16 (shared in-run retrieval, commands-as-tools, shared
project list, exec backend seam) are the base-side prerequisites RDM G1/G2
depend on; the application must live on the base Documents main before
implementation tasks can be opened against it.
Evidence: SELF - Documents #52 merged (3e43193); proposal cites code
locations verified at Dev main; Dev composite CI on this PR is the GATE.
Impact: modules/documents gitlink bump only.
Refs: Documents #52; RDM plan V1.1 sections 3.3/3.4/5.3
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-g1-ext-b1-b3.md; R0=2e92b184f3f257bbe9c90fd9e8278c2b6f192251.
Impact: task metadata only; the feature workspace starts at 2e92b184f3.
Refs: .task/feature-g1-ext-b1-b3.md
Why: The gate misfire fix from the live after-run belongs in the same increment.
Evidence: SELF - gitlink equals the backend phase02 head.
Impact: Pointer only.
Why: The Dev combination must test the context-fidelity increment.
Evidence: SELF - gitlink equals backend feature/agent-quality-phase02 head.
Impact: Pointer only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-quality-phase02.md; R0=2e92b184f3f257bbe9c90fd9e8278c2b6f192251.
Impact: task metadata only; the feature workspace starts at 2e92b184f3.
Refs: .task/feature-agent-quality-phase02.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-quality-phase01.md(PR#277) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Ruling 6 requires real-model before/after evidence. The after run (fixed
build b68833f, same golden tasks) proves the repairs landed: lint now actually
executes (real layout/lead findings appear vs silent empties before), the
pm-tool readability dead-loop is gone (4/0 -> 0), plan-followup reads original
materials 0 -> 49 times. Remaining failures are the documented P5/P2 scope
(rename-revision loops via scorer semantics, unverified numbers, verifier
parse hiccups), not regressions.
Evidence: SELF - report .task/phase01-eval/after-phase01-b68833f.json +
evidence row (1749s run); comparison table in the card.
Impact: PR #277 now carries the complete before/after pair for review.
Why: The backend branch gained the user-scope model capture fix, and the
live eval produced the before-baseline report on remote main (1ebd46e) that
the task card and the improvement-plan record reference as evidence.
Evidence: SELF - report .task/phase01-eval/before-main-1ebd46e.json (model
MiniMax-M2.7-highspeed, 4 golden tasks, 17 min run): reproduces the diagnosed
failure chain on the pre-fix build - readability dead-loop x4 on two tasks,
9 full regens with 0 original-material reads in plan-followup, 8 unverified
percentages, forged-marker false positive, internal check text leaked to the
user.
Impact: Report committed for the after-comparison once this PR merges; gitlink
points at the harness-inclusive backend head.
Why: The lint skills-root injection moved from the app root to the runner,
keeping the architecture ratchet green; the Dev combination must test that head.
Evidence: SELF - gitlink equals backend feature/agent-quality-phase01 head;
make test rerun recorded on the task card.
Impact: Pointer only.
Why: The previous pointer predated the eval/live package commit; the
combination must test the full phase01 backend branch.
Evidence: SELF - gitlink equals backend feature/agent-quality-phase01 head.
Impact: Pointer only.
Why: Backend carries the seven quality-gate repairs with the eval/live
harness; documents carries the improvement-plan main record with the six user
rulings. The Dev combination must test these heads together.
Evidence: SELF - gitlink pointers match the pushed branch heads; make test
recorded on the task card after this commit.
Impact: Combined test surface now includes the phase01 backend and documents
content; no behavior change from the pointers alone.
Refs: feature/agent-quality-phase01 (backend), feature/agent-quality-plan (documents).
Why: The 2026-10-09 diagnosis showed behavior-surface regressions (gate
deadlocks, silently broken lint, wrong artifact verdicts) passing every unit
test because no task-level check ran the real model. User ruling 6 approved
making before/after live-eval evidence a delivery requirement for prompt,
skill, tool-description, context-assembly and gate changes.
Evidence: SELF - clause drafted to reference modules/backend/eval/live and the
GATE/REPLAY/SELF sourcing already defined in AGENTS.md; task card for
feature/agent-quality-phase01 filled with the P0+P1 scope and requirements.
Impact: policy/delivery.md gains the 智能体行为面的真实验证 subsection;
NOT_RUN stays legal but must be explicit. Phase01 task card records scope,
requirements R1-R4 and the before/after eval protocol.
Refs: modules/documents proposal 2026-10-09-agent-quality-improvement-plan.md (ruling 6).
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-quality-phase01.md; R0=1ebd46edc5239d0d87418e9a8dd9aa225955e1dd.
Impact: task metadata only; the feature workspace starts at 1ebd46edc5.
Refs: .task/feature-agent-quality-phase01.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-base-v020-release.md(PR#275) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: v0.2.0 must carry the DOCX tracked-change fix and the exec hard
switch (Backend #110) and the release record (Documents #50); RDM shared
work is blocked until v0.2.0 is tagged.
Evidence: SELF - make test exits 0 on this tree; Backend #110 CI success
on the merge commit; the composite CI on this PR is the GATE source.
Impact: modules/backend 92ede3b -> f1c9cc0, modules/documents 9995552 ->
d3c9b45. core/frontend/ui pins unchanged (a253a40/84b73ab/76d6633).
Refs: Backend #110; Documents #50; docs/records/2026-10-09-base-v0.2.0-release.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-base-v020-release.md; R0=007247f1e7a423fe900f6ab1638b51369e4e7497.
Impact: task metadata only; the feature workspace starts at 007247f1e7.
Refs: .task/feature-base-v020-release.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext8-remaining-shared-reads.md(PR#273) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CI on PR HEAD is the authoritative gate before merge.
Evidence: Backend#109 success; Dev#273 success.
Impact: Task card only.
Refs: AGENTS.md evidence gate.
Why: The Dev combination must pin the closure commit; make test validates the fixed combination.
Evidence: modules/backend -> 92ede3b970dd8bc0a40b3359a04a6e35b812a9d1 (Backend PR #109).
Impact: Gitlink only.
Refs: Backend PR #109; task card.
Why: EXT-8 closure needs vector-channel sharing, the hostapi face, and citation-ref consistency; scope and non-goals (no base graph endpoint exists - RDM trace net is downstream) must be recorded first.
Evidence: rag Retrieve/rrfMerge and hostapi search shapes verified at source.
Impact: Task card only.
Refs: EXT-8 proposal; slice-1/2 cards.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext8-remaining-shared-reads.md; R0=28a4dbcbf4d61d44b1e0300993962da419e98666.
Impact: task metadata only; the feature workspace starts at 28a4dbcbf4.
Refs: .task/feature-ext8-remaining-shared-reads.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-11-scoped-host-factory.md(PR#271) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CI on PR HEAD is the authoritative gate before merge.
Evidence: Backend#108 success; Dev#271 success.
Impact: Task card only.
Refs: AGENTS.md evidence gate.
Why: The Dev combination must pin the EXT-11 commit; make test validates the fixed combination.
Evidence: modules/backend -> bbe39b475fc79d4e1fbf211d3d6d55dcad9fac4a (Backend PR #108).
Impact: Gitlink only.
Refs: Backend PR #108; task card.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-11-scoped-host-factory.md; R0=c637d9516d93ab5674bac38e58238e2453c5ce87.
Impact: task metadata only; the feature workspace starts at c637d9516d.
Refs: .task/feature-ext-11-scoped-host-factory.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext8-slice2-shared-retrieval.md(PR#269) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CI on PR HEAD is the authoritative gate before merge.
Evidence: Backend#107 success; Dev#269 success.
Impact: Task card only.
Refs: AGENTS.md evidence gate.
Why: The Dev combination must pin the slice-2 commit; make test validates the fixed combination.
Evidence: modules/backend -> 1de663a8d3302eddbd35d8a1906e4234e17c28e8 (Backend PR #107).
Impact: Gitlink only.
Refs: Backend PR #107; task card.
Why: Slice 2 closes the knowledge-retrieval half of EXT-8 and lands the minimal EXT-12 mirror switch; scope and limits must be recorded before code.
Evidence: Search paths (sqlite/like/PG) verified to share the knowledgeVisible predicate; cardsvc.emitCard mirrors unconditionally.
Impact: Task card only.
Refs: EXT-8/EXT-12 proposals; prior task cards' deferred-items registry.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext8-slice2-shared-retrieval.md; R0=749f327986f30a953fb6723b6970c42738a572af.
Impact: task metadata only; the feature workspace starts at 749f327986.
Refs: .task/feature-ext8-slice2-shared-retrieval.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-9-index-publish.md(PR#267) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CI on PR HEAD is the authoritative gate before merge.
Evidence: Backend#106 success; Dev#267 success.
Impact: Task card only.
Refs: AGENTS.md evidence gate.
Why: The Dev combination must pin the EXT-9 commit; make test validates the fixed combination.
Evidence: modules/backend -> fbc924c24045f8a9e22fc4047982c23d09bcebf3 (Backend PR #106).
Impact: Gitlink only.
Refs: Backend PR #106; task card.
Why: EXT-9 is accepted (Documents #49) as the other step-4 hard prerequisite; the publish/revoke surface and the upload pre-index switch must be scoped before implementation.
Evidence: Knowledge store shapes verified (owner column, DeleteKnowledgeByRef, vectors-by-ref cleanup precedent).
Impact: Task card only.
Refs: EXT-9 proposal; U0 section 5 C5 / section 10 step 4.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-9-index-publish.md; R0=7b73dd19b8566446c137a6e3a46fed17bfa548d4.
Impact: task metadata only; the feature workspace starts at 7b73dd19b8.
Refs: .task/feature-ext-9-index-publish.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-8-resource-authorizer.md(PR#265) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CI on PR HEAD is the authoritative gate before merge.
Evidence: Backend#105 success; Dev#265 success (polled pending->success).
Impact: Task card only.
Refs: AGENTS.md evidence gate.
Why: The Dev combination must pin the EXT-8 commit; make test validates the fixed combination (which also carries the audit fix via stacking).
Evidence: modules/backend -> a4783d18e7156e4f48188e6816be865ed82380f6 (Backend PR #105, stacked on #104).
Impact: Gitlink only; other pins unchanged.
Refs: Backend PR #105; task card.
Why: Red run must be tool-pinned to the backend commit before the consultation lands.
Evidence: Row exit=1 at backend tip (shared read 404 with adapter set).
Impact: Task card only.
Refs: Task card.
Why: EXT-8 is accepted (Documents #49) and is the U0 step-4 critical path; the backend branch stacks on the audit-fix head (parent PR #104) to avoid a second gitlink conflict.
Evidence: Documents #49 and Dev #263 merged this session; parent head e0b1c27 pushed.
Impact: Task card only.
Refs: EXT proposal EXT-8; U0 section 5 C4 / section 10 step 4.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-8-resource-authorizer.md; R0=27885ceb3e6c774495b61e07f560efa1a51855fc.
Impact: task metadata only; the feature workspace starts at 27885ceb3e.
Refs: .task/feature-ext-8-resource-authorizer.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-c1-c7-applications.md(PR#263) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CI on PR HEAD is the authoritative gate; Documents has no CI runner (docs-only repo, 0 statuses) which must be stated, not implied.
Evidence: Documents#49 no statuses; Dev#263 ci/test success.
Impact: Task card only.
Refs: AGENTS.md evidence gate.
Why: Closing outputs plus honest SELF/GATE boundary on the card.
Evidence: task-sync exit=0; make test exit=0 at tip 9bdec04.
Impact: Task card only.
Refs: Task card.
Why: Composition validation at the new documents pin is the Dev-side gate.
Evidence: make test exit=0 (governance + pins + module suites at documents 9995552).
Impact: Task card only.
Refs: Task card.
Why: The Dev combination must pin the proposal commit; make test validates the fixed combination (adopting Documents main 4e57196 plus the new proposal and INDEX row).
Evidence: modules/documents -> 9995552152616bfaf6473cd9249e55a28a1685b4 (Documents PR #49); make test row follows.
Impact: Gitlink only; other pins unchanged.
Refs: Documents PR #49; task card.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-c1-c7-applications.md; R0=34a2bbe15793f7cf91ffd907123deb4113230794.
Impact: task metadata only; the feature workspace starts at 34a2bbe157.
Refs: .task/feature-ext-c1-c7-applications.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-architecture-guides.md(already-complete) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-status-review.md(PR#259) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The planning index registered the stale RDM snapshot as an open
reconciliation item; the review re-verdicts the baseline and audits the
seven MS1 acceptance clauses so P1 scheduling rests on evidence.
Evidence: Documents PR #47 merged as 9505c7e (plan SS2.3 review, MS1
audit, six registered gaps, index sync, seven SELF receipts under
docs/records); replays run in an isolated clone at RDM 4feb2f0 with
pins=v0.1.0; the private minutes receipt stays local by decision.
Impact: documents gitlink -> 9505c7e; task card records authorization,
requirements R1-R5, increments, and next-task candidates; no code
changes; review is not milestone acceptance.
Refs: Documents #47; task feature/rdm-status-review.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-status-review.md; R0=218fc4b1ba00b0a03b5bb79f292b3eba6c987a58.
Impact: task metadata only; the feature workspace starts at 218fc4b1ba.
Refs: .task/feature-rdm-status-review.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-architecture-guides.md; R0=218fc4b1ba00b0a03b5bb79f292b3eba6c987a58.
Impact: task metadata only; the feature workspace starts at 218fc4b1ba.
Refs: .task/feature-architecture-guides.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-stage-records.md(PR#257) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The planning index named stage-record reconciliation as the
preferred next task; N1 WP6b/6c, the Q1 platform-task boundary, I1
reserved command consumption, and the I2 dangling reference all feed
N2/Q3 and RDM dependency judgments.
Evidence: Documents PR #46 merged as d630a04 (backfill sections in the
N1/Q1/I1 plan, stack completion plan I2 note, INDEX navigation); Dev
merge SHAs #230/#231/#234/#235/#237/#240 verified via git log --merges
on 2026-10-08; PR #242 body checked (0 wrong references, fixes confined
to the archived card).
Impact: modules/documents gitlink -> d630a04; archived I2 card now
points at stack completion plan SS5 I2 with a dated correction note;
task card records authorization, requirements, and increments.
Refs: Documents #46; task feature/agent-stack-stage-records.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-stage-records.md; R0=17e5c92238b2a33f9884f97b6d912b708ec5f256.
Impact: task metadata only; the feature workspace starts at 17e5c92238.
Refs: .task/feature-agent-stack-stage-records.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: .task/feature-planning-index.md(PR#255) — merge d25d1fad0d is on origin/main. The merge subject does not match the automatic from-branch detector, so this closure follows the same backfill as task.sh close.
Impact: .task/feature-planning-index.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1); PR #255
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: a documents gitlink move needs a combination test before the Dev pull request.
Evidence: CMD=\"make test\" make evidence exited 0 on 4ebdc4ec4a.
Impact: task card evidence only.
Refs: .task/feature-planning-index.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the user asked to finish this worktree, merge it after a clean sync, and remove the worktree.
Evidence: documents main c39efdc contains the index; Dev origin/main 7f1d87d is an ancestor of this branch.
Impact: task metadata only.
Refs: .task/feature-planning-index.md; Documents #45
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: include the current integration baseline before verification.
Evidence: origin/main=7f1d87dbb976ebe02ceb632d5a657a416ffb50bc. The documents gitlink is resolved to documents main c39efdc5015c57b18e18cc99ecf7f4c4f2e499ee, which contains the planning index.
Impact: integrate upstream changes and point documents at the merged index.
Refs: task-sync; Documents #45
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-q3.md(PR#253) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: check-pins requires nested and Dev-level pins to agree; squad main
advanced to 819b0c5 (nested agent-native pin #48) and backend main to
fe7c245 (nested agent-squad pin #103) after the Q3 WP1-WP5 merges.
Evidence: both component PRs CI green (GATE); make test recorded via
make evidence in the follow-up commit on this branch.
Impact: deps/agent-squad 663e89e -> 819b0c5; modules/backend 4791b2e ->
fe7c245; deps/agent-native stays 37c5e6f.
Refs: Q3 plan WP6; task card .task/feature-agent-stack-q3.md
Why: Q3 WP1/WP2 moved workflow execution out of runtime (workflow_script.go
deleted, so runtime no longer imports internal/tools) into the new
internal/wfcompile package, which legitimately depends on internal/tools
(script host) and internal/workflow (render/validate/Launch data layer).
Evidence: make test-boundaries green after the baseline update (77 edges,
negative test ok); the lint itself flagged both the stale edge and the new
ones (SELF).
Impact: baseline -1 edge (backend/runtime backend/tools), +3 edges
(backend/runtime backend/wfcompile, backend/wfcompile backend/tools,
backend/wfcompile backend/workflow).
Refs: Q3 plan WP1/WP2; task card .task/feature-agent-stack-q3.md
Why: Q3 (convergence and interop) completed across agent-native (#40),
agent-squad (#46/#47) and backend (#99-#102); Dev gitlinks must track the
merged component mains and the task card records the outcome before the
completion declaration.
Evidence: card increment table rows WP1a-WP6 with merged PR/SHA references;
component CI statuses recorded as GATE in the card verification section;
three-segment outputs (precheck/task-sync/test) appended via make evidence
in follow-up commits on this branch.
Impact: deps/agent-squad bcc8d08 -> 663e89e, deps/agent-native 1ac21c6 ->
37c5e6f, modules/backend 06934bc -> 4791b2e; task card filled.
Refs: .task/feature-agent-stack-q3.md; Q3 plan 2026-10-07-agent-stack-q2q3-plans.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-q3.md; R0=78409a9ceacacf8a152b811d94c7195c4f084664.
Impact: task metadata only; the feature workspace starts at 78409a9cea.
Refs: .task/feature-agent-stack-q3.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-q2.md(PR#251) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=1e85198578d8052c063c06c33fe0632ab01c213f.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Q2 (topology library) completed in Agent-Squad across WP1-4 (PRs
#42-#45, main bcc8d08) and the backend nested pin followed (PR #98, main
06934bc); Dev gitlinks must track the merged component mains and the task
card records the outcome before the completion declaration.
Evidence: card increment table rows WP1-4 with merged PR/SHA references;
component CI statuses recorded as GATE in the card's verification section;
three-segment outputs (precheck/task-sync/test) appended via make evidence
in follow-up commits on this branch.
Impact: deps/agent-squad c462bc4 -> bcc8d08, modules/backend 6e02a1f ->
06934bc; task card filled (results/verification/increments).
Refs: .task/feature-agent-stack-q2.md; Q2 plan 2026-10-07-agent-stack-q2q3-plans.md
Why: Documents #44 merged the Q2/Q3 plans; the Dev documents pin
follows and the Q2 card opens with its requirement rows (Q3 gets its
own task after Q2 closes).
Evidence: R1-R4 map to the plan's Q2-WP1..WP4 with verified gap citations.
Impact: documentation pin + task card.
Refs: Agent-System-Documents#44
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-q2.md; R0=a30c55425a30c5f023b311e9f822f39b796bcbc8.
Impact: task metadata only; the feature workspace starts at a30c55425a.
Refs: .task/feature-agent-stack-q2.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-n3.md(PR#248) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: backend main carries the nested core pin at a253a40b plus the
rewind-test settle-window fix; the combination check now passes across
all nested copies.
Evidence: check-pins pins ok; backend CI green on 26bd9286 (GATE).
Impact: none beyond the pin.
Refs: Agent-System-Backend#97
Why: the TypeScript contract authority gained the usage split fields
(Core a253a40b) and the ui mirror was regenerated (UI 76d66337); the
Dev build step regenerates contracts.ts from the authority, so the
pins must carry this combination for the worktree check to pass.
Evidence: make contracts on this combination produces byte-identical
files (verified locally).
Impact: none beyond the pins.
Refs: Agent-System-Core#24, Agent-System-UI#39
Why: completion-declaration test segment per AGENTS.md (CI remains the
authoritative test source on the PR).
Evidence: row exit=0 in the card evidence table.
Impact: none.
Refs: N3 closure
Why: closure requires the results section with the acceptance evidence
map across all six work packages.
Evidence: three acceptance clauses map to named tests and GATE heads.
Impact: none.
Refs: N3 closure
Why: Backend#96 merged the usage split and default retry; the core
Usage fields, Frontend#48, and the native/squad cascades landed; Dev
pins and the increment record follow.
Evidence: check-pins pins ok; WP6 chain CI green on every merge head;
audit N20 closes (split flows into run records on every path).
Impact: usage accounting is uniform end to end; stream retry is a
library default.
Refs: Agent-Native#35-#39, Agent-Squad#41, Agent-System-Backend#96,
Agent-System-Frontend#48
Why: Backend#95 merged the memory port wiring; Native#34 and Squad#38
carried the port; Dev pins and the increment record follow.
Evidence: check-pins pins ok; WP5 chain CI green on every merge head;
the migration parity test GATE on backend 766a96e8.
Impact: the memory port exists end to end with write-back.
Refs: Agent-Native#34, Agent-Squad#38, Agent-System-Backend#95
Why: Backend#94 merged the checkpoint closure wiring; Native#33 and
Squad#37 carried the library work; Dev pins and the increment record
follow.
Evidence: check-pins pins ok; WP3 chain CI green on every merge head;
acceptance clause 2's tests GATE across layers.
Impact: rollback evidence complete (eligibility, symlink guard,
partial restore, retention, HTTP).
Refs: Agent-Native#33, Agent-Squad#37, Agent-System-Backend#94
Why: Backend#93 merged the GenAI telemetry wiring; Native#32 and
Squad#36 carried the convention work; Dev pins and the increment
record follow.
Evidence: check-pins pins ok; WP4 chain CI green on every merge head;
acceptance clause 3's tests GATE on native fe0c4a9f.
Impact: spans follow the OTel GenAI convention end to end.
Refs: Agent-Native#32, Agent-Squad#36, Agent-System-Backend#93
Why: Backend#92 merged the JournalOnly conversation wiring; Native#31
and Squad#35 carried the library mode; Dev pins and the increment
record follow, including the design adjustment (journal-only instead
of transcript-authoritative, with the freeze rationale).
Evidence: check-pins pins ok; WP2 chain CI green on every merge head;
acceptance clause 1's product tests GATE on backend 9f3fdb26.
Impact: conversation runs are durable mid-turn without freezing the
context pipeline.
Refs: Agent-Native#31, Agent-Squad#35, Agent-System-Backend#92
Why: Backend#91 merged the graceful-resume split; Native#30 and
Squad#34 carried the tail repair and N6 fix; Dev pins and the
increment record follow.
Evidence: check-pins pins ok; WP1 chain CI green on every merge head;
acceptance clause 1's library tests GATE on native cb21ec4e.
Impact: every Run now pairs orphan tails before the first request;
gracefully-interrupted subagents resume exactly once.
Refs: Agent-Native#30, Agent-Squad#34, Agent-System-Backend#91
Why: Documents #43 merged the N3 plan; the Dev documents pin follows
and the card opens with its requirement rows.
Evidence: R1-R6 map to the plan's WP1-WP6 with verified gap citations.
Impact: documentation pin + task card.
Refs: Agent-System-Documents#43
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-n3.md; R0=0e12b73e66d47c94a398648822d4928ecd43575c.
Impact: task metadata only; the feature workspace starts at 0e12b73e66.
Refs: .task/feature-agent-stack-n3.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-n2.md(PR#244) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: completion-declaration test segment per AGENTS.md (CI remains the
authoritative test source on the PR).
Evidence: row exit=0 in the card evidence table.
Impact: none.
Refs: N2 closure
Why: closure requires the results section with the acceptance evidence
map and the WP6 assembly review (no new settings; behavior changes
enumerated as intentional).
Evidence: R1-R6 rows and the three acceptance clauses map to named
tests and GATE heads.
Impact: none.
Refs: N2 WP6
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=eb0d4b5a499322a23155c8d89a024247f6e7830d.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Backend#90 merged the subagent transcript/resume/notice work;
Native#29 and Squad#33 carried the Background field; Dev pins and the
increment record follow.
Evidence: check-pins pins ok; WP5 chain CI green on every merge head;
the three WP5 acceptance tests are GATE on backend main 7980a8a2.
Impact: subagents are resumable with per-run transcripts and durable
notices.
Refs: Agent-Native#29, Agent-Squad#33, Agent-System-Backend#90
Why: preserve the synchronized candidate and its checked navigation before user review.
Evidence: current task-sync and document coverage/source-integrity checks succeeded; original receipts are unchanged.
Impact: task evidence only; no publication or business plan approval.
Refs: .task/feature-planning-index.md
Why: present a complete local index candidate without inferring missing plan owners.
Evidence: source facts, independent review and follow-up, all 19 source blobs, links and final make test output are preserved as SELF records.
Impact: Documents candidate and task metadata only; original plans and other tasks remain unchanged.
Refs: .task/feature-planning-index.md; Documents f8cc211
Why: Backend#89 merged the plugin/bundled skill validation; Native#28
and Squad#32 carried the validator; Dev pins, the plugins→skills edge,
and the increment record follow.
Evidence: check-pins pins ok; WP4 chain CI green on every merge head;
TestV2InvalidSkillRejected GATE on backend main b44f78b0.
Impact: skills now validated against the open Agent Skills spec.
Refs: Agent-Native#28, Agent-Squad#32, Agent-System-Backend#89
Why: preserve the required synchronization checkpoint for the local documentation candidate.
Evidence: task-sync confirms current main and the exact Documents candidate; full combination checks are recorded in the task card.
Impact: task evidence only; remote publication and plan approval remain pending.
Refs: .task/feature-planning-index.md
Why: make existing directions, milestones and tasks discoverable with their evidence boundaries.
Evidence: all 19 proposals are covered, 55 PR records were checked, and make test passed on the staged combination; original SELF receipts are preserved.
Impact: local documentation candidate only; the Documents candidate includes the N2 proposal already on Documents main, with Dev PR 244 coordination still recorded.
Refs: .task/feature-planning-index.md; Documents b87b929; PROJECT.md
Why: Native#27 merged the MCP 2026-07-28 alignment; Squad#31 and
Backend#88 carried the cascade; Dev pins and the increment record follow.
Evidence: check-pins pins ok; WP3 chain CI green on every merge head;
TestStdioSlowCancelThenEcho (acceptance 3) passes unchanged.
Impact: MCP client negotiates versions and recognizes resultType.
Refs: Agent-Native#27, Agent-Squad#31, Agent-System-Backend#88
Why: Native#26 merged the native Anthropic client (acceptance clause 1,
audit N4 closed); Squad#30 and Backend#87 carried the cascade; Dev pins
and the increment record follow.
Evidence: check-pins pins ok; WP2 chain CI green on every merge head;
TestAnthropicPresetToolRound GATE on native main d6053baf.
Impact: acceptance clause 1 is closed.
Refs: Agent-Native#26, Agent-Squad#30, Agent-System-Backend#87
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-planning-index.md; R0=eb0d4b5a499322a23155c8d89a024247f6e7830d.
Impact: task metadata only; the feature workspace starts at eb0d4b5a49.
Refs: .task/feature-planning-index.md
Why: Backend #86 merged the tool-group-aligned trimming; native #25 and
squad #29 carry the spill and cache contract work; the Dev pins and the
increment record follow.
Evidence: check-pins pins ok; WP1 chain CI green on every merge head.
Impact: acceptance clause 2's product side is closed
(TestTrimOldestKeepsToolPairs GATE).
Refs: Agent-Native#25, Agent-Squad#29, Agent-System-Backend#86
Why: close the approved task with actual integration outcomes and preserved original evidence.
Evidence: PR 245 CI run 1157 passed; merge-tree comparison and task-finish succeeded; all original receipt blocks are unchanged.
Impact: archived task metadata only; next-task advice remains unapproved.
Refs: PR #245; .task/archive/feature-goal-continuity.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-goal-continuity.md(PR#245) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: keep the task record and PR description tied to the same candidate.
Evidence: original PR creation receipt and sealed receipt digests remain intact.
Impact: task header and evidence only; no code changes.
Refs: PR #245; .task/feature-goal-continuity.md
Why: bind delivery to the refreshed component combination and preserve applicable review evidence.
Evidence: full make test and make build passed; the six reviewed files remain byte-identical after main synchronization.
Impact: task metadata only; CI and final integration remain separate gates.
Refs: .task/feature-goal-continuity.md; .task/reviews/goal-continuity-delivery.json
Why: the card was a skeleton; the plan is merged (Documents #42) and
the increments need their requirement rows.
Evidence: R1-R6 map to the plan's WP1-WP6 with verified gap citations.
Impact: none.
Refs: Agent-System-Documents#42
Why: Documents #42 merged the N2 plan (six work packages with the
current-state survey); the Dev pin follows.
Evidence: plan cites pinned baselines agent-native ead690b, backend
68addfd; implementation proceeds per its WP order.
Impact: documentation pin only.
Refs: Agent-System-Documents#42
Why: deliver the user-approved candidate against the latest authoritative main.
Evidence: preserved failed resume precheck, successful task-sync, and fresh READY receipt; approved policy and template files are byte-identical after synchronization.
Impact: task evidence and authorization only; no new business scope.
Refs: .task/feature-goal-continuity.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=878e0e7ceba3bb6b78c36c5113eacc846a7f017b.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-n2.md; R0=878e0e7ceba3bb6b78c36c5113eacc846a7f017b.
Impact: task metadata only; the feature workspace starts at 878e0e7ceb.
Refs: .task/feature-agent-stack-n2.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-i2.md(PR#242) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: native ead690be (Agent-Native#24) stops workspace-less requests
from writing session state into the process CWD; squad 029edc08
(Agent-Squad#28) and backend 68addfda (Backend#85) carry it. Without
this the CI build step fails the worktree check after make test.
Evidence: check-pins pins ok; combination re-verified by make test
before push (see card).
Impact: none beyond pins; the I2 slow-lane stack is unchanged.
Refs: Agent-Native#24, Agent-Squad#28, Agent-System-Backend#85, Dev#242
Why: completion-declaration test segment per AGENTS.md (CI remains the
authoritative test source on the PR).
Evidence: row exit=0 in the card evidence table.
Impact: none.
Refs: I2 closure
Why: evidence discipline records attempts as-is; the follow-up commit
preserves the .agentx transcripts and re-runs sync.
Evidence: row exit=2 in the card evidence table.
Impact: none.
Refs: I2 closure
Why: closure requires the results section filled with the acceptance
evidence map.
Evidence: R1-R4 rows reference the merged PRs and named tests.
Impact: none.
Refs: I2 closure
Why: the card was still the skeleton; increments 1-3 are merged and
need their record before closure.
Evidence: agent-intent #9/#10, Backend #83/#84, Native #23, Squad #27.
Impact: none.
Refs: I2 increments 1-3
Why: backend #83 merged the slow-lane wiring (intentsem scorer/
generator, gate SetSemantic/SetGenerator, settings flags default off);
the Dev pins and boundary rules must move with it.
Evidence: backend CI green on 9d29371; check-pins consistent
(agent-intent 343b1e6 across Dev and the backend nested copy);
lint-boundaries registers intentsem as an agent-intent adapter and the
architecture baseline gains backend/app->backend/intentsem.
Impact: product behavior unchanged by default; the two
runtime.intent* flags opt into the slow lane.
Refs: Agent-System-Backend#83, I2 increment 3
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-i2.md; R0=11eea9530d89adaffb426196f17f57069d045974.
Impact: task metadata only; the feature workspace starts at 11eea9530d.
Refs: .task/feature-agent-stack-i2.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-q1.md(PR#240) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: All seven work packages are merged and all three acceptance
clauses are verified; the close scan only folds completed cards.
Evidence: ten PRs merged across the chain; make test exit=0 at
516cdf62; all module suites green.
Impact: Task card only.
Why: All seven work packages landed; the card carries the three
acceptance clauses' evidence and the follow-ups.
Evidence: CI success on the two PRs of this increment; make test
exit=0 at 516cdf62; all module suites green.
Impact: Task card only.
Why: Agent-Squad PR #26 and Backend PR #82 landed; Dev pins must
point at those merged component main heads.
Evidence: check-pins exit=0.
Impact: Two gitlinks.
Refs: Agent-Squad PR #26; Agent-System-Backend PR #82
Why: WP4/WP6/WP7 landed with the three closing-out items; the
record carries the acceptance mapping.
Evidence: Agent-Squad #25 and Backend #81 merged; make test exit=0
at cc6970c7.
Impact: Task card only.
Why: Agent-Squad PR #25 and Backend PR #81 landed; Dev pins must
point at those merged component main heads.
Evidence: check-pins exit=0.
Impact: Two gitlinks.
Refs: Agent-Squad PR #25; Agent-System-Backend PR #81
Why: WP3 landed; the acceptance test form belongs to the record.
Evidence: Agent-Squad #24 and Backend #80 merged; make test exit=0
at 9c0fc6ae.
Impact: Task card only.
Why: Agent-Squad PR #24 and Backend PR #80 landed; Dev pins must
point at those merged component main heads.
Evidence: check-pins exit=0.
Impact: Two gitlinks.
Refs: Agent-Squad PR #24; Agent-System-Backend PR #80
Why: The card carries the authorized scope and the increment record.
Evidence: Agent-Squad #23 and Backend #79 merged; make test exit=0
at 2e4dacf9.
Impact: Task card only.
Why: Agent-Squad PR #23 and Backend PR #79 landed; Dev pins must
point at those merged component main heads.
Evidence: check-pins exit=0.
Impact: Two gitlinks.
Refs: Agent-Squad PR #23; Agent-System-Backend PR #79
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-q1.md; R0=3c3533450930660ea22c66b9d9d0f3cd1836499f.
Impact: task metadata only; the feature workspace starts at 3c35334509.
Refs: .task/feature-agent-stack-q1.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-i1.md(PR#235) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: All six work packages are merged and all four acceptance
clauses are verified; the close scan only folds completed cards.
Evidence: sixteen PRs merged across the chain; make test exit=0 at
8865beb9; both eval suites green.
Impact: Task card only.
Why: Branch protection required main in head; the synced
combination was retested.
Evidence: make test exit=0 at the synced head.
Impact: Task card only.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=1f7217f5bb2657418845d6bec6ae28c56920ddc8.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: All six work packages landed; the card carries the acceptance
evidence and the recorded boundaries.
Evidence: CI success on the five PRs of this increment; make test
exit=0 at 037c678f; both eval suites green.
Impact: Task card only.
Why: The I1 eval increments landed across the chain (intent #8,
squad #21/#22, native #22, backend #77/#78); Dev pins must point at
those merged component main heads.
Evidence: check-pins exit=0 after full matrix propagation.
Impact: Four gitlinks.
Refs: Agent-Intent PR #8; Agent-Squad PR #21/#22; Agent-Native PR #22; Agent-System-Backend PR #77/#78
Why: WP2/WP3/WP4 landed through the chain; scope rulings and the
boundary fix belong to the record.
Evidence: CI success on the seven PRs; make test exit=0 at 612b51bd.
Impact: Task card only.
Why: lint-boundaries and lint-architecture both pass now; the
receipt belongs to the card.
Evidence: make test exit=0 at the amended head.
Impact: Task card only.
Why: The dependency ratchet blocks new edges by default; the unique
router's four edges (route->intentgate, runmgr->intentgate,
runmgr->route, server->route) are the I1 router's intended shape.
Evidence: lint-architecture.sh ok (73 edges) and negative probe ok.
Impact: Policy baseline only.
Why: Backend PR #76 fixed the boundary violation by projecting the
command types through intentgate; the Dev pin must carry it for
lint-boundaries to pass.
Evidence: backend CI success on #76; check-pins ok.
Impact: One gitlink plus the card receipt.
Why: The failed run's receipt belongs to the card; nested chains
are normalized now.
Evidence: all nested checkouts normalized; check-pins ok.
Impact: Task card only.
Why: The I1 intent/router increments landed across the chain (intent
#6/#7, squad #19/#20, native #21, backend #74/#75); Dev pins must
point at those merged component main heads.
Evidence: check-pins exit=0 after the full cascade.
Impact: Four gitlinks.
Refs: Agent-Intent PR #6/#7; Agent-Squad PR #19/#20; Agent-Native PR #21; Agent-System-Backend PR #74/#75
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-i1.md; R0=3e8d2d3ba3e45589c93857f0cc6997ee3a9676d7.
Impact: task metadata only; the feature workspace starts at 3e8d2d3ba3.
Refs: .task/feature-agent-stack-i1.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-n1.md(PR#232) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: All six work packages are merged and the acceptance clauses are
verified; the close scan only folds completed cards.
Evidence: twelve PRs merged across the chain; make test exit=0 at
d464d0a9; A/B and plugin-validation tests green.
Impact: Task card only.
Why: Branch protection required the main merge commit in head; the
synced combination was retested.
Evidence: make test exit=0 at d78692c9 after syncing to b6974fa.
Impact: Task card only.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=b6974fa0d6fba0d28984fcfcb4418c541b83f915.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The first task-sync attempt failed on a dirty tree; its receipt
is part of the record.
Evidence: transcript fixtures restored; tree clean.
Impact: Task card only.
Why: All six work packages landed; the card carries the acceptance
evidence and the deferred follow-ups (WP6b/WP6c).
Evidence: CI success on the five PRs of this increment; make test
exit=0 at f9d51b3f; A/B tests green.
Impact: Task card only.
Why: Increment four landed across the chain (native #19/#20, backend
#72, squad #18, backend #73); Dev pins must point at those merged
component main heads.
Evidence: check-pins exit=0; native c9c2f23, squad 7ecc04e and
backend 303983bd are direct merge commits on their component mains.
Impact: Three gitlinks.
Refs: Agent-Native PR #19/#20; Agent-Squad PR #18; Agent-System-Backend PR #72/#73
Why: present the completed local change with review evidence for human approval.
Evidence: independent replay passed 104 governance tests and static checks; original SELF receipts and report are preserved.
Impact: task metadata only; no push, PR, merge or cleanup has occurred.
Refs: .task/feature-goal-continuity.md; .task/reviews/goal-continuity.json
Why: give the reviewer a fixed candidate that includes the latest main baseline.
Evidence: original task-sync output confirms the baseline and exact component checkout.
Impact: task evidence only; policy and template remain the tested version.
Refs: .task/feature-goal-continuity.md
Why: make the approved supplement reviewable with exact local evidence and an explicit next-task recommendation.
Evidence: 104 governance tests and documentation/receipt checks passed; read-only Dev and Documents PR inventory is recorded as SELF.
Impact: task metadata only; remote delivery and human acceptance remain pending.
Refs: .task/feature-goal-continuity.md
Why: validate the approved policy supplement on the current authoritative baseline.
Evidence: task-sync completed and its original SELF receipt is in the task card.
Impact: task metadata only.
Refs: .task/feature-goal-continuity.md
Why: preserve project direction across tasks and require grounded next-task recommendations.
Evidence: the generated task-card regression fails before the template update and passes afterward; original SELF receipts are in the task card.
Impact: document the planning entrypoint and extend task records without granting new-task execution rights.
Refs: .task/feature-goal-continuity.md; policy/delivery.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-goal-continuity.md; R0=b6974fa0d6fba0d28984fcfcb4418c541b83f915.
Impact: task metadata only; the feature workspace starts at b6974fa0d6.
Refs: .task/feature-goal-continuity.md
Why: Branch protection requires main in head; the synced combination
was retested and the receipt belongs to the card.
Evidence: make test exit=0 at c2e5de0d after syncing to main 42f5ac4.
Impact: Task card only.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=42f5ac4b763fcbfaf9490bb8943c970cb0f4d293.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: WP1/WP4 landed through the native/squad/backend chain; the card
records scope rulings and evidence.
Evidence: CI success on #18/#17/#71; make test exit=0 at fa0e30bd.
Impact: Task card only.
Why: Increment three landed across the chain (native #18, squad #17,
backend #71); Dev pins must point at those merged component main
heads so the tested combination is the released one.
Evidence: check-pins exit=0; native c5b9dca, squad fc9620e and
backend f0b0db9 are direct merge commits on their component mains.
Impact: Three gitlinks.
Refs: Agent-Native PR #18; Agent-Squad PR #17; Agent-System-Backend PR #71
Why: The pin cascade (#17, #69, #16, #70, #230) is part of the
delivery record; the card reflects the current merged pins.
Evidence: all five PRs merged; Dev pins at native c2befaf, squad
a75d359, backend d34c2e8; make test exit=0 at 3f824790.
Impact: Task card only.
Why: The Dev-level pin combination (native c2befaf, squad a75d359,
backend d34c2e8) passed make test; the receipt belongs to the card.
Evidence: make test exit=0 at 3f824790; check-pins exit=0.
Impact: Task card only.
Why: Squad PR #16 and Backend PR #70 completed the pin cascade;
Dev's squad and backend pins must point at those merged heads for
check-pins to verify the tested combination.
Evidence: a75d359 is the #16 merge on squad main; backend main head
is the #70 merge; backend CI passed before each merge.
Impact: Two gitlinks.
Refs: Agent-Squad PR #16; Agent-System-Backend PR #70
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=9c9483ac54ff5355c86824ac94097e65e59dcb5d.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: Library PR #17 and Backend PR #69 are merged; the Dev pins must
point at the merged component main heads (native c2befaf, backend
fe0c5a4) so the tested combination is the released one.
Evidence: both pins are direct merge commits on their component
mains; backend CI passed at 4075cc6 before its merge.
Impact: Two gitlinks plus the task card evidence records.
Refs: Agent-Native PR #17; Agent-System-Backend PR #69
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-rdm-phase-plan.md(already-complete) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The close scan only folds completed cards; the plan PRs are
approved for merge.
Evidence: Documents PR #41 and Dev PR #229 open at b8eaa16/2b1d949.
Impact: Task card only.
Why: The card and the PR description are the same document; links and
the sync record belong to the delivery record.
Evidence: Documents PR #41 and Dev PR #229 open; task-sync already up
to date at bc3f74f8.
Impact: Task card only.
Why: The evidence gate writes command output through make evidence;
commit it before the next capture so sync sees a clean tree.
Evidence: make test exit=0 at e698c646 (receipt in the card).
Impact: Task card only.
Why: Register the docs-only planning task and point the documents
gitlink at the phase-plan commit on its feature branch.
Evidence: task card carries the precheck receipt; documents commit
b8eaa16 holds the proposal.
Impact: Task card plus documents gitlink; no code changes.
Refs: docs/proposals/2026-10-07-rdm-phase-plan.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-phase-plan.md; R0=df2b72b4803a17ef1b725c3125a31529f15f3272.
Impact: task metadata only; the feature workspace starts at df2b72b480.
Refs: .task/feature-rdm-phase-plan.md
Why: Backend PR #69 and its test receipt join the delivery record.
Evidence: backend go vet + full go test ok at the backend branch head.
Impact: Task card only.
Why: preserve the independent audit of archived receipts and completed workspace disposal.
Evidence: SELF review verifies 29 receipt digests, unchanged failed-test originals and current Git cleanup state.
Impact: task records only; no code or component changes.
Refs: PR #227; .task/reviews/iterative-delivery-closure.json
Why: close the task with actual CI, merge and cleanup records and restore receipt integrity from preserved originals.
Evidence: original SELF receipt digests validate; the recorded red-green integrity check traces and repairs three metadata-substituted outputs.
Impact: archived task record only; code and component pointers are unchanged.
Refs: PR #227; .task/archive/feature-iterative-delivery.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-iterative-delivery.md(PR#227) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: keep the task card and PR body on the same authoritative record.
Evidence: the PR creation receipt records PR 227 and its exact source/base commits.
Impact: task metadata only; CI will verify this final PR head.
Refs: .task/feature-iterative-delivery.md; PR #227
Why: preserve the required current-base check before publishing the reviewed candidate.
Evidence: task-sync refreshed origin/main and materialized the pinned combination.
Impact: task evidence only; the resolved review fix is unchanged.
Refs: .task/feature-iterative-delivery.md
Why: archived task cards change directory and must retain an unambiguous policy reference.
Evidence: review finding 1, focused red-green proof and 104 passing governance tests are preserved in the task card.
Impact: use a repository-root text reference; record the completed review and its resolved finding.
Refs: .task/feature-iterative-delivery.md; .task/reviews/iterative-delivery.json
Why: The card tracks the WP increments; library PR #17 and its test
receipt belong in the record.
Evidence: agent-native go vet + 24-package go test ok at 9758a8d.
Impact: Task card only.
Why: present a fixed candidate with current test evidence and explicit remaining gates.
Evidence: task-sync confirmed origin/main and local full tests passed; receipts are retained in the task card.
Impact: task metadata only; implementation is unchanged from the tested candidate.
Refs: .task/feature-iterative-delivery.md
Why: preserve test and build evidence before the required clean-tree review synchronization.
Evidence: make test and make build completed on 9454819; the recorded sync refusal preserves the uncommitted-evidence check.
Impact: task evidence only.
Refs: .task/feature-iterative-delivery.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-n1.md; R0=2147d5cb6566c301eaea3c65448bdda873093aea.
Impact: task metadata only; the feature workspace starts at 2147d5cb65.
Refs: .task/feature-agent-stack-n1.md
Why: validate iterative delivery against the latest authoritative component combination.
Evidence: task-sync receipt in the task card records the actual merge and component materialization.
Impact: task evidence only; tests will run on this fixed candidate.
Refs: .task/feature-iterative-delivery.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2147d5cb6566c301eaea3c65448bdda873093aea.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-n1q1i1-plans.md(already-complete) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The close scan only folds completed cards; the plans PRs are open
and the results section is filled.
Evidence: Documents PR #40 and Dev PR #226 open at e935713/46904b5.
Impact: Task card only.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-iterative-delivery.md; R0=f394bcd93bc813433203c5281c79de6865c40944.
Impact: task metadata only; the feature workspace starts at f394bcd93b.
Refs: .task/feature-iterative-delivery.md
Why: The card is the same document as the PR description; PR links
and the results section belong to the delivery record.
Evidence: Documents PR #40 and Dev PR #226 are open.
Impact: Task card only.
Why: Capture mode wrote the receipt only; import appends it to the
card so the completion declaration has its test section.
Evidence: receipt_sha256 recorded in the card evidence block.
Impact: Task card only.
Why: Register the docs-only planning task and point the documents
gitlink at the proposal commit on its feature branch.
Evidence: task card carries the precheck receipt; documents commit
e935713 holds the proposal.
Impact: Task card plus documents gitlink; no code changes.
Refs: docs/proposals/2026-10-07-agent-stack-n1q1i1-plans.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-agent-stack-n1q1i1-plans.md; R0=f394bcd93bc813433203c5281c79de6865c40944.
Impact: task metadata only; the feature workspace starts at f394bcd93b.
Refs: .task/feature-agent-stack-n1q1i1-plans.md
Why: the results fill was pushed after PR #224 merged; carry it on the close branch instead.
Evidence: same text as branch commit 767744a; GATE runs cited within.
Impact: task metadata only.
Refs: .task/archive/fix-ext-5-wide-cols.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-ext-5-wide-cols.md(PR#224) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: backend e7fb276 fixes the EXT-5 review findings; pin it and keep the verification row with it.
Evidence: SELF receipt exit=0 (full make test green); backend PR #68 CI pending as GATE.
Impact: modules/backend gitlink 727f370 -> e7fb276; task card row.
Refs: .task/fix-ext-5-wide-cols.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-ext-5-wide-cols.md; R0=c06da5735904e63db4cbcdb75b3b10b48aeffc32.
Impact: task metadata only; the feature workspace starts at c06da57359.
Refs: .task/fix-ext-5-wide-cols.md
Why: the task card is the primary record; the merged card had an empty results section.
Evidence: summaries reference the SELF rows above and GATE CI runs (backend #67, Dev run 975).
Impact: task metadata only, on the close branch.
Refs: .task/archive/feature-ext-5-host-parse.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-5-host-parse.md(PR#222) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: make test does not compile examples/; the EXT-5 Host method requires the example fake to keep compiling.
Evidence: SELF receipt; example.com/agent-system-plugin-rdm ok.
Impact: task metadata only.
Refs: .task/feature-ext-5-host-parse.md
Why: documents has no CI; the diff-check is its verification gate.
Evidence: SELF receipt; diff --check clean, two documents commits and one backend commit listed.
Impact: task metadata only.
Refs: .task/feature-ext-5-host-parse.md
Why: completion claims require tool-written evidence (AGENTS.md).
Evidence: SELF receipt appended by make evidence; full suite green incl. ui 103 tests and agent-command.
Impact: task metadata only.
Refs: .task/feature-ext-5-host-parse.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ext-5-host-parse.md; R0=840f8f96d184b8ecd6c3e84951ee408aa654a25b.
Impact: task metadata only; the feature workspace starts at 840f8f96d1.
Refs: .task/feature-ext-5-host-parse.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ui-pin-align.md(PR#220) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the umbrella pinned 2cb1496, a commit on ui's feature/governance-docs
branch rather than main history, so the material-12 check (Dev gitlink equals
the ui tag commit) would fail the moment the owner tags v0.1.0.
Evidence: make test on the re-pinned combination (recorded via make evidence
on the task card).
Impact: modules/ui gitlink 2cb1496 -> 27d5adb (ui main tip, an ancestor);
all four sub-repo pins now sit on their repos' main history.
Refs: .task/feature-ui-pin-align.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-ui-pin-align.md; R0=e2eee6f514a376aae87b79586a95b8bfd3d944a3.
Impact: task metadata only; the feature workspace starts at e2eee6f514.
Refs: .task/feature-ui-pin-align.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-finish-guard-fixes.md(PR#217) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-finish-guard-fixes.md; R0=4edec763fff1b8239e203dc9106f16a241ca343d.
Impact: task metadata only; the feature workspace starts at 4edec763ff.
Refs: .task/feature-finish-guard-fixes.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-governance-reliability.md(PR#213) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the owner authorized conflict-free integration and safe worktree cleanup after verification.
Evidence: final fixed combination passes make test and make build; full outputs and review replay records are in the task card.
Impact: authorization and evidence metadata only; no source or component change.
Refs: .task/feature-governance-reliability.md
Why: bind the reviewable governance repair to the synchronized candidate and related component PRs.
Evidence: tool-generated SELF make test and make build output plus independent repair REPLAY records in the task card.
Impact: task metadata only; platform protection and deployment remain owner-controlled.
Refs: .task/feature-governance-reliability.md
Why: main advanced with merged-task-name and legacy evidence guards during this task.
Evidence: SELF 44 lifecycle regressions pass after resolving both hunks; independent review repairs are recorded in the task card.
Impact: retains both task-start protections and the stronger JSON/legacy receipt reader, without rewriting either branch history.
Refs: Dev PR #211 and #212; .task/feature-governance-reliability.md
Why: independent review found shared submodule metadata risk, quoted header leakage, stale JSON receipt blindness and missing abandon coverage.
Evidence: SELF 92 governance regressions pass; the original review receipt and replay output are recorded in the task card.
Impact: preserves external component worktrees, handles both evidence formats and adds targeted failure-path coverage; no product behavior changes.
Refs: .task/feature-governance-reliability.md; .task/reviews/governance-reliability.json
Why: retain complete tool-generated local verification for the governance repair candidate.
Evidence: SELF task-sync, 75 governance tests, full make test, make build and syntax checks are recorded in the task card.
Impact: evidence metadata only; product and gate implementations are unchanged.
Refs: .task/feature-governance-reliability.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-task-start-merged-guard.md(PR#211) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: cleanup, component synchronization, receipt recording and credential handling could contradict the documented development boundaries.
Evidence: SELF 75 isolated governance tests and source checks are captured in .task/feature-governance-reliability.md; combination and CI verification follow.
Impact: hardens local task and CI tooling, aligns policy and component documentation, and adds continuous regression tests without changing product behavior.
Refs: .task/feature-governance-reliability.md; policy/governance.md; policy/platform-admission.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ext-1-inproc-handler.md(PR#209) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the completion claim needs a make test evidence row whose tested HEAD is this branch, not the discarded template commit.
Evidence: make evidence captured make test exit 0.
Impact: task card only.
Refs: PR #207
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the recreated branch needs its own evidence rows for the checks that already passed on the merged implementation.
Evidence: precheck, cmdbus/rag/app/extension tests, downstream example, and boundary lint, written by make evidence.
Impact: task card only.
Refs: PR #207
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-start recreated feature/ext-1-inproc-handler on main and replaced the card already merged in PR #207 with an empty template.
Evidence: restored content matches 63a62a79ac; no product code change.
Impact: this branch tip keeps the merged card instead of deleting it.
Refs: PR #207
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-evidence-driven-gates.md(PR#205) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: evidence rows are written before their containing card commit, so a naive
HEAD-diff would flag every task's evidence as stale and train people to ignore
the warning.
Evidence: bash -n clean; the live task-sync for this task exercises the new
path (warning fires only when a non-.task diff follows an evidence row's HEAD).
Impact: scripts/task.sh cmd_sync now excludes .task from the staleness diff;
AGENTS.md wording aligned (three-output evidence via make evidence).
Refs: task card evidence table; guidelines verification.md tool-written rule.
Why: facts-verify failed closed on first run — the real token file stores keys
as markdown bullets ("- ACCESS_TOKEN=..."), so the ^-anchored sed match in the
registry never fired; the earlier manual probe had used grep (anywhere-in-line)
and passed, which is exactly the drift the registry re-verification exists to
surface.
Evidence: re-run recorded in the task card — [facts-verify] total=4 pass=4
fail=0 (sha256 919401b838d77909), after fixing the sed pattern to
"^[ -]*ACCESS_TOKEN=".
Impact: policy/facts.md F2 command now matches the actual file shape and the
fact text documents the file format; no behavior change elsewhere.
Refs: task card evidence table (failed run sha256 6c61e644395042fa, then pass).
Why: the make-variable pass-through re-quoted CMD and broke any command
containing quotes (caught by the redaction self-test before it could run).
Evidence: redaction self-test now records 'token <redacted> hello' with quoting
intact (row sha256 aae6a895); negative 'false' case earlier recorded exit=1
row and propagated rc — both in the task card evidence table.
Impact: CMD now travels via environment (CMD="..." make evidence); SRC/TAIL
stay make variables; usage strings updated in Makefile/AGENTS.md/task.sh
template comment.
Refs: task card evidence table; guidelines draft.10 tool-written-evidence rule.
Why: declarations were passing as capability; hand-transcribed outputs flowed
through cards and PR bodies as if they were execution evidence, and stale
external facts (e.g. the dead git-panel host) kept being trusted until burned.
Evidence: guidelines draft.10 (PR Development-Guidelines#4, merged af199ee)
pinned here; policy/facts.md F1-F4 each re-verified on 2026-10-05 before
registration (endpoint version, token HTTP 200 via header only, SSH ls-remote,
dead-host negative probe); scripts syntax-checked (bash -n); tool self-tests
and make test recorded in the task card via the new make evidence.
Impact: new AGENTS.md section (SELF/REPLAY/GATE, tool-written evidence,
replay-on-review, zero-trust facts, honest-empty); make evidence/facts-verify;
precheck gains [hooks]/[facts], task-sync gains stale-evidence-HEAD warning;
task-start cards now embed the evidence table; gitlink advances to draft.10.
Refs: task card .task/feature-evidence-driven-gates.md; guidelines CHANGELOG
0.1.0-draft.10.
Why: task-sync asks for the formal acceptance evidence on the task card before the Dev PR is reviewed.
Evidence: make test passed in the task worktree, including frontend vitest 17 files / 82 tests and ui 103 tests.
Impact: task card only.
Refs: .task/fix-preview-expanded-hidden.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appends the checkpoint row at end of file, and the results section sat after the table, so the row rendered outside it.
Evidence: the row values are unchanged from the sync commit ce46543.
Impact: task card markdown only.
Refs: .task/fix-preview-expanded-hidden.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Expanding the preview left the conversation column in the row because .main { display: flex } overrode the UA [hidden] rule. Frontend PR #47 restores that hide and centers a wide docx page.
Evidence: Frontend vitest previewfit + design-guard 10 passed. Headless Chromium 1512x900 shows expanded .main display:none, preview slot 1184px, page center delta 0; at 420px and 640px the wrapper stays column-width and the page stays left-aligned.
Impact: modules/frontend 0a0b556 -> 50c7244. Narrow-column fit scaling is unchanged. previewfit still returns 1 when available width is <= 0.
Refs: .task/fix-preview-expanded-hidden.md; https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/47
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-pg-boolean-columns.md(PR#185) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Backend PR #62 dependency is now merged and the Dev branch is
synced with main; the card needs the closing evidence trail.
Evidence: backend 29 packages ok; make test all green at 8a91cded.
Impact: task card only.
Refs: PR #185
Why: Backend PR #62 merged as 3f438b9 (superseded by #64/#65); task card
requires re-pinning the gitlink to the backend merge commit before the
Dev PR can merge.
Evidence: backend go vet + go test ./... -count=1 all ok (29 packages);
merged tree content-identical to backend main.
Impact: modules/backend 685bd0d -> 3f438b9.
Refs: .task/fix-pg-boolean-columns.md
Why: The archive commit moved the card before the status and PR link were written into the file.
Evidence: The working tree now records status 已完成 and PR #200 against merge 795bff20f3.
Impact: archived task card text only. No code or submodule change.
Refs: Agent-System-Dev#200
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: PR #200 merged with a title that does not contain "from feature/preview-scroll-consolidate into main", so task-close could not see the card.
Evidence: merge 795bff20f3 is origin/main and the card is now archived with status backfilled.
Impact: .task card moved to .task/archive/. No code or submodule change.
Refs: Agent-System-Dev#200
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appended the checkpoint outside the sync table, and the card still described the pre-sync test run.
Evidence: make test passed after the origin/main merge (frontend 82 tests, ui 103 tests, backend and library tests).
Impact: task card only. No code or gitlink change.
Refs: feature/preview-scroll-consolidate
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The right-hand preview clipped docx instead of scrolling, and a second overlay viewer duplicated FilePreview. Both fixes are already on the module mains.
Evidence: make test passed in the task worktree (boundaries, pins, libs, core, backend, frontend 82 tests, ui 103 tests, agent-command).
Impact: modules/ui moves to 27d5adb (icons #36 and contrast #37). modules/frontend moves to 0a0b556 (preview scroll #46, including contrast #45).
Refs: Agent-System-UI#36, Agent-System-Frontend#46, Agent-System-Dev#196
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-contrast-typography.md(PR#198) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card is the review record, and it still had empty result fields after make test passed.
Evidence: make test exited 0. Frontend 81 tests and UI 103 tests, including contrast-guard. Browser computed styles on the Vite preview confirmed the molv new-task button and the 18px font ramp.
Impact: .task/feature-contrast-typography.md now states the result, the evidence, and the items left out (rem, prefers-contrast, focus ring).
Refs: feature/contrast-typography
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: DESIGN.md and tokens.css have to change in the same pull request, and the host has to consume the new UI and frontend commits for the sidebar button and font-size setting to exist.
Evidence: contrast-guard and both package test suites passed in the linked commits (UI 103 tests, frontend 81 tests). Dev make test follows before review.
Impact: Text floors, text-grade semantic colors, molv sidebar tokens, xs at 11px, and the local font-size setting are now the written rules. §12.1 records the before/after values. Gitlinks move to the contrast-typography commits.
Refs: feature/contrast-typography
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-docx-paper-preview.md(PR#196) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync appends the checkpoint after the results section, so the row rendered as a loose line.
Evidence: the checkpoint values are unchanged and now sit under the sync table header.
Impact: Task record formatting only.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card named the UI and frontend commits but not the pull requests that carry them.
Evidence: UI pull request 35 and frontend pull request 44 are open.
Impact: Task record only. No code or gitlink change.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card is the main record and still had a placeholder where the pull request link belongs.
Evidence: Dev pull request 196, UI pull request 35, frontend pull request 44.
Impact: Task record only. No code or gitlink change.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card still said browser checks and the combined test were pending after both had passed.
Evidence: make test exited 0 in this worktree. The harness measured white paper, black ink, preserved document colors, scale 0.496 at 420px, and transform none at 998px.
Impact: Task record only. No code or gitlink change.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card still named the frontend commit from before the tsbuildinfo follow-ups.
Evidence: modules/frontend HEAD is 9badbb1.
Impact: Task record only. No code or gitlink change.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The frontend branch gained two follow-up commits that stop a typecheck artifact from dirtying the submodule.
Evidence: modules/frontend HEAD is 9badbb1 and git status in that repo is clean.
Impact: The Dev branch records the frontend tip that includes page scaling and the tsbuildinfo ignore. No other gitlinks move.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The preview painted docx pages with the theme background, so black document text was unreadable in dark mode and the page overflowed the narrow column.
Evidence: UI vitest 84 passed and tsc clean at b14c9c0; frontend vitest 81 passed and tsc -b clean at cf6f24e.
Impact: DESIGN.md documents --paper and --paper-ink. Gitlinks pick up the UI and frontend paper-preview commits. Mammoth and fake-docx text fallbacks stay theme-styled.
Refs: feature/docx-paper-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-store-pg-archived-literal.md(PR#194) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the task card is the main record and needs the Dev PR link
alongside the backend PR.
Evidence: Dev PR #194 is open; make test already passed after task-sync.
Impact: task card text only.
Refs: Agent-System-Dev#194, Agent-System-Backend#65
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the default unarchived task list still compared a BOOLEAN column
to the integer literal 0, so GET /api/conversations returned 500 on
the postgres tier after the previous dialect fix.
Evidence: backend PR #65 (8d82408). Before the fix, TestConversationFlagsAndTaskList
on pg1 failed with SQLSTATE 42883; after, go test ./internal/store -count=1
passed on pg1. Dev make test passed on this pin.
Impact: modules/backend gitlink moves to 8d82408. No other surface changes.
Refs: Agent-System-Backend#65
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-store-pg-bool-dialect.md(PR#192) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the backend fix unblocks account management, login and conversation
flags on the postgres tier (1/0 literals and int scans rejected with 42804).
Evidence: backend PR #64 merged; live pg1 CLI verified (reset-password +
user list OK); combined make test green.
Impact: dev pins move to the fixed backend; no other surface changes.
Refs: Agent-System-Backend#64
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-adjust-warn-fix.md(PR#189) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: adjust_args_for_bin strips the leading space of its return while the
rebuilt args keep it, so every rebuild carrying --dsn/--auth compared
unequal and warned that the legacy binary had the flags dropped even when
nothing was dropped — misleading during incident triage.
Evidence: bash -n clean; against the real dev binary the normalized
comparison reports no drop and the flags survive intact; make test green.
Impact: warning now fires only when flags are actually filtered; no
behavioral change to start/deploy.
Refs: PR #188
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-start-keep-db-binding.md(PR#188) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the 2026-10-05 dev outage — a restart with an explicit --addr rebuilt
the start args, and the rebuild branch dropped the persisted --dsn for the
dev env, so the binary resolved auth=auto to off on 0.0.0.0 and the new
listen guard refused to spawn; record_state then persisted the broken exec=
before the health probe, so bare starts kept failing.
Evidence: bash -n clean; sandbox registry with stub binaries — dbref DSN is
re-derived on rebuild (priority CLI > env > dbref), the pre-flight blocks
non-loopback without auth with actionable remedies, immediate-death starts
leave the previous exec= intact, and DSN masking covers all start-path log
lines; make test green.
Impact: dev/prod agent starts keep their DB binding across explicit-arg
rebuilds; failed starts no longer corrupt the registry; static/pg paths get
the same persist-after-probe ordering (pg already had it); no change to
deploy materialization or the binary guard semantics.
Refs: backend 8eda35f (listen guard), runtime/dev history.jsonl 01:23 fail
Why: The feature branch is on main, and the open task card would stay as bookkeeping debt.
Evidence: Dev pull request 186 merged as 090be2404e. The merge subject does not contain the from-branch line, so the automatic scan skipped it.
Impact: The card moves to .task/archive with status filled in. No product code changes.
Refs: .task/archive/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card is the pull request description, and it has to name the child merges and the checks that already passed.
Evidence: Documents 37, UI 34, Core 21, Frontend 43, Native 16, Squad 15, and Backend 63 are merged. Dev is still open.
Impact: The card stays in progress until the Dev pull request merges.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card has to name the commits and the gates that already passed before sync.
Evidence: make test and make build exited 0. config explain refuses 0.0.0.0:8788. serve on 0.0.0.0:18799 exited 1 and left no database directory.
Impact: The card still says the work is in progress until the pull requests merge.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The incremental build info commit has to be the gitlink Dev records.
Evidence: modules/frontend is eb6502f. make build produced bin/agent-system.
Impact: The parent branch names the same frontend commit the worktree built.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The shared types dropped a spare export so the knip ratchet stays at its baseline, and every container must name those commits.
Evidence: core 0b5c774, ui 6b2589c, frontend 13a1c63, backend c05832d. UI knip 55 and frontend knip 43.
Impact: Gitlinks move together. JSON field names are unchanged.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The listen guard reads auth and host policy from config before the database opens, so app depending on config is a real edge.
Evidence: make test stopped in lint-boundaries on backend/app backend/config. The edge is now in the baseline.
Impact: New imports still fail the ratchet. This one records the startup guard's dependency.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev's agent-native moved for message shaping, so squad and backend have to follow or check-pins fails.
Evidence: Squad 5a57636 and backend include that pin. make test previously stopped at test-pins on this mismatch.
Impact: The parent, backend, and squad all resolve agent-native 3a110a7.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Empty innerHTML clears were flagged because the space matcher could backtrack past the quotes. The child tests now keep that whitespace inside the lookahead.
Evidence: Frontend vitest 78 passed. UI html-sinks passed. Child commits are ui 5f8308a and frontend 02cebc0.
Impact: The parent pins match the ratchet that allows clearing a node before appending sanitized children.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card still had placeholders for authorization, scope, and the compatibility note that reverse proxies need allowedHosts.
Evidence: The card names the new message and observation fields and the items that stay out of this task.
Impact: Reviewers can use the card as the PR description without reconstructing the scope.
Refs: docs/records/2026-10-04-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The research record, HTML cleaning, listen guard, secret store, and context controls land together, and the parent pointers have to name those commits.
Evidence: Child commits are core bd63223, agent-native 3a110a7, ui d76a8e6, frontend 36b92ed, documents f3f823e, backend 42cca8f. svc.sh forwards the listen switches and info prints them.
Impact: A reverse proxy or a LAN hostname needs allowedHosts or an unauthenticated host check returns 403. Startup moves raw API keys into the secret table after a settings snapshot.
Refs: .task/feature-sillytavern-review.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: advance the backend gitlink to the boolean-column fix so the dev
runtime's PostgreSQL tier stops failing every conversations endpoint.
Evidence: backend branch pushed (685bd0d); make test run recorded in
the task card.
Impact: gitlink-only change in Dev; combined verification via make test.
Refs: .task/fix-pg-boolean-columns.md
Why:
The dev runtime switched to the PostgreSQL tier today and every
conversation endpoint started returning 500. Migrations define
conversations.pinned/archived/allow_cross_read/cross_private and
users.must_change_password/is_admin as BOOLEAN on PostgreSQL but
INTEGER on SQLite, while the store layer compared them with 0/1
literals, scanned them into int, and wrote them via boolInt().
Under pgx these fail with 42883 (operator does not exist: boolean =
integer), bool encode errors, or 42804 (column is of type boolean but
expression is of type integer).
Evidence:
- main 4fd03ee with AGENT_PG_TEST_DSN: TestConversationFlagsAndTaskList
and TestAdminAccountsAndSessions fail with the errors above; live
GET /api/conversations returned "operator does not exist: boolean =
integer (SQLSTATE 42883)".
- this branch: full ./internal/store suite green on the PostgreSQL tier
(AGENT_PG_TEST_DSN against a scratch database), pgbus green,
make test-backend green on the SQLite tier.
- scan into *bool and Go bool parameters are cross-dialect: pgx encodes
bool natively; database/sql converts bool<->0/1 for SQLite.
- pre-existing and out of scope: ./internal/runmgr PG integration tests
fail on main too (gin_trgm_ops invisible inside the search_path
isolation schema, 42704).
Impact:
Conversations list/detail/flags and user auth-state reads/writes now
work identically on both storage tiers; SQLite behavior is unchanged
(same tests green). Boolean columns that are INTEGER in both dialects
(hitl_cards.resolved, profiles.builtin, activity_cards.pinned) keep
boolInt().
Refs: task card .task/fix-pg-boolean-columns.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-settings-dotted-keys.md(PR#181) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the task card must show that Backend #61 is on main and the Dev branch was retested after syncing.
Evidence: make test exited 0 at 2026-10-04T13:45:06Z on the pin of fd17011.
Impact: documentation only.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the Dev branch must record the Backend main commit that contains the settings fix, not the unmerged feature tip.
Evidence: Backend #61 merged as fd17011.
Impact: modules/backend gitlink moves from d90b9c0 to fd17011. Behavior is the merged fix.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-db-bind.md(PR#182) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: completion statement carries precheck/task-sync/test evidence.
Evidence: make test exit 0 at head ecfed7b; functional evidence in the card.
Impact: card-only; PR description mirrors this card.
Refs: .task/feature-svc-db-bind.md
Why: beyond database binding, services needed a way to switch the JSON config
file they run with and have the new config take effect promptly; hand-editing
exec= risks restarting a service into an invalid config.
Evidence: in the task worktree with a real agent binary -- a config with an
unknown key is rejected by the binary's strict schema check before any state
change; a valid file binds via --config in exec= + conffile= (survives
record_state rewrites), restarts the running service, and the config's dsn
verifiably drives the process (wrong-password variant failed PG auth in the
log; correct variant connected and created 21 tables); editing the file and
re-running 'config <same file>' re-validates and restarts (pid changes);
'--clear' removes both the flag and conffile; db and config coexist in exec=;
view mode shows masked JSON content plus 'config explain' effective values
with masked dsn; list DB column also resolves dsns that live only inside the
config file. Full log in the task card.
Impact: new service-level action 'svc.sh <name> config [file | --clear]
[--no-restart]' for agent services; config-file content snapshots (masked,
--reveal to show) in info; a config-file line in status; conffile persisted
in svc.env. No agent binary changes.
Refs: task card .task/feature-svc-db-bind.md (same doc as PR #182);
docs/svc.md sections 2/4.5/4.6/6/10.1
Why: acceptance of the settings fix is the deploy log and the live key checks, and that evidence belongs on the task card.
Evidence: dev@8b63e2b logged normalized 4 dotted keys in 2 scopes and registered 1 Tavily key. The web_search probe returned ok.
Impact: documentation only. The backend pin is unchanged. Merging stays with the owner.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: info showed services and postgres instances but no service-to-database
correspondence, and switching an agent service to another database required
redeploying with a hand-built DSN. While wiring this up, adjust_args_for_bin
was found matching Go flag help with '--dsn' although Go prints '-dsn', so
deploy-built --dsn/--auth args were silently dropped on current binaries.
Evidence: full E2E in the task worktree with a real agent binary and a real
PostgreSQL 18 instance -- 't-app db bpg' persisted exec=/dbref, auto-restarted
(dbref survives record_state rewrites), and the agent created 21 tables in the
bound database; 'db bpg --db t2' auto-created and switched databases (21
tables in t2); '--clear' returned the service to embedded SQLite; --no-restart
and error paths behave; list gains a DB column, status a database line, info a
reverse bound-services line; legacy deployments without dbref resolve by DSN
host:port; single-dash detection proven with positive and negative cases;
regressions list/db dsn/db ls/info/history/--help pass; make test exit 0.
Full log in the task card.
Impact: new service-level action 'svc.sh <name> db [pg [--db X] | --clear]
[--no-restart]' for agent services (bind/switch/unbind/view), DB column in
list, binding lines in status/info, dbref persisted in svc.env, auto database
creation when the instance runs, and the adjust_args_for_bin fix restoring
deploy --dsn/--auth on current binaries. No agent binary changes.
Refs: task card .task/feature-svc-db-bind.md (same doc as the PR); docs/svc.md
sections 4.5/6.1/6.2/10.1
Why: the task card is the review record and needs the Dev and Backend PR links.
Evidence: Dev #181 and Backend #61 exist.
Impact: documentation only.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the acceptance sync needs the verification result on the task card before review.
Evidence: make test exited 0 after task-sync onto 3836ea88e3.
Impact: documentation only. The backend pin is unchanged.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: dotted setting writes were stored as unread keys, and secret pools were returned in clear text.
Evidence: Backend go test ./... at d90b9c0. Dev make test follows this pin.
Impact: the dev branch tracks Backend fix/settings-dotted-keys until that PR merges, then the pin moves to main.
Refs: fix/settings-dotted-keys
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the final task-sync before merging PR #179 committed its checkpoint row
locally (43a1514) but was not pushed before the merge, so the row never
reached the archived card.
Evidence: row | 同步前验收 | 1263e7f7d1 | bfc2208cbd | 2026-10-04T12:49:36Z |
appended next to the 12:42:58Z row in .task/archive/feature-svc-info.md.
Impact: card-archive-only change on this close branch; no code.
Refs: PR #179; .task/archive/feature-svc-info.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-svc-info.md(PR#179) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the completion statement must carry precheck / task-sync / test evidence.
Evidence: make test exit 0 on tested_head=106ef07ef0 (full suite incl. ui 79
tests and agentcmd); functional evidence logged in the card.
Impact: card-only change; PR description mirrors this card.
Refs: .task/feature-svc-info.md
Why: svc.sh could show a service table (list), per-instance DB names one at a
time (db ls), and per-service status, but had no single view answering "what
is running, which databases exist, and what is configured" -- the questions
asked when inspecting or handing over a machine.
Evidence: exercised in the task worktree runtime -- empty-state report; fake
agent/static/postgres registrations proving masking (exec DSN password,
password=, SVC_TAVILY_KEYS -> ***, non-secret values verbatim; --reveal shows
plaintext); a real postgres instance (db create r-pg --port 18901, start,
extra orders db, one backup) whose info section lists inner databases with
sizes, pgdata size and backup stats; regressions list/history/--help/help
lifecycle/make svc-info; info stdout carries the full report (stderr 0 bytes)
so it can be redirected as a snapshot. Full log in the task card.
Impact: new read-only `scripts/svc.sh info [name] [--tag T] [--reveal]`
command (also `make svc-info`): service table + running summary, postgres
instances incl. inner databases, per-service svc.env content snapshots plus
global .svc.env / --config / exported SVC_* vars, and recent events. Secrets
are masked by default. No deploy/lifecycle/db-ops behavior changes; `info`
becomes a reserved service name; docs/svc.md gains section 6.2 (former
6.2-6.4 shifted to 6.3-6.5).
Refs: task card .task/feature-svc-info.md (same doc as the PR); docs/svc.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-code-orchestration.md(PR#177) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync appended the checkpoint rows after the results section, so the card no longer read as one table.
Evidence: the three sync rows now sit under the existing header.
Impact: documentation only.
Refs: feature/code-orchestration
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the pin commit predates the full suite, and the card should name the commands that actually passed.
Evidence: make test and make build exited 0 in the feature worktree.
Impact: documentation only.
Refs: feature/code-orchestration
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the shared Python host and the MCP connect change landed in the libraries the product already calls.
Evidence: native, squad, and backend feature commits are recorded on the task card.
Impact: gitlinks move to those commits. Code orchestration stays off unless the setting is turned on.
Refs: feature/code-orchestration
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The batch needs an explicit authorization, the default-off switch, and the host limits before the libraries change.
Evidence: The card names the caps, the forbidden tools, and the MCP behaviors that stay out of scope.
Impact: Reviewers can match the later commits to this card. No code change.
Refs: feature/code-orchestration
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-durable-rewind.md(PR#175) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The card still said combined verification was pending after make test, make build, and the mock rewind check.
Evidence: Dialog listed notes.txt to restore and note.txt to skip; confirm removed notes.txt and appended the system note.
Impact: Reviewers see the browser check on the same card that becomes the PR body.
Refs: feature/durable-rewind
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: tool intent, file checkpoints, fallback, and span names landed in the libraries and the product shell.
Evidence: native, squad, core, backend, frontend, and ui feature commits are recorded in the task card.
Impact: gitlinks move to those commits. Default fallback stays empty and replay stays never.
Refs: feature/durable-rewind
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-permission-hooks.md(PR#173) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card has to point at the Dev pull request before the sync checkpoints.
Evidence: Dev pull request 173 is open.
Impact: No code change.
Refs: feature/permission-hooks
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Session mode, confirmation detail, and the shared tool gate now exist in the libraries the product builds.
Evidence: make test passed. Plan mode rejects write_artifact while the default mode still runs it. Hook adapters match the old stop, reminder, and deny counts.
Impact: Empty permission mode keeps today's profile policy. There is no mode that skips every confirmation.
Refs: feature/permission-hooks
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-runstate-shell.md(PR#171) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Acceptance needs the pin SHAs, the test evidence, and the mock composer check on the card.
Evidence: make test and make build passed on c0b8cf2. The mock composer switched to 排队 and back to 发送.
Impact: No code change.
Refs: feature/runstate-shell
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The conversation screen has to import the phase type so the unused-export ratchet stays at the baseline.
Evidence: frontend 5961b6e, knip 43.
Impact: No other pin moves.
Refs: feature/runstate-shell
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The composer phase and the SSE retry interval have to land together so a reconnect shows 重连中 and still receives the missed events.
Evidence: frontend dcf9b6b, backend 7bef7a4.
Impact: No change to permissions, models, or the already merged live-bubble fix.
Refs: feature/runstate-shell
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-context-engineering.md(PR#169) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The review checkpoint should sit in the sync table with the acceptance row.
Evidence: tested_head 656016a at 2026-10-03T16:25:02Z.
Impact: No code change.
Refs: feature/context-engineering
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appends the checkpoint after the card body, where it is not part of the table.
Evidence: The row records sync_base 02b5cb8286 and tested_head b6dba58.
Impact: No code change.
Refs: feature/context-engineering
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Acceptance needs the pin SHAs and the test evidence on the same card that will be archived.
Evidence: make test and make build passed on 658c2fa.
Impact: No code change.
Refs: feature/context-engineering
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Tool-result clearing, folded reminders, and character truncation land in the native loop and the product path together.
Evidence: agent-native 6fd1d44, agent-squad 4d53450, backend b2dc9a7.
Impact: Default context window stays 32000 characters. Empty tool selection still exposes the profile's tools.
Refs: feature/context-engineering
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-architecture-baseline.md(PR#167) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Acceptance evidence has to live on the card before review and merge.
Evidence: make test and make build both exited 0. An injected architecture edge fails.
Impact: Task card only.
Refs: feature/architecture-baseline
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: New cross-layer imports and unused exports could land unnoticed, and confirm-waiting reused the success color.
Evidence: bash scripts/lint-boundaries.sh passed, including a probe that a new edge fails. Both design-guard tests passed. Knip counts stay at the baselines.
Impact: make test-boundaries now checks architecture edges. Frontend and ui test targets also run the knip ratchet.
Refs: feature/architecture-baseline
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-llm-robustness.md(PR#165) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Acceptance evidence has to live on the card before review and merge.
Evidence: make test and make build both exited 0 after pinning native 9f5751c.
Impact: Task card only.
Refs: feature/llm-robustness
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The direct path's default retry only works once every repo builds the same model stream.
Evidence: native 9f5751c, squad 9efce79, backend 93adb93.
Impact: Three gitlinks move. No product UI change.
Refs: feature/llm-robustness
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card has to state the authorized scope before the pins move.
Evidence: Precheck READY at 8078a3582c.
Impact: Task card only.
Refs: feature/llm-robustness
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pi-zcode-second-pass.md(PR#163) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Acceptance evidence has to live on the card before review and merge.
Evidence: make test and make build both exited 0 after pinning documents 847f681.
Impact: Task card only.
Refs: feature/pi-zcode-second-pass
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The stack proposal and the durable note need the v1.0.1 correction before later batches change code.
Evidence: Documents 847f681 adds the second-pass record, the durable correction, and proposal section 2.4.
Impact: Only the documents gitlink moves. No library or product code.
Refs: feature/pi-zcode-second-pass
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-live-run-visibility.md(PR#161) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The submodule pull requests landed as merge commits, and the parent pin must include those tips so the composed tree keeps both this fix and the commits that arrived on submodule main.
Evidence: Frontend main is 8be98b4 (contains e4ca2ac); Backend main is 28ccb74 (contains 51b1ff6).
Impact: Dev #161 now pins the commits that are already on each submodule main.
Refs: Frontend #38, Backend #54, Dev #161
Why: The task card is the review record, and it needed the three pull request links once they existed.
Evidence: Frontend #38, Backend #54, and Dev #161 are open.
Impact: Task card only.
Refs: Dev #161
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Sending a message left the composer on 发送 and hid the live process, because the user message now carries the run id and a refresh had no cursor to replay an open run.
Evidence: make test passed in the worktree. A mock server showed the stop and queue buttons within 250ms, the reply growing before it settled, and the in-progress turn restored after switching away and after reload.
Impact: Frontend and backend gitlinks only, plus this task card. No core contract change.
Refs: Frontend fix/live-run-visibility, Backend fix/live-run-visibility
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-pi-durable-borrow.md(PR#159) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card is the same document as the review request, and the pull request links belong on it once they exist.
Evidence: Documents #35, Backend #53, Frontend #37, Dev #159.
Impact: Task card only. Status stays in progress until the owner merges.
Refs: feature/pi-durable-borrow
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appends the checkpoint after the card body, which leaves the sync record outside the table.
Evidence: The review checkpoint is sync_base a5c9fd3385, tested_head e8acda76ef, checked_at 2026-10-03T14:39:41Z.
Impact: Task card formatting only.
Refs: feature/pi-durable-borrow
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card has to carry the precheck, task-sync, and test evidence before review.
Evidence: make test and make build exited 0 on 9e46605. task-sync reported sync_base a5c9fd3385 and tested_head 9e466059b9.
Impact: Task card only.
Refs: feature/pi-durable-borrow
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The review and the four recovery fixes live in the documents, backend, and frontend repositories. The Dev pin is what the combined test runs.
Evidence: Documents 6340900, backend 44aa764, frontend 763c4b4. Each submodule branch is feature/pi-durable-borrow, based on that repository's origin/main.
Impact: Gitlinks only. The pins also move documents, backend, and frontend forward to the main commits that landed after the previous Dev pin.
Refs: feature/pi-durable-borrow
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The generated card had empty authorization and scope. The task covers a research record plus four backend recovery fixes, and those limits have to be on the card before implementation.
Evidence: make precheck verdict READY at a5c9fd3385; required reading core/baseline.md and workflows/delivery.md §1 completed.
Impact: Task card only. No product code.
Refs: feature/pi-durable-borrow
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-blueprint.md(PR#151) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the proposal branch has to contain current main before it can land. The owner asked for the open proposal pull requests to be merged.
Evidence: origin/main is 508d216. Documents #34 is merged as 76044b5, same tree as 233dfb54, which this branch already pins.
Impact: the blueprint task card and the documents pin stay. Archived cards follow main.
Refs: Dev #151, Documents #34
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-d1.md(PR#156) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the task card has to name the heads that CI will merge.
Evidence: make test exited 0 on bbffa42. make build version string contains native=d84a67c squad=02c0d6a intent=65aaebc backend=0a9a977.
Impact: task card only.
Refs: D1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev has to record the native head that treats a cancelled stream as aborted, and the squad and backend checkouts that point at it.
Evidence: GOWORK=off go test -count=50 -race ./runtime/llm/ passed on d84a67c.
Impact: gitlinks only. The earlier make test covered the previous pin.
Refs: D1
Why: the acceptance record has to name the heads and the make test result before review.
Evidence: make test exited 0 on e760579. make build version string contains native=33573d0 squad=5e414ff intent=65aaebc backend=5d0097d.
Impact: task card only.
Refs: D1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev has to test the split modules and refuse a core import of a sibling library.
Evidence: bash scripts/lint-boundaries.sh printed boundaries ok. Full make test follows on this pin.
Impact: test-libs runs the intent, native, sqlite, and command modules. The sibling allowlist is empty.
Refs: D1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-r2.md(PR#154) — merge 0a047db verified on origin/main. The merge subject did not match the from-branch pattern, so task.sh close skipped it.
Impact: .task/feature-agent-stack-r2.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card has to carry the make test and make build results before the batch is merged.
Evidence: make test exited 0 and make build wrote bin/agent-system on 8c0dc8d.
Impact: documentation only.
Refs: R2 pin
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: native 855fe41 is the first head whose go.sum covers intent's NFKC import, so the later pins have to move with it.
Evidence: native go test of runtime, adapters, and exec passed; squad and backend vet passed on 855fe41 and 31ee395.
Impact: three gitlinks and the task card move. Product code in Dev is unchanged.
Refs: I4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev must record the intent, native, squad, and backend commits that close this batch so check-pins sees one tree.
Evidence: agent-intent 05e74d8, agent-native 11d1a76, agent-squad 1bb0c3a, and backend a494375 are the feature/agent-stack-r2 heads.
Impact: four gitlinks move and the task card records the batch scope.
Refs: R2 pin
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-stack-r0-r1.md(PR#unknown) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: lint.py imports python-pptx and openpyxl at import time, so installing only python-docx still skipped the layout finding.
Evidence: actions run 680 failed TestLintErrorContinues with lint reason missing after python-docx was present.
Impact: CI installs python-docx, python-pptx, and openpyxl from the Tsinghua index.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The runner image has Python but not python-docx, so TestLintErrorContinues failed after checkout succeeded.
Evidence: Agent-System-Dev actions job 1012 reported ModuleNotFoundError: No module named docx.
Impact: The package comes from the Tsinghua PyPI mirror. Library CI still stops until SUBMODULE_TOKEN is set.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The runner cannot reach github.com, so actions/checkout and setup-node would time out before make test.
Evidence: Go 1.27.1 comes from mirrors.aliyun.com and Node 22.23.3 from npmmirror. Checkout uses the job token and GITHUB_SHA.
Impact: Submodule checkout still requires SUBMODULE_TOKEN. A missing secret fails the job with that message.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The acceptance note would otherwise claim the workflows were only pending, while the intent run already failed cloning the checkout action.
Evidence: Agent-Intent actions run 661 failed after 30s with dial tcp 20.205.243.166:443 i/o timeout.
Impact: Documentation only. No proxy change and no branch-protection change.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-duplication-lesson-records.md(PR#13) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The close branch was behind main, so branch protection would reject it, and both sides had edited the same task card.
Evidence: The archived card keeps main's later sync rows and the close record for PR #126. git diff against origin/main is only that archive move.
Impact: This branch still archives only feature-agent-professional-deliverables.md. Merge stays with the owner.
Refs: feature/card-close-20261001-082349Z
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card still named the previous library commits, and acceptance needs the sync, test, and build evidence on this card.
Evidence: make task-sync at 2026-10-03T10:22:12Z, make test exit 0, make build version 789a6f4 with backend ef0a1be, native 91c1556, squad e928ea3, intent 7f7879b.
Impact: Documentation only. The gitlinks were already committed.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev must record the commits that contain the hold fixes, the offline pin check, and the CI checkout change.
Evidence: intent 7f7879b06b053f0a62746309b79e0e1b9a00f42d, native 91c155618487e21edeb4f1d3cc27e985aae2b0d2, squad e928ea3c0fa649cbbbad22a93a1bc0a12dee5f7d, backend ef0a1bef0f7bee626e59f160be51fb0e5f6aa692.
Impact: The four gitlinks match the open pull request heads. Other pins are unchanged.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: make test downloads Go modules, and the runner cannot reach proxy.golang.org.
Evidence: The test job sets GOPROXY=https://goproxy.cn,direct. The step name lists boundaries, pins, libs, core, backend, frontend, ui, and agent-command.
Impact: npm still uses the default registry; add the npmmirror only if npm ci times out.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Merge commits share a tree with the pinned feature commit, the import ratchet downloaded modules during CI, and task sync wrote the checkpoint onto the wrong card.
Evidence: check-pins accepts 6c0f1e8 (same tree as Backend squad 8e987bf) and rejects empty-tree 8db069d; both objects stayed local. An empty GOMODCACHE run of lint-boundaries matches the cached go list, 14 pairs. bash -n scripts/task.sh.
Impact: make pin no longer checks out Backend nested core or agent-command, and a failing pin check does not fail the target. task sync writes the branch card or warns. precheck reports completed-but-unarchived cards and card-close branches older than 24 hours.
Refs: feature/agent-stack-r0-r1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card is the record of where review happens, and the links did not exist until the pull requests were opened.
Evidence: Gitea returned Intent #3, Native #8, Squad #7, Backend #50, and Dev #152. None were merged.
Impact: task card only.
Refs: R0 R1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appended this branch's checkpoint to another open card, and the acceptance evidence belongs on this task.
Evidence: make test and make build exited 0; check-pins failed on the temporary squad pin 5cbac00 and passed after restore.
Impact: task cards only. The other card loses the misplaced sync row.
Refs: R0 R1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev could ship a combination whose nested gitlinks differed from the top-level pins, and make test never ran the three agent libraries.
Evidence: A go.work was measured and not adopted: workspace MVS selected newer golang.org/x crypto, exp, net, term, and text than backend with GOWORK=off. check-pins passes on the new pins and fails when backend's squad pin is 5cbac00.
Impact: make test adds pin checks and GOWORK=off vet/test for intent, native, and squad. make build still compiles inside backend; the pin check requires those gitlinks to match Dev.
Refs: R0
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card must state the allowed endpoint before library edits begin.
Evidence: plan authorizes five unmerged PRs and forbids merge, release, and history rewrite.
Impact: task card only; no code or gitlink change.
Refs: .task/feature-agent-stack-r0-r1.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card is the record of this delivery, and both pull requests now exist.
Evidence: Documents PR 34 and Dev PR 151 are open and not merged.
Impact: Task card text only.
Refs: feature/agent-stack-blueprint
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The completion claim needs the precheck, sync, and combination test evidence on the task card.
Evidence: make test exited 0 after sync_base f4aa0348d7 and tested_head 2237c79b3a.
Impact: Task card text only. No code or gitlink change.
Refs: feature/agent-stack-blueprint
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The three agent libraries need one reviewed design for defects, external practice, and decoupling before any further code lands.
Evidence: Documents 233dfb54ea1cd8e8085769832eef18fb3eaa04b7 adds the proposal and the audit record; PR https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Documents/pulls/34
Impact: Gitlink only. No library code, no runtime change. Later stages stay separate tasks and are not merged here.
Refs: feature/agent-stack-blueprint
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-final-reply-compose.md(PR#149) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync appends the checkpoint to the first card by filename.
Evidence: make task-sync printed tested_head 5072554b09
Impact: The checkpoint stays on feature-final-reply-compose. The other card is unchanged.
Refs: feature/final-reply-compose
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card still said the meeting-minutes replay was pending.
Evidence: make test; browser run_102f0c09ff32
Impact: Documents the final reply, the check row, and the card appearing after the reply.
Refs: feature/final-reply-compose
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The final reply still printed the artifact id and byte count.
Evidence: go test ./internal/runtime/ -run TestComposeReplyDropsInternalRefs
Impact: Backend gitlink moves to 46d5f7b.
Refs: feature/final-reply-compose
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The first composed reply still included the model's think block and the internal quality score.
Evidence: go test ./internal/runtime/ -run TestCompose
Impact: Backend gitlink moves to 1512ae5. No other module changes.
Refs: feature/final-reply-compose
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appends the checkpoint to the first card in .task, which belonged to another task.
Evidence: make test at tested_head c7932dd
Impact: The sync row and the test note sit on feature-final-reply-compose. The other card is unchanged from before this sync.
Refs: feature/final-reply-compose
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The work timeline was being shown as the answer, and file cards appeared before the run had a finished reply.
Evidence: make test
Impact: Gitlinks move to the final-reply branches. The timeline spec now includes the finalizing phase and delays deliverable cards until the reply is done.
Refs: feature/final-reply-compose
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-stream-display-overhaul.md(PR#147) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card is the review record, and it still pointed at a placeholder after the pull request existed.
Evidence: Dev pull request 147 is open.
Impact: The card status stays in progress until merge.
Refs: feature/stream-display-overhaul
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Tool calls stayed invisible while arguments streamed, and a failed run hid the only reply inside the collapsed process block.
Evidence: make test in the worktree passed: boundaries, core, backend, frontend vitest 66, ui vitest 79, agent-command. Mock browser check showed the Chinese process summary, the reply outside the fold, a humanized error with 继续执行, and the back-to-bottom button.
Impact: Dev gitlinks move to the feature commits for core, agent-native, backend, ui, and frontend. DESIGN.md §9.6 describes individual tool blocks for exec, write, and delegate.
Refs: feature/stream-display-overhaul
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-harness-p4.md(PR#144) feature-s4-shell-overhaul.md(PR#145) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: P4 is on main, and the shell pull request has to record UI and frontend commits that contain both the workflow contracts and the shell.
Evidence: submodule trees match the merged mains for core, backend, documents, ui, and frontend.
Impact: the shell branch now contains P4's example workflows and the combined pins.
Refs: feature/s4-shell-overhaul
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The confirm card only folds after the client refetches the decision, so the parent pin has to include that frontend commit.
Evidence: make test passed; mock browser checked the shell, the pending filter, the blocked card, the folded row, and the molv theme.
Impact: task card records the result; modules/frontend moves to the refetch commit.
Refs: feature/s4-shell-overhaul
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The molv theme and the rebuilt shell land together, so the design doc and the submodule pins stay in one change.
Evidence: UI npm test 79 passed; frontend tsc -b and npm test 61 passed.
Impact: DESIGN.md records the molv token table; modules/ui and modules/frontend point at the shell branches.
Refs: feature/s4-shell-overhaul
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Acceptance needs the precheck, task-sync, and make test evidence on the card, plus what the three live conversations actually did.
Evidence: make test passed at 5f872f3. The sync row is in the table. The p4 service produced the slot question, one critic rejection, a confirmed plan, and the plugin script artifact.
Impact: Documentation only. The six pull requests stay unmerged.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev should record the backend commit that runs a registered script from the launch of that call.
Evidence: go test ./internal/runtime/ -run TestRegisteredWorkflowUsesItsOwnScriptCopy passed.
Impact: Only the backend pointer moves.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev should record the backend commit that makes planning return JSON and makes the critic reject a missing line.
Evidence: go test ./internal/runtime/ ./internal/prompts/ passed on that commit.
Impact: Only the backend pointer moves.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The step critic has to call the configured model, and Dev should record that backend commit.
Evidence: go test ./internal/runtime/ -run TestJudgeUsesConfiguredModel passed in the backend repo.
Impact: Only the backend pointer moves.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The live check needs the first draft to miss a line the critic can name, then the retry can add it.
Evidence: The prompt does not mention the marker. maxRetries stays 1.
Impact: demo.brief drafts are rejected until they contain 核对标记:P4.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev has to record the Core, Backend, Frontend, UI, and Documents commits that implement intent-to-workflow.
Evidence: make test passed, including boundary lint, core, backend, frontend vitest, UI tsc and vitest, and agent-command.
Impact: agent-native stays at a34689c. The example plugin is already on this branch.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The example plugin needs a bound intent and a plugin-shipped script so the three P4 paths can be checked against a real plugin.
Evidence: TestRepoExamplePluginLoads accepts the plugin, asks 主题是什么?, and keeps the topic slot.
Impact: demo.brief starts the five-step workflow. demo.script stays unbound and needs runtime.workflowScripts.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card is the authorization record for intent-to-workflow work, and the routing, retry, and script rulings have to be fixed before code changes.
Evidence: precheck READY at 959179f88f; core/baseline.md and workflows/delivery.md section 1 were read.
Impact: No product code. Six pull requests are the delivery end, and merging them is not authorized.
Refs: feature/agent-harness-p4
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-harness-p3b.md(PR#142) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync appends the checkpoint after the results section, and the card keeps those rows in the sync table.
Evidence: The row is the 2026-10-01T15:51:28Z checkpoint for d05a73872c.
Impact: No code change.
Refs: feature/agent-harness-p3b
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card and the Dev pull request should name the five open requests and state that none are merged.
Evidence: Core #15, Backend #46, Frontend #32, UI #26, Dev #142.
Impact: No code change. Main is unchanged.
Refs: feature/agent-harness-p3b
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appends the checkpoint after the results section, and the card keeps those rows in the sync table.
Evidence: The row is the 2026-10-01T15:39:25Z checkpoint for 1bc9954e40.
Impact: No code change.
Refs: feature/agent-harness-p3b
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card has to show the combination test and the two live conversations before the pull requests open.
Evidence: make test passed at 6430738. p3b on 127.0.0.1:8841 showed a queued notice turn and a review pipeline.
Impact: No code change.
Refs: feature/agent-harness-p3b
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The combination has to move together so background subagents, review, and the notice row are the same build.
Evidence: Each module's own tests passed on its feature branch. agent-native stays at a34689c.
Impact: Dev does not merge this pin. The four module pull requests stay open until review.
Refs: feature/agent-harness-p3b
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Background subagents, review, squad role mapping, and prompt overrides need an explicit write scope and the three rulings before code edits.
Evidence: make precheck verdict READY at fdd311c8c0. Required reading baseline.md and delivery.md section 1.
Impact: No code change. Kernel and squad contracts stay as on main.
Refs: feature/agent-harness-p3b
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-harness-p3.md(PR#140) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: task-sync appended the checkpoint after the test block. The card keeps sync rows in one table.
Evidence: sync_base bc8fef76bb, tested_head 53f8a05, checked_at 2026-10-01T14:50:18Z.
Impact: Task card only.
Refs: feature/agent-harness-p3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The confirm card on a child run and the history split were only covered by tests. A real conversation had to show they hold before merge.
Evidence: p3a at dev@f823118. explore hid tool names from the next turn, writer pinned artifacts, the inbox showed the child confirm card, and the squad leader wrote output.md.
Impact: Task card only. No code change.
Refs: feature/agent-harness-p3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The card is the pull request body, so it has to name the open Backend and Dev requests.
Evidence: Backend pull 45 and Dev pull 140 are open and unmerged.
Impact: Task card only. Neither request is merged.
Refs: feature/agent-harness-p3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Acceptance needs the precheck, task-sync, and test evidence on the same card that will become the pull request.
Evidence: make task-sync at 5ed3649; make test exited 0 (boundaries, core, backend, frontend 51, ui 71, agent-command).
Impact: Task card only. No code or submodule change.
Refs: feature/agent-harness-p3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Subagents now run a profile-scoped tool loop and stay out of the parent history. The Dev checkout has to build that backend.
Evidence: Backend 5051a06; go test ./... and make test passed in this checkout. The three agent-native gitlinks stay a34689c.
Impact: Only modules/backend moves. Squad, core, and the three agent-native pins stay put.
Refs: feature/agent-harness-p3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The subagent runtime task needs an explicit write scope and the two rulings before backend edits.
Evidence: make precheck verdict READY at bc8fef76bb. Required reading baseline.md and delivery.md section 1.
Impact: No code change. Kernel, squad, and core contracts stay as on main.
Refs: feature/agent-harness-p3
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-harness-p2.md(PR#138) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card is the PR description, and it needs the Backend and Dev pull request links.
Evidence: Backend pull request 44 and Dev pull request 138 are open. Neither is merged.
Impact: Documentation only.
Refs: feature/agent-harness-p2
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Acceptance needs the precheck, task-sync, and make test output on the task card before the pull requests.
Evidence: task-sync sync_base=d02fa9c20a tested_head=f9d7bbe9f2. make test exited 0.
Impact: Documentation only. No further code change.
Refs: feature/agent-harness-p2
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Direct runs now check artifacts and run a fail-closed verifier before they stop. The Dev checkout has to build that backend.
Evidence: Backend a3ae1b9; go test ./... passed in that checkout. agent-native gitlinks stay a34689c.
Impact: Only modules/backend moves. Squad and the three agent-native pins stay put.
Refs: feature/agent-harness-p2
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The harness P2 task needs an explicit write scope before backend edits: direct-path checks and a fail-closed verifier, with PRs as the endpoint.
Evidence: make precheck verdict READY at d02fa9c20a; required reading baseline.md and delivery.md section 1.
Impact: No code change. Backend, squad, and kernel behavior stay as on main until the implementation commits.
Refs: feature/agent-harness-p2
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-harness-p1.md(PR#136) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the task card is the main record, and review needs the Dev pull request link.
Evidence: Dev pull request 136 is open against main.
Impact: task card only.
Refs: feature/agent-harness-p1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: acceptance needs the precheck, task-sync, and test evidence on the task card before review.
Evidence: task-sync reported already up to date at 701d4ab1e3; make test had already passed on b7631c7.
Impact: task card only.
Refs: feature/agent-harness-p1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the direct chat path and both consumers must compile the same agent-native commit, or the new loop fields exist in only one replace target.
Evidence: make test passed (boundaries, core, backend, frontend 51, ui 71, agent-command). The three agent-native gitlinks are a34689c.
Impact: Dev pins deps/agent-native, deps/agent-squad, and modules/backend. Squad behavior stays on the zero-value kernel switches.
Refs: feature/agent-harness-p1
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-harness-p0.md(PR#134) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card is the main record, and it still said the Dev pull request was pending after the request was opened.
Evidence: Dev pull request 134 is open against main.
Impact: Task card text only. No code or gitlink change.
Refs: feature/agent-harness-p0
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The model imitated flattened tool-call text and invented artifact ids. P0 stops that replay, and the proposal records the harness work that still sits in later phases.
Evidence: Documents PR 32 and Backend PR 42. Backend go test ./... passed. Dev make test passed (boundaries, core, backend, frontend 51, ui 71, agent-command).
Impact: Gitlinks move to feature/agent-harness-p0 on documents (a3f0b80) and backend (188c633). No other submodule changes. P1-P4 are not implemented.
Refs: feature/agent-harness-p0
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Downstream products need a published extension surface, contract checks, and a sample plugin that does not modify the base.
Evidence: Boundary lint passed. examples/downstream-rdm go test passed. Submodule pointers record the core, documents, backend, ui, and frontend commits.
Impact: Merge order is Core, Documents, UI, and Frontend, then Backend, then this PR. Do not squash the submodule PRs. make test runs the boundary lint first. Version tags and the remote downstream repository are not created.
Refs: .task/feature-base-extension-roadmap.md
Why: The task card needs the Dev PR and the submodule merge order once the branches are published.
Evidence: Pull requests Core 14, Documents 31, UI 25, Frontend 31, Backend 41, and Dev 132 are open.
Impact: Submodule pulls must be merged without squash before Dev, so the gitlinks stay reachable.
Refs: .task/feature-base-extension-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync appends its checkpoint to the first file in .task, which was another task's card.
Evidence: The 2026-10-01T10:39:24Z row now sits in feature-base-extension-roadmap.md. The other card matches its previous content.
Impact: The recorded sync base is origin/main 26dfea7ed6 and the tested head is the merge 6d496139b4.
Refs: .task/feature-base-extension-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Downstream products need a published extension surface, contract checks, and a sample plugin that does not modify the base.
Evidence: scripts/lint-boundaries.sh printed boundaries ok. examples/downstream-rdm go test passed. Submodule pointers record the core, documents, backend, ui, and frontend commits for this roadmap.
Impact: make test runs the boundary lint first. make plugin-new scaffolds a declaration plugin. Version tags and remote downstream repositories are not created.
Refs: .task/feature-base-extension-roadmap.md
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The merge subject did not match the auto-close pattern, so the card stayed open after the work landed.
Evidence: PR 130 merge 26dfea7ed6 is on origin/main
Impact: The card moves to .task/archive and is marked complete.
Refs: feature/card-close-native-squad-full-upgrade
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev has to record the library commits the product now builds against.
Evidence: make test
Impact: runtime.entry stays direct. This commit only moves gitlinks.
Refs: feature/native-squad-full-upgrade
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The branch is already on main, and the card still said the work was in progress.
Evidence: PR 128 merged as f8fefa0f88.
Impact: The card is archived as completed. No product behavior changes.
Refs: deliverable-quality-system
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The product needs the new content rules and the optional squad entry, while the library pins must match the kernel and router those paths compile against.
Evidence: Backend go test ./... -count=1 passed on 268f4a9. runtime.entry stays direct because no paired live scores exist.
Impact: Dev now points at the quality and squad-entry backend, agent-native cfc840c, and agent-squad d38f838. make eval-deliverables runs the scorecard tests.
Refs: deliverable-quality-system
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-agent-professional-deliverables.md(PR#126) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The card still named only the backend pull request after the Dev
pin PR was opened.
Evidence: Dev PR #126 and backend PR #38 are both linked from the card.
Impact: Bookkeeping only.
Refs: feature/agent-professional-deliverables
https: //git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/126
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The deliverable standards landed in Agent-System-Backend and were
merged, so the Dev pin has to move to that commit before this branch
can be reviewed.
Evidence: Backend PR #38 merged as 2079b2dfa851bd4cbe8f399a015126c842c441ec.
make test passed on this worktree before the pin move; the pin itself
does not change Dev source.
Impact: modules/backend now points at the merged standards. No other
submodule moved.
Refs: feature/agent-professional-deliverables
https: //git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/38
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The task card still had empty goal and evidence fields after the
backend implementation landed in its own pull request.
Evidence: Backend PR #38 is open. go test ./... and the house-style
lint of the sample minutes are recorded on the card.
Impact: Bookkeeping only. The Dev gitlink stays on the previous backend
commit until that pull request merges.
Refs: feature/agent-professional-deliverables
https: //git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/38
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-chat-timeline-preview.md(PR#122) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Main moved the backend pin to the B10 assembly after this branch
was opened, so the Dev pin has to follow the merged backend branch.
Evidence: modules/backend is b1fa89b, which contains origin/main and
the timeline changes. No other path conflicted.
Impact: This branch contains current main. The backend gitlink is the
merged feature tip.
Refs: feature/chat-timeline-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The acceptance run now has a result, and the task card is the
place that result has to live.
Evidence: make test after sync; dev@5192a53 browser check of the
timeline, file card, preview tabs, docx pages, and the false-claim guard.
Impact: Records the five pull requests and the remaining merge step.
No code change.
Refs: feature/chat-timeline-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-full-agent-b10-r2.md(PR#123) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Backend PR #36 closes the three open B10 sub-items (MCP config
injection, subagent bridge, explicit roles, skill-borne recipes); the
parent repo pins the new backend head.
Evidence: backend go vet + go test 21 packages ok; Dev make test all
green (core + backend 21 + frontend 42 + ui 68 + agent-command);
task card filled with per-item evidence.
Impact: modules/backend gitlink bump only; task card updated.
Refs: .task/feature-full-agent-b10-r2.md; Backend PR #36.
Why: Acceptance starts from a branch that already contains origin/main.
Evidence: merge-base confirms origin/main is an ancestor of HEAD.
Impact: The task card records sync_base and tested_head before the
acceptance run.
Refs: feature/chat-timeline-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Acceptance has to include the latest main, including the
agent-native kernel pin that landed in backend.
Evidence: Backend merge ca8aa5d contains both parents. go test passed
for runtime, tools, and squadadapter.
Impact: This branch now contains origin/main. The backend feature
branch includes that kernel pin.
Refs: feature/chat-timeline-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The design system still described preview as a right-rail tab,
while the implementation now keeps a timeline in the transcript and
opens files in a closable pane beside the chat.
Evidence: make test passed (core, backend, frontend 51, ui 71, agent-command).
Impact: Dev pins core d437530, backend dab8f31, ui 8bfe8a8, frontend 0ed8ad3.
DESIGN.md §6, §9.3, and §9.6 match that layout.
Refs: feature/chat-timeline-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-full-agent-r1.md(PR#120) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: the settled direction requires a complete agent kernel (web
search, code tooling, system tools, external tool calls, skills,
prompts) fused with squad orchestration; the three sub-repos landed
their batches and this bumps the gitlinks and records the task card.
Evidence: Agent-Native PR #3 (go vet + go test 15 pkgs ok), Agent-Squad
PR #3 (6 pkgs ok), Backend PR #35 (19 pkgs ok after rebasing onto the
concurrently merged #34); Dev make test all green (core + backend 19 +
frontend vitest 40 + ui vitest 68 + agent-command).
Impact: deps/agent-native -> f9ab2ef, deps/agent-squad -> 9a402e4,
modules/backend -> 87a3d0d; task card filled with per-PR evidence and
remaining-item notes (sandbox honesty, injection surfaces,
progressive enablement, deployment validation pending).
Refs: .task/feature-full-agent-r1.md batches B1-B10.
Why: The task card still had placeholders after task-start, so the authorized scope and non-goals were not on the branch.
Evidence: Card now names the approved timeline, artifact card, preview pane, and false-deliverable guard, and excludes merge, production deploy, and history rewrite.
Impact: Documentation only; no runtime change.
Refs: feature/chat-timeline-preview
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-binary-doc-index.md(PR#114) feature-input-queue.md(PR#115) feature-preview-sniff-fallback.md(PR#96) fix-empty-create-task.md(PR#116) fix-mimosa-triage.md(PR#117) svc-remote-source.md(PR#102) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The empty-create branch was synced onto frontend main after the input queue landed, so the parent gitlink must follow that tip.
Evidence: The synced tip 0cc0f40 is on frontend main, and vitest reported 42 passed with the default-project path still present.
Impact: Dev gitlink only.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/29
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The input-queue branch was synced onto frontend main after the preview fallback landed, so the parent gitlink must follow that tip.
Evidence: Frontend main ba52fad contains aad5871, and vitest reported 42 passed on that tip.
Impact: Dev gitlink only. The queue and files tab stay, and the preview sniff changes remain in the pinned tree.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Frontend/pulls/28
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The index branch was synced onto backend main after the interpreter merge, so the parent gitlink must follow that tip.
Evidence: Backend main 42fe619 contains 34be855, and go test of tools and runmgr passed on that tip.
Impact: Dev gitlink only. The write guard and text index stay, and the interpreter files remain in the pinned tree.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Backend/pulls/34
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-exec-interpreters.md(PR#113) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The local scan ledger needed an explicit keep-or-drop decision before this batch closed.
Evidence: Twelve local reports dedupe to command-injection gate events with an empty file field, plus two caret-range notes on @types/node. Neither has a local fix that is both clear and narrow.
Impact: Task card only. No product code and no dependency pin.
Refs: Backend #33, Dev #113, Dev #96
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: The first click on 新建任务 did nothing useful when the workspace had no project.
Evidence: Frontend 288d3ac; tsc -b passed and vitest reported 40 passed. A browser check on the dev server created 默认项目 and a conversation on the first click, and a second click added a conversation without a second project.
Impact: Dev gitlink only. Backend is unchanged.
Refs: modules/frontend fix/empty-create-task
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: follow-up messages were rejected while a run was in flight, and
the file list was only available from the workspace overlay.
Evidence: frontend 3c81525; tsc clean; vitest 42 tests.
Impact: gitlink only. Backend conversation serialization is unchanged.
Refs: task feature/input-queue
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card is the review record and still had a placeholder.
Evidence: Backend pulls/34 and Dev pulls/114 are open. make test passed
before the sync checkpoint.
Impact: task card only.
Refs: task feature/binary-doc-index
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: pseudo-binary Office writes and unsearchable generated documents
were the two pieces of the closed docx PR that main still needs.
Evidence: backend 3e5699c; go test ./... 19 packages ok. Dev #99 and
Backend #27 are closed as superseded.
Impact: gitlink only. Merge after Dev #113 so the refusal text names
tools that are already on main.
Refs: task feature/binary-doc-index
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the isolated-source deploy change was finished but never merged, and
the task card had no PR link.
Evidence: the only content conflict was the shared sync-log card; both
rows kept. scripts/svc.sh merged cleanly. PR link recorded as Dev #102.
Impact: branch now contains origin/main. Deploy semantics unchanged.
Refs: https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/102
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card still described xlsx/pptx sniff as out of scope, and
the combo test had not been written down after the merge.
Evidence: make test passed on a11fed4 (frontend 40, ui 68).
Impact: task card only.
Refs: Dev PR #96
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the preview sniff branch predated the shell redesign and could not
merge. Module gitlinks now include current main plus ZIP fallback for
docx, xlsx, and pptx.
Evidence: conflict was only the shared sync-log card; both sides' rows
kept. UI and Frontend tests passed on the updated module SHAs.
Impact: parent branch contains origin/main. .mimosa/ ignore stays.
Refs: task feature/preview-sniff-fallback, Dev PR #96
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the open preview-sniff PRs were cut before the shell redesign, so
they could not merge. UI and Frontend now contain origin/main plus the
ZIP sniff, including xlsx and pptx text fallback.
Evidence: UI vitest 68 and tsc clean; Frontend vitest 40 and tsc clean.
UI pulls/21 and Frontend pulls/22 updated.
Impact: gitlinks only. Dev still needs to merge origin/main before the
parent PR can land.
Refs: task feature/preview-sniff-fallback
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the task card is the review record and still had a placeholder for the PR.
Evidence: Backend pulls/33 and Dev pulls/113 are open.
Impact: task card only.
Refs: task feature/exec-interpreters
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the sync helper appended its checkpoint to a different card, and the
combo test evidence still needed to live on this task's record.
Evidence: make test passed after backend 2880b58 (core, backend, frontend
40 tests, ui 68 tests, agent-command).
Impact: task card only.
Refs: task feature/exec-interpreters
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the deliverable workflow prompts call run_shell and run_python, but
those tools were not in the registered binary, so generation fell back
to text-only write_artifact.
Evidence: backend feature/exec-interpreters 2880b58; go test ./... 19
packages ok in modules/backend.
Impact: Dev gitlink moves to the interpreter commit. Merge the backend
PR before this one so the recorded SHA is on backend main.
Refs: task feature/exec-interpreters
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: the card was folded into PR #109 already marked complete, so
task-close skipped it; archive it manually per the no-open-cards rule
and advance the frontend gitlink past the mimosa-ignore chore (#26).
Evidence: .task has no deliverable-docx-r1.md left; precheck [cards]
to be re-run after merge; frontend -> de38791 (chore #26 merged).
Impact: housekeeping only; no code paths touched.
Refs: task feature/deliverable-docx-r1 (PR #109), frontend PR #26
Why: users received plain-text .docx files and had to dig through the
process collapse or workspace panel to find deliverables; deliverables
must appear directly in the conversation and open with real formatting.
Evidence: module PRs merged — Agent-System-Backend#31 (docgen Markdown
to styled OOXML, write_docx tool, artifact_ref pinned as content after
final text, prompt routing, mock #doc dogfood) and
Agent-System-Frontend#25 (deliverable card renderer, live projection
pinned tail). Combination `make test` green in this worktree: backend
go test 19 pkgs, frontend vitest 40/40 + tsc clean, ui tsc + vitest
68/68 incl design-guard, agent-command ok. Task card records scope,
sync nodes and leftovers.
Impact: gitlinks backend -> 8550bb0, frontend -> b048d90; core/ui
unchanged.
Refs: task feature/deliverable-docx-r1
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-ui-tokens-v3.md(PR#107) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: The task card requires the PR link as its master record once the
PR exists (delivery workflow); sub-PR numbers recorded for merge order.
Evidence: PRs created via Gitea API — UI #23, Frontend #24, Dev #107.
Impact: task card only.
Refs: task feature/ui-tokens-v3.
Why: Submodule branches merged their origin/main (CF3) and were pushed;
record the new heads so the parent sync merges cleanly.
Evidence: submodules green post-merge (ui 68 / frontend 39 tests, tsc
clean); parent task-sync re-run follows this commit.
Impact: gitlinks only.
Refs: task feature/ui-tokens-v3.
Why: Land phase 4 of the UI redesign in the parent repo: ToolBlock chat
contract, Collapsible migration of all folds, live sweep with worked-time,
and the honest in-progress input hint. Completes the four-phase plan on
this branch (deviation recorded in the task card).
Evidence: combined make test -> go core/backend/agent-command ok, frontend
39 vitest passed, ui 66 vitest passed; tsc clean in both submodules.
Impact: modules/ui and modules/frontend gitlinks move to their
feature/ui-tokens-v3 heads; task card records results and remaining items.
Refs: task feature/ui-tokens-v3.
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-project-inbox-r1.md(PR#105) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: Land phase 3 of the UI redesign in the parent repo.
Evidence: frontend submodule commit on feature/ui-tokens-v3; tsc -b and
38 vitest tests pass; task card records the runs.
Impact: modules/frontend gitlink moves; no API changes.
Refs: task feature/ui-tokens-v3.
Why: Land phase 2 of the UI redesign in the parent repo: admin-only
full-screen system management, conversation-first sidebar, role-aware
workspace shortcuts.
Evidence: frontend submodule commit on feature/ui-tokens-v3; tsc -b and
38 vitest tests pass in the submodule; combined make test re-run recorded
at phase boundaries in the task card.
Impact: modules/frontend gitlink moves; no API or contract changes.
Refs: task feature/ui-tokens-v3.
Why: The approved frontend redesign requires a durable design constitution
so future UI work stays consistent (user directive: make this project's
standing design guidance, four principles: beautiful/modern/concise/usable).
DESIGN.md encodes the Zai-calibrated rules (surface ladder, type scale,
radius nesting, MotionKit recipes, ToolBlock contract, IA principles) and
AGENTS.md adds a mandatory UI gate; submodules land phase 1 (tokens v3,
MotionKit, Collapsible, panel layout, mono primary buttons).
Evidence: make test in this worktree -> frontend 38 passed (incl. new
host design-guard ratchet), ui 61 passed (incl. collapsible + design-guard),
go core/backend/agent-command ok. precheck READY at R0 0be23f9a4d.
Impact: gitlinks advance to Agent-System-UI/Agent-System-Frontend
feature/ui-tokens-v3 heads; AGENTS.md gains a UI section; no backend or
contract changes.
Refs: session-approved redesign plan v2 (8 decisions recorded in task card).
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-artifact-unify-r1.md(PR#103) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: CF-A lands in backend (ctxasm backfill + facade cards) and documents.
Evidence: backend commit recorded in module log; combination make test in
task card.
Impact: gitlink-only.
Why: svc.sh update skipped services with a local@<sha> source whenever the
main checkout was dirty, and bare deploy built the current workspace. The
owner requires updates/deploys to be independent of the working tree
state, defaulting to the latest remote commit built outside the checkout.
Evidence: bash -n passes; commits dev lists from the source clone; bare
deploy --dry-run plans dev@<origin/main>; end-to-end "svc.sh update
svc-selftest" with a dirty tree updated a local@d64742c service to
dev@0be23f9 (built in runtime/.worktrees from
~/.cache/agent-system-svc/src, started healthy), then stopped and purged.
Full make test output recorded on the task card.
Impact: deploy now defaults to dev@<origin/main> resolved in the
script-owned clone (SVC_SRC_DIR, default ~/.cache/agent-system-svc/src);
--from local stays the only workspace-dependent source; update no longer
pulls the main checkout - local@/dev@ services redeploy from remote
latest, ahead/diverged/missing-on-remote still decline to act.
docs/svc.md and in-script help updated to match.
Refs: .task/svc-remote-source.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-card-stream-r1.md(PR#100) — merges verified via git log --merges against origin/main.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: module PRs #28 merged (backend a067d08, documents f5aa687); final
combination make test exit 0 on f96c55df.
Evidence: task-sync rows in card.
Impact: card-only.
Why: CF-S (D44/D45) implementation lands in backend and documents; Dev
tracks the tested combination.
Evidence: backend 24a2873 (tools+cardsvc+runmgr+mock+tests), documents
3d2da4e (usage guide); combination make test recorded in task card.
Impact: gitlink-only on Dev.
Refs: documents 2026-09-30-card-stream-artifact-unify-project-inbox.md (D44/D45).
Why: track 2 of the fake-docx remediation — read-only preview fallback for
stock text-masquerading docx artifacts; also ignore the Mimosa plugin's
per-session .mimosa state dir that kept dirtying the tree and blocking precheck.
Evidence: modules/ui 83367f7 (doc->binary dispatch + readable Office error),
modules/frontend cd77340 (PK magic sniff + markdown fallback); make test-ui
49/49, make test-frontend 33/33, frontend tsc --noEmit clean.
Impact: parent pins move to the two submodule branches; .gitignore gains
.mimosa/; no code outside those modules.
Refs: .task/feature-preview-sniff-fallback.md
-`make task-sync`:`Already up to date.``[synced] sync_base=f4aa0348d7 tested_head=978bf8bdae checked_at=2026-10-03T02:10:29Z`。脚本按文件名把这一行写进了另一张任务卡,本提交已改回本卡。
- 各库在钉住后的头上另跑了 `scripts/submodule-consistency.sh`(intent、native、squad 均为 ok)以及 vet、test、race。Backend 跑了 `GOWORK=off go vet ./... && GOWORK=off go test -count=1 ./...`,退出码 0。
- Squad `73b8d09545a8c479344aded2227de5fc520ef769`。并行组第二步 `TestParallelGroupSecondStepApprovalHolds`、`TestParallelGroupSecondStepPermissionHolds`;自由文本 `TestFreeTextKeepsChoiceHold`;失败后挂起仍在 `TestFailedDecisionRestoresPending`。`GOWORK=off go vet ./...`、`go test -count=1 ./squad/ ./cli/`、`go test -race -count=1 ./squad/` 均通过。
- 同 tree 正例:Backend 所记 squad `8e987bf535efbbbf317147542e858217f2bb3504` 的 tree `0fe06ce3ceea5cfa32476e2f0eed7f86cebc44a0`,`commit-tree` 得本地 `6c0f1e8bf1be85f10163eb0c6eebb5a6aa8f8798` 并临时写入 Dev 索引。`check-pins` 输出 `ok modules/backend agent-squad (same tree)`,退出码 0。
- 负例:空 tree 的本地提交 `8db069d7352d` 写入同一索引后,`check-pins` 退出码 1,`pin: modules/backend deps/agent-squad is 8e987bf535ef, Dev deps/agent-squad is 8db069d7352d`。索引已 `git reset` 恢复,再次 `pins ok`。两个临时对象都没有推送。
- 验证:`cd modules/core && go test ./...`;`cd modules/backend && go test ./...`;`bash scripts/lint-boundaries.sh`;`cd examples/downstream-rdm && go test .`;UI `tsc`+vitest 71;frontend vitest。
- 影响与剩余项:apiVersion `2.0-experimental`。版本 tag 与 npm 发布命令留在兼容提案,由用户确认后执行。下游远程仓由用户另建。Playwright 对拍文件在 `modules/frontend/e2e/`,未安装 `@playwright/test`,不进 vitest。合入顺序:Core #14、Documents #31、UI #25、Frontend #31,然后 Backend #41,最后 Dev #132。子仓不要 squash,否则 Backend / Dev 的 gitlink 会指向不存在的提交。
- 误重启事故:PR #207 合入后 `make task-start` 再次以同名分支建卡(task-start 只校验本地分支可建,不查该名是否刚合入),空卡覆盖了 main 上的原卡;`3718f6c` 已恢复原卡,本轮复核证据行(被测 HEAD `c371815`:backend 四包 go test / examples / test-boundaries / make test 全 exit 0)追加于后,`make task-sync` 基线 63a62a7(tested `e37e0cd`)。
- 本轮性质:**仅复核,不改公开面**——产品代码相对 origin/main 零差异(见证据行 no product diff)。
[exit 0 | HEAD 786f852def | sha256:fe92462ce20f1fe9] 输出尾部 25 行:
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
at commitPassiveMountOnFiber (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:17183:11)
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
[exit 0 | HEAD 517b89760a | sha256:b55eef9dea426887] 输出尾部 25 行:
at runWithFiberInDEV (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:1048:13)
at commitHookEffectListMount (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:13748:29)
at commitHookPassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:13835:11)
at commitPassiveMountOnFiber (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16906:13)
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
at commitPassiveMountOnFiber (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:17183:11)
at recursivelyTraversePassiveMountEffects (/home/weichen/projects/Agent-System-Dev-wt-feature-ext-1-inproc-handler/modules/ui/node_modules/react-dom/cjs/react-dom-client.development.js:16851:13)
- 合并主题:Merge pull request 'Restore and complete the EXT-1 task card after branch recreation (verification round)' (#209) from feature/ext-1-inproc-handler into main
- 合并主题:Merge pull request 'Point backend at the completed B10 assembly (MCP, subagent bridge, roles, skills)' (#123) from feature/full-agent-b10-r2 into main
- 合并主题:Merge pull request 'Land the full-agent capability batch (B1-B10) across agent-native, agent-squad, and backend' (#120) from feature/full-agent-r1 into main
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
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.