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: 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)