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