docs(handoff): brief for the e2e database-locked defect blocking v1.0.0 - #12
Merged
Conversation
Brief for the successor picking up the only known functional defect, plus the STATUS.md state-summary rewrite and session-log entry that point at it. Records the two user decisions from this session: hold the tag and GitHub Release until e2e is green, and the successor works autonomously. Also flags that the local v1.0.0 tag points at ba82ca8, which predates the fresh-clone fix and must be moved before it is ever pushed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Documentation only — no code changes.
Adds
docs/handoffs/2026-07-25-e2e-database-locked.md, a self-contained brief for whoever picks up thee2efailure, and updatesdocs/STATUS.mdto point at it.Why
main@74cadcfhas everything from PRs #9/#10/#11.backend (3.11),backend (3.12),frontend, andvalidate-configare green.e2eis not — it fails withclaim_next_task failed: database is locked. That is now the only known functional defect, and the release is deliberately held behind it.What the brief carries
backend/main.py:99passes a constantdata/web.dbintostart_run()on everystart_project, and eachstart_runspawns its own state server plus 4 workers. Two concurrent runs therefore put two OS processes on one SQLite file, which the store'sasyncio.Lockcannot serialise — it is in-process only.busy_timeoutpragma. Python'ssqlite3.connect()applies a 5s busy timeout thataiosqliteinherits, so that is not the cause — the brief says so explicitly to stop the next agent burning time there.v1.0.0tag points atba82ca8, which predates the fresh-clone fix7bfa00dand therefore cannot start on a clean checkout. It must be moved before it is ever pushed.Decisions recorded
Both confirmed by the user this session rather than assumed:
v1.0.0tag and GitHub Release untile2eis green.Four genuinely open questions are carried as open questions rather than silently defaulted — chiefly whether the Playwright specs should be rewritten against the engine's flow or the job retired, which is a user-facing call.