Skip to content

specs(port trios, browseros): unify LockGuard; rename 11 port-only types (Closes #7486) - #7491

Merged
gHashTag merged 5 commits into
masterfrom
fix/types-7437-trios
Oct 8, 2026
Merged

gHashTag merged 5 commits into
masterfrom
fix/types-7437-trios

Conversation

@gHashTag

@gHashTag gHashTag commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Closes #7486
Refs #7437

Twelve type names in specs/port/trios/ and specs/port/browseros/ now have two definitions with different fields.

Unified.

  • LockGuard (trios-cli/src/cmd/report.t27) was an empty stand-in for the guard in trios-cli/src/lock.t27. It now has the same fields, _file: u32, lock_path: []const u8, and LockGuard_acquire builds LockGuard { _file: 0, lock_path: "" }.

Renamed. Each record is specific to its module.

  • tasks.t27: AppState -> TaskBoardState, Value -> TaskReply
  • tools/git.t27: Value -> GitToolInput, Path -> RepoPath
  • trios-igla-race main.t27: Cli -> RaceCli
  • ls.t27: Entry -> LsEntry (the clash is with the Entry in template.t27 that specs: duplicate test names fixed; 10 ledgered stale seals cleared with the #5084 fixes (Closes #7383) #7386 restored)
  • trios-git status.t27: FileChange -> GitFileChange
  • identity.t27: IdentityConfig -> IdentityServiceConfig
  • train_loop.t27: RunResult -> TrainRunResult
  • tool-registry.t27: ToolDefinition / ToolRegistry -> BrowserToolDefinition / BrowserToolRegistry
  • oversight.t27: Variant -> CladeVariant

Every new name is unique under specs/. Each carries a // comment naming the owner of the old name.

Ledger

#7482 blessed these 26 names; the owner chose fixing over blessing (2026-10-07), so this PR fixes its names and removes their ledger rows.

For each name this PR fixes, its rows come out of docs/reports/type_conflicts.json, out of docs/reports/type_conflicts_classified.json (and the verdicts counts), and out of the tables and counts in docs/TYPE_CONFLICTS.md. Nothing else is removed, so the ledger is master's minus exactly this PR's names (Q61). Master was merged in from master's side.

PR names fixed ledger classified
#7490 compiler 6 110 -> 104 61 DRIFT, 43 DISTINCT
#7491 trios/browseros 11 (+ Entry, never ledgered) 110 -> 99 62 DRIFT, 37 DISTINCT
#7492 trinity/fpga/scripts/tools 9 110 -> 101 61 DRIFT, 40 DISTINCT
#7523 t27b fixture Point, Reply (never ledgered) 110 unchanged
all four 26 + Entry + Reply 84 (byte-identical to the ledger before #7482) 50 DRIFT, 34 DISTINCT

Evidence (Railway t27c lab, master bd3bdcd)

Results of tri types ratchet and tri types classified:

No PR leaves a stale row or adds a conflict of its own. Every red in a single-PR run is already red on master, and another PR in this set fixes it.

Earlier run at d5cefde: all 25 port files pass gen, gen-verilog, gen-c, gen-rust with exit 0, test-report counts are unchanged, and t27c suite --ratchet --corpus-only is CLEAN (77/77). No sealed spec is touched. Only .t27 files and the three ledger documents change, and foreign-budget and own-language pass.

The PRs edit neighbouring rows of the same three ledger files. Once one lands, the others may need a mechanical re-merge, which means re-running the row removal on the new master.

🤖 Generated with Claude Code

…pes (Closes #7486)

Part of the types ratchet red on master (#7437). Where a port defines
the same record as the spec that owns the name, the fields now match it
exactly, so tri types counts a duplicate rather than a conflict. Where
the record really differs, the port definition gets a module-unique
name and a comment pointing at the owner. The types ledger is not
blessed.

Refs #7437

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge (squash) October 7, 2026 11:20
This was referenced Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-07 12:31:02 UTC

Summary

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

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

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=c3821827b257 != 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).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master moved (#7490 landed); the type ledgers conflicted. They are
recomputed, not merged by hand:

- docs/reports/type_conflicts_classified.json and docs/TYPE_CONFLICTS.md:
  master's text minus the rows of the eleven names this PR fixes (in the
  merge base 20d20c9, gone from the PR, still on master): AppState, Cli,
  FileChange, IdentityConfig, LockGuard, Path, RunResult, ToolDefinition,
  ToolRegistry, Value, Variant. Counts recounted from the rows left:
  DRIFT 55 -> 50, DISTINCT 41 -> 35.
- docs/reports/type_conflicts.json: regenerated with
  `tri types ratchet --bless` (tri built from master's cli/tri on the
  t27c lab), 96 -> 85 names. `tri types ratchet`: CLEAN (85/85);
  `tri types classified`: OK.

Closes #7486

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag disabled auto-merge October 8, 2026 17:14
@gHashTag
gHashTag changed the base branch from master to shep-tmp-base-7491 October 8, 2026 17:14
@gHashTag
gHashTag changed the base branch from shep-tmp-base-7491 to master October 8, 2026 17:14
@gHashTag gHashTag added ci and removed ci labels Oct 8, 2026
@gHashTag

gHashTag commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

Merge shepherd: merged master 14e1c7b in from master's side (4912a50, a fast-forward of this branch), after #7490 landed. The three type ledgers conflicted, and they were recomputed, not merged by hand. type_conflicts_classified.json and TYPE_CONFLICTS.md are master's text minus the rows of the eleven names this PR fixes: AppState, Cli, FileChange, IdentityConfig, LockGuard, Path, RunResult, ToolDefinition, ToolRegistry, Value and Variant. Those are the names in the merge base 20d20c9 that this PR lacks and master still has. The counts were recounted from the rows left: DRIFT 55 -> 50, DISTINCT 41 -> 35. type_conflicts.json was regenerated with tri types ratchet --bless (96 -> 85). On the merged tree, on the t27c lab, tri types ratchet is CLEAN (85/85) and tri types classified is OK. The foreign-line budget is 0 lines. The stale base.sha was cleared (#7489): auto-merge was off, the base was flipped to a temporary branch and back to master and checked, the ci label was re-added, the temporary branch was deleted, and then auto-merge was turned back on.

@gHashTag
gHashTag enabled auto-merge (squash) October 8, 2026 17:14
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-08 17:14:53 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 49
PRs with All Checks Green 1
READY 1
FAILING 49
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=39fa3908f9fd != 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).

@gHashTag
gHashTag merged commit d4f74f8 into master Oct 8, 2026
33 of 36 checks passed
gHashTag added a commit that referenced this pull request Oct 8, 2026
…7887)

Duplicate Body Ratchet went red on master again within minutes of
#7864: the assign group grew to 3.

specs/port/trios/crates/trios-server/src/mcp_endpoints/tasks.t27
(port of the trios server MCP endpoints, #7102) stubs all three of
assign / status / update_status with the same canned reply,
TaskReply{task_id: "task-123", status: "assigned"}. #7491's type
renames unified the reply type so the three bodies became identical
text for the scanner.

The copy is the port as written -- three endpoints, one stub each.
Ledgered, not deduped: giving each endpoint a distinct body is the
port lane's work (#7102 follow-up), and when they diverge the group
shrinks out of the ledger.

Ledger diff = exactly one line (assign 3). Verified with
dupe_scan.py on master head 7c88448.

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

types ratchet: trios and browseros ports redefine 12 type names (Refs #7437)

2 participants