What's Changed
- docs(#2935): refresh README highlights for v1.39.0 across all languages by @trek-e in #2936
- fix(detect-custom-files): add skills/ to GSD_MANAGED_DIRS by @trek-e in #2945
- fix(config-get): return schema default for context_window when absent by @trek-e in #2944
- fix(workflows): assert HEAD on per-agent branch before worktree commits (#2924) by @trek-e in #2941
- fix(install): honour --minimal across every runtime + manifest fix for Claude local by @trek-e in #2940
- feat(workflows): atomic Write+commit ordering for SUMMARY.md (#2806) by @trek-e in #2939
- fix(code-review): wire --fix dispatch and update stale command references by @trek-e in #2947
- fix(#2949): wire sketch --wrap-up flag dispatch by @trek-e in #2953
- fix(#2950): update stale deleted-command references in workflow files by @trek-e in #2952
- fix(#2948): wire spike --wrap-up flag dispatch by @trek-e in #2951
- Add automated cherry-pick + SDK-bundle parity to hotfix flow by @trek-e in #2956
- fix(query/agent-skills): emit raw <agent_skills> block instead of JSON-wrapped string by @javeroff in #2917
- fix(#2957): claude+global post-install instructs restart and skill fallback by @trek-e in #2960
- fix(#2954): align help.md with post-#2824 skill consolidation by @trek-e in #2959
- fix(release-sdk): allow empty/redundant commits during hotfix cherry-pick by @trek-e in #2965
- fix(release-sdk): skip cherry-picks whose target context is absent at base by @trek-e in #2967
- fix(release-sdk): skip all cherry-pick conflicts in hotfix loop (full automation) by @trek-e in #2970
- fix(#2962): write npm-style gsd-sdk shim on Windows under --sdk install by @trek-e in #2971
- fix(#2969): deterministic Step 5 verification gate for /gsd-reapply-patches by @trek-e in #2972
- fix(#2976): allow same-version bump in release-sdk hotfix release job by @trek-e in #2977
- fix(#2980): hotfix cherry-pick only picks commits that change what ships by @trek-e in #2981
- fix(#2983): classifier exit-code discipline, base-tag staging, drop vestigial merge-back by @trek-e in #2984
- fix(#2987): skip dry-run publish validation when version is already on npm by @trek-e in #2988
- feat(#2975): adopt changeset-fragment workflow to eliminate CHANGELOG conflicts by @trek-e in #2978
- docs(#2989): promote v1.39.1 hotfix entries from [Unreleased] to dated section by @trek-e in #2991
- feat(#2982): extend no-source-grep lint to catch var-binding readFileSync.includes() by @trek-e in #2985
- fix(#3006): retarget PR-template CHANGELOG checkboxes at changeset workflow by @trek-e in #3007
- test(#2986): mutation-killer suite for config-schema.cjs (95 typed assertions) by @trek-e in #3005
- feat(#2995): post-install path audit for workflow-invoked scripts by @trek-e in #2996
- fix(#2998): populate gsd-pristine/ from install transform pipeline so verifier has a real baseline by @trek-e in #3004
- fix(#3008): kill cross-process race in install-minimal:307 mid-copy test by @trek-e in #3009
- fix(#2997): mask SECRET_CONFIG_KEYS in SDK config-set/get and init responses by @trek-e in #2999
- fix(#2992): deterministic latest-version check — package name is a constant, not LLM choice by @trek-e in #2993
- fix(#2994): move verify-reapply-patches.cjs to get-shit-done/bin/ so it ships to user installs by @trek-e in #3000
- fix(#2990): gsd-code-fixer worktree attaches to a new branch, not the user-checked-out one by @trek-e in #3001
- fix(#2973): /gsd-profile-user writes dev-preferences.md to skills/, not legacy commands/gsd/ by @trek-e in #3003
- fix(#2979): emit absolute node path in managed hooks for GUI/minimal-PATH runtimes by @trek-e in #3002
- test(#2974): migrate 8 test files to typed-IR assertions by @trek-e in #3016
- fix(#3011): actionable SDK-not-on-PATH diagnostic with shim location and shell-specific commands by @trek-e in #3014
- fix(#3010): post-install message and docs use /gsd-update --reapply by @trek-e in #3012
- fix(#3017): codex SessionStart hook uses absolute node, not bare 'node' by @trek-e in #3022
- fix(#3019): query --help reaches handler instead of short-circuiting by @trek-e in #3026
- fix(#3018): codex adapter must stop and ask, not silently default decisions by @trek-e in #3027
- fix(#3020): probe user shell PATH at install-time, not just process.env.PATH by @trek-e in #3028
- feat(#3023): per-phase-type model map in .planning/config.json by @trek-e in #3030
- feat(#3024): dynamic routing with failure-tier escalation by @trek-e in #3031
- docs(#3025): MCP tool schema as a context-budget concern by @trek-e in #3032
- feat(hooks): opt-in SessionStart update banner for non-statusline users (#2795) by @trek-e in #3035
- docs: add issue-driven orchestration guide (#2840) by @trek-e in #3036
- fix(workflows,docs): scrub stale /gsd-code-review-fix and /gsd-plan-milestone-gaps refs (#3029, #3034) by @trek-e in #3038
- fix(install): skip Gemini local commands/gsd when global GSD present (#3037) by @trek-e in #3041
- feat(plan-phase): --research-phase flag + scrub stale slash-command refs (#3042, #3044) by @trek-e in #3045
New Contributors
Full Changelog: v1.39.0...v1.40.0