Install
npm i @opengsd/gsd-core@1.13.0
# or
npm i @opengsd/gsd-core@latestWhat's Changed
Feature
- feat(#3274): make reviewer-lane timeout configurable via timeoutConfigKey by @trek-e in #4083
- feat(#2761): bracket-tolerant read path — roadmap/validate/verify/state recognize bracket ids (epic #612 PR-2) by @bshiggins in #2867
- feat(#3778): dispatch plan:pre planner contributions before quick planning by @davdittrich in #3934
- feat(#3673): add dispatch.maxConcurrency axis and dispatch-capacity query by @trek-e in #4162
- feat(#3653): add review.models.cursor — wire modelArg/modelConfigKey for the cursor reviewer lane by @trek-e in #4160
- feat(#3674): extract shared file-overlap wave partitioner by @trek-e in #4166
- feat(#3675): quick-batch core primitives and resumable manifest by @trek-e in #4190
- feat(#3676): quick-batch command, workflow, and isolation integration by @trek-e in #4212
- feat(#3677): quick-batch hardening and acceptance by @trek-e in #4240
- feat(#3806): canonize the Review Dispositions Ledger contract by @trek-e in #4345
Enhancement
- enhance(#3301): tell reviewers the plan ids and total count, grade coverage by @trek-e in #4084
- enhance(#3304): gate re-verification blockers on deterministic evidence by @trek-e in #4085
- enhance(#3348): add a context-drift pre-check gate to plan-phase by @trek-e in #4147
- enhance(#3717): make the edge probe's shape cues language-aware via an optional text_en field by @trek-e in #4156
- enhance(#3957): a no-op reports the real condition and the values it already computed by @trek-e in #4157
- enhance(#3545): widen no-source-grep with fold+hooks, migrate 76 sites by @trek-e in #4161
- enhance(#3464): exec() detection widening, citation-debt cleanup — Phase 8 by @trek-e in #4171
- enhance(#4014): an unreadable directory must not report as an empty one by @trek-e in #4163
- enhance(#3661): make the code-review hook point configurable by @trek-e in #4159
- enhance(#4273): add phase.tdd-applicable single-owner predicate by @trek-e in #4277
- enhance(#2529): cover every workflow with response-language directives + CI lint by @JusticeWay in #2558
- enhance(#4107): sequence external review after internal fixes by @davdittrich in #4206
- enhance(#4221): replace installer Read() deny rules with a managed secret-read guard hook by @arakasi1 in #4236
- enhance(#4153): fail closed unresolved update targets by @davdittrich in #4237
- enhance(#4032): apply configured agent tool grants by @davdittrich in #4238
- enhance(#4155): invalidate verification results when covered inputs change by @davdittrich in #4290
- enh(#3811): add hooks.commit_types config surface to gsd-validate-commit by @trek-e in #4340
- enhance(#3777): opt-in concurrent per-plan planners in chunked mode by @trek-e in #4346
- enhance(#3783): audit-uat summary segments current-milestone vs archived debt by @trek-e in #4336
Fix
- fix(#4070): reserve shard 1's aux-suite cost out of the LPT unit-test packer by @trek-e in #4072
- fix(#4099): stop word-splitting an unquoted PLAN_IDS string (bash vs zsh diverge) by @trek-e in #4102
- fix(#3702): count asterisk, plus and ordered markers as deferred-items entries by @0xdhx in #3739
- fix(#4109): rewrap unquoted DISPATCH_SLUGS-shaped consumption to survive zsh by @trek-e in #4116
- fix(#3724): warning-only Dimension 3b findings no longer force the revision loop by @arakasi1 in #3758
- fix(#4120): replace shellcheck npm dep with dependency-free downloader by @trek-e in #4121
- fix(#4113): add no-op to empty then-body in chunked-planning-mode.md's outline resume-check by @trek-e in #4125
- fix(#4112): drop redundant $(( subshell wrapping in pause-work.md Context Detection by @trek-e in #4140
- fix(#4023): preserve decimal phase ids in init progress ordering and smart-entry output by @bshiggins in #4110
- fix(#3776): decide nothing-to-commit from the staged diff, not from staging success by @0xdhx in #3859
- fix(#3697): warn when the phase-complete Requirements-line tokenizer under-selects REQ-IDs by @0xdhx in #3744
- fix(#3784): read the hybrid
Current Plan: N of Mshape, keep zero-padding, and name the accepted shapes on failure by @nabki in #3791 - fix(#4112): portable grep in workflow markdown + submodule commit fix under diff.ignoreSubmodules by @trek-e in #4149
- fix(#3936): dispatch quick research with researcher persona and model by @trek-e in #4158
- fix(#3899): resolve REVIEWS.md by quoted assignment, not an unquoted ls by @davdittrich in #3928
- fix(#3945): require a non-empty denominator for milestone-complete by @trek-e in #4164
- fix(#3959): give review-prompt plans citable path anchors by @trek-e in #4170
- fix(#3962): rename the TDD-Audit trailer token to gate-status by @trek-e in #4174
- fix(#3981): give blocking guards a host-stall-proof timeout budget by @trek-e in #4175
- fix(#3982): strip closed-milestone details from the current window by @trek-e in #4177
- fix(#4011): key the TDD runtime gate on TDD_MODE alone by @trek-e in #4180
- fix(#3995): derive the review diff base from the phase directory by @trek-e in #4181
- fix(#4172): add --merge-async to test:coverage:scripts-floor by @trek-e in #4173
- fix(#4076): add missing gsd-hook-version header to gsd-node-runner.sh by @cativo23 in #4092
- fix(#3996): carry agy stderr in the antigravity stub and gate the stall tell on the watermark by @trek-e in #4184
- fix(#4002): rewrite zcode command @-refs to the zcode runtime home by @trek-e in #4188
- fix(#4003): anchor the safe-resume gate's plan-scope greps to the milestone by @trek-e in #4194
- fix(#4020): bound the test run's temp footprint with a swept run-scoped root by @trek-e in #4207
- fix(#4196): npm-audit gate blocks only NEW advisories, not pre-existing ones by @trek-e in #4214
- fix(#3730): quick-tasks-migrate — canonical-schema repair, auto-run on first quick by @trek-e in #4216
- fix(#3968): measure commit claims at all three surfaces — ledger, verifier BLOCKER, porcelain HANDOFF by @trek-e in #4230
- fix(#3751): provision the claude CLI in CI and cover agents/ in the plugin-validate fixture by @trek-e in #4229
- fix(#4220): terminate the Windows temp-sweep ancestor walk (and two bugs it unmasked) by @trek-e in #4245
- fix(#4010): confine stateReplaceField to same-line whitespace so an empty field's following line survives by @davesienkowski in #4021
- fix(#3956): require positive evidence for verify artifacts/key-links pass by @davesienkowski in #4004
- fix(#3990): state the RED/GREEN/REFACTOR cycle once, embed tdd.md conditionally by @trek-e in #4228
- fix(#4250, #4260): distinguish a timed-out npm audit from a JSON parse failure, retry with backoff by @trek-e in #4251
- fix(#3747): correct antigravity matrix evidence and pin the CLI-only skills install path by @trek-e in #4274
- fix(#3850): surface gaps_found VERIFICATION files in audit-uat by @nabki in #3879
- fix(#4040): route partially-created .planning to initialization recovery by @trek-e in #4283
- fix(#4264): wire both TDD dispatch backends to phase.tdd-applicable by @trek-e in #4284
- fix(#3770): require intentional RED evidence before GREEN by @trek-e in #4279
- fix(#4051): route specific intents first and confirm before dispatch in --do by @trek-e in #4289
- fix(#4067): derive advance-plan phase-complete from disk, not the plan counter by @trek-e in #4292
- fix(#4267): correct tdd.md pointer citations; fix(#4269): collapse plan-level gate-rule duplication by @trek-e in #4295
- fix(#4268): harden tdd-single-statement.test.cjs against reworded restatements and backend divergence by @trek-e in #4297
- fix(#4024): flag quantitative-criteria trap shapes in verify plan-structure by @trek-e in #4288
- fix(#4302): bound restatement detector's deferral window structurally, not by a flat char count by @trek-e in #4303
- fix(#4078): phase.complete next-phase cascade reads dash-grammar checkbox rows by @trek-e in #4301
- fix(#4079): forbid ScheduleWakeup wake-tool escape hatch at background-wait sites by @trek-e in #4299
- fix(#3802): resolve the heredoc body before validating the commit subject by @behruznassre in #3816
- fix(#4306): extend fault-injection fd-swallow fix across the whole suite by @trek-e in #4308
- fix(#4081): decode git C-quoted paths in codebase-drift --name-status parser by @trek-e in #4307
- fix(#3939): parse decision bullets with a wrapped bold lead-in by @abrauchli in #3953
- fix(#4087): stage the hook helpers the Codex bundle's hooks require by @behruznassre in #4117
- fix(#4106): drop the orphaned test:mutation:since script by @nabki in #4179
- fix(#4148): dispatch wave-pre step hooks by @davdittrich in #4185
- fix(#4183): resolve root phase Fallow base by @davdittrich in #4215
- fix(#4255): resolve reviewer-lane effort from the lane, not from gsd-plan-checker by @behruznassre in #4275
- fix(#4204): isolate verify:post CLI test capability discovery from real HOME by @davdittrich in #4293
- fix(#3709): clear the context-monitor warn sentinel on PreCompact by @behruznassre in #3808
- fix(#4016): imperative-override injection patterns tolerate filler words by @allcounter in #4061
- fix(#4053): quote decimal-shaped frontmatter scalars for spec YAML readers by @aaka3207 in #4165
- fix(#4141): ignore Stryker's sandbox in eslint's global ignores by @nabki in #4178
- fix(#4213): keep STATE.md progress surfaces synchronized by @atirna in #4231
- fix(#4086): resolve skills/ manifest keys at the runtime's actual skills root by @trek-e in #4311
- fix(#4091): publish update-check cache via atomic temp+rename by @trek-e in #4313
- fix(#4093): give advance-plan's zero-labeled-fields failure a disk-derived recovery decline by @trek-e in #4318
- fix(#4094): withhold all four STATE.md progress counters under the milestone-unbounded guard by @trek-e in #4322
- fix(#4096): honor --dry-run in todo complete and write completion keys inside the frontmatter fence by @trek-e in #4325
- fix(#4270): forward Codex spawn model routing by @drungrin in #4281
- fix(#4306): forward real bytes through the #3912 A6 stderr-bytes mocks by @trek-e in #4328
- fix(#3771): make remediation examples non-binding and surface revision conflicts by @davdittrich in #3916
- fix(#4132): verify durable runtime surface sources by @DengZhiyuan-math in #4182
- fix(#4097): evidence preservation no longer sweeps the run's own input copies into .review-diagnostics/ by @trek-e in #4329
- fix(#4104): park the prohibition-enforcement hang fixture on a settling timer by @trek-e in #4331
- fix(#3819): widen executor's pre-commit guard beyond worktree mode by @trek-e in #4343
- fix(#4105): park the #3889 hang fixture on a settling timer by @trek-e in #4349
- fix(#4355): add --merge-async to test:coverage:unit:raw by @trek-e in #4356
New Contributors
- @davdittrich made their first contribution in #3928
- @cativo23 made their first contribution in #4092
- @cainiao1992 made their first contribution in #4278
- @allcounter made their first contribution in #4061
- @aaka3207 made their first contribution in #4165
- @atirna made their first contribution in #4231
- @drungrin made their first contribution in #4281
- @DengZhiyuan-math made their first contribution in #4182
Full Changelog: v1.12.0...v1.13.0