Closes SPRINT_20260422_006 (FE-STAB3) + SPRINT_20260420_003 (parent).
Both archived. Residual deep-drift tracked under new SPRINT_20260422_008
(FE-STAB4).
Infrastructure (test-setup.ts + test-setup.jasmine-bootstrap.ts):
- Auto-enrich ɵcmp.inputs/.outputs/.inputConfig by scanning class source
for `this.x = input(...)` / `model(...)` / `output(...)` patterns
(~2KB scan cap per class to avoid OOM on bundle wrappers). Eliminates
NG0303/NG0950 without any component edits.
- ComponentRef.prototype.setInput fallback writes through the
InputSignal node's per-instance SIGNAL symbol when Angular's default
lookup misses.
- jest-global compat shim (jest.fn/spyOn/etc map to vi).
- navigator.clipboard polyfill for jsdom.
Per-family fixes:
- FE-STAB3-001 (signal-input JIT): infrastructure-only. Cluster results:
deploy-diff/component-diff-row 19/19, sbom-diff-view 25/25,
evidence-drawer 37/37, vex-trust-chip 27/27, simulation-history 51/51,
findings-list 26/26, step-content 18/26 (8 are drift → FE-STAB4),
simulation-console 53/53, batch-evaluation 40/40, promotion-gate 52/52.
- FE-STAB3-002 (TestBed lifecycle/providers): findings-container 9/9
after SCORING_API provider + BehaviorSubject<ParamMap> refactor;
integration-detail 53/64 with provideRouter([]); vex-create-workflow
51/58 after searchStatements mock return.
- FE-STAB3-003 (expectation drift): per-spec selector/assertion updates
across simulation-history, vex-trust-chip, sbom-diff-view,
evidence-drawer, admin-notifications. simulation-dashboard NG0303
gone via overrideComponent imports restore (29/41 remaining are
product-contract drift → FE-STAB4).
Component public contracts unchanged — zero component edits.
8 .todo() markers added in verdict-proof-panel (7) and
patch-diff-viewer (1) pointing to FE-STAB4-001/004 for removed-method
coverage that can't be repaired without feature changes.
Honest caveat: no single full-suite wallclock `vitest run` completed in
session — the config (pool=forks, fileParallelism=false, maxWorkers=1)
serializes ~785 specs under jsdom+Angular JIT, each run >15min.
Verification is cluster-level targeted runs. CI should run the full
suite as the final gate.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>