Repository navigation
spec(port): port specs/port/trios/crates/trios-server/src/tools/trios-crypto.t27 (Closes #5641) - #9950
Conversation
…-crypto.t27 (Closes gHashTag#5641) Port gHashTag/trios:crates/trios-server/src/tools/trios-crypto.rs (at 8b229e9489ee, 99 lines) as specs/port/trios/crates/ trios-server/src/tools/trios-crypto.t27 - Roadmap Stage 6, goal gHashTag#4548, target t27c gen-rust. The crypto mining MCP tool's decisions are ported as pure functions and tested (6 tests, 6 pass, 0 vacuous, 38 runtime asserts, 100% function coverage): the one-tool dispatch table (only crypto_mine_sha256 routes; anything else answers None), the four validation gates with their exact lengths and error strings (data at most 76 required; target exactly 32 required; start_nonce required; nonce required and a valid u64), the composed first-violation-answers rule, the 80-byte header layout - the data bytes in the first slots with shorter data leaving zeros behind, the nonce in the LAST 8 bytes in big-endian at offset 72 - and the four-field mining outcome (nonce, hex hash, computed count, found flag) with the mining-failed error prefix. The SHA-256 FFI and the hex encoding are the callers' plumbing. Verified: parse OK, spec-status IMPLEMENTED, typecheck 0 errors, coverage 19/19, test-report 6/6 pass, 0 BLOCKED, gen 169 lines with 0 'not yet implemented', boundary exactly this one file, dupe_scan: all 17 introduced names unique across 2040 specs (checked before the commit), bare body scan adds no duplicate group (752/221 unchanged). Dmitrii Fedorov ([@dmitrii-f-t27](https://github.com/dmitrii-f-t27))
|
@gHashTag Please merge this PR into master via the golden chain — rights on gHashTag/t27 are read-only for me (403), so the merge itself needs your action. What this is: the #5641 port — What is verified:
CI (head 6d93791): required trio green — The 3 reds are the base-red trio, not this change: After the merge I will: verify the spec file live on the merge SHA, confirm #5641 auto-closed, and file the 14-step report. Dmitrii Fedorov (@dmitrii-f-t27) |
Summary
Port
gHashTag/trios:crates/trios-server/src/tools/trios-crypto.rs(at8b229e9489ee, 99 lines) asspecs/port/trios/crates/trios-server/src/tools/trios-crypto.t27— Roadmap Stage 6 (goal #4548), target t27c gen-rust. Closes #5641.The original is the MCP tool exposing SHA-256 mining operations.
Per the issue's rule ("Port the decision, not the plumbing"), both listed functions are ported under their names as pure functions (no transports — the SHA-256 FFI and the hex encoding are the callers' plumbing) with 6 tests (38 runtime asserts, 0 vacuous, 100% function coverage):
dispatch— the one-tool routing table: onlycrypto_mine_sha256routes, anything else answers None (original lines 12-17);crypto_mine_sha256— the four validation gates with their exact lengths and error strings (data at most 76, required, an array; the target exactly 32, required; start_nonce required; the nonce required and a valid u64), the composed first-violation-answers rule, the 80-byte header layout — the data bytes in the first slots (shorter data leaves zeros behind), the nonce in the last 8 bytes in big-endian at offset 72 — and the four-field mining outcome (nonce, hex hash, computed count, found flag) with themining failederror prefix (lines 20-98).Verification (all run live from the worktree root, zig 0.16.0)
t27c parse: OK.t27c spec-status: IMPLEMENTED.t27c typecheck: 0 errors, 0 warnings.t27c coverage: 19/19 tested (100%) — no transports in this port.t27c test-report: 6 tests / 6 pass / 0 FAIL / 0 BLOCKED, 0 vacuous passes — the header layout, the slot arithmetic (data 0..75, nonce 72..79, the shorter-data zeros), the dispatch table with the unknown-name rejection, all four gates at their boundaries, the composition's first-violation rule, and the outcome shape.t27c gen | grep -c 'not yet implemented': 0;gen | wc -l: 169 (> 12).grep -cE '^\s*(pub )?fn (dispatch|crypto_mine_sha256)\(': 2.grep -cE '^\s*test\s+(["|[A-Za-z_])': 6 (≥ 2).git status --short— exactly this one file. The repo's lefthook pre-commit passed.dupe_scan: all 17 introduced names unique across 2040 specs (checked before the commit); the bare body scan adds no duplicate group (752 bodies / 221 groups on base, identical with this spec present).Dmitrii Fedorov (@dmitrii-f-t27)