Commit Graph
164 Commits
Author SHA1 Message Date
beam 1633ac3521 beam: generalized Boyer-Moore majority vote with verification 2026-10-31 14:11:35 +00:00
beam 0dce52d3bb beam: add interval_tree with point-stabbing queries + tests 2026-10-31 10:12:53 +00:00
beam c6910a558f beam: k-way merge of sorted streams with stability + tests 2026-10-31 08:11:42 +00:00
beam d1b0f76a8a beam: add extended Euclidean gcd/lcm module with tests 2026-10-31 05:55:25 +00:00
beam 9c272c7c83 beam: add pathguard test runner 2026-10-31 03:49:51 +00:00
beam c5b49b0463 beam: add pathguard safe-join module with tests 2026-10-31 03:49:41 +00:00
volt 10ec491129 volt: q133 repair -- beam test cells bind the module beside them
Two test cells opened with sys.path.insert(0, /root/.hermes/wizard-outputs/beam),
a host copy of the module they grade, and that insert rebound resolution for the
whole lane process -- test_interval_overlap imported the pre-Q84 module and read
red while the repair sat correct in the tree.

Each cell now binds Path(__file__).resolve().parent and asserts the import
landed there. New instrument: q133_verify.py behind CHECK-q133 (5 legs) and
q133_oracle.py, an exhaustive BFS over the edit graph with an OSA contrast so
the corpus separates true DL from OSA (2515 pairs, 0 mismatches, 12 separating).

verify.py: 10 legs, 10 pass, 0 fault. beam/CHECK: 595 tests, 0 failures.
2026-10-31 02:10:33 +00:00
ledger 5ab4b187c7 beam: add CHECK_DL gate with independent BFS oracle for true DL
The DL module's cells were module-level asserts: run_lane_tests.py --list
reports unittest=0 bare=0 for test_damerau_levenshtein.py, so no named case
moved when the module broke. CHECK_DL runs the shipped cells plus
oracle_dl.py, which grades a deterministic 5300-pair corpus against a BFS
over the edit graph (the definition of true DL) and proves in the same run
that the corpus reds both classic impostors (OSA, plain Levenshtein).

Measured: green on the tree (0/5228 mismatches, 42 OSA witnesses, 252 Lev
witnesses); rc 1 with named witnesses on a transposition-deleted mutant and
on an OSA module.
2026-10-31 02:05:15 +00:00
beam e1182ce4f8 beam: safe arithmetic expression evaluator with tests 2026-10-31 01:48:42 +00:00
beam 9f97f411c9 beam: remove stray malformed CHECK_DL artifact; lane green (595 tests) 2026-10-30 23:47:24 +00:00
beam 5bded8094b beam: Damerau-Levenshtein true DL distance with randomized cross-check 2026-10-30 23:46:08 +00:00
ledger 232c8af304 volt: Q90 -- tree_root.py gets a root boundary, a seed check, and an import guard six spellings wide
marker + .git must sit in the same directory, the walk is bounded at 64
ancestors, and portable_seed raises instead of returning a path to nothing.
Cells 6 -> 14, lane gate 587 -> 595 tests, and wizard-work/volt/CHECK-q90
(7 legs) grades each done-mean with a mutant that must red it.
2026-10-30 23:42:26 +00:00
beam 4f900efd53 beam: harden merge_intervals with validation and None handling 2026-10-30 21:43:51 +00:00
beam 9b8020075a beam: cron expression parser with next-run + tests 2026-10-30 21:43:04 +00:00
beam b44b89d788 beam: verification note for lru_ttl_cache 2026-10-30 19:40:51 +00:00
beam cf17d9ee0a beam: add lis (O(n log n) patience sorting) + tests 2026-10-30 17:38:04 +00:00
ledger f864998aba beam: Q128 -- CHECK now grades all 570 cells on stdlib alone (no pytest)
Q105 pointed beam/CHECK at pytest; pytest is not installed on this
interpreter, so the gate exited 2 and ran zero cells. run_lane_tests.py
collects TestCase classes (TestLoader) and bare module-level def test_*()
(FunctionTestCase) itself, treats an unimportable module and a printed
FAIL transcript as faults, and exits 0/1/2. Four test files that imported
pytest now use beam_assert.raises/fail and unittest.mock; no cell dropped.

Measured: unittest discover 353 tests; runner 570 (353 + 217 bare);
bash wizard-work/beam/CHECK rc 0; test_run_lane_tests.py 10 cells OK;
7-mutant battery in scratch copies all as expected (HEAD CHECK rc 2,
broken bare rc 1, pytest import rc 1, failing TestCase rc 1, script FAIL
rc 1, empty lane rc 2, control rc 0).

Record: WORK-QUEUE.md Q128; report wizard-outputs/volt/2026-10-30-q128.md
2026-10-30 16:13:11 +00:00
beam a8f8c39f74 beam: convert test_token_bucket to unittest so runner collects all 9 2026-10-30 15:33:49 +00:00
beam d9e4a66561 beam: add sliding_window_max (monotonic deque) + tests 2026-10-30 13:28:00 +00:00
beam 9ff4791ef7 beam: add conftest.py so pytest importlib mode resolves sibling modules 2026-10-30 12:46:22 +00:00
beam 4d0e6b0ee6 beam: add min_meeting_rooms (sweep + heap, zero-length safe) 2026-10-30 12:46:22 +00:00
beam 16472a2901 beam: add bellman_ford with negative-cycle detection + tests 2026-10-30 09:13:27 +00:00
beam 4620260e43 beam: fix rotated_binary_search test pivot expectation (left-rotation semantics) 2026-10-30 07:11:14 +00:00
ledger b14d73a8f4 volt: Q126 -- gate 9/9: nine host-bound test files rebound to the repo module, 225 census paths ledgered
(a) import-resolve: 9 OUTSIDE_REPO faults -> 0 over 138 graded files. The eight
lanes' test files now insert str(Path(__file__).resolve().parent) and resolve
their data paths from __file__; test_hermes.py is rewritten as the host probe it
always was (skills root from HERMES_SKILLS_DIR/HERMES_HOME/~/.hermes/skills, rc 0
found / 77 SKIP / 1 FAIL) instead of binding a module that does not exist.
Falsified: poisoning the repo copy reds the rebound test (rc 1) and leaves HEAD's
host-bound copy green (rc 0), both restored.

(b) path-claims: 225 new -> 0. All 225 came from sol's untracked-file census; each
was measured (0 add-commits on any ref, present on disk untracked, listed verbatim
in the census) and is a NOT_ADDED row under a batch note. One CLEARED row dropped
(spark/lwc_counter.py, resurrected at 3e667eb after Q125 retired it).

Carried in, not authored here: tools/verify.py's ninth leg and the two-line Q98
record (Sentinel's Q98 artifact), so HEAD agrees with Q98's own text.

verify --repo .: 9 legs, 9 pass, 0 fault -- gate OK. Report:
/root/.hermes/wizard-outputs/volt/2026-10-30-q126.md
2026-10-30 05:37:30 +00:00
beam f2300a8ebb beam: add semver parser/comparator with tests 2026-10-30 05:37:10 +00:00
beam 03f41830e0 beam: add rotated binary search with tests 2026-10-30 05:37:09 +00:00
beam c20c6bb821 beam: fix LRU cache get() missing-key return (None -> -1 to match spec/tests) 2026-10-30 05:37:09 +00:00
beam d50b413363 beam: verify_toposort_gen probe for one-shot iterator materialisation 2026-10-29 22:55:10 +00:00
beam 9a5367be0b beam: hardened thread-safe LRU cache (sentinel + RLock) 2026-10-29 20:49:39 +00:00
beam 6fe684f8c0 beam: MinHash near-duplicate line detector with tests 2026-10-29 18:46:59 +00:00
beam 5d10c3f6f6 beam: add FenwickRange (range add/range sum) with tests 2026-10-29 16:45:54 +00:00
ledger 4e14101d50 volt: majority() distinguishes empty, no-majority and a None/NaN majority (Q102) 2026-10-29 15:38:20 +00:00
beam a9bc1f7080 beam: convert retry_jitter tests to TestCase + mutant-killing assertions (Q59) 2026-10-29 14:38:19 +00:00
beam 0b4f7db6ba beam: minimum window substring (sliding window) + property tests 2026-10-29 12:36:27 +00:00
beam 56231707ad beam: median of two sorted arrays (binary partition) + fuzz tests 2026-10-29 10:35:08 +00:00
beam ed208eb34b beam: guard module-level sys.exit in two test files so pytest collection succeeds 2026-10-29 08:33:58 +00:00
beam 890ad3ade2 beam: add Manacher longest-palindromic-substring O(n) with tests 2026-10-29 06:16:21 +00:00
beam b485a2e7dd beam: add Hopcroft-Karp bipartite matching with brute-force-verified tests 2026-10-29 04:14:32 +00:00
beam 1a8e9968e7 beam: add bisect_bounds (lower/upper bound) with randomized tests 2026-10-29 02:12:43 +00:00
beam 367d66e574 beam: URL canonicalization utility with tests 2026-10-29 00:11:17 +00:00
beam 6fb2b4c6f3 beam: A* shortest-path with admissible heuristic + randomized cross-check vs Dijkstra 2026-10-28 22:09:31 +00:00
beam 8ffa56db47 beam: LRU cache with per-entry TTL (beam variant) + tests 2026-10-28 20:07:31 +00:00
Volt bab4431884 volt: Q95 -- find_duplicate gets a declared dead branch and 12 collected cells
The module had no cell in any gate, and read two ways: its docstring promised
ValueError for 'no duplicate present' while its self-test said it does not
promise detection at all. Measured at 95e4962: every array of length n+1 over
1..n for n=1..4 (1,114 inputs) returns a value occurring at least twice, 0
ValueErrors, and the no-duplicate guard's raise never fires (its condition is
evaluated on all 1,114 and is never true). The nearest no-duplicate shape,
[1,2,3,4], is refused by the RANGE gate: 'value 4 out of range [1, 3]'.

- find_duplicate.py: docstring edge case states the pigeonhole argument and
  that the branch is unreachable; the 'exactly one value appearing twice' claim
  (contradicted by the file's own [2,2,2] case) corrected; the guard moved into
  _no_duplicate_guard() with the reason it is kept -- with phase 2's loop
  deleted it fires on 272 of the same 1,114 arrays, first [1,2,1]; self-test
  paragraph replaced and it now asserts the range-gate message.
- test_find_duplicate.py: 12 cells / 1,133 subtests, including the exhaustive
  domain (pinned at 1,114 and 'the return occurs twice') and a dead-branch cell
  that traces the module and asserts the AST-located no-duplicate raise is the
  only unexecuted statement.
- Falsified: 9 named mutants, 9 killed, control green; beam CHECK 446 passed /
  2,007 subtests -> 458 / 3,140.
2026-10-28 19:23:04 +00:00
beam 86238b639b beam: add test_task_scheduler.py (11 tests) covering exact-vs-critical-path and validation 2026-10-28 18:05:57 +00:00
beam afdc563a9d beam: token-bucket rate limiter with injectable clock + tests 2026-10-28 16:02:19 +00:00
ledger 2f1187b6dd volt: Q111 correction -- 11ms control was 19/20 red (20ms now, 30/30) + test_shadow fixture race (10/10 red concurrent -> 0/10) 2026-10-28 14:35:29 +00:00
ledger 960469db33 beam: token_bucket blocking cell measures from the refill origin
WHY: test_acquire_blocks_and_returns took t0 after the drain, so the cell timed
only the part of the 0.05 s refill that happened after the scheduler returned to
it. Observed red in a loaded full-suite run at 7c36185:
'assert 0.03909331373870373 >= 0.04' -- 10.9 ms of untimed prefix. Deterministic
repro: pre-fix cell + 11 ms injected gap -> 0.03897/0.03912, rc 1.

FIX: t0 now precedes try_acquire(1.0), which is where the bucket sets _last, so
dt is >= 0.05 by construction (acquire cannot return before the refill origin is
1/rate old) and the 0.04 floor has ~10 ms of margin instead of 1 ms.

MEASURED: repo cell 9 passed; pre control rc 1 dt 0.03897-0.03912; post control
rc 0; same-gap in-process dt pre 0.039119 / post 0.050253; non-blocking-acquire
mutant rc 1 (2 failed: blocks + timeout cells); controls/post 15/15 green under
4-CPU saturation; bash wizard-work/beam/CHECK rc 0 twice, 423 passed / 2007
subtests.

CHECK: python3 /root/.hermes/wizard-outputs/volt/2026-10-28-q122/verify.py
2026-10-28 14:14:46 +00:00
ledger a6491d724a volt: Q111 -- weighted_interval_scheduling handles zero-length intervals, rejects reversed input; new test_*.py cell collected by beam CHECK (rc 0, 415 passed / 2007 subtests) 2026-10-28 14:00:59 +00:00
beam df7a972b25 beam: Dinic max-flow implementation with randomized cross-check vs Edmonds-Karp (8 tests pass) 2026-10-28 14:00:34 +00:00
beam 2b080cfca9 beam: fix path_sandbox root="/" containment (was requiring "//" prefix) 2026-10-28 11:58:49 +00:00