Pin the U8 SQLite active-service guard and document it #615

Merged
weichen merged 11 commits from feature/u8-sqlite-instance-guard-r2 into main 2026-10-18 10:20:01 +00:00
Owner

Why

Same-SQLite single active service (R11) and verifiable durability on the app connection (R12), approved 2026-10-12 as recovery plan r3 U8. The original Dev PR #482 / Backend #183 fell 1000+ commits behind main with conflicts (migration number, main.go, PROJECT.md, architecture-baseline.json, gitlink); per governance the host does not hand-resolve them, so U8 was re-ported onto current main by fresh agent-exec workers. Supersedes #482.

While pinning, two pre-existing composite gaps blocked a correct Backend pin and were fixed minimally:

  • Dev main pinned Backend b00e192 (admin password management + interpreter path fix, deployed) which never reached Backend main; with user authorization it landed via Backend #211 (merge a670d2b) so this pin does not roll it back.
  • Backend #208 pinned deps/development-manager at bd3a7de while Dev is at 67784f4 (descendant); make test-pins failed. Backend #210 now aligns it (276dd73).

What

  • modules/backend → 276dd73824116fb55064eefef17f069ee1545ada (head of Backend #210: Backend main incl. #211 + U8 + development-manager alignment; #210 merges fast-forward so Backend main will equal this SHA).
  • docs/recovery/u8-sqlite-instance-guard.md: U8 spec (instance_guard is migration v36).
  • docs/svc.md: lock file, migrate subcommand, --adopt-instance-guard, refusal messages.
  • PROJECT.md: two sentences recording the U8 approval/implementation status and spec link (NOT_RUN for fault injection, deployment, runtime acceptance).
  • policy/architecture-baseline.json: backend/app → backend/instanceguard, backend/instanceguard → backend/store.

Evidence

  • Backend #210 CI success on 7b379d2 and d7be3fd (GATE; 276dd73 running); Backend #211 CI success on 78ae397 (GATE).
  • Host local (SELF): combined Backend tree main+#211+U8 go build/vet/test ./... ok; make test-boundaries test-pins pass (evidence in task card).
  • Agent receipts per unit in .task/feature-u8-sqlite-instance-guard-r2.md.
  • Authoritative: this PR's CI (make test incl. test-backend-pg real PostgreSQL readback + make build).

Impact

New Backend table v36; SQLite service refuses a second active process on the same data file; PG connections refuse fsync/full_page_writes/synchronous_commit off. No HTTP contract, frontend or scripts/svc.sh change; no live instance or shared PG touched; not deployed.

Refs

  • Supersedes Dev #482; Backend #210, #211 (Backend #183 closed as superseded)
  • Task card: .task/feature-u8-sqlite-instance-guard-r2.md
## Why Same-SQLite single active service (R11) and verifiable durability on the app connection (R12), approved 2026-10-12 as recovery plan r3 U8. The original Dev PR #482 / Backend #183 fell 1000+ commits behind main with conflicts (migration number, `main.go`, `PROJECT.md`, `architecture-baseline.json`, gitlink); per governance the host does not hand-resolve them, so U8 was re-ported onto current main by fresh agent-exec workers. Supersedes #482. While pinning, two pre-existing composite gaps blocked a correct Backend pin and were fixed minimally: - Dev main pinned Backend `b00e192` (admin password management + interpreter path fix, deployed) which never reached Backend main; with user authorization it landed via Backend #211 (merge `a670d2b`) so this pin does not roll it back. - Backend #208 pinned `deps/development-manager` at `bd3a7de` while Dev is at `67784f4` (descendant); `make test-pins` failed. Backend #210 now aligns it (`276dd73`). ## What - `modules/backend` → `276dd73824116fb55064eefef17f069ee1545ada` (head of Backend #210: Backend main incl. #211 + U8 + development-manager alignment; #210 merges fast-forward so Backend main will equal this SHA). - `docs/recovery/u8-sqlite-instance-guard.md`: U8 spec (instance_guard is migration v36). - `docs/svc.md`: lock file, `migrate` subcommand, `--adopt-instance-guard`, refusal messages. - `PROJECT.md`: two sentences recording the U8 approval/implementation status and spec link (NOT_RUN for fault injection, deployment, runtime acceptance). - `policy/architecture-baseline.json`: `backend/app → backend/instanceguard`, `backend/instanceguard → backend/store`. ## Evidence - Backend #210 CI success on `7b379d2` and `d7be3fd` (GATE; `276dd73` running); Backend #211 CI success on `78ae397` (GATE). - Host local (SELF): combined Backend tree main+#211+U8 `go build/vet/test ./...` ok; `make test-boundaries test-pins` pass (evidence in task card). - Agent receipts per unit in `.task/feature-u8-sqlite-instance-guard-r2.md`. - Authoritative: this PR's CI (`make test` incl. `test-backend-pg` real PostgreSQL readback + `make build`). ## Impact New Backend table v36; SQLite service refuses a second active process on the same data file; PG connections refuse fsync/full_page_writes/synchronous_commit off. No HTTP contract, frontend or `scripts/svc.sh` change; no live instance or shared PG touched; not deployed. ## Refs - Supersedes Dev #482; Backend #210, #211 (Backend #183 closed as superseded) - Task card: `.task/feature-u8-sqlite-instance-guard-r2.md`
weichen added 8 commits 2026-10-18 09:46:11 +00:00
Why: establish the authorized task workspace and its initial baseline.

Evidence: preserved precheck receipt in .task/feature-u8-sqlite-instance-guard-r2.md; R0=b5e23daed2f0ea46261979de1d62e4de0cfa88f9.

Impact: task metadata only; the feature workspace starts at b5e23daed2.

Refs: .task/feature-u8-sqlite-instance-guard-r2.md
Why: PR #482 and Backend #183 conflict with current main; r2 re-ports the approved U8 change.
Evidence: Backend transport 7b379d28 applied; Backend PR #210 CI success on that SHA.
Impact: Task card only.
Refs: Backend PR #210; supersedes Dev PR #482
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: Dev main pinned an unmerged Backend commit; #211 landed it before re-pinning to U8.
Evidence: transports b829de2 and 6d9bd7c applied; Backend #211 HEAD 78ae397 and #210 HEAD d7be3fd CI success.
Impact: Task card only.
Refs: Backend PR #210, #211
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: task-sync and test-pins evidence written by make evidence.
Evidence: card evidence rows (SELF); test-pins failed on development-manager pin drift, fixed in Backend #210.
Impact: Task card only.
Refs: Backend PR #210
Co-authored-by: Cursor <cursoragent@cursor.com>
Record the development-manager pin alignment for U8 r2
ci / svc-realcombo (pull_request) Successful in 2m0s
ci / test (pull_request) Successful in 7m33s
ci / test-pg (pull_request) Successful in 8m22s
3e32999ca9
Why: Backend #208 pinned an older development-manager than Dev; test-pins failed.
Evidence: transports 276dd73 (Backend) and 0c645e4 (Dev) applied; make test-pins passes (SELF).
Impact: Task card only.
Refs: Backend PR #210
Co-authored-by: Cursor <cursoragent@cursor.com>
weichen added 3 commits 2026-10-18 09:56:02 +00:00
Why: complete the task card before closing.
Evidence: Dev CI runs/3775 on 3e32999; Backend #210 fast-forwarded to 276dd73, #211 merged as a670d2b.
Impact: Task card only.
Refs: Dev PR #615; Backend PR #210, #211
Co-authored-by: Cursor <cursoragent@cursor.com>
Why: complete merge-readiness records before closing the card.
Evidence: Backend main 276dd73 equals the Dev pin; Dev CI runs/3775 success.
Impact: Task card only.
Refs: Dev PR #615
Co-authored-by: Cursor <cursoragent@cursor.com>
Fold-close the task card before merge
ci / test-pg (pull_request) Successful in 8m27s
ci / svc-realcombo (pull_request) Successful in 2m12s
ci / test (pull_request) Successful in 7m13s
a11873960e
Why: close the task card inside its own PR so landing it needs no post-merge backfill or separate close PR.
Evidence: .task/feature-u8-sqlite-instance-guard-r2.md -> .task/archive/feature-u8-sqlite-instance-guard-r2.md; status 已完成(合入前闭合); PR #615 https://git-home.u1680832.nyat.app:30319/weichen/Agent-System-Dev/pulls/615.
Impact: task metadata only; the card is archived within PR #615 and lands with its merge commit.
Refs: task.sh close --self
weichen merged commit ba81d638a6 into main 2026-10-18 10:20:01 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Dev#615