Commit graph

3218 commits

Author SHA1 Message Date
Jeremy McSpadden
e7dc2d4bd2 Merge pull request #3655 from Tibsfox/fix/connection-error-transient
fix(gsd): classify plain 'Connection error.' as transient for auto-mode retry
2026-04-11 23:22:05 -05:00
Jeremy McSpadden
b797380786 Merge pull request #3025 from jeremymcs/worktree-fix-3023-home-dir-error
fix(commands): friendly message when /gsd runs from $HOME
2026-04-11 23:19:51 -05:00
Jeremy McSpadden
74a832563f Merge pull request #3177 from jeremymcs/perf/tool-cache-control
perf(pi-ai): add cache_control breakpoints to tool definitions
2026-04-11 23:12:07 -05:00
Jeremy
4b69e44a42 merge: resolve upstream/main conflicts for PR #3177 2026-04-11 22:59:58 -05:00
Jeremy McSpadden
12ed853dc3 Merge pull request #3735 from mastertyko/fix/3720-dispatch-guard-reverse-dependency-fallback-fresh
fix(gsd): skip reverse dependents in dispatch fallback
2026-04-11 22:57:10 -05:00
Jeremy McSpadden
2f92714cbb Merge pull request #3882 from mastertyko/fix/3860-onboarding-custom-default-provider
fix(cli): honor custom-provider defaults before onboarding
2026-04-11 22:56:09 -05:00
Jeremy McSpadden
0935720161 Merge pull request #3986 from mastertyko/fix/3913-complete-slice-flat-summary-layout
fix(gsd): document flat task summary layout
2026-04-11 22:55:18 -05:00
Jeremy McSpadden
30129a1a49 Merge pull request #3985 from mastertyko/fix/3895-validate-milestone-verification-classes
fix(gsd): require verification classes in validation prompts
2026-04-11 22:54:05 -05:00
Jeremy McSpadden
f76c282bad Merge pull request #3982 from mastertyko/fix/3965-pre-exec-existing-file-ordering
fix(gsd): ignore pre-existing files in task ordering
2026-04-11 22:53:07 -05:00
Jeremy McSpadden
56ee5616a5 Merge pull request #3984 from mastertyko/fix/3973-mcp-inline-db-open
fix(mcp-server): open the DB for inline workflow tools
2026-04-11 22:52:52 -05:00
Jeremy McSpadden
80416f0859 Merge pull request #3991 from mastertyko/fix/3910-plan-slice-prose-inputs
fix(gsd): ignore prose inputs in pre-exec checks
2026-04-11 22:52:34 -05:00
Jeremy McSpadden
9dde1b9410 Merge pull request #3987 from mastertyko/fix/3911-preserve-anthropic-api-provider
fix(cli): preserve anthropic api provider
2026-04-11 22:51:18 -05:00
Jeremy McSpadden
083fc8e03d Merge pull request #3988 from mastertyko/fix/3717-read-existing-artifacts-before-write
fix(gsd): read existing artifacts before write
2026-04-11 22:50:53 -05:00
Jeremy McSpadden
7161424152 Merge pull request #3994 from mastertyko/fix/3822-auto-start-project-db-path
fix(gsd): keep project db path after worktree enter
2026-04-11 22:47:55 -05:00
Jeremy McSpadden
904cc4a3cd Merge pull request #3930 from mastertyko/fix/3924-tool-invocation-json-variant
fix(gsd): detect property-value JSON invocation errors
2026-04-11 22:35:07 -05:00
Jeremy McSpadden
8cd176649c Merge pull request #3877 from mastertyko/fix/3844-ensure-db-open-bootstrap
fix(gsd): open DB before bootstrap deriveState
2026-04-11 22:34:15 -05:00
Jeremy McSpadden
2858eb70f7 Merge pull request #3883 from mastertyko/fix/3762-notification-dedup-fallback
fix(gsd): dedupe repeated notifications
2026-04-11 22:25:58 -05:00
Jeremy McSpadden
1b35b5ef44 Merge pull request #3989 from mastertyko/fix/3914-mcp-sdk-js-subpaths
fix(mcp-server): use explicit sdk js subpaths
2026-04-11 22:25:02 -05:00
Jeremy McSpadden
8a8baad84d Merge pull request #4012 from jeremymcs/docs/readme-v271
docs: update README What's New for v2.71
2026-04-11 18:31:22 -05:00
Jeremy
4c8fd40f1e docs: update README What's New section for v2.71 2026-04-11 18:30:27 -05:00
github-actions[bot]
cf6f0613dd release: v2.71.0 2026-04-11 23:19:57 +00:00
Jeremy McSpadden
6bf76274a3 Merge pull request #4009 from jeremymcs/fix/pinned-output-message-end-duplicate
fix(tui): clear pinned output on message_end to prevent duplicate display
2026-04-11 17:55:14 -05:00
Jeremy
b488961609 fix(tui): clear pinned output on message_end to prevent duplicate display
The pinned "Latest Output" zone was only cleared at agent_end, but during
flows with form elicitation (e.g. discuss-phase), there is a gap between
message_end and agent_end where the agent waits for user input. During this
gap, the same content was visible in both the chat history and the pinned
zone. Clear the pinned zone at message_end when the assistant message is
finalized in the chat container.
2026-04-11 17:41:50 -05:00
Jeremy McSpadden
65c42ba6dc Merge pull request #4008 from jeremymcs/fix/latest-output-duplicate
fix(tui): clear pinned latest output on turn completion
2026-04-11 17:09:54 -05:00
Jeremy
5531538e0d fix(tui): clear pinned latest output on turn completion 2026-04-11 16:58:48 -05:00
Jeremy McSpadden
de065094ea Merge pull request #4006 from jeremymcs/fix/workflow-events-toctou
fix: TOCTOU file locking race conditions in event log and custom workflow graph
2026-04-11 16:27:37 -05:00
Jeremy
01b4177041 test(gsd): add file-lock TOCTOU fallback coverage 2026-04-11 16:15:51 -05:00
Jeremy McSpadden
31e88c99d2 Merge pull request #4007 from jeremymcs/refactor/state-derive-god-function
refactor: extract deriveStateFromDb logic into composable helpers
2026-04-11 16:11:45 -05:00
Jeremy
647056aa7d test(state): add tests for extracted deriveStateFromDb helpers
Cover the composable helpers extracted from deriveStateFromDb:
reconcileDiskToDb, buildCompletenessSet, buildRegistryAndFindActive,
handleNoActiveMilestone, resolveSliceDependencies, reconcileSliceTasks,
detectBlockers, checkReplanTrigger, checkInterruptedWork, and queue
order sorting.
2026-04-11 16:00:28 -05:00
Jeremy McSpadden
9b1a44aa61 Merge pull request #4003 from Git-Scram/fix/tui-pinned-output
fix(tui): restore pinned output above editor during tool execution
2026-04-11 15:39:50 -05:00
Jeremy
c63220ab72 refactor: extract deriveStateFromDb logic into composable helpers
Extracts the monolithic deriveStateFromDb function into distinct,
composable helper functions (reconcileDiskToDb, resolveSliceDependencies,
detectBlockers, etc.) inside state.ts.

Resolves technical debt identified during the code quality audit by
drastically reducing cyclomatic complexity while preserving the exact
type signature and logical behavior.

Also removes duplicate disk->DB reconciliation that could overwrite
milestone statuses.
2026-04-11 15:19:48 -05:00
Git-Scram
1d1e47e78b fix(tui): restore pinned output above editor during tool execution
Restores the pinned assistant output zone that shows the latest narration
during tool execution. Adds markdown rendering, animated spinner, height
capping to prevent render flashing, and session rebuild support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-11 15:53:29 -04:00
Jeremy
68b638a588 fix: TOCTOU file locking race conditions in event log and custom workflow graph
Implements file-level advisory locking via proper-lockfile to ensure
atomic read-modify-write sequences in:
- compactMilestoneEvents (event-log.jsonl)
- custom-workflow-engine reconcile (GRAPH.yaml)

Fixes silent data loss when concurrent auto-mode or dashboard
sessions overlap in these operations.
2026-04-11 14:49:19 -05:00
Jeremy McSpadden
ad61c43907 Merge pull request #3997 from jeremymcs/fix/mcp-output-stream-order-secure-fallback
fix(interactive): keep MCP tool ordering and secure env fallback prompts
2026-04-11 13:42:16 -05:00
Jeremy
2d531720f7 fix(tui): mask secure extension input values in interactive mode 2026-04-11 13:28:17 -05:00
Jeremy
bf4bcfadde fix(claude-code): harden MCP elicitation schema handling 2026-04-11 13:26:24 -05:00
Jeremy
1495e711e1 fix(claude-code): accept secure_env_collect MCP elicitation forms 2026-04-11 13:18:27 -05:00
Jeremy
6b52f5df3f chore(pr): drop web-layer changes from MCP stream-order fix 2026-04-11 12:53:26 -05:00
Jeremy
74fee9ed48 fix(interactive): keep MCP tool output ordered and restore secure prompt fallback 2026-04-11 12:47:41 -05:00
Jeremy McSpadden
959f4c53d1 Merge pull request #3996 from jeremymcs/feat/mcp-secure-env-collect
feat(mcp-server): add secure_env_collect tool via MCP elicitation
2026-04-11 12:06:02 -05:00
Jeremy
ea506f66c8 feat(mcp-server): add secure_env_collect tool via MCP form elicitation
Exposes secure_env_collect as an MCP tool so any MCP client (Claude Code,
Cursor, etc.) can collect secrets through form-based input. Values are
written directly to .env/Vercel/Convex and never appear in LLM context —
only key names and applied/skipped status are returned.

- New env-writer.ts with writeEnvKey, detectDestination, checkExistingEnvKeys, applySecrets
- Uses server.server.elicitInput() to present form fields to the MCP client
- Pre-checks existing keys to skip already-set env vars
- Auto-detects destination from project files (vercel.json, convex/ dir)
- 27 tests covering utilities and tool integration

Closes #3975
2026-04-11 11:51:43 -05:00
Jeremy McSpadden
5d48038816 Merge pull request #3992 from jeremymcs/fix/mcp-output-stream-order
fix(interactive): preserve MCP tool output stream ordering
2026-04-11 11:46:23 -05:00
Jeremy
ba6c1f5d7e test(interactive): cover MCP tool output ordering in chat controller 2026-04-11 11:32:28 -05:00
mastertyko
c35b3d219b fix(gsd): keep project db path after worktree enter 2026-04-11 18:29:57 +02:00
Jeremy
58d729894e fix(interactive): preserve MCP tool output stream ordering 2026-04-11 11:26:08 -05:00
mastertyko
3f407b0ec4 fix(gsd): ignore prose inputs in pre-exec checks 2026-04-11 18:25:32 +02:00
mastertyko
656ad2791a test(cli): avoid secret-scan false positives 2026-04-11 18:12:09 +02:00
mastertyko
12be0eab7a fix(gsd): read existing artifacts before write 2026-04-11 18:10:09 +02:00
mastertyko
a335a87703 fix(mcp-server): use explicit sdk js subpaths 2026-04-11 18:10:09 +02:00
mastertyko
fee16a70c3 fix(cli): preserve anthropic api provider 2026-04-11 18:10:09 +02:00