Skip to content

SQLite ladder + delivery hardening, green from-empty E2E - #17

Merged
trac41799 merged 1 commit into
mainfrom
docs/acceptance-run-6
Sep 30, 2026
Merged

trac41799 merged 1 commit into
mainfrom
docs/acceptance-run-6

Conversation

@trac41799

Copy link
Copy Markdown
Owner

Closes the local-database loop: a zero-dependency SQLite ladder plus delivery hardening, with a green from-empty E2E.

SQLite ladder (no Docker, no cloud)

  • New nextjs-sqlite-vercel preset (database: sqlite, no MCP requirement).
  • Scaffold branches on it: provider = "sqlite" + file:./dev.db, no supabase client/lib, no compose file, local-first .env.
  • Provision records a sqlite target without touching Docker; verification's DB check is provider-aware (to_regclass for Postgres, per-model COUNT probes for SQLite — db execute prints no rows there).
  • Green from-empty E2E: provision (sqlite target) → scaffold (committed) → agent done → merged → install → db push → all 19 checks pass, including database reachable + schema applied and E2E runtime. ~6 min.

Delivery hardening (from real-run evidence)

  • HANDOFF_*.md excluded from delivery commits (it leaked into the deliverable, same class as .acc/).
  • Scaffold output is now committed (commit_scaffold_output, exactly the scaffold's file list): agent worktrees branch from the base branch, and uncommitted scaffold output was invisible to every agent — an agent literally reported "no package manifest exists in this worktree". History now reads empty → scaffold → agent → merge.
  • Post-merge guard: files a merge delivered must be present in the working tree, else a loud conflict (fail-closed over silent loss).
  • Scaffold .gitignore now covers .worktrees/.

Also fixed on the way

  • render_compose_yml used \-continuations that strip indentation → flattened YAML with a duplicate volumes: key, caught only by the live Docker test. Rewritten as a raw string + structural assertions.
  • Preserved run artifacts moved out of the repo (they polluted the web test glob); git status clean.

Gates

Rust 242 lib + 42 integration (3 real-agent tests ignored), Web 341, tsc/lint clean.

Still pending

Live container boot (Docker engine was down; self-skipping live test + exact commands in LOCAL-DATABASE.md) and the cloud-migration proof (EXTERNAL-VERIFICATION.md).

@vercel

vercel Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
source-forge Ready Ready Preview Sep 30, 2026 10:51pm UTC

@trac41799
trac41799 merged commit 47949dd into main Sep 30, 2026
8 checks passed
SQLite target needs no Docker or cloud: new nextjs-sqlite-vercel preset, scaffold branches (sqlite provider/file URL, no supabase client, no compose), provision records the target, provider-aware DB check (COUNT probes for sqlite). From-empty E2E green: all 19 checks pass. Delivery hardening: HANDOFF excluded from delivery commits, scaffold output committed so agents see the app, post-merge guard against silent loss, .gitignore covers .worktrees. Also fixed: compose YAML flattened by continuations; artifacts moved out of the repo. Tests: 242 lib + 42 integration. Docs: LOCAL-DATABASE.md.

This branch was successfully deployed

1 active deployment
Preview — 1fbfd58c Deployed Sep 30, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant