Repository navigation
spec(port): land 11 green port PRs as one change (Closes #6381 #6383 #9611 #9620 #9644 #9719 #9725 #9781 #9800 #9860 #10005) - #10174
Merged
Merged
Conversation
…etHermesProviderMapping)
Re-authors trios/agent-server/apps/server/src/lib/agents/hermes/hermes-provider-map.ts
(gHashTag/BrowserOS at 879799a8bfb2, 86 lines) as a .t27 spec, so the table
and its two lookups are generated instead of hand-written. The file is pure
decision - one fixed table, two lookups - so every function carries a real
body; no undefined; plumbing exists or is needed.
Port decisions, documented in the spec header:
- isHermesSupportedProviderType: the shared supported-type set from
@browseros/shared/constants/hermes (exactly the four keys of the original's
HERMES_PROVIDER_MAP) inlined as case-sensitive literal comparisons,
mirroring the original's .includes() membership test.
- getHermesProviderMapping: the four-entry table as per-key helpers plus a
lookup with a verdict struct (ok + mapping), because the original's
`HermesProviderMapping | undefined` return cannot compile in .t27 today
(no optional unwrap). ok == false carries the original's `undefined`.
- The original's optional `defaultBaseUrl?` becomes hasDefaultBaseUrl plus
defaultBaseUrl ("" when absent).
Six test blocks assert the original's behavior: all four supported types,
case/whitespace-sensitive rejection, every table entry field by field, the
zero mapping, and the public lookup for supported and unsupported types.
t27c parse: OK. t27c typecheck: Typecheck OK (0 errors, 0 warnings).
t27c gen: generates (147 lines, 0 "not yet implemented" markers).
t27c test-report: 6/6 tests pass, no FAIL, grep -c BLOCKED = 0.
Coverage: 7/7 functions tested (100%).
Closes #6381
A pull request must add exactly one docs/now entry and a bee has no way to know that: its brief names a boundary file and acceptance criteria, and docs/now/ is neither. The publisher adds it rather than failing the gate. Closes #6381 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ity/src/brain/fusiform_gyrus.t27 Closes #6383
A pull request must add exactly one docs/now entry and a bee has no way to know that: its brief names a boundary file and acceptance criteria, and docs/now/ is neither. The publisher adds it rather than failing the gate. Closes #6383 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A pull request must add exactly one docs/now entry and a bee has no way to know that: its brief names a boundary file and acceptance criteria, and docs/now/ is neither. The publisher adds it rather than failing the gate. Closes #6381 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A pull request must add exactly one docs/now entry and a bee has no way to know that: its brief names a boundary file and acceptance criteria, and docs/now/ is neither. The publisher adds it rather than failing the gate. Closes #6383 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…9611) Port gHashTag/trinity:src/bsd/verify_lmfdb.zig (at ee512359254b, 84 lines) as specs/port/trinity/src/bsd/verify_lmfdb.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The BSD verification command's decisions are ported as pure functions and tested (7 tests, 7 pass, 0 vacuous, 35 runtime asserts, 100% function coverage): the usage gate (no argument prints usage and returns before any load), the --test default (bsd_test_curves.json; any other argument is the JSON path as-is), the rank-0 filter (only rank 0 curves are verified; everything else is skipped without failing), the BSD formula Sha = L(E,1) * torsion^2 / (Omega * c_p) carried as special_value * torsion^2 / c_p with the orders widened to f64 before the square so no integer multiply can overflow, the 0.5 match window (strict: a difference of exactly 0.5 fails, on either side), and the summary verdict (ALL PASSED exactly when nothing failed - a run with no eligible curves reaches it too). The JSON load, the table prints and the colour codes are the callers' plumbing. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 7/7, test-report 7/7 pass, 0 BLOCKED, gen 110 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 7 function names unique, bare body scan adds no group of mine. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
… ledger upstream (Closes #9611)
) Port gHashTag/trinity:src/cli/tri_record.zig (at ee512359254b, 157 lines) as specs/port/trinity/src/cli/tri_record.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The terminal-recording wrapper's decisions are ported as pure functions and tested (7 tests, 7 pass, 0 vacuous, 33 runtime asserts, 100% function coverage): the usage gate (only the program name prints usage and exits 1), the environment overrides with their fallback (a present-but-invalid value keeps the default, exactly like the original's catch; an absent variable too), the TRI_REC_OVERWRITE flag (presence alone turns it on), the basename cut (the GIF is named after the command's first word - the length up to the first space, or the whole command when it has none), the existing-GIF block (without overwrite an existing GIF stops the run), the exit-code cascade (usage, the GIF block, an asciinema failure and an agg failure each exit 1; only a finished recording exits 0), and the KB size display (bytes / 1024, truncated). The argv and environment reads, the directory creation, the file checks, the subprocess runs and the prints are the callers' plumbing; the Config record's five defaults are carried as consts plus the override rule. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 7/7, test-report 7/7 pass, 0 BLOCKED, gen 124 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 7 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
Closes #9644) Port gHashTag/trinity:src/vibeec/create_test_mistral.zig (at ee512359254b, 129 lines) as specs/port/trinity/src/vibeec/ create_test_mistral.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The safetensors builder's decisions are ported as pure functions and tested (9 tests, 9 pass, 0 vacuous, 42 runtime asserts, 100% function coverage): the mini Mistral config (vocab 256, hidden 64, intermediate 128, 2 layers, 4 heads, 2 kv heads - head_dim = hidden/heads), the f32 tensor byte rule (4 bytes per element times the 2-D shape product), the per-layer shape table (q/o [hidden, hidden], k/v [kv_dim, hidden], gate/up [intermediate, hidden], down [hidden, intermediate] - slot codes 0..6), the tensor count (the embedding plus seven per layer plus the lm head = 2 + 7*layers), the whole payload's byte count (the embedding and lm head share the [vocab, hidden] shape), the parameter count (bytes / 4), the file size (8-byte prefix + header + payload), the JSON header's comma rule (every entry except the first), and the seeded data range (random float in [0,1) scaled to [-1, 1)). The header string building, the file write and the PRNG itself are the callers' plumbing. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 11/11, test-report 9/9 pass, 0 BLOCKED, gen 137 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 11 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
…oses #9719) Port gHashTag/trinity:src/vibeec/soul_collector.zig (at ee512359254b, 69 lines) as specs/port/trinity/src/vibeec/soul_collector.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The corpus builder's decisions are ported as pure functions and tested (5 tests, 5 pass, 0 vacuous, 33 runtime asserts, 100% function coverage): the suffix scan (endsWith, byte-indexed), the marker scan (contains, sliding window), the sacred filter (a file enters the corpus exactly when it ends with .tri or .zig and mentions none of .git, zig-cache, temp_generated anywhere in its path - including the original's quirk that .gitignore.zig is profane too, since indexOf '.git' matches it), and the 10 MB read cap (a file at most the cap in size is absorbed; a larger one fails the capped read and the walk continues without it - the original's catch-continue). The directory walk, the reads and the corpus writes are the caller's plumbing. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 5/5, test-report 5/5 pass, 0 BLOCKED, gen 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 5 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
#9725) Port gHashTag/trinity:src/registry/export_cli.zig (at ee512359254b, 77 lines) as specs/port/trinity/src/registry/export_cli.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The registry export CLI's decisions are ported as pure functions and tested (4 tests, 4 pass, 0 vacuous, 15 runtime asserts, 100% function coverage): the registry destination (the first user argument overrides the default .trinity/registry.json - the bar is args.len > 1), the MCP schemas destination (the SECOND user argument overrides the default .trinity/mcp_schemas.json - one argument is not enough, the bar is args.len > 2), and the stats block the run ends with (the two top counts plus one line per mode, per stability and per namespace - 14 lines for the registry's 3 modes, 3 stabilities and 6 namespaces). The registry export, the schema export and the stats gathering live in mcp_gen and are the caller's plumbing. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 4/4, test-report 4/4 pass, 0 BLOCKED, gen 60 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 4 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
….t27 (Closes #9781) Port gHashTag/trinity:src/phi-engine/quantum/qutritizer.zig (at ee512359254b) as specs/port/trinity/src/phi-engine/quantum/ qutritizer.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The trit-to-qutrit converter's decisions are ported as pure functions and tested (9 tests, 9 pass, 0 vacuous, 49 runtime asserts, 100% function coverage): the uniform 1/sqrt(3) superposition the state starts from (Newton's method replaces the math library sqrt, 40 rounds), the sign-bucket threshold (strictly positive is plus, strictly negative is minus, zero is zero), the strict-majority bias (only a trit class strictly more frequent than BOTH others takes the 0.1 boost - a tie boosts nothing), and the norm that brings the three amplitudes back to unit length; an empty input returns the raw uniform superposition. The QutritState record is carried as a struct with the three amplitudes. The amplitude windows in the tests were measured on the generated code (boosted 0.638479, unboosted 0.544217 for the uniform 0.5773503 + 0.1 bias shape). All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 5/5, test-report 9/9 pass, 0 BLOCKED, gen 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 5 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
…Closes #9800) Port gHashTag/trios-railway:bin/seed-agent/src/main.rs (at 5cc46e798dda, main from line 89) as specs/port/trios-railway/bin/seed-agent/src/ main.t27 - Roadmap Stage 6, goal #4548, target t27c gen-rust. The ADR-0081 pull-based trainer worker's boot decisions are ported as pure functions and tested (6 tests, 6 pass, 0 vacuous, 25 runtime asserts, 100% function coverage): the L-NEON-RENAME URL chain (a present, non-empty --neon-url flag bound to RAILWAY_POSTGRES_URL wins; an absent or empty one falls back to the legacy NEON_DATABASE_URL; neither is the boot error), the connect-retry patience (up to 30 attempts, 2s apart - the attempt that reaches the cap is the bail), the pull loop's wait shape (a trained or pruned experiment pulls the next at once, an idle queue waits the 30s poll interval, an iteration error backs off 30s), the shutdown release (the signal ends the loop cleanly), and the early-stop rule the CLI carries (at step 1000 a BPB strictly exceeding the 2.60 ceiling prunes - the ceiling itself does not prune). The CLI defaults (acc1, local-perplexity, seed-agent-auto, poll 30s, step 1000, ceiling 2.60, trainer external) are carried as consts. The TLS setup, the Postgres connection, the UUID, the worker registration and the iteration runs are the caller's plumbing. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 6/6, test-report 6/6 pass, 0 BLOCKED, gen 110 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 6 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
…loses #9860) Port gHashTag/trinity:src/tri/compat/managed_list.zig (at ee512359254b, ~129 lines) as specs/port/trinity/src/tri/compat/managed_list.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The original is a generic wrapper, ManagedList(comptime T: type), restoring the Zig 0.14 allocator-with-list API over Zig 0.15's pass-the-allocator API. Generics cannot be expressed in this language, so the port instantiates the wrapper's decisions for the concrete element type u32 at a fixed capacity of 16 - the generic itself (original line 17) is the named missing piece, everything it wraps carries: the empty init, append within capacity, len, isEmpty, get, set, clearRetainingCapacity (the count drops, the storage stays), the pop pair (an empty list pops nothing, a non-empty one shrinks by one) and the iterator (has-next at the index, next returning the item and the advanced index). One generator quirk is worked around in place and commented: a copy-then-indexed-write-then-return emits the wrong return variable, and a trailing alias keeps the picker on the mutated copy. The allocator that travels with the list is the caller's plumbing here. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 11/11, test-report 7/7 pass, 0 BLOCKED, gen 158 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 11 function names unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
…10005) Port gHashTag/trinity:src/tri/faculty_types.zig (at ee512359254b, ~170 lines) as specs/port/trinity/src/tri/faculty_types.t27 - Roadmap Stage 5, goal #4547, target t27c gen-rust. The one listed function is ported under the name the issue asks for, FacultySnapshot_activeFaculty (original line 123, activeFaculty method), and tested (3 tests, 3 pass, 0 vacuous, 6 runtime asserts, 100% function coverage): the active faculty is the count of the six seats whose status is up. Two honest notes: the original's FacultySnapshot carries agents: [6]AgentState - an array of structs this language's Verilog lowering does not implement (W469) - so the port's TrinityFacultySnapshot carries the six statuses as a scalar array of status codes (the up/down/stub/tbd enum as codes, the labels and colors are the caller's presentation); and the name FacultySnapshot is already defined by specs/tri/agent/faculty_board.t27, so the port's type is renamed TrinityFacultySnapshot - the function keeps the required name. All four generators (gen, gen-rust, gen-c, gen-verilog) emit this spec before the push. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 1/1, test-report 3/3 pass, 0 BLOCKED, gen 56 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: the function name is unique, bare scan reports zero error lines. Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
…, stale OptimizerStepResult row (Closes #10158) Master 18c98cc was red on t27b-native-ratchet (rust_convert: ledger pass, now blocked by FnDecl(reference CSE hoist)) and on Corpus ratchet (tri types classified: STALE OptimizerStepResult after #10088). Every open PR inherited both reds. - rust_convert.t27 / crypto.t27: the .t27 repairs from draft #9637, without its workflow and Python; gen-rust regenerated, both sealed with zig 0.16. - type_conflicts_classified.json + TYPE_CONFLICTS.md: drop the stale row, DRIFT 62 -> 61. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge
October 18, 2026 02:48
This was referenced Oct 18, 2026
Closed
Open
This was referenced Oct 18, 2026
Contributor
This was referenced Oct 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #6381
Closes #6383
Closes #9611
Closes #9620
Closes #9644
Closes #9719
Closes #9725
Closes #9781
Closes #9800
Closes #9860
Closes #10005
Eleven port PRs that each pass on their own merits but sat red behind master's inherited ratchet failures, landed as one change instead of eleven: #6399 #6885 #10119 #10120 #10121 #10129 #10131 #10132 #10133 #10141 #10142. Each original is merged as is (merge commits, no rewrite); this branch sits on #10160, which turns master green.
One fix on top
#6399 defined a second
HermesProviderMappingstruct with a different field set from the trios-openclaw OC-01 one, sotri types classifiedreported it UNJUDGED. The newer spec's struct is renamedHermesProviderMapEntry; the TS original's name stays in the prose.Evidence (Railway lab, t27c 0.5.2)
tri types ratchet: CLEAN (108 names).tri types classified: OK.tools/dupe_scan.py: no new duplicate body, no known group grew.Left out
The test reports for #6205, #6206 and #6734 include vacuous passes (tests that run 0 asserts). #8879 removes 12 of lotus's 26 tests. #8509 edits
tools/withdrawn.txt. Each of those PRs gets a comment of its own.🤖 Generated with Claude Code