Skip to content

spec(port): land 11 green port PRs as one change (Closes #6381 #6383 #9611 #9620 #9644 #9719 #9725 #9781 #9800 #9860 #10005) - #10174

Merged
gHashTag merged 30 commits into
masterfrom
sweep/land-11-ports
Oct 18, 2026
Merged

gHashTag merged 30 commits into
masterfrom
sweep/land-11-ports

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

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 HermesProviderMapping struct with a different field set from the trios-openclaw OC-01 one, so tri types classified reported it UNJUDGED. The newer spec's struct is renamed HermesProviderMapEntry; the TS original's name stays in the prose.

Evidence (Railway lab, t27c 0.5.2)

PR spec tests vacuous
#6399 hermes-provider-map 6/6 0
#6885 fusiform_gyrus 8/8 0
#10119 verify_lmfdb 7/7 0
#10120 tri_record 7/7 0
#10121 create_test_mistral 9/9 0
#10129 soul_collector 5/5 0
#10131 export_cli 4/4 0
#10132 qutritizer 9/9 0
#10133 seed-agent main 6/6 0
#10141 managed_list 7/7 0
#10142 faculty_types 3/3 0
  • 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

Trinity Bee and others added 30 commits October 5, 2026 09:29
…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>
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))
)

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>
…rmesProviderMapping (Refs #2774)

The batch's #6399 defined a second HermesProviderMapping, which made
tri types classified report an UNJUDGED conflict. Renamed in the newer spec;
the TS original's name stays in the prose.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge October 18, 2026 02:48
This was referenced Oct 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 03:02:00 UTC

Summary

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

These columns do not partition: 0 + 47 + 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)=3b53d48ddb52 != 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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants