14 KiB
14 KiB
Changelog
All notable changes to GSD are documented in this file.
Format based on Keep a Changelog.
Unreleased
2.8.0 - 2026-03-13
Added
- Browser tools:
browser_analyze_formandbrowser_fill_form— form field inventory and intelligent filling by label/name/placeholder - Browser tools:
browser_find_best— scored element candidates for semantic intents - Browser tools:
browser_act— execute common browser micro-tasks in one call - Browser tools: 108 unit and integration tests covering all new components
Changed
- Browser tools: decomposed 5000-line monolithic
index.tsinto focused modules (state, capture, settle, lifecycle, refs, utils) with 11 categorized tool files - Browser tools: consolidated state capture reduces evaluate round-trips per action
- Browser tools: zero-mutation settle short-circuit for faster page interaction
- Browser tools: conditional body text capture — low-signal tools skip it for smaller token payloads
- Browser tools: screenshot resizing uses
sharpinstead of canvas evaluate calls - Browser tools: screenshots opt-in on navigate (no longer sent by default)
2.7.1 - 2026-03-13
Added
- Model fallback support for auto-mode phases — if the configured model fails, GSD tries alternate models before stopping
/killcommand for immediate process termination
Fixed
npm install -g gsd-pinow works — workspace packages bundled in npm tarball viabundleDependencies- External PI ecosystem packages (pi-rtk, pi-context, etc.) can now resolve
@mariozechner/*imports through jiti aliases - Missing
export-htmlvendor files (marked.min.js, highlight.min.js) restored - Skipped API keys now persist so the setup wizard doesn't repeat on every launch
- Provider config and extension loading reused correctly
Changed
/exituses graceful shutdown (saves session state);/killreplaces the old immediate-exit behavior
2.7.0 - 2026-03-12
Changed
- Vendor Pi SDK source (tui, ai, agent-core, coding-agent) into workspace monorepo under
packages/, replacing the compiled npm dependency and patch-package workflow. Pi internals are now directly modifiable as TypeScript source. - Existing patches (setModel persist option, Windows VT input caching) applied as source edits.
- Build pipeline runs workspace packages in dependency order before GSD compilation.
- Removed
patch-packagefrom devDependencies and postinstall.
2.6.0 - 2026-03-12
Added
- Proactive secret management — planning phase forecasts required API keys into a manifest; auto-mode collects pending secrets before dispatching the first slice
--continue/-cCLI flag to resume the most recent session
Fixed
- Doctor post-hook no longer preempts
complete-slicedispatch main_branchpreference restored;runPreMergeCheckimplemented for merge safety- Recovery/retry prompt injection capped to prevent V8 OOM on large sessions
.gsd/excluded from pre-switch auto-commits to prevent squash merge conflicts
2.5.1 - 2026-03-12
Added
secure_env_collectnow auto-detects existing keys, destination files, and provides guidance field for better onboarding UX
Changed
- Right-sized pipeline for simple work — single-slice milestones skip redundant research/plan sessions, reducing 9-10 sessions to 5-6
- Heavyweight plan sections (Proof Level, Integration Closure, Observability) are now conditional, omitted for simple slices
Fixed
- Squash-merge now aborts cleanly on conflict and stops auto-mode instead of looping with corrupted state
- Resolved baked-in merge conflict markers in loader.ts, logo.ts, and postinstall.js
2.5.0 - 2026-03-12
Added
- Native Anthropic web search — Claude models get server-side web search automatically, no Brave API key required
- GitService fully wired into codebase — programmatic git operations replace shell-based git commands in prompts
- Merge guards prevent slice completion when uncommitted changes or conflicts exist
- Snapshot support for saving and restoring
.gsd/state - Auto-push after slice squash-merge to main
- Rich commit messages with structured metadata
Fixed
- State machine deadlock when units fail to produce expected artifacts — retry and cross-validation now gate completion
- Duplicate Brave search tools when toggling providers repeatedly
- Windows test glob patterns (single quotes → unquoted for shell expansion)
- Conversation replay error caused by thinking blocks in stored history
- Brave search tools removed from API payload when no
BRAVE_API_KEYis set - Restore notifications suppressed on session resume to reduce UX noise
2.4.0 - 2026-03-12
Added
- Automatic migration of provider credentials from existing Pi installations — skip re-authentication when switching to GSD
- Pi extensions from
~/.pi/agent/extensions/discoverable in interactive mode - GitService core implementation for programmatic git operations
Changed
- System prompt compressed by 48% (360 → 187 lines) for better context efficiency
- Refined agent character and communication style prompts
- Added craft standards, self-debugging awareness, and work narration to agent prompts
Fixed
- RPC mode crash when
ctx.ui.themeis undefined (#121)
2.3.11 - 2026-03-12
Added
- Branded clack-based onboarding wizard on first launch — LLM provider selection (OAuth + API key), optional tool API keys, and setup summary (#118)
gsd configsubcommand to re-run the setup wizard anytime- Shared
src/logo.tsmodule as single source of truth for ASCII banner
Fixed
- Parallel subagent results no longer truncated at 200 characters
Changed
wizard.tstrimmed to env hydration only — onboarding logic moved toonboarding.ts- First-launch banner removed from
loader.ts(onboarding wizard handles branding)
2.3.10 - 2026-03-12
Added
- Branded postinstall experience with animated spinners, progress indicators, and clean summary (#115)
Fixed
- Ctrl+Alt shortcuts (dashboard, bg manager, voice) now show slash-command fallback in terminals that lack Kitty keyboard protocol support — macOS Terminal.app, JetBrains IDEs (#100, #104)
2.3.9 - 2026-03-12
Added
- Tavily as alternative web search provider alongside Brave Search (#102)
- Auto-mode progress widget now shows all stats; footer hidden during auto-mode (#75)
Fixed
- Auto-mode infinite loop and closeout instability — idempotent unit dispatch, retry caps, and atomic closeout (#96, #109)
- Migration no longer requires ROADMAP.md — milestones inferred from phases/ directory when missing (#93, #90)
- Worktree branch safety — proper namespacing and slice branch base selection (#92)
- Windows: use
execFileto avoid single-quote shell issues (#103) - Broken
read @GSD-WORKFLOW.mdreferences replaced with/gsdcommand (#88) - Google Search extension updated to use
gemini-2.5-flash(#83) - Duplicate
getCurrentBranchimport in auto.ts (#87) formatCostcrash on non-number cost values (#74)- Avoid
sudoprompts in postinstall script (#73) .gsd/folder removed from git tracking; consolidated.gitignore(#78)- Multiple community-reported bugs across CLI, auto-mode, and extensions
2.3.8 - 2026-03-11
Fixed
- Worktree file operations (Write, Read, Edit) now resolve paths against the active working directory instead of the launch directory (#72)
- Auto-mode merge guard handles all slice completion paths, preventing infinite dispatch loops when
complete-sliceis bypassed (#71)
2.3.7 - 2026-03-11
Added
- Remote user questions via Slack/Discord for headless auto-mode sessions
Fixed
- Auto-mode model switches no longer persist as the user's global default (#30)
- Auto-mode resume now rebuilds disk state and runs doctor before dispatching, preventing inline execution after pause (#16)
- Silent dispatch failure when command context is null now surfaces an error notification
- Race condition between timeout handlers and prompt dispatch in auto-mode
- Remote questions: validate IDs before test-send, sanitize error messages to prevent token leakage
- Remote questions: cap user_note at 500 chars to prevent LLM context injection
- Remote questions: validate channel ID format to prevent SSRF
- Remote questions: add 15s per-request fetch timeout to adapters
- Remote questions: distinguish Discord 404 from auth errors in reactions
- Prompt store sorting uses
updatedAtinstead of filename - TypeScript parameter properties desugared for
--experimental-strip-typescompatibility
Changed
- Remote question result details use discriminated union type
2.3.6 - 2026-03-11
Fixed
- Postinstall no longer triggers hidden
sudoprompt on Linux — Playwright's--with-depsflag is no longer run automatically, preventingnpm install -gfrom appearing to hang (#67) - Auto-commit dirty files before branch switch to prevent lost work during slice transitions
Changed
- Updated README to reflect current commands, extensions, and step mode workflow
2.3.5 - 2026-03-11
Fixed
- Voice extension: transcription no longer lost when pausing and resuming recording
2.3.4 - 2026-03-11
Added
- CHANGELOG.md with curated history from v0.1.6 onwards
- Project-local
/publish-versioncommand for npm releases - GitHub Sponsors funding configuration
- npm publish and install smoke test
0.3.3 - 2026-03-11
Added
/gsd nextstep mode — walk through units one at a time with a wizard between each/gsdbare command defaults to step mode/exitcommand to kill the GSD process immediately/clearas alias for/new(new session)- MCPorter extension for lazy on-demand MCP server integration
/voiceextension for real-time speech-to-text- Pi global install scripts
- Post-hook bookkeeping: auto-run doctor + rebuild STATE.md after each unit
Changed
- Improved worktree merge, create, remove, and reload resilience
- Discuss prompt rewritten with reflection step and depth enforcement
Fixed
- Idle watchdog false-firing on active agents — tasks >10min no longer get incorrectly skipped (#52)
- Browser screenshots constrained to 1568px max dimension (#56)
- Pi extensions loaded from
~/.pi/agent/extensions/(#51)
Removed
/gsd-runcommand (replaced by/gsdand/gsd next)
0.3.1 - 2026-03-11
Fixed
- Windows VT input restored after child processes exit (#41)
- Print/JSON mode in cli.js so subagents don't hang
- Discuss prompt loop prevention
- Managed tools bootstrap and gh auth
- Session list scoped to current working directory
- Bash/bg_shell hang and kill issues on Windows (#40)
/gsd-runhardcoded~/.pi/path (#38)- Windows backspace in masked input + custom browser path support (#36, #34)
Changed
- Renamed "Get Stuff Done" to "Get Shit Done"
0.3.0 - 2026-03-11
Added
/worktree(/wt) — git worktree lifecycle management (#31)/gsd migrate—.planningto.gsdmigration tool (#28)
Fixed
- Skipped API keys now persist so wizard doesn't repeat on every launch (#27)
- Scoped models restored from settings on new session startup (#22)
- Startup fallback no longer overwrites user's default model with Sonnet (#29)
0.2.9 - 2026-03-11
Fixed
- Idle recovery skips stuck units instead of silently stalling (#19)
pkg/package.jsonversion synced with pi-coding-agent to prevent false update banner- Milestones with summary but no roadmap treated as complete (#13)
0.2.8 - 2026-03-11
Added
- Mac-tools extension (macOS native automation)
0.2.6 - 2026-03-11
Fixed
- Default model validated against full registry on every startup
0.2.5 - 2026-03-11
Fixed
- Circular self-dependency removed, default model set to anthropic/claude-sonnet-4-6 with thinking off
0.2.4 - 2026-03-11
Added
- Branded setup wizard UI with visual hierarchy, descriptions, and status feedback
- Branded banner on first launch
- Postinstall banner with version and next-step hint
Fixed
- All
.pi/paths updated to.gsd/ - Default model matching by
id.includes('sonnet')for dated API IDs - Circular gsd-pi self-dependency removed
- Pi SDK version check suppressed
- Selected options stay lit when notes field is focused
0.1.6 - 2026-03-11
Added
- GitHub extension tool suite with confirmation gate
- Bundled skills: frontend-design, swiftui, debug-like-expert
- Skills trigger table in system prompt
- Resource loader syncs bundled skills to
~/.gsd/agent/skills/
Fixed
~/.gsd/agent/paths in prompt templates instead of~/.pi/agent/(#10)- Guard against re-injecting discuss prompt when session already in flight
Changed
- License updated to MIT