What's Changed
- docs: audit and update docs/ for v1.40.0 release by @trek-e in #3048
- refactor(sdk): extract GSDTools transport seam + policy by @trek-e in #3058
- refactor(query): extract command catalog seam for registry wiring by @trek-e in #3060
- refactor(query): deepen dispatch policy seam with structured result contract by @trek-e in #3066
- docs(contributing): codify CONTEXT + ADR contribution and testing standards by @trek-e in #3071
- refactor(query): deepen command definition seam and clean fallback mapping by @trek-e in #3069
- refactor(cli): extract Query CLI Adapter Module seam by @trek-e in #3074
- refactor(query): deepen runtime context/native adapter/output seams by @trek-e in #3076
- Deepen query dispatch seam with Command Topology Module by @trek-e in #3078
- refactor: deepen GSDTools query execution seams by @trek-e in #3085
- refactor: deepen query architecture seams with compatibility shims by @trek-e in #3108
- fix: respect explicit milestone version in milestone complete by @trek-e in #3109
- fix: normalize stale STATE narrative tails on milestone completion by @trek-e in #3122
- fix: guard optional sketch-findings probes from non-zero ls exits by @trek-e in #3119
- fix: make orphaned worktree prune non-destructive by default by @trek-e in #3117
- fix: remove stale /gsd-list-phase-assumptions guidance from progress routing by @trek-e in #3111
- fix: align SDK install/fallback guidance with query-capable CLI by @trek-e in #3123
- fix: prevent state complete-phase from resolving literal 'Phase' token by @trek-e in #3118
- fix: normalize legacy top-level branching_strategy into git config by @trek-e in #3116
- fix: remove /clear then from resume route templates by @trek-e in #3113
- fix: make update custom-file backup resilient to EACCES by @trek-e in #3124
- fix: count nested plans/ layout in phase status indexing by @trek-e in #3115
- fix: remove stale /gsd-next references from user-facing surfaces by @trek-e in #3114
- fix: canonicalize plan-summary matching for suffixless summaries by @trek-e in #3112
- fix: make phase insert placeholder/dry-run preconditions explicit by @trek-e in #3125
- fix(#3131): re-wire 4 orphaned workflows as flags on parent commands by @trek-e in #3133
- docs(#3148): rewrite root README — storyline + highlights only, link to docs for detail by @trek-e in #3149
- fix(#3130): harden update.md npx invocations against cache-stale and token-routing failures by @trek-e in #3136
- fix(#3087): restore 10 demoted directive phrases in gsd-planner.md by @trek-e in #3138
- fix(#3128): extend roadmap.cjs plan-count to detect {N}-PLAN-{NN}-{slug}.md layout by @trek-e in #3139
- fix(#3126): replace hardcoded globalSkillsBase with first-class runtime-aware mapping by @trek-e in #3140
- fix(#3129): replace bypassed bash regex with token-walk git-cmd.js classifier by @trek-e in #3141
- fix(#3120): add register_authored_at_plan_time guard — prevent rubber-stamping legacy phases by @trek-e in #3142
- fix(#3096): enforce sequential Steps 7+8 + Edit-only tool discipline in ai-integration-phase by @trek-e in #3143
- fix(#3097, #3099): add cwd-drift sentinel + absolute-path guard to executor worktree protocol by @trek-e in #3144
- fix(#3127): make state.begin-phase idempotent on mid-flight phases by @trek-e in #3145
- fix(#3121): implement commands verb in SDK native registry by @trek-e in #3146
- fix(#3135): restore workflows/add-backlog.md — capture --backlog had no workflow to load by @trek-e in #3147
- fix(statusline): accept numeric 100 and block-list next_phases parsing by @trek-e in #3154
- enh(#3151): command contract validation module + prose @-ref cleanup + workflow extraction (ADR-0002) by @trek-e in #3152
- test(stats): lock decimal phase continuity when .10 exists by @trek-e in #3155
- feat(sdk): deepen runtime bridge seam for native-first SDK dispatch by @trek-e in #3158
- fix(graphify): run /gsd-graphify build inline (with regression fence) by @trek-e in #3169
- feat(graphify): commit-based staleness from built_at_commit (#3170) by @trek-e in #3171
- docs: add Prerelease editions install guidance (Next/Nightly/Insiders/Preview) by @trek-e in #3173
- fix(config): add resolve_model_ids to VALID_CONFIG_KEYS; accept workflow._auto_chain_active via RUNTIME_STATE_KEYS by @trek-e in #3188
- fix(gsd-tools): support .planning/milestones/v*-phases/ layout (#3164) by @trek-e in #3191
- fix(hooks): use #!/usr/bin/env bash in community .sh hooks for portability (#3104) by @trek-e in #3194
- fix(dispatcher): rename Task→Agent in allowed-tools, workflow prose, and agent tools frontmatter by @trek-e in #3189
- fix(sdk): extractCurrentMilestone supports
- fix: replace stale /gsd: references in agents/, sdk/src/, and .clinerules by @patrickclery in #3110
- fix(commit): scope every commit call to its staged pathspec by @nicholasferrer in #3106
- fix(hooks): gsd-check-update-worker — execFileSync 'npm' needs shell:true on Windows by @fabiossj83 in #3102
- fix(changeset): add missing pr field to windows-npm-shell-fix by @trek-e in #3199
- fix(artifacts): register RETROSPECTIVE.md as canonical planning artifact by @trek-e in #3200
- fix(quick): port history-based resurrection guard from execute-phase.md by @trek-e in #3201
- fix(plan-phase): remove agent: directive that caused OpenCode subagent dispatch (#3156) by @trek-e in #3206
- fix(config): regression test and changeset for #3197 gsd-tools config-whitelist by @trek-e in #3208
- fix(install): wire --sdk flag into installSdkIfNeeded by @trek-e in #3203
- fix(query): workstream resolution in init.milestone-op and roadmap.analyze by @trek-e in #3207
- fix(install): prefer stable Homebrew symlinks over versioned Cellar node paths by @trek-e in #3202
- fix(build-hooks): atomic rename to prevent race with concurrent install reads by @trek-e in #3216
New Contributors
- @patrickclery made their first contribution in #3110
- @nicholasferrer made their first contribution in #3106
- @fabiossj83 made their first contribution in #3102
Full Changelog: v1.40.0...v1.41.0