Tom Boucher
f01f6b76dd
Merge pull request #3122 from gsd-build/fix/3088-gsd-complete-milestone-leaves-state-md-n
...
fix: normalize stale STATE narrative tails on milestone completion
2026-05-04 23:31:06 -04:00
Tom Boucher
67684626d8
fix(3088): append missing STATE narrative sections on milestone close
2026-05-04 23:29:45 -04:00
coderabbitai[bot]
2d25c97706
fix: apply CodeRabbit auto-fixes
...
Fixed 1 file(s) based on 2 unresolved review comments.
Co-authored-by: CodeRabbit <noreply@coderabbit.ai >
2026-05-05 03:17:22 +00:00
Tom Boucher
2dcf374da0
fix(milestone): normalize STATE narrative after milestone completion
2026-05-04 23:17:00 -04:00
Tom Boucher
40acf1f02e
fix: address CodeRabbit findings on query/transport error handling
2026-05-04 21:49:41 -04:00
Tom Boucher
38718e9d4b
fix: avoid unsafe Promise cast in execRaw
2026-05-04 21:49:40 -04:00
Tom Boucher
0500bdf619
refactor: deepen query architecture seams with compatibility shims
2026-05-04 21:49:40 -04:00
Tom Boucher
c6a35d6398
refactor: deepen transport policy and output projection paths
2026-05-04 21:49:40 -04:00
Tom Boucher
969cfcf998
refactor: split native hotpath fallback and dispatch branches
2026-05-04 21:49:40 -04:00
Tom Boucher
e0c791a5d0
refactor: centralize native dispatch data projection
2026-05-04 21:49:40 -04:00
Tom Boucher
deb4477375
refactor: remove thin runtime and tools error wrappers
2026-05-04 21:49:40 -04:00
Tom Boucher
5aaf0dbea5
refactor: reduce query error factory public surface
2026-05-04 21:49:40 -04:00
Tom Boucher
ace241d0c2
refactor: fold query error seam types into factory module
2026-05-04 21:49:40 -04:00
Tom Boucher
0fffc7c055
refactor: centralize gsd-tools error wrapping path
2026-05-04 21:49:40 -04:00
Tom Boucher
6059a574f2
refactor: remove redundant native dispatch cast in runtime
2026-05-04 21:49:40 -04:00
Tom Boucher
b0e616288b
refactor: isolate native dispatch error projection
2026-05-04 21:49:40 -04:00
Tom Boucher
ed9d67c91b
refactor: deepen subprocess adapter with shared execution error path
2026-05-04 21:49:40 -04:00
Tom Boucher
97019d274e
refactor: keep classification constructors internal to GSDToolsError
2026-05-04 21:49:40 -04:00
Tom Boucher
7311e0a9ab
refactor: extract query error seam factory builders
2026-05-04 21:49:39 -04:00
Tom Boucher
c66ff96de8
test: use typed GSDToolsError constructors in cli output tests
2026-05-04 21:49:39 -04:00
Tom Boucher
a24de43f8b
test: consolidate tools error mapping coverage in factory tests
2026-05-04 21:49:39 -04:00
Tom Boucher
70faa0ff0f
refactor: remove query tools error mapper wrapper
2026-05-04 21:49:39 -04:00
Tom Boucher
b9e3979fc1
refactor: introduce explicit query error seam contracts
2026-05-04 21:49:39 -04:00
Tom Boucher
c7d3f83b8b
refactor: reduce failure-classification API surface
2026-05-04 21:49:39 -04:00
Tom Boucher
bc289fad4a
refactor: type native adapter error seam to GSDToolsError
2026-05-04 21:49:39 -04:00
Tom Boucher
9bee4dce4a
test: adopt typed GSDToolsError constructors across failure tests
2026-05-04 21:49:39 -04:00
Tom Boucher
9a469fa05c
refactor: centralize query tools error construction in factory
2026-05-04 21:49:39 -04:00
Tom Boucher
abf7779088
test: cover typed timeout mapping in query dispatch
2026-05-04 21:49:39 -04:00
Tom Boucher
16bf552037
test: lock typed timeout no-fallback transport behavior
2026-05-04 21:49:39 -04:00
Tom Boucher
009cfb1562
refactor: split native adapter timeout and failure seams
2026-05-04 21:49:39 -04:00
Tom Boucher
6fe4af2546
refactor: split subprocess timeout and failure error seams
2026-05-04 21:49:39 -04:00
Tom Boucher
41683b2f53
refactor: centralize typed GSDToolsError construction
2026-05-04 21:49:38 -04:00
Tom Boucher
7dcafbc211
refactor: consolidate failure classification constructors
2026-05-04 21:49:38 -04:00
Tom Boucher
ccda572ade
refactor: default typed failure classification across query errors
2026-05-04 21:49:38 -04:00
Tom Boucher
1ca7f58831
test: cover tools error mapping and unify timeout fallback check
2026-05-04 21:49:38 -04:00
Tom Boucher
7298a76b20
refactor: centralize dispatch error projection from failure signals
2026-05-04 21:49:38 -04:00
Tom Boucher
5cfd874058
refactor: add typed query failure signals
2026-05-04 21:49:38 -04:00
Tom Boucher
ba6100c548
refactor: deepen query failure classification module
2026-05-04 21:49:38 -04:00
Tom Boucher
9f5b011b35
refactor: use internal gsdtools error type import
2026-05-04 21:49:38 -04:00
Tom Boucher
1037b82a98
test: address remaining coderabbit findings and notes
2026-05-04 21:49:38 -04:00
Tom Boucher
ac883f8150
fix: address coderabbit query seam findings
2026-05-04 21:49:38 -04:00
Tom Boucher
9d096b9925
refactor: deepen gsdtools query execution seams
2026-05-04 21:49:37 -04:00
Tom Boucher
42ed7cee8d
refactor: deepen GSDTools query execution seams ( #3085 )
...
* refactor: deepen gsdtools query execution seams
* docs: add changeset for query seam deepening
* docs: fix changeset summary text
* fix: address coderabbit query seam findings
* test: address remaining coderabbit findings and notes
* refactor: use internal gsdtools error type import
2026-05-03 18:56:41 -04:00
Tom Boucher
5e21bf7567
Deepen query dispatch seam with Command Topology Module ( #3078 )
...
* Deepen query dispatch seam with command topology module
* Stabilize SDK parity defaults and integration test gating
* docs(architecture): record pre-project config policy and e2e gate
* refactor(query): stop injecting native adapter in CLI dispatch path
* fix(config): align workflow auto-chain typing and docs
2026-05-03 18:11:38 -04:00
Tom Boucher
9c92c32f6e
refactor(query): deepen runtime context/native adapter/output seams ( #3076 )
...
* refactor(query): deepen runtime context, native adapter, and cli output seams
* chore(changeset): add fragment for query seam deepening continuation
* refactor(query): converge internal command-resolution imports on canonical seam
* refactor(query): remove dead seam wrappers and converge on canonical modules
* docs(architecture): update context and adr for query seam completion
* fix(query): preserve gsd-tools stderr in cli output and clarify static ws test scope
* test(query): cover whitespace stderr and null exitCode fallback
2026-05-03 16:31:48 -04:00
Tom Boucher
5c9f34bd31
refactor(cli): extract Query CLI Adapter Module seam ( #3074 )
...
* refactor(cli): extract query adapter seam from cli entrypoint
* test: update ws forwarding guard for query-cli-adapter seam
* fix(query): close remaining CodeRabbit findings on cli adapter
* test: address remaining CodeRabbit nitpicks on ws forwarding coverage
2026-05-03 15:57:01 -04:00
Tom Boucher
b6c401dc90
refactor(query): deepen command/dispatch seams and resolve coderabbit findings
...
* refactor(query): deepen command definition seam and fold fallback mapping cleanup
* refactor(query): add shared dispatch formatting module seam
* fix(query): restore QueryResult type import in dispatch deps
* test/query: align raw-output policy and definition normalization contracts
* refactor(query): deepen diagnosis, invariant report, and error taxonomy seams
* refactor(query): deepen dispatch plan, fallback bridge, policy snapshot, and hints seams
* refactor(query): deepen validation, fallback policy, capability, and result builder seams
* refactor(query): deepen resolution strategy, output classifier, observability, and policy-capability seams
* refactor(query): finalize deep strategy/classifier/observability/capability seams
* test/query: address coderabbit inline and out-of-diff dispatch nits
* fix(query): address remaining coderabbit input-validation and bridge stderr threads
* fix(query): address remaining coderabbit dispatch and strategy/output nits
2026-05-03 15:29:34 -04:00
Tom Boucher
f104dab332
refactor(query): deepen dispatch policy seam with structured result contract ( #3066 )
...
* refactor(query): deepen dispatch policy seam with structured result contract
Closes #3065 .
- unify query dispatch outcome as typed success/failure union
- include error kind/details + final exit_code in failure path
- align native and fallback paths under one dispatch policy seam
- make CLI query path consume seam result (thin adapter)
- add ADR + context term for Dispatch Policy Module
* refactor(query): strengthen dispatch seam with shared error mapper and typed details
- add query-dispatch-error-mapper module shared by native/fallback paths
- remove ad-hoc inline mapping in dispatch/fallback executors
- lock error-details schema in mapper + dispatch tests
- document structured dispatch contract in QUERY-HANDLERS.md
* fix(query): return structured fallback failure when path resolution throws
- guard resolveGsdToolsPath in cjs dispatch path
- map thrown resolution errors to fallback_failure result
- add regression test for structured failure contract
2026-05-03 14:30:27 -04:00
Tom Boucher
5975f06b6a
refactor(query): extract command catalog seam for registry wiring ( #3060 )
...
* refactor(sdk): extract gsdtools transport seam with per-command policy
* refactor(query): centralize registry command catalog wiring
* refactor(query): unify command resolution seam across sdk callers
* fix(sdk): address CodeRabbit transport policy and timeout findings
* refactor(query): extract mutation event mapper seam
* refactor(query): converge mutation and transport policy data
* refactor(query): share fallback orchestration across cli and sdk
* refactor(query): split static registry catalog by domain clusters
* refactor(query): extract mutation event emission decorator seam
* refactor(query): extract alias-family handler catalog module
* refactor(query): extract cjs fallback execution adapter
* refactor(query): deepen command semantics seam
* refactor(query): extract deep dispatch seam
* refactor(query): deepen cjs fallback execution seam
* refactor(query): merge routing plan into dispatch seam
* fix(query): address CodeRabbit review findings on PR #3060
Critical: prevent double-execution race by checking timeout errors
before subprocess fallback (gsd-transport.ts).
Major: fix execRaw() to respect transport policy outputMode instead
of hardcoding 'raw' (gsd-tools.ts).
Major: add explicit 30s timeout to subprocess fallback execution
(query-fallback-executor.ts).
Major: remove raw args from stderr banner to prevent secret leakage
(query-fallback-executor.ts).
Minor: ensure native text output has trailing newline for CLI parity
(query-dispatch.ts).
Update gsd-tools.test.ts to match new execRaw() behavior.
* fix(tests): update CLI integration tests for catalog-based registration
The refactoring moved handler registration from inline registry.register()
calls to catalog-based registration (registerStaticCatalog/registerAliasCatalog).
- gsd-sdk-query-registry-integration.test.cjs: collectRegisteredNames() now
also scans catalog files for handler names registered via the new system.
- bug-2492-context-coverage-gate.test.cjs: checks for catalog-based
registration (DECISION_ROUTING_STATIC_CATALOG) instead of inline strings.
- bug-2524-sdk-query-ws-flag.test.cjs: checks for dispatchNative callback
pattern instead of direct registry.dispatch() call.
* fix(query): address remaining CodeRabbit review findings
- query-command-semantics.ts: guard stats/progress rewrite so option
tokens (e.g. --pick) are not turned into subcommands, preserving the
top-level handler dispatch.
- query-dispatch.ts: formatOutput now skips --pick for text-format
responses (matching CJS fallback behavior) and surfaces a proper error
when extractField returns undefined instead of silently producing
'undefined'.
- query-dispatch.ts: fix backwards error message — 'registered' is the
restrictive policy that disables fallback, not enables it.
- tests/bug-2492-context-coverage-gate.test.cjs: check
VERIFY_DECISION_STATIC_CATALOG (the correct catalog for plan-gate
handlers) instead of DECISION_ROUTING_STATIC_CATALOG.
- tests/gsd-sdk-query-registry-integration.test.cjs: resolve catalog
variable before loading entries so the drift guard checks each
referenced catalog individually.
* refactor(query): deepen registry assembly module with strict invariants
- extract registry assembly into dedicated module
- split build vs mutation decoration internals
- add strict assembly invariants:
1) no duplicate keys
2) alias canonicals must have handlers
3) mutation commands must be registered
4) raw-output policy commands must be registered
- slim query index to thin re-export seam
- add focused registry assembly tests
- update drift-guard tests to target new seam
* test(query): add thin-seam coverage for query index re-exports
* fix(query): return structured native dispatch errors + tighten decisions.parse guard
- runQueryDispatch native path now catches adapter errors and returns
QueryDispatchResult.error instead of throwing.
- preserve legacy CLI exit contract by using code=1 for native dispatch
failures.
- strengthen bug-2492 guard: decisions.parse assertion now checks
VERIFY_DECISION_STATIC_CATALOG OR explicit command token.
2026-05-03 13:57:32 -04:00
Tom Boucher
0f98952a3d
refactor(sdk): extract GSDTools transport seam + policy ( #3058 )
...
* refactor(sdk): extract gsdtools transport seam with per-command policy
* fix(sdk): address CodeRabbit transport policy and timeout findings
* fix(sdk): harden raw transport formatting and raw-path coverage
2026-05-03 08:20:05 -04:00