ci(conformance): refresh baseline to native 55 after flip wave#358
Conversation
The committed baseline sat at native 52 (PR #335) while main's manifest advanced to native 55 via the estimate+simple-options (#355) and validation (#357) flips, drifting the conformance-baseline check red. Recompute the baseline via parse-results' attribution logic over the committed run's by_file (test outcomes unchanged; the flips are pure native re-attributions), reconciling to native 55. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DwC1dTXNtDfkySZuEYoKun
Conformance smoke: agent + ai + tui
Headline is rust-backed: passing cases in files whose module-under-test is a native (Rust addon) module. Raw all-pass is shown secondary — it is inflated by unflipped TypeScript that passes without touching any Rust.
agent: 73/180 (40.6%) · ai: 84/1296 (6.5%) · tui: 375/678 (55.3%) rust-backed = passing / total tests run, per the manifest's per-native-row AttributionA pi test file is rust-backed iff the module it primarily exercises — its module-under-test — is Per-file decisions (from each native manifest row's
CLI conformance (black-box, against the pidgin binary)
The four repointed coding-agent CLI test files spawn the compiled pidgin binary via |
Before / After
Before: the committed root
conformance.jsonbaseline sat atmanifest_native_modules: 52(from PR #335), while main'sconformance/manifest.jsonhad advanced to native 55 after the estimate+simple-options (#355) and validation (#357) flips merged. The baseline had drifted from the manifest, turning the conformance-baseline check red.After: the baseline is reconciled to native 55, matching the current manifest on the tip this was built against (
f054e5d88dc366790367a0908015e17c614db6a8).How
Method = parse-results recompute (the fast, phantom-free path #335/#306 used). The flips are pure native re-attributions — test outcomes are unchanged — so
parse-results.mjs'smanifestRustBackedFiles/manifestNativeByPackage/rustBackedPercentlogic was re-run against the CURRENT manifest over the committed run'sby_fileresults, keeping every non-attribution field byte-identical.The three newly-native rows (all
ai):packages/ai/src/api/simple-options.ts→test/context-estimate.test.tspackages/ai/src/utils/estimate.ts→test/context-estimate.test.tspackages/ai/src/utils/validation.ts→test/validation.test.tsExact deltas vs the committed 52 baseline
manifest_native_modulesrust_backed.passingrust_backed.percentby_package.ai.rust_backed_passingby_package.ai.rust_backed_percentby_package.ai.nativeThe
+5rust-backed passing is exactly the two newly-attributed ai files from the committedby_file:context-estimate.test.ts(2 passing) +validation.test.ts(3 passing). Per-package native breakdown is now agent 7, ai 12, coding-agent 22, tui 14 = 55. Every other field (totals, all other packages,by_file,cli_conformance,environment_*) is byte-identical.Self-check (like #335)
Reverting the three newly-native rows back to
originalin a scratch manifest and recomputing reproduces the committed native-52 baseline byte-for-byte — confirming no non-attribution field moved.🤖 Generated with Claude Code
https://claude.ai/code/session_01DwC1dTXNtDfkySZuEYoKun
Generated by Claude Code