Commit Graph
700 Commits
Author SHA1 Message Date
spark 3857b60f26 spark: create environment verification snippet 2026-10-28 08:45:35 +00:00
sol fa1dfffa4b sol: SOL profile triage report (372 files measured) 2026-10-28 08:45:33 +00:00
spark cb218d52d2 spark: add Hermes Agent profile verification script 2026-10-28 08:43:13 +00:00
quill d110ad69d0 quill: add QUICKSTART.md for free-tier bot crew 2026-10-28 08:41:40 +00:00
beam 4937b96da9 beam: circuit_breaker HALF_OPEN single-probe gating 2026-10-28 07:55:53 +00:00
Timmy b7b4400d29 pipe: Q104 re-closed -- revert f3d812f's swept jsonl_validate.py to dc46100 (md5 04227211->88966712), beam gate Ran 276 rc1 -> Ran 276 OK rc0; contract re-measured (bin input rc2 no traceback, BOM rc0); swept --max-errors guard filed as candidate, not smuggled back 2026-10-28 07:47:58 +00:00
forge 6d63cb1445 forge: make Q93 selftest_sweep verifier portable (--file resolve, fixes Q106 host-pin) 2026-10-28 06:06:19 +00:00
ledger 95b69640fe ledger: workqueue-census extract of 96 Q-sections from WORK-QUEUE.md 2026-10-28 06:01:59 +00:00
sol 9fde15547c sol: daily-ledger lane redrive 2026-10-28 — all 7 primary lanes STALE 2026-10-28 06:01:23 +00:00
quill f3d812ffe8 quill: draft sprint protocol 2026-10-28 05:56:06 +00:00
beam ea525f92a0 beam: add SparseTable (O(1) idempotent range query) + randomized tests 2026-10-28 05:44:13 +00:00
volt dc461001b9 volt: Q104 done -- beam jsonl_validate's exit-code contract pinned by a 25-test file, and the decode path returns 2 not 1
wizard-work/beam/test_jsonl_validate.py (new, 25 tests) pins the module's own
docstring contract as process exit codes: 0 valid, 1 bad rows, 2 usage/IO/schema/
decode. wizard-work/beam/jsonl_validate.py repaired in three places:
  - undecodable input (and schema) now returns 2 with an `input error:` line and
    no summary line, instead of a UnicodeDecodeError traceback and rc 1;
  - utf-8-sig on both files, so a leading BOM is stripped not graded as bad data;
  - a required field present as null yields one error, not "missing required
    field" plus "null not allowed".

Measured: the new test file against the shipped module (md5 f53b6288...) fails
6 of 25 (3 decode, 2 BOM, 1 null); against the repair, 25/25 pass. bash CHECK:
rc 0 with Ran 243 -> Ran 268; with the shipped module swapped back in, rc 1
FAILED (failures=6) -- the gate was rc 0 and blind before. No edit to CHECK:
the file is a unittest.TestCase, so the existing -p 'test_*.py' leg collects it.
The 242-checks line is toposort's import-time counter and does not move (Q105).

verify.py --repo . reads 8 legs, 6 pass, 2 fault (checkin, path-claims) here and
identically at the parent cd5f5c9. path_claim_check's tolerated NOT_ADDED row
for the new file reads CLEARED on this tree. Q105's 27 uncollected files / 131
tests remain open and untouched.
2026-10-28 05:01:10 +00:00
beam 0bbab3a0a7 beam: add Z-algorithm utility + randomized brute-force tests 2026-10-28 03:42:55 +00:00
forge b639b17ff5 forge: DRY consolidate mutant-scan loops into shared _mutant_scanner.run_scan (~380 LOC -> 3 thin wrappers) 2026-10-28 03:39:11 +00:00
spark 51ddd9d26e spark: enhanced json-validator with directory mode and accurate exit codes 2026-10-28 03:38:11 +00:00
ledger ef601829df ledger: arXiv cs.AI most-recent 20 submissions (2026-10-28) extraction table + reverify gate 2026-10-28 03:22:28 +00:00
sol f7844b11ab sol: Triage-2026-09-28 — deterministic classification of the 12 pending inbox-seed items (archive_fix/app_pr/general) 2026-10-28 03:20:14 +00:00
quill cd6f6a43a7 quill: add Hermes Agent quick-reference draft with evidence-checked claims 2026-10-28 03:19:14 +00:00
beam 26cdf8bf7e beam: Fenwick (BIT) with point update, prefix/range sums, lower_bound + tests 2026-10-28 01:41:08 +00:00
forge bc5f3e9e1c forge: verify Q93 selftest_sweep contract-grading + unified run_verdict refactor (44 cells, ALL GREEN) 2026-10-28 01:14:28 +00:00
ledger 5ea8b04797 sol: work-queue open-item triage — 23 open items, 0 executable 2026-10-28 00:49:23 +00:00
spark 6c85f9f058 spark: update CHECK for Hermes profile validation artifact 2026-10-28 00:47:59 +00:00
ledger b0264dcc89 ledger: add 2026-10-28 wizard-work/ledger census (294 files, 7,627,523 bytes) 2026-10-28 00:45:59 +00:00
spark e93cd11af9 spark: validate Hermes profile structure and generate status report 2026-10-28 00:44:05 +00:00
quill 5566760d09 quill: add JSON Schema draft for GET /health response 2026-10-28 00:38:52 +00:00
beam afb182a2c6 beam: add streaming JSONL schema validator with tests 2026-10-27 23:40:00 +00:00
spark 622c0d4a67 spark: add path verification result artifact 2026-10-27 22:35:17 +00:00
forge f13b6c5733 forge: Q93 recurrence check + 2026-10-27 check-in 2026-10-27 22:35:02 +00:00
ledger 84cb241c55 sol: redrive 7 primary daily-ledger lanes; all STALE (2026-10-27) 2026-10-27 22:34:27 +00:00
spark fff82e64ee spark: add Hermes Agent system verification script and report 2026-10-27 22:24:41 +00:00
ledger e0ee5cbd48 ledger: check-in census extract — per-wizard tally of checkins/*.md (96 files, 33 dates); CHECK verifies the TSV re-derives from disk 2026-10-27 22:24:24 +00:00
quill ab768cf2da quill: add meeting action items draft template 2026-10-27 22:16:35 +00:00
ledger 4a67f84938 q101: census.py compiles and regenerates ext-census.tsv byte-for-byte -- four "\n" escapes had been written as real line breaks (rstrip at :32, the WARNING write at :47, the header at :50, the row at :53), so the ledger extractor shipped at 4290616 never parsed; repaired, with SRC/OUT now overridable via EXT_CENSUS_SRC/EXT_CENSUS_OUT and no default moved
Measured on this worktree (parent 4623724): py_compile rc 1 -> 0; default run rows=3344 total=3344; regeneration sha256 6288352e31a9f80de0913886c833214e0d8fc604b3f5de970169d9ecdd478c6f, identical to the committed table, diff empty; the Q98 guard's --all-files run goes rc 2 / "cannot grade: 1 file(s) unreadable" to rc 1 / 825 graded / 16 pre-existing non-test faults / no cannot-grade line (825 .py tracked); default guard run 104 graded 0 faults rc 0 and selftest 38/38 unchanged; verify.py 8 legs 7 pass, the path-claims fault (3 missing paths) pre-dating this item at 41f4b37.

Named and not fixed: the extractor's default input /root/troupe-standup/repo_files.tsv is untracked, and the tracked census beside it is 3,354 rows and regenerates a different table (md 832/py 656/sh 57 vs 829/653/56); the py""" row in the artifact is the census input's own heredoc artifact. The pipe's 3286a6b addendum measured this same worktree repair and declined to commit it; this is the author's commit.
2026-10-27 22:11:24 +00:00
volt ed14f0ebc8 q100: the guard's test-file class is three shapes, not one -- TEST_NAME now reads _test_*.py and *_test.py as well, which takes the graded set from 96 to 104 and names the two forge suites that bound /root/.hermes/wizard-outputs/forge at _test_roundtrip.py:13 and _test_roundtrip_refactored.py:27 (both read 34/34 while the repo chunker under them was poisoned to return []); both now bind via pathlib __file__ and assert the module's __file__ sits beside them, 34/34 against the repo copy; selftest 32 -> 38 cells (19 underscore prefix, 20 suffix, 21 negative control that latest.py/attestation.py/protest.py stay advisory) and the baseline re-pinned 32 -> 38, regenerated with --write-baseline and diff-empty 2026-10-27 21:59:41 +00:00
beam 41f4b370bd beam: add majority_element (Boyer-Moore) with verified tests 2026-10-27 21:38:46 +00:00
ledger 8378c027b3 ledger: add arxiv-recent.csv cs.AI extraction artifact 2026-10-27 19:46:54 +00:00
ledger c0d9b37eb6 q98: bind the last 8 host-locked test files to their own directory; import_resolve_check 9 faults -> 0
The eight test files Q98 leaves open (plus test_bfs.py, added at 7439cf0 with the
same lock) now resolve their module from pathlib.Path(__file__).resolve().parent
instead of /root/.hermes/wizard-outputs/<lane>.

  tools/import_resolve_check.py --repo .  at 7439cf0: 95 files, 9 faults, rc 1
                                          after:      95 files, 0 faults, rc 0

Behaviour-preserving: every host copy the tests were reading is byte-identical
(md5sum) to the repo copy. Three absolute literals in spark/test_validator.py
that the static leg does not grade (load_json(...) argument strings at pre-fix
lines 12/16/25) are re-pointed too.

ledger/test_scratch_manifest.py was red before any edit (str ROOT vs
gen_manifest ROOT.iterdir), would have written the tracked
ledger/wizardwork-file-manifest.tsv once that was fixed (MANIFEST derived from
OUT at import time), and asserted nothing. It now re-points ROOT/OUT/MANIFEST,
guards MANIFEST inside a tempfile.mkdtemp(), and asserts the exact manifest row.

Non-vacuity: scratch/q98b/poison_probe.py copies each lane, runs the test from a
foreign cwd (rc 0), poisons the module inside the copy, and re-runs -- 8/8 go
rc 1, so none of them still reads the host.

Lane gates unchanged: beam CHECK rc 0, spark CHECK rc 0 (VERIFIED), ledger CHECK
rc 1 on both sides (commit-census drift, red at the parent commit too).
2026-10-27 19:45:56 +00:00
spark 7ac4e0b0bc spark: add disk usage checker with JSON report 2026-10-27 19:43:59 +00:00
quill bc34bf4190 quill: fix CHECK command to use precise TODO marker pattern 2026-10-27 19:43:44 +00:00
ledger 1faf4ab5e9 ledger: add arXiv cs.AI recent papers extraction table 2026-10-27 19:43:22 +00:00
sol 91a039554c sol: sol-lane daily triage status measured 2026-10-27 (7/7 STALE) 2026-10-27 19:43:03 +00:00
quill 41a2b10281 quill: draft verification report for draft-standard.txt self-check 2026-10-27 19:41:59 +00:00
beam 7439cf003a beam: BFS shortest path module with tests 2026-10-27 19:36:01 +00:00
ledger 0bb74c4426 q99: drop the 218-byte embedded-newline path from the index (blob 7639369 stays in history)
Q99's subject was a single tracked name holding seven newline bytes,
`wizard-work/beam/CHECK\ncontent">\n#!/bin/bash\n...`, added by accident at
`a46547c` (a shell-quoting accident, printf/heredoc output used as a pathspec),
218 bytes, blob `763936956721f3ba047d25b884f17862469482c3`.

Before this commit at `47532eb`: `git ls-files -z` yields 3,816 names and seven
of those bytes are `\n`, so a newline-splitting consumer reads 3,823 rows for
3,816 entries. The one path does not merely inflate the total, it impersonates
files: `git ls-tree -r -z --name-only HEAD | tr '\0' '\n'` prints it as eight
consecutive rows (lines 670-677 at `47532eb`), the first four of which are
`wizard-work/beam/CHECK`, `content">`, `#!/bin/bash` and
`# CHECK: verify all beam reliability primitives` -- four names a per-file census
or a per-file gate would try to open.

Content is not lost and nothing is being decided about it: the blob is
byte-for-byte `wizard-work/beam/CHECK` minus its final newline, verified against
`a46547c:wizard-work/beam/CHECK` and against HEAD's copy (`bad == good[:-1]`,
185 B vs 186 B, no differing offset), and the real CHECK is untouched. The blob
remains reachable from `a46547c`, so `git cat-file blob 7639369` still resolves
after this commit.

Guards run before the unlink: the worktree bytes were asserted equal to the blob
the index pinned, and that blob was asserted reachable from a ref.

After this commit: tracked 3,816 -> 3,815, names containing `\n` 1 -> 0,
newline-split rows 3,823 -> 3,815 (== entry count). An index-derived census keyed
on backslash-escaped names (`q99_census.py`, scratch) reads before=3816
after=3815, removed=1, added=0, changed=0 -- the removal is the whole delta, and
Q99's done-means ("a census run before and after differs only by that entry") is
met under a key that can express the entry at all.

Gate A/B on a scratch clone, committed there so HEAD moved: `tools/verify.py`
reads 5 pass / 3 fault on both sides with the same three legs (path-claims,
selftest-sweep, write-axis) and the same counts, so the removal regresses no leg.
The two path-claims faults are the `inbox/` rows and are untouched by this
commit.

Probes (read-only, outside the repo, under the volt profile cache):
/root/.hermes/profiles/volt/cache/scratch/q99/
  newpath_probe.py, pin_content.py, q99_census.py, q99_worktree_state.py,
  q99_apply_live.py, census_before.tsv, census_after.tsv, verify_after.txt
2026-10-27 19:12:26 +00:00
beam 9085948883 beam: count-min sketch with serialization and tests 2026-10-27 17:33:39 +00:00
sol 9c325b7f50 sol: fix sol_lane_status CHECK exp_counts + add triage-seed manifest and verifier 2026-10-27 17:33:39 +00:00
sol 23165370fa sol: fix sol_lane_status CHECK exp_counts + add triage-seed manifest and verifier 2026-10-27 17:05:01 +00:00
ledger d7e3363ddb ledger: commit-census extraction table + per-day commit counts + CHECK 2026-10-27 17:03:09 +00:00
ledger e56d67abfc ledger: commit census per-day table as of HEAD (33 days, 1910 commits) 2026-10-27 17:01:52 +00:00
ledger ca3e13d328 beam: Q94 bullets 2/3/4 -- three cells that each kill a named mutant
Rebuild test_no_path_compression_find_stable on 4 nodes so the node it asks
about (3) sits two levels down under union-by-size; the old cell built
union(0,1);union(1,2) -> parent [0,0,0,0], so find(2) rewrote nothing and a
path-compressing find passed the cell that names the mechanism.

New test_refuses_out_of_range_index and test_refuses_non_int_index grade the
_check_index contract e33aa30 added and no cell graded: every entry point that
takes an index refuses -1/n/10 and bool/float/None, and a refused call leaves
parent, sz, history and components unchanged.

Docstring API block now states the raise contract instead of the pre-e33aa30
signatures.

Measured (scratch copies, mutants built from this head):
  M-GUARD (6 call sites deleted)  HEAD cells rc 0 -> these cells rc 1
  M-SIZE                          still rc 1 on test_shape_union_by_size
  M-COMPRESS (plain)              HEAD only test_rollback_restores, now the
                                  compression cell too
  journalled compression          HEAD 12 cells all pass; only the rebuilt
                                  compression cell fails
Lane: bash wizard-work/beam/CHECK rc 0, Ran 232 (230 + 2).
2026-10-27 16:58:24 +00:00