Commit graph

2839 commits

Author SHA1 Message Date
Jeremy McSpadden
23c38807ac Merge pull request #3715 from jeremymcs/fix/pre-exec-ordering-false-positive
fix(gsd): exclude task.files from checkTaskOrdering to prevent false positives
2026-04-07 08:54:04 -05:00
Jeremy
b6da76f8b8 fix(gsd): exclude task.files from checkTaskOrdering to prevent false positives
task.files ("files likely touched") is a planning hint that includes files
a task will create, not a dependency contract. Including it in ordering
checks caused false "sequence violation" blocking errors when a task listed
files it would create. Only task.inputs (machine-parsed prerequisites)
should trigger ordering violations, matching checkFilePathConsistency (#3626).

Closes #3677

- Changed checkTaskOrdering to check [...task.inputs] instead of
  [...task.files, ...task.inputs]
- Updated 4 existing tests to use inputs (were testing buggy behavior)
- Added 8 regression tests: 5 ordering false-positive cases,
  3 consistency edge cases
2026-04-07 08:41:51 -05:00
Jeremy McSpadden
c3485820ca Merge pull request #3164 from jeremymcs/fix/3161-state-machine-fixes
fix(state-machine): 9 resilience fixes from validation audit
2026-04-07 07:57:48 -05:00
Jeremy
a30e837d9e fix(state): skip ghost check for queued milestones in registry build
The ghost milestone check (#3645) was eliminating queued shell
milestones before the deferred-shell logic (#3470) could handle them,
causing queued milestones to vanish from the registry entirely.
2026-04-07 07:41:10 -05:00
Jeremy
b658eb9a24 fix(ci): replace empty catch blocks and raw stderr with logWarning
Fixes workflow-logger coverage test failures: empty catch blocks in
reopen-slice/reopen-task and raw process.stderr in reopen-milestone
now use logWarning from workflow-logger.
2026-04-07 07:36:15 -05:00
Jeremy
90440f93b3 fix(logging): add debugLog to empty catch in reopen-milestone
Addresses review comment on #3164 — replace empty catch block
with debugLog for observability.
2026-04-07 07:27:24 -05:00
Jeremy
c6093b4bbd fix(state-machine): 9 resilience fixes + 86 regression tests (#3161)
Fixes identified by comprehensive state machine validation:

- M12: reopen-task/slice now deletes SUMMARY.md from disk, preventing
  the DB-filesystem reconciler from auto-correcting tasks back to
  "complete" — reopen was previously a no-op when artifacts existed
- H4: add 30s hard timeout to unitPromise via Promise.race — prevents
  permanent hang if supervision fails to resolve agent_end
- H5: add handleReopenMilestone — milestone completion was irrevocable
- H6: pass ID as title when auto-creating phantom parent entities
- H7: guard loadRegistry() against missing/corrupt registry.json
- M4: report_blocker replay now sets blocker_discovered flag via
  new setTaskBlockerDiscovered() DB function
- M5: insertVerificationEvidence uses INSERT OR IGNORE with unique
  index on (task_id, slice_id, milestone_id, command, verdict)
- M11: complete-slice rollback preserves original status instead of
  hardcoding "pending"
- M14: deriveWorkflowAction shows contextual labels for blocked,
  paused, validating-milestone, completing-milestone, needs-discussion,
  and replanning-slice phases instead of generic "Continue"

Includes 86 regression tests (49 unit + 37 integration) validating
every phase transition, completion guard, and edge case.

Closes #3161
2026-04-07 07:27:08 -05:00
Jeremy McSpadden
dab20a2b7f Merge pull request #3119 from jeremymcs/feat/reactive-graph-diagnostics
feat(reactive): graph diagnostics and subagent_model config
2026-04-07 07:23:18 -05:00
Jeremy McSpadden
8e54878fac Merge pull request #3118 from jeremymcs/feat/parallel-research-slices
feat(dispatch): parallel research slices and parallel milestone validation
2026-04-07 07:22:24 -05:00
Jeremy McSpadden
91eec25d21 Merge pull request #3117 from jeremymcs/feat/worker-model-override
feat(parallel): worker model override for parallel milestone workers
2026-04-07 07:22:00 -05:00
Jeremy McSpadden
4fcb0d7fe7 Merge pull request #3034 from jeremymcs/feat/gsd-show-config
feat(gsd): add /gsd show-config command
2026-04-07 07:20:38 -05:00
Jeremy McSpadden
b38db63c96 Merge pull request #3555 from Tibsfox/fix/captures-executed-timestamp
fix(gsd): stamp defer and milestone captures as executed after triage
2026-04-07 07:19:43 -05:00
Jeremy McSpadden
caca43814f Merge pull request #3554 from Tibsfox/fix/filepath-slash-command
fix(tui): treat absolute file paths as plain text, not commands
2026-04-07 07:19:25 -05:00
Jeremy McSpadden
e7bf3ac826 Merge pull request #3549 from Tibsfox/fix/stale-milestone-selection
fix(gsd): defer queued shells in active milestone selection
2026-04-07 07:18:08 -05:00
Jeremy McSpadden
41ceb95b66 Merge pull request #3533 from NilsR0711/feat/queued-discuss-fast-path
feat(gsd): add fast path for queued milestone discussion
2026-04-07 07:17:53 -05:00
Jeremy McSpadden
ad67824b46 Merge pull request #3548 from Tibsfox/fix/429-quota-cascade
fix(retry): prevent 429 quota cascade and 30-min provider lockout
2026-04-07 07:17:40 -05:00
Jeremy McSpadden
3e7dcdb3a5 Merge pull request #3556 from Tibsfox/fix/worktree-main-branch-pref
fix(gsd): use main_branch preference in worktree creation
2026-04-07 07:17:17 -05:00
Jeremy McSpadden
53cd0bf892 Merge pull request #3553 from Tibsfox/fix/cmux-image-rerender-loop
fix(tui): break infinite re-render loop for images in cmux
2026-04-07 07:17:00 -05:00
Jeremy McSpadden
c3c0fb782a Merge pull request #3550 from Tibsfox/fix/stale-state-md-guided-flow
fix(gsd): rebuild STATE.md before guided-flow dispatch
2026-04-07 07:16:30 -05:00
Jeremy McSpadden
4dc9fa274c Merge pull request #3557 from Tibsfox/fix/rethink-skip-slice-db-sync
fix(gsd): rebuild STATE.md after skip-slice and strengthen rethink prompt
2026-04-07 07:15:53 -05:00
Jeremy McSpadden
8cbd1b5a83 Merge pull request #3558 from Tibsfox/fix/zero-slice-roadmap-blocked
fix(gsd): treat zero-slice roadmap as pre-planning in guided flow
2026-04-07 07:15:29 -05:00
Jeremy McSpadden
cd347bb258 Merge pull request #3581 from NilsR0711/fix/sharp-optional-browser-tools
fix(browser-tools): make sharp an optional lazy dependency
2026-04-07 07:15:07 -05:00
Jeremy McSpadden
15ca62df15 Merge pull request #3653 from Tibsfox/fix/dispatch-guard-closed-status
fix(gsd): use isClosedStatus() in dispatch guard for reconciled slices
2026-04-07 07:13:53 -05:00
Jeremy McSpadden
45604bbc16 Merge pull request #3661 from Tibsfox/fix/verification-not-provided-default
fix(gsd): recognize 'Not provided.' default in isVerificationNotApplicable
2026-04-07 07:11:40 -05:00
Jeremy McSpadden
4911f937ad Merge pull request #3662 from igouss/fix/symlink-extension-discovery
fix(gsd): discoverManifests skips symlinked extension directories
2026-04-07 07:11:23 -05:00
Jeremy McSpadden
f2c87d71ee Merge pull request #3663 from Tibsfox/fix/queued-user-message-skip-pause
fix(gsd): pause auto-mode on queued-user-message tool skip instead of retrying
2026-04-07 07:09:38 -05:00
Jeremy McSpadden
182a8c758d Merge pull request #3664 from Tibsfox/fix/error-success-masks-real-error
fix(gsd): surface real provider error when errorMessage is 'success'
2026-04-07 07:09:25 -05:00
Jeremy McSpadden
e87119e7e0 Merge pull request #3665 from Tibsfox/fix/worktree-expected-condition-warnings
fix(gsd): suppress misleading ENOENT/EISDIR warnings in worktree operations
2026-04-07 07:09:08 -05:00
Jeremy McSpadden
85a578265b Merge pull request #3667 from Tibsfox/fix/clear-stale-pending-autostart
fix(gsd): clear stale pendingAutoStart after /clear interrupts discussion
2026-04-07 07:08:53 -05:00
Jeremy McSpadden
d5dac9ec04 Merge pull request #3668 from Tibsfox/fix/stale-lockfile-auto-recovery
fix(gsd): recover from stale lockfile after crash or SIGKILL
2026-04-07 07:08:41 -05:00
Jeremy McSpadden
f8c5a9c6ee Merge pull request #3669 from Tibsfox/fix/find-missing-summaries-skip-closed
fix(gsd): exclude closed slices from findMissingSummaries check
2026-04-07 07:08:26 -05:00
Jeremy McSpadden
1a0e3aecbb Merge pull request #3670 from Tibsfox/fix/needs-remediation-revalidation
fix(gsd): force re-validation when verdict is needs-remediation
2026-04-07 07:08:14 -05:00
Jeremy McSpadden
498a7a0aac Merge pull request #3671 from Tibsfox/fix/phantom-milestone-ghost-detection
fix(gsd): detect phantom milestones from abandoned generate_id
2026-04-07 07:07:59 -05:00
Jeremy McSpadden
24d40788ac Merge pull request #3672 from Tibsfox/fix/query-tools-ensure-db-open
fix(gsd): open DB on demand in gsd_milestone_status for non-auto sessions
2026-04-07 07:07:47 -05:00
Jeremy McSpadden
0d3789eee5 Merge pull request #3673 from Tibsfox/fix/auto-remediate-stale-slice-status
fix(gsd): auto-remediate stale slice DB status when SUMMARY exists
2026-04-07 07:07:33 -05:00
Jeremy McSpadden
7420399125 Merge pull request #3675 from Tibsfox/fix/isolation-none-stale-branch-guard
fix(gsd): auto-checkout to main when isolation:none finds stale milestone branch
2026-04-07 07:07:22 -05:00
Jeremy McSpadden
f4a9f904d1 Merge pull request #3678 from Tibsfox/fix/complete-slice-verification-gate
fix(gsd): add verification gate to complete-slice tool
2026-04-07 07:07:01 -05:00
Jeremy McSpadden
5384e0e6ec Merge pull request #3679 from Tibsfox/fix/verify-artifact-false-positive
fix(gsd): tighten verifyExpectedArtifact to prevent rogue-write false positives
2026-04-07 07:06:49 -05:00
Jeremy McSpadden
218e53addd Merge pull request #3680 from Tibsfox/fix/restore-tools-after-discuss
fix(gsd): restore full tool set after discuss flow scoping
2026-04-07 07:06:38 -05:00
Jeremy McSpadden
6308a9d6e9 Merge pull request #3681 from Tibsfox/fix/discuss-slice-structured-questions
fix(gsd): add structuredQuestionsAvailable conditional to slice discuss
2026-04-07 07:06:25 -05:00
Jeremy McSpadden
764d8ff466 Merge pull request #3682 from Tibsfox/fix/sync-worktree-skip-current-milestone
fix(gsd): skip current milestone in syncWorktreeStateBack to prevent merge conflicts
2026-04-07 07:06:14 -05:00
Jeremy McSpadden
44872ca501 Merge pull request #3683 from Tibsfox/fix/project-root-cwd-crash
fix(gsd): handle deleted cwd crash and validate main_branch pref
2026-04-07 07:05:57 -05:00
Jeremy McSpadden
864c8e7c2a Merge pull request #3684 from Tibsfox/fix/mark-note-captures-executed
fix(gsd): mark note captures as executed in triage resolution
2026-04-07 07:04:52 -05:00
Jeremy McSpadden
0163b5b5bf Merge pull request #3685 from Tibsfox/fix/mcp-server-subpath-imports
fix(mcp): use createRequire to resolve SDK wildcard subpath imports
2026-04-07 07:04:38 -05:00
Jeremy McSpadden
3e0cdcd7ea Merge pull request #3686 from Tibsfox/fix/run-uat-replay-cap
fix(gsd): cap run-uat dispatch attempts to prevent infinite replay loop
2026-04-07 07:03:54 -05:00
Jeremy McSpadden
21898dec7e Merge pull request #3689 from Tibsfox/fix/interview-notes-enter-loop
fix(tui): prevent Enter key infinite loop in interview notes mode
2026-04-07 07:03:32 -05:00
Jeremy McSpadden
559abeb95c Merge pull request #3695 from Tibsfox/fix/block-phantom-milestone-creation
fix(gsd): default insertMilestone status to queued instead of active
2026-04-07 07:03:09 -05:00
Jeremy McSpadden
91ed0055ef Merge pull request #3688 from Tibsfox/fix/provider-manager-enter-key
fix(provider): handle Enter key to initiate auth setup in provider manager
2026-04-07 07:02:48 -05:00
Jeremy McSpadden
57e9063580 Merge pull request #3691 from Tibsfox/fix/status-open-db-cold-session
fix(gsd): open DB before status derivation + respect isolation:none in quick
2026-04-07 07:02:31 -05:00
Jeremy McSpadden
301e7833ea Merge pull request #3690 from Tibsfox/fix/gitignore-bg-shell
fix(gsd): add .bg-shell/ to baseline gitignore patterns
2026-04-07 07:02:15 -05:00