mirror of
https://github.com/CopilotKit/CopilotKit.git
synced 2026-09-14 16:26:20 +08:00
5acbbcd633
Audits each showcase package's manifest-declared demos for matching spec (tests/e2e/*.spec.ts) and qa/*.md coverage, and enforces a monotonic demo-count baseline via fail-baseline.json. Key design: - PackageIssue tagged union (13 variants) cleanly separates MUST errors from warnings; deriveMessage is the single renderer so new variants cannot emit mismatched prose. - ProbeResult tagged union (missing | ok | unreadable) driven by statSync + errno inspection, distinguishing ENOENT from EACCES and surfacing ENOTDIR as a misconfiguration rather than a silent miss. - runParityImpl isolates each slug's audit in try/catch; a crash in one slug surfaces as a crashed PackageIssue variant and forces EXIT_INTERNAL without aborting siblings. - runParity never throws for content errors. InvalidBaselineError covers coerceBaseline failures; unknown errors route to EXIT_INTERNAL via formatErrorChain (walks .cause with cycle guard + depth cap). - parseMainArgs rejects unrecognised flags and duplicate --baseline with EXIT_INVALID_INPUT (2), mirroring audit.ts parseArgs discipline. - BASELINE_DEMO_COUNT default must match fail-baseline.json.baselineDemoCount; enforced by __tests__/baseline-sync.test.ts. - Exit codes: 0 ok, 1 should-warnings-only, 2 invalid-input, 3 unreadable, 4 internal, 5 must-failure. Tests cover every PackageIssue variant, every exit code (in-process + subprocess), per-slug crash isolation, EACCES routing, ENOTDIR classification, cascade suppression when tests/e2e or qa dirs are unreadable, and baseline coercion edge cases (leading zeros, negative, float, hex, non-numeric).