Files
Peter Steinberger 964c8c84c1 refactor: consolidate coercion ownership (#122299)
* refactor: consolidate coercion ownership

Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.

The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.

* fix: guard integer option ownership

Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.

* fix: keep integer helpers on numeric facade

Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.

* fix: point numeric coercion to number runtime

Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
..

Generated Docs Artifacts

Generated contract files are tracked drift-detection artifacts. Full pretty snapshots remain local inspection artifacts.

Tracked (committed to git):

  • config-baseline.sha256 — hashes of config baseline JSON artifacts.
  • config-baseline.counts.json — maximum entry counts for each config baseline kind.
  • plugin-sdk-api-baseline/<entrypoint>.json — one content hash record per Plugin SDK module.
  • sqlite-session-transcript-schema-baseline.sha256 — hash of the sessions/transcripts SQLite schema baseline.

Local only (gitignored):

  • config-baseline.json, config-baseline.core.json, config-baseline.channel.json, config-baseline.plugin.json
  • plugin-sdk-api-baseline.json
  • .artifacts/sqlite-session-transcript-schema-baseline.sql

Do not edit any of these files by hand.

  • Regenerate config baseline: pnpm config:docs:gen
  • Validate config baseline: pnpm config:docs:check
  • Regenerate Plugin SDK API baseline: pnpm plugin-sdk:api:gen
  • Validate Plugin SDK API contract manifest: pnpm plugin-sdk:api:check

The Plugin SDK contract sorts modules by import specifier and exports by kind then name. Each entrypoint file hashes one module's normalized declarations and surface-reachable declaration closure hashes, so changes to different modules touch different files. Committed records omit source paths so file moves do not change the contract; origin source fields remain available in the local pretty JSON snapshot.

  • Regenerate SQLite sessions/transcripts schema baseline: pnpm sqlite:sessions-schema:gen
  • Validate SQLite sessions/transcripts schema baseline: pnpm sqlite:sessions-schema:check