Skip to content

fix(ci): fifteen type names, one definition each - #5504

Merged
dmitrii-f-t27 merged 3 commits into
masterfrom
fix/type-name-conflicts-master
Oct 2, 2026
Merged

dmitrii-f-t27 merged 3 commits into
masterfrom
fix/type-name-conflicts-master

Conversation

@dmitrii-f-t27

@dmitrii-f-t27 dmitrii-f-t27 commented Oct 2, 2026 •

Copy link
Copy Markdown
Collaborator

What

tri types ratchet (Corpus Ratchet, step 2) fails on master: 15 type names gained another definition, and 3 ledger rows no longer conflict.

Fourteen of the 15 come from recent ports under specs/port/. ConfigEntry became visible on 2026-09-24, when #4794 made specs/account/auth.t27 readable. The ledger says why this matters: a name with two definitions has no determined domain (#2774). #4612 asked for a rename, not --bless, when Regex did the same. This PR does the same for all 15.

Renames (newer definition, inside its own file)

name file new name
BezierCurve port/trinity/src/tri/gen_bezier.t27 CubicBezier
ConfigEntry account/auth.t27 OrgConfigEntry
CounterState port/fpga/verilog/gft_dup2_jtag.t27 Dup2CounterState
Gate port/trios/crates/trios-cli/src/metrics.t27 MetricGate
Issue port/scripts/bulk-create-notebooks.t27 NotebookIssue
JtagShiftRegister port/fpga/verilog/mvp_ternary_classifier_jtag_noport.t27 ClassifierShiftRegister
ModuleInterface port/fpga/vivado/uart_echo_top.t27, port/trinity/fpga/openxc7-synth/d6_test.t27 UartEchoInterface, D6TestInterface
Mpsse port/tools/jtag/link_relay.t27, port/tools/jtag/mpsse_jtag.t27 LinkRelayMpsse, MpsseContext
OscillatorState port/fpga/vivado/uart_echo_top.t27 UartOscillatorState
Path port/scripts/gen_w365.t27, gen_w368.t27 W365Path, W368Path
Point port/trinity/src/tri/gen_rect.t27 RectPoint
Pool port/browseros/.../routes/queen-registry.t27 RegistryPool
PullRequest port/browseros/.../services/queen-ci-verdict.t27 VerdictPullRequest
RSAKeyPair port/trinity/src/tri/gen_rsa_simple.t27 SimpleRSAKeyPair
StatusResponse port/browseros/.../routes/status.t27 ServerStatusResponse

The older definition keeps the name in every pair. All new names were unused before.

Proof that only the name moved

For each of the 17 files, t27c gen, gen-c, gen-rust and gen-verilog were run on the old and the new text at the same path. After mapping the new name back to the old one, the output is byte-identical in every backend. Verilog also lowercases struct names into register names (point_x -> rectpoint_x), so both spellings are mapped. queen-ci-verdict.t27 is refused by every backend before and after; it is one of the 15 specs that do not generate (#5497).

Ledger and classification

  • docs/reports/type_conflicts.json: tri types ratchet --bless drops only AdamWConfig, JitCache and ParseResult. 80 -> 77 names; RATCHET: CLEAN.
  • docs/reports/type_conflicts_classified.json and the tables in docs/TYPE_CONFLICTS.md: the same three rows are dropped, the counts go to DRIFT 44 / DISTINCT 33, and the AdamWConfig paragraph is in the past tense. tri types classified: OK.
  • specs/account/auth.t27 is the only renamed spec with seals. Both were current before; after resealing with the t27c built from this tree, --verify reports all MATCH.

Elsewhere

Against master, the generation failures are the same 15, check_duplicate_declarations passes, and the assertionless counts and the corpus-suite summary are identical. One side effect: update_oscillator_chain stops being a duplicate group, because its two bodies now name different types. The duplicate-body ratchet fails when a known group disappears and its row stays, so this PR also drops that row (update_oscillator_chain 2, added by #5501) from tools/duplicate_bodies_baseline.txt; dupe_scan.py passes on the branch after merging master.

Refs #5497

🤖 Generated with Claude Code

tri types ratchet failed on master: 15 type names gained another definition.
Fourteen come from recent ports under specs/port/; ConfigEntry became visible
when #4794 made specs/account/auth.t27 readable. A name with two definitions
has no determined domain (#2774), and the ledger is not to be blessed past
it (#4612).

The newer definition in each pair is renamed inside its own file:
BezierCurve->CubicBezier, ConfigEntry->OrgConfigEntry,
CounterState->Dup2CounterState, Gate->MetricGate, Issue->NotebookIssue,
JtagShiftRegister->ClassifierShiftRegister,
ModuleInterface->UartEchoInterface/D6TestInterface,
Mpsse->LinkRelayMpsse/MpsseContext, OscillatorState->UartOscillatorState,
Path->W365Path/W368Path, Point->RectPoint, Pool->RegistryPool,
PullRequest->VerdictPullRequest, RSAKeyPair->SimpleRSAKeyPair,
StatusResponse->ServerStatusResponse.

For every file all four backends generate the same output before and after,
byte for byte, once the new name is mapped back (Verilog also lowercases it
into register names); queen-ci-verdict.t27 was refused before and after.

AdamWConfig, JitCache and ParseResult no longer conflict; their rows leave
the ledger, the classification json and docs/TYPE_CONFLICTS.md. tri types
ratchet: CLEAN at 77. tri types classified: OK. auth.t27 is resealed.

Refs #5497

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-02 01:32:45 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 3
FAILING 46
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 46 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b7d5cc5c4cf1 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

dmitrii-f-t27 and others added 2 commits October 1, 2026 22:33
Renaming OscillatorState in uart_echo_top.t27 makes its
update_oscillator_chain body name UartOscillatorState, so the two bodies are
no longer copies. The duplicate-body ratchet fails when a known group
disappears and its row stays, so the row (update_oscillator_chain 2, added in
#5501) leaves the ledger in this change.

Refs #5497

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-02 01:34:37 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 3
FAILING 46
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 46 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b7d5cc5c4cf1 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-02 01:34:39 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 46
PRs with All Checks Green 4
READY 3
FAILING 46
PENDING 0
NO CHECKS YET 0

These columns do not partition: 3 + 46 + 0 + 0 = 49, and there are 50 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=b7d5cc5c4cf1 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

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.

1 participant