Repository navigation
specs(port trios, browseros): unify LockGuard; rename 11 port-only types (Closes #7486) - #7491
Conversation
…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>
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>
|
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. |
PR DashboardGenerated at: 2026-10-08 17:14:53 UTC
Summary
Seal Status
|
…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>
Closes #7486
Refs #7437
Twelve type names in
specs/port/trios/andspecs/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, andLockGuard_acquirebuildsLockGuard { _file: 0, lock_path: "" }.Renamed. Each record is specific to its module.
AppState->TaskBoardState,Value->TaskReplyValue->GitToolInput,Path->RepoPathCli->RaceCliEntry->LsEntry(the clash is with theEntryin template.t27 that specs: duplicate test names fixed; 10 ledgered stale seals cleared with the #5084 fixes (Closes #7383) #7386 restored)FileChange->GitFileChangeIdentityConfig->IdentityServiceConfigRunResult->TrainRunResultToolDefinition/ToolRegistry->BrowserToolDefinition/BrowserToolRegistryVariant->CladeVariantEvery 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 ofdocs/reports/type_conflicts_classified.json(and theverdictscounts), and out of the tables and counts indocs/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.Entry, never ledgered)Point,Reply(never ledgered)Entry+ReplyEvidence (Railway t27c lab, master bd3bdcd)
Results of
tri types ratchetandtri types classified:Entry(specs: duplicate test names fixed; 10 ledgered stale seals cleared with the #5084 fixes (Closes #7383) #7386) and NEWReply(t27b: a postfix optional type T? is ?T, 823 -> 824 (Closes #7415) #7462). corpus: judge 26 new type conflicts from the port batches; types ledger 84 -> 110 (Refs #5906) #7482 did not cover either.Entryis left, and specs(port trios, browseros): unify LockGuard; rename 11 port-only types (Closes #7486) #7491 fixes it.Entryis left, and specs(port trios, browseros): unify LockGuard; rename 11 port-only types (Closes #7486) #7491 fixes it. Without specs(t27b conformance): fixture-unique names PostfixPoint and PostfixReply, so the types ratchet sees no new conflict (Closes #7522) #7523,Pointstays conflicted betweenbezier.t27and the t27b fixture. Land specs(t27b conformance): fixture-unique names PostfixPoint and PostfixReply, so the types ratchet sees no new conflict (Closes #7522) #7523 first, or together with this PR.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-rustwith exit 0, test-report counts are unchanged, andt27c suite --ratchet --corpus-onlyis CLEAN (77/77). No sealed spec is touched. Only.t27files 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