svc.sh adopt always printed db_marker=established, even when the installed
artifact lacked identity capability and the marker stayed pending. It now
reads the marker back and warns when identity was not established.
The deploy identity gate reported a pre-v27 database (identity table
missing) as a foreign row or mismatch. It now explains that the schema
predates the identity table and gives the backup, stop, migrate and
redeploy steps. It still refuses before stopping the old service and never
migrates on its own.
Why: both messages misled the 2026-10-21 GenUI prod upgrade.
Evidence: agent-exec unit dev-svc-identity-adopt-gate-messages (cursor, attempt 1, terminal=success); python3 -m unittest tests.test_svc_identity: 31 tests OK (1 skipped).
Impact: svc.sh operator messages for adopt and the deploy identity gate; no change to success paths.
Refs: Dev task fix/genui-prod-upgrade-followups.
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-genui-prod-upgrade-followups.md; R0=ccb6dfaa9cdf7e69eb15d7df024dee55f37b8df1.
Impact: task metadata only; the feature workspace starts at ccb6dfaa9c.
Refs: .task/fix-genui-prod-upgrade-followups.md
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-genui-prod-upgrade-docsync.md -> .task/archive/feature-genui-prod-upgrade-docsync.md; status 已完成(合入前闭合); PR #679https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/679.
Impact: task metadata only; the card is archived within PR #679 and lands with its merge commit.
Refs: task.sh close --self
Why: The card must carry the authorization, the out-of-repo upgrade steps,
the verification results and the agent-exec receipts for both units.
Evidence: Receipts /tmp/genui-prod-upgrade-doc/{docs,dev}-run.json;
Documents #119 CI success at 518e381.
Impact: Task card only.
Refs: Documents #119
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-upgrade-docsync.md; R0=e634608d97333354c3ead85d47c9e9e368a992a0.
Impact: task metadata only; the feature workspace starts at e634608d97.
Refs: .task/feature-genui-prod-upgrade-docsync.md
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/fix-multi-instance-test-failure-diagnostics.md -> .task/archive/fix-multi-instance-test-failure-diagnostics.md; status 已完成(合入前闭合); PR #678https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/678.
Impact: task metadata only; the card is archived within PR #678 and lands with its merge commit.
Refs: task.sh close --self
Why: the test-hygiene change needs its scope, the review verdict and the
real-PostgreSQL evidence recorded before delivery.
Evidence:
/tmp/mi-diag-impl-r1-20261021.json: cursor, success (single file)
/tmp/mi-diag-review-r1-20261021.json: pi-glm, success (PASS, 6 non-blocking)
Real-PG runs: idle 15.1s and 96-load 17.4s, both ok (fsync=on cluster
on 127.0.0.1:54331); the Backend fix is already in main via PR #237/#674.
Impact: card metadata only; no behaviour change.
Refs: PR #679; fix/multi-instance-test-failure-diagnostics
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-multi-instance-test-failure-diagnostics.md; R0=5360884e9283d962caf945d944df05b5e5059177.
Impact: task metadata only; the feature workspace starts at 5360884e92.
Refs: .task/fix-multi-instance-test-failure-diagnostics.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=096b74b4775e81cfb2864f98cae2e9fc9d9c1a44.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-genui-prod-ops-docsync.md -> .task/archive/feature-genui-prod-ops-docsync.md; status 已完成(合入前闭合); PR #677https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/677.
Impact: task metadata only; the card is archived within PR #677 and lands with its merge commit.
Refs: task.sh close --self
Why: The card must carry the delivery scope, the out-of-repo ops facts and
the agent-exec receipts for both units.
Evidence: Receipts /tmp/genui-prod-docsync/{docs,dev}-run.json; Documents
#118 CI success at 244477e.
Impact: Task card only.
Refs: Documents #118
Why: Documents PR #118 updated the GenUI closure doc so its prod deploy
entry matches the current runtime layout (prod manual via prodctl.sh,
pg1 managed by svc in the main checkout).
Evidence: agent-exec unit dev-genui-prod-ops-docsync-repin (cursor,
attempt 1, terminal=success); gitlink 82b4619 -> fcea466.
Impact: Documentation pin only; also carries the already-merged IAM U1-U7
record (Documents #117).
Refs: Documents #118; task feature/genui-prod-ops-docsync
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/fix-remaining-hardcoded-ports.md -> .task/archive/fix-remaining-hardcoded-ports.md; status 已完成(合入前闭合); PR #676https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/676.
Impact: task metadata only; the card is archived within PR #676 and lands with its merge commit.
Refs: task.sh close --self
Why: the card must carry the helper's design boundary, the (r1 scope-expansion
-> granted expansion -> r2 success) trajectory, the independent review verdict
and the runtime evidence before delivery.
Evidence:
/tmp/ports-load-20261021.json: helper test under 64-load OK
/tmp/ports-svc-tests-20261021.json: tests.test_svc 23 OK
/tmp/ports-governance-20261021.json: 527 OK (18 skipped)
/tmp/remaining-ports-impl-r2-20261021.json: cursor, success
/tmp/remaining-ports-review-r1-20261021.json: pi-glm, PASS
Impact: card metadata only.
Refs: PR #676; fix/remaining-hardcoded-ports
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-genui-prod-ops-docsync.md; R0=444fb1dee2a72452be23b97cbaaad9e28c42dffd.
Impact: task metadata only; the feature workspace starts at 444fb1dee2.
Refs: .task/feature-genui-prod-ops-docsync.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-remaining-hardcoded-ports.md; R0=444fb1dee2a72452be23b97cbaaad9e28c42dffd.
Impact: task metadata only; the feature workspace starts at 444fb1dee2.
Refs: .task/fix-remaining-hardcoded-ports.md
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/fix-svc-static-deploy-test-port-flake.md -> .task/archive/fix-svc-static-deploy-test-port-flake.md; status 已完成(合入前闭合); PR #668https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/668.
Impact: task metadata only; the card is archived within PR #668 and lands with its merge commit.
Refs: task.sh close --self
Why: the previous "blocked" reason (CI infrastructure failures) was
externally resolved by the Backend ResolveHITL fix (PR #237) and its
Dev gitlink repin (PR #674 -> 2fd11eff). Re-review against the
post-Repin baseline PASSes; the card needed to reflect that.
Evidence:
/tmp/svc-flake-sync-20261021.json: sync to 2fd11eff
/tmp/svc-flake-finish-test-20261021.json: target test green
/tmp/svc-flake-svc-tests-20261021.json: 213 svc tests OK (18 skipped)
/tmp/svc-flake-review-r1-20261021.json: pi-glm, success (review PASS)
/tmp/multi-instance-with-be-fix-20261021.json: root-cause fix
/tmp/repin-maketest5-20261021.json: Dev make test green post-Repin
Impact: card metadata only; no behaviour change.
Refs: PR #668; fix/svc-static-deploy-test-port-flake
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=2fd11effd9ccb0ae35ae5a47caccefccbbb05a8e.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=d2663ef9e28d9d4a8e47bb65a5e02532fdfa78ab.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=171f0545c41f65f78a6afda60a76fea21abc44a4.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: branches merged into their immediate or root target had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-project-access-lifecycle.md(PR#634 into main) — merges verified via git log --merges plus Gitea API squash lookup against each card's origin target.
Impact: .task/*.md moved to .task/archive/ with status backfilled; no code or submodule change.
Refs: task.sh close (card-autoclose-r1)
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/fix-backend-repin-resolve-hitl.md -> .task/archive/fix-backend-repin-resolve-hitl.md; status 已完成(合入前闭合); PR #674https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/674.
Impact: task metadata only; the card is archived within PR #674 and lands with its merge commit.
Refs: task.sh close --self
Why: Backend main now contains the fix for the run-status write-ordering
race in Manager.ResolveHITL (PR #237, merge f084d10); the Dev repo's
modules/backend pin still pointed at the pre-fix SHA, which is why the
multi-instance acceptance test was flaky under load.
Evidence:
/tmp/repin-maketest5-20261021.json: make test green with the new pin
/tmp/repin-modules-evidence2-20261021.json: backend update + state recorded
/tmp/multi-instance-with-be-fix-20261021.json: 96-load reproduction passes (17s)
/tmp/be-runhitl-impl-r2-20261021.json: Backend transport (pi, success, 789f67f)
/tmp/be-runhitl-impl-r1-20261021.json: scope-expansion (r2 expansion granted)
/tmp/be-triage-runhitl-20261021.json: triage NEW
/tmp/multi-instance-loaded-20261021.json: red reproduction (same SHA on pre-fix)
/tmp/multi-instance-heavy-20261021.json: red reproduction under 96-load
/tmp/ci-success-testpg.log: healthy CI 22.4s measurement
Impact: a single gitlink bump (241e1b3 -> f084d10). No Dev-side source change.
Behaviour change: U7 TestTwoInstancesOverSharedPG no longer flakes under CI load.
Refs: Backend PR #237; Dev task fix/backend-repin-resolve-hitl
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-fast-slow-o2-a01-p5-record.md -> .task/archive/feature-fast-slow-o2-a01-p5-record.md; status 已完成(合入前闭合); PR #673https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/673.
Impact: task metadata only; the card is archived within PR #673 and lands with its merge commit.
Refs: task.sh close --self
Why: The P5 paid rerun passed and the milestone evidence belongs in the repo.
Evidence: p5-run-receipt.json (c5aa4819787fe926); TestWorkCheckpoints PASS; 23565 tokens under the 45000 guard.
Impact: Task card only.
Refs: Backend #236; Dev #672
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-fast-slow-o2-a01-p5-record.md; R0=0289bbeabbaedcab8afcd25422be002843df9971.
Impact: task metadata only; the feature workspace starts at 0289bbeabb.
Refs: .task/feature-fast-slow-o2-a01-p5-record.md
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/fix-backend-repin-resolve-hitl.md; R0=0289bbeabbaedcab8afcd25422be002843df9971.
Impact: task metadata only; the feature workspace starts at 0289bbeabb.
Refs: .task/fix-backend-repin-resolve-hitl.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=19d9ac73826a5287af3df2478be846a22f5b1e6a.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync