Install
npm i @opengsd/gsd-core@1.9.0
# or
npm i @opengsd/gsd-core@latestWhat's Changed
Feature
- feat(#2481): add a negotiated effortSurface axis and wire invocation-time effort by @trek-e in #2490
- feat(#2505): Phase 0 — Kimi PreToolUse guard vocabulary normalization (precondition; carries PR #2326 forward) by @trek-e in #2518
- feat(#2505): Phase 1 — EoS descriptor split (kimi-code capability.json + drift-guard registration) by @trek-e in #2519
- feat(#2505): Phase 2 — kimi-code Agent Skills install layout by @trek-e in #2520
- feat(#2505): Phase 3 — agent-skills fallback for non-dispatchable runtimes by @trek-e in #2521
- feat(#2505): Phase 4 — runtime-aware subagent dispatch (Option A; resolve-dispatch-type query) by @trek-e in #2525
- feat(#2505): Phase 5 — Kimi variant install-time disambiguation by @trek-e in #2535
- feat(#2249): bracket phase-id core grammar — parse/render/toDir round-trip pair (epic #612 PR-1) by @bshiggins in #2258
- feat(#2584): add dispatch.isolation sub-field — negotiated executor isolation (Phase 1, unconsumed) by @trek-e in #2604
- feat(#2584): Phase 2 — worktree create verb + orchestrator-exec resolver by @trek-e in #2625
- feat(#2584): Phase 3 — scheduler consumer + isolation adapters (proven on Codex) by @trek-e in #2635
- feat(#2630): phase-estimation module, smart-zone config key, and cli verbs by @trek-e in #2661
- feat(#2631): planner emits estimate and plan-checker surfaces the over-budget flag by @trek-e in #2670
- feat(#2632): executor actuals and the closed estimate-calibration loop by @trek-e in #2672
- feat(#2796): reviewer lane as a fourth trust-disclosure class by @trek-e in #2826
Enhancement
- enhance(#1854): offer restore for user-added files backed up on update by @trek-e in #2679
- enhance(#2671): brand raw vs calibrated token types so double-application is a compile error by @trek-e in #2676
- enhance(#2721): regenerating merge driver, regen:derived, and a name for the emitted-artifact family by @trek-e in #2730
- enhance(#2778): make the size-ratchet failure name its own remedy by @trek-e in #2780
- enhance(#1699): require read-and-cite provenance for in-repo discrete values by @davesienkowski in #2768
- enhance(#2572): run the verify-summary artifact check against phase SUMMARYs by @davesienkowski in #2685
- enhance(#2151): probe interactive-control for loading and error states by @davesienkowski in #2575
- enhance(#2793): ADR-2782 — reviewer lane becomes a declared capability surface by @trek-e in #2809
- enhance(#2800): derive reviewer flag lists and gate reviewer lane docs across locales by @trek-e in #2882
Fix
- fix(#1847): add Claude Sonnet 5 and curated 1.6.1 hotfix fixes by @trek-e in #1848
- fix(#2504): make auto-backmerge survive a broken workflow copy + gate the invariants by @trek-e in #2506
- fix(#2515): auto-merge the release/hotfix → main PR when clean by @trek-e in #2516
- fix(#2460): pi before_provider_request fail-opens without explicit model_profile_overrides by @trek-e in #2499
- fix(#2505): set USERPROFILE in kimi-variant test env + add issue refs on allow-test-rule exemptions by @trek-e in #2545
- fix(#1995): widen worktree branch regex to accept agent- namespace by @trek-e in #2548
- fix(#2269): add --files to three unscoped query commit call sites by @trek-e in #2549
- fix(#2279): refresh date stamps on map-codebase Update runs by @trek-e in #2550
- fix(#2366): scope parseCoverageMatrix to recognized coverage tables by @trek-e in #2551
- fix(#2400): warn on planned-phase no-op + sync progress.total_plans by @trek-e in #2552
- fix(#2429): scope Codex skills home override to --global only by @trek-e in #2553
- fix(#2474): gate worktree dispatch on project-level USE_WORKTREES too by @trek-e in #2561
- fix(#2429): add regression-test gate + missing tests for #2429/#2279 by @trek-e in #2563
- fix(#2576): normalize padded vs unpadded resolves_phase in close_phase_todos by @trek-e in #2597
- fix(#2494): capture stderr and guard empty output on the claude and gemini reviewer legs by @0xdhx in #2592
- fix(#2556): rescue SUMMARY when cat-file reports absent (exit 128, not 1) by @trek-e in #2611
- fix(#2491): finish todos/done -> todos/completed rename (14 stale refs) + guard by @trek-e in #2626
- fix(#2498): pass --no-track when branching off origin/$DEFAULT_BRANCH by @trek-e in #2628
- fix(#2517): plan-phase omits model= when *_model is inherit/empty (port execute-phase fix) by @trek-e in #2634
- fix(#2522): fold wrapped success-criteria lines into their criterion by @trek-e in #2637
- fix(#2523): normalize --files to repo-relative; reject out-of-repo; gate push on git-add exit by @trek-e in #2638
- fix(#2537): extract offer_next step to references/ (~3.3KB headroom restored) by @trek-e in #2642
- fix(#2479): drop the codex hook-trust bypass flag and its capability probe by @behruznassre in #2536
- fix(#2653): regenerate stale api-coverage.cjs + add artifact-sync guard by @trek-e in #2656
- fix(#2654): bump js-yaml past the merge-key DoS advisory by @trek-e in #2655
- fix(#2567): scope Paused At to ## Session + guard Last Activity date regression by @trek-e in #2660
- fix(#2565): route generate-claude-profile target through runtime policy by @trek-e in #2659
- fix(#2539): anchor commit phase-token detection; drop silent wrong-branch switch by @trek-e in #2669
- fix(#2589): use --raw/--pick for config/model/verify lookups, drop jq dep by @trek-e in #2673
- fix(#2587): resolve cursor hook workspace from workspace_roots, not cwd by @trek-e in #2680
- fix(#2590): emit Workflow scripts the Workflow tool accepts; make the backend reachable by @trek-e in #2681
- fix(#2598): declare OpenCode subagent dispatch synchronous, not background by @trek-e in #2682
- fix(#2603): document kimi-code in the host-integration capability matrix by @trek-e in #2687
- fix(#1880): distinguish a corrupt config from an absent one (epic #1879 Phase 1) by @trek-e in #2688
- fix(#2605): make dropped local-server reviewer lanes loud instead of silent by @trek-e in #2689
- fix(#2608): fail closed when git add fails during commit staging by @trek-e in #2693
- fix(#2615): document the effortSurface axis in the host-integration matrix by @trek-e in #2698
- fix(#2617): project verification next_command onto the runtime's command surface by @trek-e in #2700
- fix(#2684): bind scan.md and ship.md model dispatch to fields their workflows resolve by @trek-e in #2710
- fix(#2711): propagate the #2517 omit-on-inherit rule to all 15 unguarded workflows by @trek-e in #2713
- fix(#2686): thread the resolved executor model into the Workflow backend by @trek-e in #2715
- fix(#1882): distinguish unterminated frontmatter from absent frontmatter by @trek-e in #2712
- fix(#1856): give the executor-worktree refusal a handoff instead of a dead end by @trek-e in #2727
- fix(#2568): commit the debug session doc on the manager-driven terminal path by @trek-e in #2731
- fix(#1881): report an unreadable ROADMAP instead of reading it as absent by @trek-e in #2729
- fix(#2723): reconcile emitted manifest families as a set, not a count by @trek-e in #2750
- fix(#2753): scan every key occurrence when asserting a documented default by @trek-e in #2756
- fix(#2757): attribute transform-driven emitted changes and reclassify agents-verbatim by @trek-e in #2760
- fix(#2758): select the emitted differential wherever golden-parity runs by @trek-e in #2759
- fix(#2526): remove gsd-ui-auditor's uncallable Playwright-MCP block by @0xdhx in #2594
- fix(#2691): repair seven dangling references in the ADR corpus and contributor docs by @davesienkowski in #2692
- fix(#2620): inject the reference DispatchLogger on the live dispatch seam when observability is enabled by @davesienkowski in #2621
- fix(#2547): fail closed on crashing and path-shadowing Kimi payloads by @0xdhx in #2595
- fix(#1883): distinguish a permission/IO error from genuine emptiness in dir scans by @trek-e in #2802
- fix(#2789): scope the emitted-drift ack to the diff that introduced it by @trek-e in #2803
- fix(#2624): write the .gsd-source marker before staging reads it by @trek-e in #2811
- fix(#2810): accept the documented effortSurface axis on EoS registry entries by @trek-e in #2813
- fix(#2695): deliver the complete four-file codex hook set for every profile by @trek-e in #2822
- fix(#2697): skip the context-monitor spawn in-process when context_warnings disabled by @trek-e in #2824
- fix(#2701): reject NUL-corrupted plan/state artifacts at the validator entry points by @trek-e in #2829
- fix(#2702): workstream config-get inherits absent keys from root config by @trek-e in #2833
- fix(#2716): route non-user-facing conventional types to an Internal bucket, omit from release notes by @trek-e in #2838
- fix(#2694): normalize CRLF before frontmatter-boundary match in code-review workflows by @trek-e in #2839
- fix(#2717): write CommonJS marker for cursor/windsurf/codex staged .js hooks by @trek-e in #2846
- fix(#2751): normalize bare gsd-tools command-position calls to gsd_run in shipped source by @trek-e in #2851
- fix(#2854): pin the emitted gate to the base the tree was merged with by @trek-e in #2859
- fix(#2752): make tool_input.path authoritative over model-controlled file_path in gsd-phase-boundary.sh by @trek-e in #2860
- fix(#2736): write current_phase_name from the transition intent, not the lossy prose round-trip by @0xdhx in #2821
- fix(#2754): make parseStateMd CRLF-safe — frontmatter no longer drops on Windows-authored STATE.md by @trek-e in #2865
- fix(#2764): extend no-path-literal-in-assert to membership/substring checks (catches the #2728 Windows CI shape) by @trek-e in #2879
- fix(#2770): decision-coverage gate fails closed on empty arg + workflow recomputes CONTEXT_PATH in-block by @trek-e in #2881
- fix(#2771): advisor mode spawns registered gsd-advisor-researcher subagent instead of general-purpose by @trek-e in #2884
- fix(#2772): resolve four discuss-phase text inconsistencies (dead MAX_PASSES read, gate-prompts drift, circular auto_advance, answer_validation drift) by @trek-e in #2886
- fix(#2762): chunked --reviews replans instead of no-op + outline resume marker written to file by @trek-e in #2887
- fix(#2765): bump brace-expansion to patched 1.1.18/5.0.9 (high-severity devDep advisory) by @trek-e in #2888
- fix(#2828): state sync reports correct total_phases on a flat unmilestoned roadmap by @trek-e in #2892
- fix(#2891): normalize emitted version against the measured tree, not the measuring repo by @trek-e in #2894
- fix(#2666): code-review scopes root-level + extensionless build files, cross-checks against git diff by @trek-e in #2895
New Contributors
- @clezcoding made their first contribution in #2581
Full Changelog: v1.8.0...v1.9.0