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