Skip to content

Clear deferred audit leftovers: mock Remove contract + Node engines floor - #10

Merged
reowens merged 1 commit into
mainfrom
fix/audit-leftovers
Jul 10, 2026
Merged

reowens merged 1 commit into
mainfrom
fix/audit-leftovers

Conversation

@reowens

@reowens reowens commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Clears two of the three coverage/release-gap items deferred in the 2026-07-09 qsys-tools audit. The third — wiring the installer scripts/test.sh into CI — needs a macOS + Xcode runner and is left for a dedicated CI pass.

ChangeGroup.Remove fidelity

The public mock returned null, so the e2e couldn't prove the documented contract (QRC_Commands.htm: "returns a list of unknown controls after processing") that qsys_change_group_remove already advertises. The mock now drops known Named Controls from the group and returns the requested names it doesn't recognize. integration.ts asserts both the empty-list (all-known) and unknown-name cases. Mirrored into the private emulator for consistency.

Node engines floor

Published packages advertised node >=20, but CI can't test Node 20 — the pnpm 11 toolchain floors at 22.13 (root already requires it) and Node 20 reached EOL April 2026. Raised qsys-qrc, qsys-mcp, qsys, and qsys-mac to >=22.13 so the advertised floor matches what's actually built and tested. Advisory metadata; picked up by the next tag-driven release.

Verification

Root typecheck clean; qsys-qrc (9), qsys-mcp integration + mcp-mock (25 tools) + reconnect, and qsys CLI (30) suites green (re-verified 2026-07-10).

…loor

Two of the three coverage/release-gap items deferred in the 2026-07-09 qsys-tools
audit (the third, wiring the installer scripts/test.sh into CI, needs a macOS
runner and is left for a dedicated pass).

- ChangeGroup.Remove fidelity: the mock returned `null`, so the public e2e could
  not prove the documented contract ("returns a list of unknown controls after
  processing", QRC_Commands.htm) that qsys_change_group_remove already advertises.
  The mock now drops known Named Controls from the group and returns the requested
  names it doesn't recognize. integration.ts asserts both the empty-list (known)
  and unknown-name cases.

- Node engines: published packages advertised `node >=20`, but CI cannot test
  Node 20 — the pnpm 11 dev toolchain floors at 22.13 (the root package already
  requires it), and Node 20 reached end-of-life in April 2026. Raised qsys-qrc,
  qsys-mcp, qsys, and qsys-mac to `>=22.13` so the advertised floor matches what
  is actually built and tested. (engines is advisory metadata; picked up by the
  next tag-driven release.)

Root typecheck clean; mcp integration + mcp-mock suites green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@reowens
reowens merged commit be63577 into main Jul 10, 2026
3 checks passed
@reowens
reowens deleted the fix/audit-leftovers branch July 10, 2026 20:30
reowens added a commit that referenced this pull request Jul 28, 2026
Points DEFAULT_RELEASE at the qsys-mac-installer 0.1.7 signed DMG
(sha256 5968ff8d7a58cee2d247773069b347a885305aa7a3cbfd2f729730564e481998)
and bumps CLI_VERSION, the manifest, and the README references.

Also ships the Node engines floor bump to >=22.13 (#10, be63577), which
was merged but unpublished — it rides this functional release rather
than a standalone metadata-only one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant