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