fix(hooks/atlas): capture plan snapshot for .sisyphus paths

Oracle review of PR #3943 surfaced that endTaskTimer never fires for real Prometheus plans because their canonical path is .sisyphus/plans/ and the snapshot capture was nested inside the !isSisyphusPath branch intended for direct-work warning suppression. Move the snapshot/path tracking out of the warning gate so all plan-file edits are snapshotted regardless of .sisyphus prefix. Keep the warning branch isSisyphus-gated so Atlas does not yell at legitimate plan edits.

Regression test now uses a real .sisyphus/plans/ path and fails against HEAD before the fix.
This commit is contained in:
YeonGyu-Kim
2026-05-11 14:48:49 +09:00
parent cf5fe757df
commit 29c42485a8
2 changed files with 28 additions and 23 deletions
@@ -230,7 +230,9 @@ describe("createToolExecuteAfterHandler task timers", () => {
it("ends task timer when plan checkbox flips to checked via edit tool", async () => {
// given
const parentSessionID = "ses_parent_3"
const planPath = join(testDirectory, "task-timer-edit-plan.md")
const planDirectory = join(testDirectory, ".sisyphus", "plans")
mkdirSync(planDirectory, { recursive: true })
const planPath = join(planDirectory, "task-timer-edit-plan.md")
writeFileSync(planPath, "# Plan\n\n## TODOs\n- [ ] 1. Implement auth flow\n", "utf-8")
writeBoulderState(testDirectory, {
schema_version: 2,