Skip to content

test(daemon): isolate failed-mount cleanup from graph readiness - #4827

Open
ScriptedAlchemy wants to merge 1 commit into
masterfrom
fix/daemon-mount-rollback-fixture
Open

ScriptedAlchemy wants to merge 1 commit into
masterfrom
fix/daemon-mount-rollback-fixture

Conversation

@ScriptedAlchemy

@ScriptedAlchemy ScriptedAlchemy commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Scope

Refs #4787 — CI fixture prerequisite only; not a retention CPU fix or issue closure.

This one-file PR preserves the already-published daemon failed-mount regression repair from #4798 commit 4984a54fc4cf6cd71d2191d60a80639b1f0b183f, byte-for-byte, so it can be reviewed independently of retention GC. It is stacked on the existing scheduler-fixture PR #4821 (adc55f8eca4ca4e03d2a475c2e72ed0dc854f736); that PR and its branch are not modified. Do not merge this into the prerequisite branch. Land #4821 in master first, then retarget this PR to master and revalidate.

Fixture correction

The failed-second-mount cleanup journey does not need a fully published code graph. Use the existing production-composition open_for_session_retrieval opener, while still requiring the deliberately corrupt graph database to refuse the second mount. Check the canonical sessions_db_path from the shared layout instead of constructing another path. After removing only the disposable corrupt fixture, reopen both projects and assert each server binds its own canonical session store.

The actual malformed-database refusal, all four store-existence/closed-WAL checks, both-project recovery, and shutdown remain. No timeout, production admission, test count, or CI policy is relaxed. The test is not evidence that code-index readiness itself has been repaired.

Provenance and verification

The retained dependency order is #4821 → this fixture PR → #4798. #4798 will retain its full existing tree and history while showing only retention-specific changes against this prerequisite. #4813 remains independently owned. No master merge, production/infra/tag/credential/release action, or schedule change is authorized by this publication.


Devin Review

Preserve the failed-mount fixture repair from 4984a54 byte-for-byte
in its own reviewable change above the shared scheduler repair #4821.
The rollback journey uses the existing session-retrieval opener,
checks the authoritative session path, and verifies both reopened
projects bind their own session stores. No deadline or assertion is
removed, and the malformed graph must still refuse admission.

This separates CI fixture work from the retention-specific #4798
review without reverting fixes, rewriting history, or editing #4813.
It is not evidence that the affected-host retention CPU incident is
resolved. Refs #4787.
@changeset-bot

changeset-bot Bot commented Nov 9, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: ee44f8c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

ScriptedAlchemy added a commit that referenced this pull request Nov 9, 2026
Join the reviewed #4821 and #4827 prerequisite ancestry without
changing the existing #4798 tree. Both prerequisite file blobs
already match this head exactly. Preserve all retention source,
behavioral tests, and concurrent history while allowing a focused
six-file retention review above the prerequisites.

Do not merge into the prerequisite branch. Land prerequisites in
master, retarget, revalidate, and retain the issue acceptance hold.
No changes from #4813, held #4776, or decision-model work are moved.

Refs #4787

@ScriptedAlchemy ScriptedAlchemy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second-pass source review of the exact one-file extraction: ee44f8c changes the failed-second-mount test to the existing session-retrieval composition opener, retains the real corrupt-graph refusal and four closed-store/WAL checks, and strengthens recovery by checking both canonical per-project session paths. It does not increase the graph-readiness deadline or suppress the corruption error. Blob 51efc83f65cffb7e27cb3a13eb5297684850f79d is byte-identical to the previously published #4798 repair, so no new test behavior is claimed by this extraction.

This is a reviewable CI fixture prerequisite, not an implementation of #4787 or a fix for graph publication. #4821's scheduler branch remains unchanged. #4798 now has this commit as an additional ancestor and contains only six retention-specific changed files relative to this branch; its full existing source tree/history is preserved.

Require actual nonzero execution of a_failed_later_mount_releases_the_whole_composition_before_returning through Bazel and the applicable full gates. No local Bazel pass or fresh exact-head pass is claimed. Keep the corruption refusal, both identity checks and cleanup assertions intact. Do not merge into #4821's branch: after #4821 lands in master, retarget here to master, validate and review, then retarget the retention child after this prerequisite lands. No approval/merge or production-incident closure is implied.

@ScriptedAlchemy ScriptedAlchemy left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the complete one-file diff at ee44f8c. The fixture continues to require the malformed graph to refuse the second mount, verifies all four stores/closed WALs, and now checks canonical session-store identity after both projects recover. The switch to open_for_session_retrieval isolates shutdown/rollback from unrelated graph-readiness work; no timeout, failure assertion, or production admission is weakened.

#4821 is now landed in master as 83694e0. Its tree f51e25607efa88492ad5bedac2f5e95ff01a4ae9 is identical to this PR's original parent adc55f8, so I retargeted this PR from the landed prerequisite branch to master without changing its head. GitHub still reports exactly this one-file delta.

Exact-head run 42540332272 is queued; no new Bazel pass or merge is claimed. Leave #4798 stacked until this prerequisite actually lands in master. No decision-model or release changes are involved.

This branch has not been deployed

No deployments
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