Skip to content

ci(conformance): refresh baseline to native 55 after flip wave#358

Merged
zmaril merged 1 commit into
mainfrom
fix/conformance-baseline-current
Jul 22, 2026
Merged

ci(conformance): refresh baseline to native 55 after flip wave#358
zmaril merged 1 commit into
mainfrom
fix/conformance-baseline-current

Conversation

@zmaril

@zmaril zmaril commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Before / After

Before: the committed root conformance.json baseline sat at manifest_native_modules: 52 (from PR #335), while main's conformance/manifest.json had 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's manifestRustBackedFiles / manifestNativeByPackage / rustBackedPercent logic was re-run against the CURRENT manifest over the committed run's by_file results, keeping every non-attribution field byte-identical.

The three newly-native rows (all ai):

  • packages/ai/src/api/simple-options.tstest/context-estimate.test.ts
  • packages/ai/src/utils/estimate.tstest/context-estimate.test.ts
  • packages/ai/src/utils/validation.tstest/validation.test.ts

Exact deltas vs the committed 52 baseline

field before after
manifest_native_modules 52 55
rust_backed.passing 881 886
rust_backed.percent 23.3 23.5
by_package.ai.rust_backed_passing 79 84
by_package.ai.rust_backed_percent 6.1 6.5
by_package.ai.native 9 12

The +5 rust-backed passing is exactly the two newly-attributed ai files from the committed by_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 original in a scratch manifest and recomputing reproduces the committed native-52 baseline byte-for-byte — confirming no non-attribution field moved.

Note: main is actively moving (a merge-walker is landing the fluessig napi flip stack). This was built against tip f054e5d88dc366790367a0908015e17c614db6a8; if main advances the manifest past native 55 before merge, a re-regen will be needed.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DwC1dTXNtDfkySZuEYoKun


Generated by Claude Code

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
@github-actions

Copy link
Copy Markdown

Conformance smoke: agent + ai + tui

  • pi_sha: 3da591ab74ab9ab407e72ed882600b2c851fae21
  • manifest_native_modules: 55

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.

Package rust-backed Native modules raw pass (secondary) Failing Skipped
agent 73/180 (40.6%) 7 180/180 0 0
ai 84/1296 (6.5%) 12 553/1296 3 740
tui 375/678 (55.3%) 14 678/678 0 0
smoke total 532/2154 (24.7%) 33 1411/2154 3 740

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 tests lists. The Native modules column counts modules served by the Rust addon. This is the agent+ai+tui smoke subset; the full baseline lives in committed conformance.json.

Attribution

A pi test file is rust-backed iff the module it primarily exercises — its module-under-test — is status=native in conformance/manifest.json. A package's rust-backed count is the passing cases in its rust-backed files. Transitive or infrastructure use does not count (e.g. ~30 ai files construct the native faux provider but test other things — only faux-provider.test.ts, whose subject is faux, counts). A file that substantially tests both a native and an original module is excluded rather than counted, so the number under-reports rather than over-claims.

Per-file decisions (from each native manifest row's tests list):

Native module Test file Decision
ai/api/anthropic-messages.ts test/anthropic-sse-parsing.test.ts counted
ai/providers/faux.ts test/faux-provider.test.ts counted
coding-agent/utils/ansi.ts test/ansi-utils.test.ts counted
coding-agent/utils/changelog.ts test/changelog.test.ts counted
coding-agent/utils/git.ts test/git-ssh-url.test.ts counted
coding-agent/core/tools/path-utils.ts test/path-utils.test.ts counted
tui/keys.ts test/keys.test.ts counted
tui/utils.ts test/truncate-to-width.test.ts, test/regression-regional-indicator-width.test.ts counted
coding-agent/utils/mime.ts test/image-process.test.ts mixed — excluded (2 of 3 cases test processImage/original)
coding-agent/utils/version-check.ts test/version-check.test.ts mixed — excluded (fetch cases mock the original; not separable per-file)
coding-agent/core/export-html/ansi-to-html.ts test/export-html-whitespace.test.ts mixed — excluded (asset-grep + tool-renderer/original dominate)
coding-agent/core/tools/truncate.ts no dedicated test (exercised via tools.test.ts, subject is the read/edit factory/original)
coding-agent/core/tools/edit-diff.ts no dedicated test (edit-tool tests' subject is the edit tool/original)

CLI conformance (black-box, against the pidgin binary)

  • CLI conformance: 15/15 pass against target/release/pidgin (pass delta ±0, fail delta ±0).
File Passing Failing Skipped
packages/coding-agent/test/session-file-invalid.test.ts 1 0 0
packages/coding-agent/test/session-id-readonly.test.ts 7 0 0
packages/coding-agent/test/startup-session-name.test.ts 2 0 0
packages/coding-agent/test/stdout-cleanliness.test.ts 5 0 0

The four repointed coding-agent CLI test files spawn the compiled pidgin binary via $PIDGIN_BIN instead of pi's own cli.ts. This is a separate signal from the module smoke table and is never folded into the per-package Native count.

@zmaril
zmaril marked this pull request as ready for review July 22, 2026 03:35
@zmaril
zmaril merged commit e870522 into main Jul 22, 2026
13 checks passed
@zmaril
zmaril deleted the fix/conformance-baseline-current branch July 22, 2026 03:36
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.

2 participants