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: 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: 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
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-svc-db-config-recover.md; R0=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: task metadata only; the feature workspace starts at 80a518628c.
Refs: .task/feature-svc-db-config-recover.md
Why: card and PR description are one document; record the PR link before merge.
Evidence: Dev PR #337 created via Gitea API.
Impact: task metadata only.
Refs: PR #337.
Why: stage review needs results, stage verdicts and the three evidence segments in the card before the PR.
Evidence: make test / test-backend-pg (real services) / make build all exit 0 via the evidence tool.
Impact: task metadata only.
Refs: backend PR #144, #145; documents PR #65.
Why: backend main pins deps/agent-system-core at 452daf3 (Surface types, core PR #25); Dev's top-level core gitlink lagged at a253a40, failing make test-pins after task-sync.
Evidence: check-pins green after the bump; core origin-main tip is 452daf3.
Impact: gitlink bump only.
Refs: core PR #25; backend PR #143.
Why: backend PR #143 added surfacesvc with app/server/store edges already merged into component main; the Dev baseline must record them (lint failed after task-sync). runmgr->cmdbus no longer exists in code.
Evidence: lint-boundaries.sh green after the update; edges match the merged backend main exactly.
Impact: baseline bookkeeping only; no dependency change made by this task.
Refs: backend PR #143; Dev U4 task.
Why: the U4 managed migration entry must ship with make build so operators and CI get the tool.
Evidence: make build emits both binaries; migrator suite green on SQLite and real PostgreSQL.
Impact: build target output adds bin/storage-migrate; no test-path change.
Refs: backend PR #144; runbook section 10.
Why: the parent must pin the merged component SHAs for the combined build and CI gates.
Evidence: backend origin-main merges of #144 (storage-migrate) and #145 (surface tables in copy list); documents origin-main merge of #65 (runbook section 10).
Impact: gitlink updates only.
Refs: backend PR #144, #145; documents PR #65.
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: The U2 increment landed across four component repos (Core #25
Surface contract types and validation; Backend #143 surface store,
activation guard, EXT-17 SurfaceHost, direct API; UI #40 and Frontend
#51 id/source contract mirrors); Dev pins the combined set for the
authoritative make test/build gate.
Evidence: Component PRs merged (core 452daf3, backend d795143, ui
5b03b8f, frontend a26d7c5); combined verification receipts follow in
this branch via make evidence.
Impact: Gitlink pins only in this commit; task-card updates follow.
Refs: Documents proposal r2 U2; Dev task feature/generative-ui-u2
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-collab-storage-u4-migrator.md; R0=80a518628c526fd6ddece4abeb707ab4bb0b5618.
Impact: task metadata only; the feature workspace starts at 80a518628c.
Refs: .task/feature-collab-storage-u4-migrator.md
Why: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: feature-collab-storage-u3-budget-authz.md(PR#333) — 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: branches merged into main had left their task cards open; backfill status and archive to prevent bookkeeping debt.
Evidence: fix-svc-dsn-reuse-dbref.md(already-complete) — 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: Fold the card close into PR #317 per the post-merge cleanup instruction.
Evidence: make test exit=0 re-run at the synced head 0303040 (receipt in card).
Impact: Task card only.
Refs: .task/fix-svc-dsn-reuse-dbref.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: integrate upstream changes without rewriting task history.
Refs: task-sync
Why: the real-PG CI gate on PR #333 exposed the stack overflow; PR #142 fixes it with a regression test.
Evidence: backend origin-main merge of #142 fetched post-merge and checked out.
Impact: gitlink only.
Refs: backend PR #142; Dev PR #333.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-generative-ui-u2.md; R0=95992d751f0a6ea8e345109dbb6b9367d9055e92.
Impact: task metadata only; the feature workspace starts at 95992d751f.
Refs: .task/feature-generative-ui-u2.md
Why: include the current integration baseline before verification.
Evidence: fetched origin/main=693f7f0459992c66ae672a966da4fc9fa12c193b.
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-two-trees-audit-plan.md(PR#330) — 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)