Skip to content

Latest commit

 

History

History
323 lines (246 loc) · 79.3 KB

HANDOFF-archive.md

File metadata and controls

323 lines (246 loc) · 79.3 KB

Handoff archive: older dated sections

Sections moved out of HANDOFF.md unchanged, newest first, so the handoff stays short to read. This is not a handoff and nothing here is open: open items live only in HANDOFF.md's table. Search this file (grep -n "your words" docs/HANDOFF-archive.md) instead of reading it whole. Line citations such as docs/HANDOFF.md:120 written before 14 October 2026 point into the file as it was then; read that version with git show f87726d:docs/HANDOFF.md (the last commit before the split) or an older commit.

When HANDOFF.md grows long, move its oldest dated sections, unchanged, to the top of this file (below this paragraph).

Continuation, 27 October 2026

Item State Next step
One page scroll bar and American English on every Space (27 Oct) kit spaceconnect (page) writes onescroll.html, which fits every guide frame to its content so only the page scrolls; check (run by the tests) fails on a page without it and on British spellings in spaces/ and docs/releases.json (ALLOW_SPELLING keeps published data keys and others' names); scroll opens the live Spaces and lists any box that scrolls inside a page. One-screen viewers (Umbilici, Unroll, Segment Lens) keep one scrolling list at a time. Public API spelling changes: AFV Fibers fibers_box and key fibers; Lasagna Fields center_level0_zyx; Ink Lens parameter centers; Snapped Labels view().center; Umbilici column license (data key licence kept). AFV Fibers: fading hero, no cost figures. Merged in PR #253 (8250b23) and deployed 28 Oct to all 13 public Spaces (only changed files, each checked against the live copy first) and the dataset cards; live check at 1440 and 390 px: one page scroll bar everywhere, no British spellings. Phone pass (PR #254): scroll also opens More tabs and fails on content cut off at the right or a page that pans sideways; fixed and deployed 28 Oct on AFV Fibers, Fiber Checker, dinovol, Segment Lens, Umbilici 1.11.1 and Ink Atlas (tool pages list each Space commit); scroll --direct now opens static Spaces on OWNER-NAME.static.hf.space (the other host answers 404, which had passed). Phone sweep after the deploys: 13 Spaces, 43 views at 390 px, all pass Done 28 Oct, merged with PR #254. Rerun python -m kit spaceconnect scroll --direct --width 390 --height 844 after any Space change
Umbilici 1.10.0 on center lines v2.6.1 (27 Oct) Lines rebuilt from SharpMeow/vesuvius-center-lines v2.6.1 (dataset revision 51603382, all 81 files match SHA256SUMS): 35 scans, 57 lines (was 33 and 52); new Center Finder lines for PHerc1667 and PHerc0172, polished lines for PHerc1299, PHercMAN5 and PHercMANB. PHerc0172's scan is Blosc-compressed in the open data, so the page draws its line without CT and says so; the Data dialog's Scans tab, broken since 1.9.0, fixed. Lasagna data on the Space unchanged. Checked locally in headless Chromium (Data: 57 lines, 35 scans; no page errors). Page tools/umbilici.md, release entry umbilici replaced (PR #250) Done 27 Oct: deployed from main at 50020b3 as Space commit 3def64b4 (standing yes, rule 8; lasagna data and og.jpg untouched). Live recheck: RUNNING, the served data/lines.json byte-identical to the build (v2.6.1, 35 scans, 57 lines), app.js 1.10.0; headless Chromium on the live page: Data shows 57 lines and 35 scans, PHerc0172 shows the no-CT note, PHerc1667 streamed its CT (116 heights), no page errors
Crackle Check release entry (27 Oct) The public Space SharpMeow/crackle-check (version 0.4.0) gets README "Released tools" entry crackle-check and page tools/crackle-check.md, from what the Space and its Connect panel already show; the entry's gradio_client command was run logged out (answer Yes); PR #250 None
Project audit fixes (27 Oct) Small fixes from a whole-project audit: Fiber Checker's deploy list now ships connect.json and CONNECT.md (its Connect panel links were 404), Unroll page at 1.7.0, Umbilici page counts, release links for Lasagnetta 0.1.1 and Inkfilter 0.1.0, a scipy skip guard on test_fiber_direction, three merged rows above marked merged. Follow-ups: Umbilici 1.10.0 and the Crackle Check release entry (the two rows above) Done 27 Oct: Fiber Checker redeployed from main at 45836d9 as Space commit a7e40dbc; its connect.json and CONNECT.md return HTTP 200 live
Ink Lens compares every ink model, 3D included (27 Oct) PR #238: spaces/ink-lens/zoo.py (11 open models with pins, licence, control and per-scroll training exposure with sources), runners.py, compare.py (2.4 um canvas scored on the labels' 9.6 um grid; reverse or moved-sheet controls; ink-sdk's liveness gate, ensemble, stability; bootstrap intervals), Compare models tab, tools/gallery_job.py; 22 tests (page). Gallery skipped (27 Oct): hidden until one is published; no GPU Job ran Done: merged in #238 (with #243 and #244). Checked 28 Oct about 05:55 UTC: the Space is RUNNING at Space commit 978066cc, and its app.py, compare.py, zoo.py and runners.py are byte-identical to main
Hugging Face Jobs ledger importer (27 Oct) kit run hf-rows (page): finished HF Jobs into docs/compute/hf-jobs-costs.csv from Hugging Face's own bill, one row per Job, public ledger behind --public-generic; tried on real Jobs in a scratch ledger (503 rows, rerun adds none). The public ledger starts empty Record generic public-data Jobs with it after each batch
Snapped Labels: published surface labels moved onto the papyrus (27 Oct) Dataset SharpMeow/vesuvius-snapped-labels (108 segments of PHerc0139, PHerc0814, PHerc0841, PHerc0172; 32.9 million vertices; SHA256SUMS checked after upload) and static Space SharpMeow/snapped-labels with a Connect panel, both public 27 Oct on Chase's yes; page tools/snapped-labels.md, README "Released tools" entry snapped-labels. Checked live in headless Chromium and with the card snippets, logged out Redeploy the Space from merged main when spaces/snapped-labels/ changes; the snapping code is not public
Lasagnetta 0.1.1: faster writer, released (27 Oct) scripts/lasagnetta/preview.py streams the write, pools on the GPU and overlaps copies and reads; new --tile, --pyramid, --no-stream. Same weights and recipe. RTX Pro 6000, PHerc0800 1024 x 2048 x 2048: 44.9 s against villa predict3d 234.2 s (5.2x; 0.1.0 58.2 s, 4.0x), 35.2 s with --tile 320 576 576 (6.6x); cos and grad_mag byte for byte as 0.1.0 (page). Tool page, README entry and model card rewritten Done 27 Oct: merged in #236; GitHub release lasagnetta-v0.1.1 (not Latest, target fd8f7dd) and the model card are live, rechecked live

Continuation, 26 October 2026

Item State Next step
Fiber Checker: free fiber map of traced segments (26 Oct) Space SharpMeow/fiber-checker (free CPU, Chase's yes on 26 Oct) and scripts/fibercheck/ (page): per-patch fiber evidence of any open-data segment or an uploaded tifxyz, free local judge by default (preregistered held-out pass on PHerc0500P2 and PHerc0343P), Claude with the visitor's own key optional; map, report, game, compare, API and MCP, Connect panel. Live 26 Oct: 60 patches in 83 s, self-check passed. Weights and game pictures on the Space only. Registered as stage fibers. 27 Oct (#233, redeployed from merged main and checked live at 1440 and 390 px): Welcome tab with hero mosaic and pictures, GIFs and stills in the How-to guides, Compare as a side-by-side table, tab links that work on phones; tools/deploy.py uploads every file in assets/ Later: own tests for the untested hints (jumps, direction, best depth) and a VC3D overlay check of fiber.tif. Possible: a preregistered agreement test against the AFV V2 fiber model on PHerc0009B, a scroll outside both models' training
Item State Next step
Lasagna Fields 2.0.0: make a field on ZeroGPU (25 Oct) Space SharpMeow/lasagna-fields is now a Gradio app on ZeroGPU (Chase's yes on the decision card in the project thread): Make a field runs villa's own lasagna (db3dbea2, checkpoint de45f011) for any 256 or 512 box of any public scan and checks it against a published field; How-to guides with a page GIF, a slice animation and screenshots (PHerc0139 only, on the Space, not in git); API, MCP server and Connect your tool panel. Live 25 Oct: cos r 1.0 on all six boxes tried; bit-identical on 99.9% of voxels against our own PHerc0175A field; open-data normals differ in some boxes (older villa code, see the page). Space commit 0640a74; rollback point 18237385. Source in spaces/lasagna-fields/, PR from claude/project-thread-oe7eii Merged as 07c0302. A faster or better model goes in the model slot only after it passes a held-out test against villa's field (threads "Make lasagna fields better than villa's", "Make Lasagnetta match lasagna exactly")
AutoPipeline 0.1.8 with Reader V3 (25 Oct) Package progress-2026-10-fix8 on branch submission/progress-2026-10-fix8 at bf807b6 (158 files, the same list as 0.1.7, 21 changed): Reader V3 the default reader, the koine route renamed reader-v3-koine, the ink Space source on Reader V3 with 384 px patches. Leak check OK. README entry, tool page and the ink Space's Connect panel on Reader V3 in this PR Done: tagged autopipeline-v0.1.8 with a GitHub release not marked Latest (published 25 Oct on Chase's yes, from his Mac); Latest stays workbench-v0.4.1. The ink Space runs Reader V3 since revision 137b2f1f, Connect panel kept; a live w00 run matched the CPU check (0.9414 vs 0.6621 control)
Docs #220 CI
hfpull: fast public label downloads (25 Oct) kit.hfpull (page), PR #218: downloads each distinct file of a scrollprize/datasets folder once and copies the rest; PHerc0139 w035 ink_9um labels 61.7 s to 5.0 s, identical files (bench) None; listed in Released tools (Scrolls kit)
Stage registry: swap any stage by name (25 Oct) kit stages (page) and kit/data/stages.json, merged in #225: every option of every stage with origin, licence and maturity; kit scroll2ink run --use ink=NAME (or KIT_STAGE_INK) picks the reader and records it in settings.json; AGENTS.md rule 16 asks new tools to register as stage options Done; later workflows pick their stages through it
AutoPipeline 0.1.9: swap any stage, 3D ink readers (25 Oct) Package progress-2026-10-fix9 on branch submission/progress-2026-10-fix9 at 2144cdf (165 files, 7 new and 7 changed against 0.1.8, Chase's yes on the file list): the stage registry with --use STAGE=NAME in plans, and 3D ink readers (kit ink3d, opt-in and experimental, moved-sheet control); default reader still Reader V3, ink Space unchanged. Leak check OK; 1281 tests and the demo pass. README entry and tool page in this PR Done: tagged autopipeline-v0.1.9 with a GitHub release not marked Latest (published 2026-10-25 from Chase's Mac after his yes; tag on 2144cdf, notes checked, Latest unchanged)
scroll2ink: scan and seed to ink map (25 Oct) kit scroll2ink (page), draft PR from claude/project-thread-6lx4fb: seed check, trace, check, extend, flatten, render, ink with reverse control, in one resumable folder; layer order voted against the umbilicus. PHerc0139 demo on HF Jobs: 4.8 cm2, check ok, 0.15 USD; GIF and stills in docs/assets/scroll2ink/ None; listed in Released tools (Scrolls kit) on Chase's OK; no Discord post (Chase, 25 Oct)

Continuation, 24 October 2026

Item State Next step
3D ink on sheet surfaces in Neuroglancer (24 Oct) Done. kit sheetview (page), merged in #213, draws a tifxyz segment as a Neuroglancer single-mesh layer with a volume (3D ink, CT) sampled onto each vertex. Its browser twin, Unroll 1.7.0 Live sheet (section), is live on the Space since 25 Oct after Chase picked Unroll for it. It streams any public segment and zarr volume (raw or blosc) from the bucket, and its values match kit sheetview (max difference 6e-6 on PHerc0139 w045, rechecked live). Release entry updated None. Possible later: zarr v3 volumes in the live page
AutoPipeline 0.1.7 (24 Oct) Package progress-2026-10-fix7 on branch submission/progress-2026-10-fix7 at 24572e6 (158 files, 18 changed against 0.1.6): ink maps in color in the monitor and the ink Space, a synthetic demo with planted strokes, center lines v2.4 with the polished Center Finder line first. Release check passed (1249 tests, DEMO PASS); leak check OK. README entry and tool page in #210 Done: tagged autopipeline-v0.1.7 with a GitHub release not marked Latest (published 24 Oct on Chase's yes, from his Mac); Latest stays workbench-v0.4.1; #197 merged with it
dinovol embeddings of PHerc0841 (24 Oct) Done. Public bucket SharpMeow/dinovol-embeddings (Chase's yes in the project thread, 24 Oct): the whole PHerc0841 9.366 um scan as dinovol tokens_unit, dense and ink features in one zarr, 539 GB, README with a tested snippet; every slab read back logged out (unit-length vectors, coverage equal to the scan's nonzero voxels). Made on HF Jobs (22 L4 Jobs). Listed in Released tools. Guide Space SharpMeow/dinovol-embeddings (source spaces/dinovol-embeddings/, built by its build.py): plain-words intro, CT and feature slider, click-to-search demo, whole-scan color volume in neuroglancer (-rgb.ome.zarr, 1.6 GB), tested download commands with sizes, Connect your tool None; the Space runs the merged main page. A second scan only on Chase's go
Relative windings in a box, VC3D plugin (24 Oct) kit windlabel-box (page) and plugins/scrolls-windlabel-box.json merged in PR #190 (24 Oct), released from Scrolls-private after a PASS on 18 fresh PHerc0139 boxes (evidence) and, with split rule v2 (now the default), on 20 fresh PHerc1667 boxes (evidence); v1 missed PHerc1667's keep floor. Ran in a VC3D build; its loader drops the relative flag (fix ready). Leak review 24 Oct: clean The VC3D loader fix rides the combined VC3D PR for villa
Ink Lens Space live (24 Oct) Deployed as SharpMeow/ink-lens (ZeroGPU, public; Chase's yes in the project thread). First start failed: readers moved to cuda in the loading thread, outside spaces.GPU; fixed in app.py with a test. Live recheck: inklens.py demo 0841-w00 --score gate ink, AUC 0.9147 vs 0.5954 reversed, 486 patches in about 1.3 s; /list_samples and /lens_sample answer. README entry added (kit releases add) Done: redeployed from merged main (ad0e179, #181) on 24 Oct, so the Connect panel says live. Lasagna Fields got its README entry in the same PR
Umbilici 1.8.0 and center lines v2.3 (24 Oct) Done. Dataset SharpMeow/vesuvius-center-lines v2.3 (commit 73979441, Chase's yes in the project thread): 11 public scans not on the prize page, 33 scans and 40 lines, every file checked against SHA256SUMS at the new revision. Umbilici 1.8.0 merged in PR #185 (912b8e04) and deployed as Space commit 01ea09fd (Chase's yes): one color per maker, green, yellow and red grades, hide a maker or one line (off=). Live recheck 24 Oct: app.js and lines.json byte-identical to the build (33 scans, 40 lines), lasagna meta loads, no console errors v2.4 is live (c67d4743, row below). Scans with 1.2 m volumes still uncovered: PHerc0009B, PHerc0343P, PHerc0500P2 (not checked whether they are rolled scrolls)
Center line coverage polish and center lines v2.4 (24 Oct) Done. kit axispolish and kit windcheck public (#188) with the frozen rule, pages and evidence docs/evidence/2026-10-22-umbilicus-windpolish/. Dataset v2.4 (commit c67d4743, Chase's yes): a polished copy of each of the 12 Center Finder lines on 1.2 m scans beside the original, source finder-polished, 52 lines; 10 of the 12 scans were in the frozen test. Jumpier (steps_over_4mm in index.json), ends not re-checked; published flagged on Chase's pick. Best line as default (Chase): kit centerline get (#198) and AutoPipeline take the polished line first; v2.5 (1b866db0) marks originals superseded_by; Umbilici 1.9.0 fades them, live as Space commit 97e602a7 (from 2b5c820, live recheck passed) None
Connect your tool on every Space (24 Oct) Done. kit spaceconnect (page), merged in #170 and #175: a connect.json per Space, listed in spaces/connect/spaces.json, rendered into one panel; check (in the tests) fails on a Space without one, and caught Segment Lens. Live on six Spaces, each checked in a browser: Umbilici (3e616666, links the Lasagna Fields Space), Segment Lens (ab264084), Unroll (e5067cda), Crackle Check (2a7d5d50, code in Scrolls-private), AutoPipeline ink (2b90f7c3) and Scroll Lens (51360104); Scroll Lens and AutoPipeline ink were unpaused (24 Oct). Every runnable snippet ran logged out against live data (24 Oct); AutoPipeline ink's API snippet needs the caller's ZeroGPU quota, so it fails once a logged-out IP's quota is spent Ink Lens gets its panel when it is first deployed. A new Space: python -m kit spaceconnect new, and python -m kit spaceconnect run before deploying it
Quality-of-life batch (23 Oct) Merged in PR #169 (cc03099, 24 Oct): kit tifxyz (area, isometry, holes, folds, stretch, OBJ, preview, facing), kit find, kit centerline, kit cite, kit prclock, kit prtext, grouped --help with help COMMAND and did-you-mean, fetch --dry-run and a free-space check, three doctor checks (Rosetta, container CPU quota, disk speed), the how-to segments-without-vc3d.md with before and after pictures of PHerc0139 w035, and Umbilici 1.6.2's "copy kit command" button. Pages, tests (1,505 pass), MAP, docs index, GLOSSARY, CHANGELOG and the Scrolls kit release lines updated The Umbilici redeploy and the center lines card belong to the Center line thread: its Umbilici 1.7.0 takes the button from main, and it has the card text. kit prclock was checked only with fixtures: the cloud container cannot reach api.github.com; run it once on the Mac
Second batch (24 Oct) Merged in PR #169 (cc03099): kit atlas with scripts/atlas/hf_atlas.py (Segment Atlas, the public dataset SharpMeow/vesuvius-segment-atlas; first build Job 6adbfc881e112550ce7dac2f), Segment Lens source in spaces/segment-lens/, kit coverage, kit labels, kit tifxyz chunks and diff, kit submitcheck, kit doctor --remote and AMD/Intel checks, kit s3relay and kit vc3dcache (the false-404 fix), tracing-tools.md, prizes.md. 1,667 tests pass. The first atlas build (Job 6adbfc881e112550ce7dac2f) measured 1,538 meshes of 323 segments with none failed. The Space SharpMeow/segment-lens is live (checked in headless Chromium: 1,538 rows, no errors), and the daily refresh is the scheduled Job 6adc08a3046eb82b1ecd92c5 (06:17 UTC, from main) Check the first scheduled refresh after 06:17 UTC on 24 Oct (python scripts/atlas/hf_atlas.py status). Redeploy the Space from main when spaces/segment-lens/ changes. The isometry proposal is villa issue #2279 (24 Oct); its reference is kit tifxyz isometry with a still and a GIF in docs/assets/tifxyz/ (PR #177), and its Details give the planned villa change (GridIsometry.hpp beside storeAreaMeta, vc_tifxyz --isometry, flatboi's triangle_stretch shared); open that villa PR if maintainers want it

Continuation, 23 October 2026

Item State Next step
Research integrity for Vesuvius (23 Oct; its own October form) kit integrity (page), the guide integrity.md and the vesuvius-integrity Claude skill, on branch claude/project-thread-eg2y0r Merged as e1c6774 (#167). Chase sends its own October form (text drafted in Scrolls-private, his OK on the exact text first)
Umbilici Space (23 Oct) Released 23 Oct as 1.6.1 (Space commit c72b2cb0, PR #162 and #163), public since 23 Oct; SharpMeow/pherc0175a-lasagna public the same day Superseded by the Umbilici 1.8.0 row (24 Oct). Still open: whether lag and black flashes are gone on Chase's Mac
Terminal look (23 Oct) Draft PR on claude/project-thread-72xswo: kit/termstyle.py and kit/termview.py from Scrolls-private, kit live and kit style in kit/cli.py, tests, page, AGENTS.md rule 17, a line in the Scrolls kit release entry Merged as d79bf51

Continuation, 22 October 2026

Item State Next step
Greek gap restoration benchmark (22 Oct, a public benchmark for the October entry) Local branch claude/greek-restoration-benchmark from main 0fbc49a: kit/greekfill.py and kit/greekkn.py ported from the code that ran the frozen test, tests/test_greekfill.py, the five frozen files byte-identical in evidence/greek-restoration-20261022/ with their CC BY-SA 4.0 licence note (NOTICE too), the preregistration and result, the tool page, results.json text_restoration_checks, finding 19 in the README and FINDINGS.md with its claims ledger entries, a line in the Scrolls kit release entry, the chart, index and map rows. Reproduced 22 Oct: score, corpus (sha256 5c7c4684...) and the three prep files byte for byte. Agent leak and quality review 22 Oct: no leaks, numbers and citations verified, wording fixed Chase approves the exact public text; then the PR, its checks and merge
README findings (22 and 23 Oct: shorter, current, leading with what works) #156 merged 22 Oct: one line per finding in the README, full text in FINDINGS.md. 23 Oct, with Chase's OK of the exact text: findings 16 and 18 and the StrokeNet release blurb lead with what it does (orientation AUC 0.994, 7 of 9 bars, two-density ahead on PHerc0500P2) and still state the misses Add each new public result to FINDINGS.md and a README line in the same PR, with its kit.claimcheck entry

Continuation, 20 October 2026

Item State Next step
Claims check (21 Oct; FINDINGS.md support 22 Oct) python -m kit.claimcheck check traces every number of the README's Novel findings and of docs/FINDINGS.md (the ledger's documents) to pinned sources in docs/claims/sources.json: 250 numbers in 30 blocks, 239 matched, 11 with a reason; tests/test_claimcheck.py fails on a claim with no source When you change a finding's number or a cited log: python -m kit.claimcheck check, then pin --write after reading the change; a new finding needs add KEY --source ... --write (page)
StrokeNet two-density score (22 Oct) python -m kit strokenet --two-density, its tests and docs, merged in #155 after Chase's OK of the exact text None
Gap fill, batch 1 (20 Oct; one round, 21 Oct) Merged in #149 after Chase's yes (21 Oct) A separate PR ports the content-based kit.tooldocs stale rule (compare file contents since the page's last commit, not commit times) with its test; 121 more public gaps found in that sweep are still open
VC3D plugins (20 Oct) Villa branch vc3d-plugins (local, not pushed; a0c8b9e6d on villa main d1b95150e, 17 files, author and committer Chase, no AI lines): a Plugins menu that runs JSON-declared external tools through VC3D's command-line runner (argument list, no shell, confirm before each run) and loads their result as a segment, an ink detection, point collections, an umbilicus or a file; docs volume-cartographer/docs/plugins.md. 21 Oct: the manifest parser and test_plugin_manifest compiled alone against Qt 6.4.2 with -Wall -Wextra, no warnings, and passed; the same parser loaded all eight public manifests; the full VC3D build and ctest have not run. This repository, branch claude/vc3d-plugins: eight manifests in plugins/ (scroll center finder, StrokeNet, Scroll Text Reader, Ink Lens, villa's vc_gen_umbilicus, vc_render_tifxyz, vc_tifxyz2obj, v8in), plugins/run_kit.py, tests/test_plugins.py, tool page Coordinator: Modal build and ctest of the villa branch with the private VC3D build runner (--src the local worktree, dry run 21 Oct: worst case 2.69 USD); Chase runs a plugin on real public data for the PR media (villa CONTRIBUTING asks for real data); then the villa PR as a draft or inside the combined VC3D PR, with Chase's yes; open this repository's PR
Optional Harness2 adapter Implemented on branch claude/harness2 against Harness2 1cfe254e8d25b15f37048c3730134686abe60335: scripts/harness2/ runs the real upstream run_domain in both recursion modes with a deterministic local proposer, a one-file recipe and kit's real provenance check on clean, changed and missing fixtures. compare evaluates the supplied recipe exactly (a bad one exits 1); resume needs a matching identity and an intact receipt. 13 tests pass on Python 3.12 and 3.13 with the pinned checkout (9 local checks run without it), rechecked 2026-10-21 after merging main 249096b; tool docs and tests/test_repo.py pass. Not a default dependency; no model calls, paid compute or scroll data Independent review, then open the public PR, run its checks and merge; record the outcome in the private handoff. Fixture plumbing only: no agent-learning or ink-accuracy gain claimed (guide)
Umbilicus interoperability predict.py, pipeline.py collect and trim, refine.py chain-collect, and endcheck.py files support --vc3d-name for SCROLL/umbilicus.json. Outputs record the source scan's level-0 dimensions when available; trim and collectors refuse a mismatched slice-cache source. An unavailable optional metadata request keeps the downloaded CT. The legacy filename remains the default. Synthetic checks exercise VC3D's reader, name-search and scale rules; no live VC3D window or new model-accuracy benchmark was run Open this change as a public PR and merge only after its checks pass. The existing umbilicus-v1 weights and tag stay unchanged
Ink Lens (20 Oct) Merged in #138 (20 Oct). Not deployed: Chase asked to wait until he has Hugging Face PRO. Local mode and the tests work now; the deploy commands are on the tool page Deploy only after Chase has Hugging Face PRO and says yes
README release consolidation (20 Oct) Branch claude/readme-consolidate from main at 457fc5c, committed, not pushed: the README's "Released tools" goes from 9 entries to 6. Scroll Text Reader, StrokeNet, the segment stack check and the scroll center finder become one line each in a new Scrolls kit entry (scrolls-kit, the workbench hero, a shared clone install); AutoPipeline (pinned first), Unroll (pinned), Scroll Lens, Inkfilter and Scrolls Starter keep their own entries. kit/releases.py gains an optional tools list with find so the old ids still resolve; kit.tooldocs requires a page for each tool id; AGENTS.md rule 15, DECISIONS.md, the releases page and the four tool pages say so Coordinator: open the PR and merge after Chase's yes. Then copy the new kit/releases.py into Scrolls-private, whose exporter refuses to run while the two copies differ
Release media and beginner documentation Both are already on public main: release media in #133, beginner fixes in #135 No repeated release or replacement of existing assets
GitHub releases after agent review (21 Oct) Chase's decision recorded in DECISIONS.md and AGENTS.md rules 8 and 15: a package from Scrolls-private goes to GitHub (a PR here, or a release not marked Latest) once an agent leak and quality review passes, without his review of each file list; Hugging Face, forum, Discord and villa posts and prize submissions still need his yes for each Each release: a handoff row, a live recheck, and a line on the list of what went out for Chase
Geometry gates released (21 Oct): kit uvgate and kit windconsistency Released from Scrolls-private after an agent leak and quality review: kit/uvgate.py, kit/uvgate_cli.py, kit/meshgate.py, kit/windconsistency.py, the OBJ benchmark scripts/bench_uvgate.py (OBJ mode only), 88 focused tests, uvgate and windconsistency pages, the two guides, the speed log (PHerc0139 w039 and synthetic runs only), both CLI commands and two lines in the Scrolls kit entry None here; the review record and file hashes are in Scrolls-private
Planted defect generator (21 Oct) kit/planted.py from Scrolls-private (same file), page, tests with kit stackcheck on planted stacks; PR open after an agent leak review (synthetic only) Review merges
Center lines released (22 Oct): umbilicus-lines-v1 Chase said yes to the file list (22 Oct) and merged #150 (a9f80f1). The GitHub release was published from Chase's Mac: target a9f80f1, not Latest (Latest stays workbench-v0.4.1), not a draft or prerelease. It has 16 assets: 13 *_umbilicus.json files for 11 scrolls, README.md, SHA256SUMS and status.json. Fresh-download check: SHA256SUMS 14 OK, and all 16 files are byte-identical to the reviewed package. The README entry is already in docs/releases.json (scroll center finder line). The lines are model output; no person has checked them on CT None; a new version replaces the finder's line under the same id

Continuation, 18 October 2026 (Claude cloud session)

Public items only; the private handoff has the detail.

Item State Next step
Beginner docs fixes from a fresh-user run (19 Oct) Published in #135, merged as 5e016ad: AutoPipeline uses --out work/demo-run, and Starter uses .venv/bin/python -m kit start. The failure messages and fixes are documented No duplicate PR needed; later AutoPipeline versions may reject an unsuitable output path earlier
Rules relaxed and decisions file (18 Oct) Chase approved the twelve rule changes from the rules review: standing decisions moved to DECISIONS.md with one line each in AGENTS.md; freezes end when collected and plumbing fixes are logged deviations (AI-AGENTS.md rules 5 and 13); handoff merged at milestones (rule 14); CPU jobs in cloud containers (rule 11); a standing yes for redeploying approved Spaces (rule 8); "prefer villa" (rule 7); the public media rule Waits on an agent: tooling for spent freezes and plumbing sets, and a staleness check run at session start and weekly
Staleness check, public (18 Oct; the rules row's tooling) python3 -m kit stale (page), the same kit/stale.py as Scrolls-private with two changes listed at its top (no branch check in a clone that holds a single branch; a lower-bound note in shallow clones), renames.json (the reader's old name) and the daily routine stale, marked ci so the routines workflow runs it. The 13 old-name findings on live pages are fixed; the two older rows that named deleted branches are brought up to date. Branch claude/stale-guard (from main at b449398), merged into main 18 Oct at Chase's request Waits on an agent: fold the changes listed at the top of kit/stale.py back into private's copy so both hold one text; decide whether public also retires the plain "letter reader" (about 50 live-page lines use it as a description)
Modal from a Claude cloud session Works after pip install 'modal[api-proxy-support]', Chase's modal token new approval and an allow rule; rules, guides and tool pages corrected in #126 Budget rules unchanged: a cost estimate, the ceiling (600 USD since 21 Oct, 500 before) and a ledger row for every run
AutoPipeline 0.1.5 Published: package branch submission/progress-2026-10-fix5 (9e50d61), README entry and tool pages in #127, GitHub release by Chase (not Latest; workbench 0.4.1 stays Latest). Assets match SHA256SUMS; a clean install passes pip check and scrolls-kit autopipeline defaults. The wheel (a45ab93b) is reproducible with SOURCE_DATE_EPOCH=1792293014 Next fix release: trace-timeout robustness (in progress), and the package's space/ copy still names ink_9um seed 42 while the live Space runs Reader v2
Villa posts Issue villa #2135 (vesuvius.zarr_tasks writes pyramid levels one voxel short on 4k + 1 axes, so VC3D refuses the output) and draft PR villa #2136 (ceiling division plus a regression test), from Chase's account Wait for review (auto-close about 1 Nov idle or 15 Nov open); no bump comments
Release media (18 Oct) Merged into main on 18 Oct after two reviews: a 1920 x 640 hero and a social card for every released tool except StrokeNet (held until its rework), shown through the optional image field of docs/releases.json; GIFs and MP4s of AutoPipeline 0.1.5's monitor (from its first stage, with a pointer), Starter's practice and a synthetic umbilicus sweep. Only concept illustrations and synthetic demos, each with a row and a sidecar (assets/README.md, scripts/media/). The public media rule (18 Oct, set on Chase's delegation: media/README.md, AGENTS.md row) now also allows real-data stills and short clips of public scans that are not prize-eligible, with no held-out labels, at most 1920 px and 4 MB with a sidecar, never model output; the guards and tests/test_repo.py enforce it, and the audit found every file conforming, none moved Scrolls-private's exporter carries the same kit/releases.py (merged there first, 18 Oct). Queued: more motion media allowed here (a stack check sweep on PHerc0139 segment geometry, Inkfilter's synthetic demo in a terminal, a scrolls-letterdemo session, an untextured Unroll mesh orbit) and Chase's ZeroGPU minutes. Possible real-data additions under the rule: CT-only (ink layer off) re-renders of the private PHerc0139 Unroll and Scroll Lens clips, re-made with the public scripts/media/ (private scripts/media/mediarules.py and its sidecars still write the older credit "Data: Vesuvius Challenge, CC BY-NC 4.0", which the public checks refuse); model output and prize-eligible scrolls stay in Scrolls-private's docs/media/
StrokeNet pages Tool page and model card now say plainly what version 1's held-out test showed (7 of 9 bar items passed; T6 and FPR_blank missed; ink density matches it on text against blank; its gain is T4), its limits (one reader's appearance, Paris 4's line pitch, input assumptions), and that a rework for any reader and scroll is in progress in private work; American English. A review then added: density does as well for finding text, "not tested in the published evidence" instead of "untested", and claim labels on the limits (1d610ce). Merged 18 Oct in #129, together with American English across the repo (frozen records, quotations, names, file names and public interfaces left as they were) The public page changes again only when the rework has a preregistered held-out result Chase approves for release
VC3D contributions in progress VC3D builds and tests in the cloud container (villa 1db9cd9). Implemented on branches of Chase's public fork ChaseHendrick/villa: ink-label painting on the segment view that saves the ink detection label TIFFs (vc3d-ink-labels, first PR vc3d-ink-labels-a; full series 198 of 198 tests at its tip) and region tools (vc3d-regions, first PR vc3d-regions-1); screenshots on the orphan branch pr-assets-vc3d. The proposal issue text is ready for Chase to post (18 Oct); an optional modern theme, undo and recovery, a command palette and agent control are being built Chase posts the ink-label proposal issue; then the two draft PRs, after each is built and tested at its own commit; agents draft, Chase posts (rule 12)

Continuation, 17 October 2026

Item State Next step
AutoPipeline 0.1.5 public package (18 Oct) Published on branch submission/progress-2026-10-fix5, commit 9e50d61 (no parent commit): the 115 reviewed package files plus release.json, every remote file hash checked against the manifest (sha256 261f790b...). An ordinary software release, not a new prize entry. The pinned README entry and the tool page now describe 0.1.5 (PR "Release AutoPipeline 0.1.5: README entry and tool pages"). The new entry no longer says the ink Space runs ink_9um seed 42 Done 18 Oct: Chase published the GitHub release with the wheel and SHA256SUMS; see the 18 October section
README hero images (18 Oct) Root and AutoPipeline reference now use matched charcoal/copper concept illustrations at 1920 x 640, with descriptive alt text and provenance notes. The old framed SVG is removed Desktop/mobile and light/dark browser previews pass, as do repository checks and the generated releases check. Artwork is conceptual; no scan, model output or recovered text is depicted. Artwork notes
Workbench 0.4.1 patch release Packages the corrected viewer hover readout and updated Gate A reference. Current installation links name 0.4.1; historical 0.4.0 screenshots retain their original provenance 123 focused tests, clean wheel installation, synthetic reader demo and browser checks passed. Wheel, portable Starter and SHA256SUMS are prepared for workbench 0.4.1. Published 18 Oct 00:11 UTC; regenerate older viewer HTML files
Offline viewer hover and Gate A reference Disagreement hover reads overlay alpha, so intermediate values such as 0.71 display correctly. Synthetic JavaScript regression and Chromium checks cover zero, intermediate and maximum values and opacity changes. Gate A now documents its existing blocked verdict, replacement records and control-edge checks Regenerate HTML built before this fix. No model or scoring behavior changed. Viewer reference
Workbench picture guide and agent interfaces Picture guide explains the toolbox, Starter, reader and separate AutoPipeline with real screenshots and links to first tasks. Desktop/mobile previews and repository checks pass Both-repository standing requirement: complete headless workflows and fair evidence against eligible community baselines, recorded in the tool standard. This does not claim every existing interface is already complete
Beginner onboarding and official viewer integration Workbench 0.4.0 adds Scrolls Starter, portable offline HTML, real setup checks, a reader command builder and a rewritten Start Here path into official tools. Volume viewer checks supplied metadata and builds Neuroglancer states; it does not verify remote registration Source and independent reviews pass. Final release checks and assets are recorded on workbench 0.4.0. No hosted deployment or Discord posting
Scroll Text Reader name Greek Letter Reader renamed Scroll Text Reader (17 Oct): current docs, catalog, package description and help use the new name. The default Greek model and optional local OCR route are distinguished Commands, APIs, model names and historical release records remain compatible. Guide; no new language-accuracy claim
Inkfilter 0.1.0 Released as an 18-file standalone package, with a fixed filter, reverse-depth control, provenance and reproducible scalar evidence; 25 installed-wheel tests and independent review passed Published README entry and tool page. Confirmation used new windows from the same development scrolls; no trained-reader comparison or reading is claimed
Reader weights, languages and runtime switching Implemented for workbench 0.3.0: supplied lines use the ink-lines profile (CC BY-NC 4.0), automatic regions keep the permissive profile, and explicit overrides remain. Local Tesseract supports installed recognition languages with separate word provenance and controls. ReaderSession.switch() validates replacements before activating them. Independent Greek/Latin switching and seven failed-switch checks passed; 1,056 tests passed with 61 optional skips, plus 45 numerical experiment checks PR #119 merged after all nine CI checks; workbench 0.3.0 is published. Printed-language checks do not establish scroll accuracy; one Latin shuffle control beat its input. Guide, backend contract
Segmentation dataset validation PR #118 merged: ambiguous inputs, malformed metadata and invalid fold counts are rejected before training plans are written No training or model-quality result is implied. Tool page

Open items added 16 October 2026 (checked 02:30 ET)

Public work only, neutral voice. PR numbers and SHAs were checked on GitHub when written.

handoff:
  written: 2026-10-16T02:30-04:00
  repo: ChaseHendrick/Scrolls
  base: main
  merged_since_last_handoff:
    - {number: 94, branch: grok/unroll-release, merge: 590636c, topic: Unroll in the README release list}
    - {number: 95, branch: grok/handoff-2026-10-16, merge: cefa929, topic: handoff 01:10 ET}
    - {number: 96, branch: grok/unroll-relicense, merge: 915f302, topic: Unroll listing Apache 2.0 and v1.0.0}
    - {number: 97, branch: grok/readings-wording, merge: e73ca73, topic: ink-layer disclaimer wording}
    - {number: 98, branch: grok/unroll-install-app, merge: 0d34f92, topic: Unroll Install app link}
  open_prs:
    - this handoff PR
  rules: [no_force_push, do_not_touch_main_claude_or_codex_branches, log_every_cloud_run, open_data_bucket_only]
Item State Next step
Segmentation model zoo (kit segzoo, scripts/segzoo/; Chase, 17 Oct) Registry of twelve families with licenses, nnU-Net v2 trainers for MedNeXt, Swin UNETR, SegResNet, SegFormer and an SS2D U-Net, SAM 2 sheet follower and frozen DINO probe, each with a control; CPU tested, nothing trained on scroll data (page) Any GPU benchmark needs a spec and Chase's budget yes (rule 11)
Unroll ink-layer wording Merged, PR #97 (e73ca73): "Ink layers show where models detect ink; letters visible here are candidates for expert reading." None
Unroll Install app Merged, PR #98 (0d34f92): release entry links the Install app (offline app) and docs/unroll-space.md has an Install app section None
Unroll viewer changes since 01:10 ET (Space repo) New scrolls from the open data bucket (PHerc0172, PHerc1447, PHerc1667, CC BY-NC 4.0); installable offline app; texture upload queue removing a 14.6 s main-thread freeze; type and spacing pass; scan labeled 9.4 µm (9.362 µm in details); glossary links; lower resolution while dragging; X-ray window and level with auto contrast; CT volume view; lighter phone mesh (--coarsen); starting view fitted to each roll; first-load flash and black screen fix (shader NaN, stricter service worker matching). Space version 1.4.0 Re-test first load on real phones and desktop GPUs; artifact sweep (spike, floating square) still open
Unroll audit findings (from 01:10 ET) Not yet confirmed fixed, except the old "run by us" chip text, which no longer appears in the Space code Escape the annotation id, reject non-finite thresholds and offsets, show share-link errors, re-test
Stale branches Merged branches listed at 01:10 ET were deleted. Still present and fully merged: grok/autopipeline-every-scan, grok/handoff-2026-10-16, grok/perf-cli-parser, grok/unroll-install-app, grok/unroll-release, grok/unroll-relicense Chase turned on automatic deletion of merged head branches (18 Oct). Agents may delete these (never submission/*, release-readme/* or unmerged branches); a Claude cloud session cannot delete remote branches, so Chase or a session with GitHub write access does it
GPU inference speed TensorRT dropped by owner decision. torch.compile max-autotune fp16 is the chosen speedup (0.003755 s/tile, about 1.9x over eager) None
Scroll Lens Space (thread "Use my 5 minutes of ZeroGPU", 16 and 17 Oct) v1.1.1 in PR #178, on top of v1.1.0 (#114, #115), #117 and spaceconnect (#170): a visitor's events change one state in place, so clicks made during a run are kept and a late click answer no longer brings back the cube before; the viewer shows only the newest answer and aborts the downloads of a cube it leaves; the CPU fallback runs the 128³ around the point; a page opened narrow and then widened can still open More controls. Live on SharpMeow/scroll-lens since 24 Oct, tested live (page flat and 3D, gradio_client, MCP). Gallery: 99 cubes on the Space Merge PR #178
Quick start guide Completed in Start Here, the existing guide, with portable practice and official-tool transitions Keep this single shareable entry point current
AGENTS.md size Resolved: AGENTS.md is under the current 20,000-byte test limit (19,717 bytes on 18 Oct) None
test_autopipe Resolved: the full suite passes on main (1,083 tests on 18 Oct) None
AutoPipeline paid batches Dry runs only; no daily watch routine set Each paid batch and any cloud launch needs the owner's approval
Release polish (Claude, 16 Oct 10:15 UTC) Branch claude/polish-releases-bgc1za: the README's Unroll entry and docs/unroll-space.md now match the live Space, version 1.5.0 (they said 1.1.0 and ink_9um on w046 to w051 only). On main at 27d0e96 the full test suite passes (714 tests, 43 skipped, with numpy, tifffile, zarr and scipy installed), so the AGENTS.md size and test_autopipe rows above no longer fail there. The workbench package is now 0.2.0 with CHANGELOG.md. Fresh pictures of AutoPipeline 0.1.4's monitor on the synthetic demo (a GIF of a run and three stills) are in docs/assets/autopipeline/, shown in the README above the release list and in docs/autopipeline/README.md; the package README on the release branch stays unchanged until the next AutoPipeline fix release carries them. GitHub release autopipeline-v0.1.4 published 16 Oct with Chase's yes (tag at 603fe14, not marked latest) None: workbench-v0.2.0 published 16 Oct with Chase's yes (tag at f3ce065, Latest), after the pentest fixes (#103) and the packaged Modal rates (#106) merged

Open items added 16 October 2026 (checked 01:10 ET)

Public work only, neutral voice. PR numbers and SHAs were checked on GitHub when written.

handoff:
  written: 2026-10-16T01:10-04:00
  repo: ChaseHendrick/Scrolls
  base: main
  merged_since_last_handoff:
    - {number: 91, branch: grok/glossary, merge: ad2c4f8, topic: GLOSSARY.md, an A to Z of technical terms}
    - {number: 92, branch: grok/perf-cli-parser, merge: dc6713b, topic: kit cli reuses one argparse parser per process}
    - {number: 93, branch: grok/autopipeline-every-scan, merge: 0a22f72, topic: AutoPipeline on every scan}
  open_prs:
    - none
  rules: [no_force_push, do_not_touch_main_claude_or_codex_branches, log_every_cloud_run, open_data_bucket_only]
Item State Next step
Unroll v1.0 (viewer Space, unroll-space.md) Released. Control panel redesign (grouped Layers, Ink Bench, View, Destroy, Scrolls), Settings saved in localStorage and settable by URL, plain language glossary, agent API (unrollView.actions/settings/state/glossary), Ink Bench button, CPU pick fallback for Destroy on GPUs without float targets. The overlay layer is labeled ink_9um (9 µm), credited to the Vesuvius Challenge. README entries updated Fix the audit findings below
Unroll security and UX audit Findings, highest first: HIGH stored HTML injection through the Ink Bench annotation id (the note field is escaped, the id is not); MED NaN or Infinity thresholds accepted and carried into share links; MED out-of-range alignment offsets accepted; MED malformed ?bench= links fail silently or show raw errors; MED HUD collisions at 800x500 and 1100x700, and the readout has no backdrop. LOW: no minimum image size, wrong advice for non-image uploads, a double-escaped name, raw atob errors, "9.362 um" instead of µm, mixed UK and US spelling. Passed: bad uploads, zip bomb, path traversal, XSS in names and credits, resize and key spam Escape the annotation id, reject non-finite thresholds and offsets, show share-link errors, then re-test
Glossary Merged, PR #91 (ad2c4f8) None
CLI speedup Merged, PR #92 (dc6713b): one parser per process (about 119 ms to 13 ms per call) None
AutoPipeline on every scan Merged, PR #93 (0a22f72): catalog of every scan volume in the vesuvius-challenge-open-data bucket (75 volumes when checked), per-scan config, priced dry-run batch (kit run all) and watcher (kit run watch). Launches nothing; volumes not in the bucket are marked blocked Paid batch runs each need the owner's approval
Unroll in the README release list Merged, PR #94 (590636c): adds Unroll v1.0 to docs/releases.json and the README Released tools section None
Stale branches Done 18 Oct: Chase turned on automatic deletion of merged head branches, and every merged branch this row listed is gone from GitHub (git ls-remote, 18 Oct; the list is in this file's history). Still on GitHub and kept: release-readme/progress-2026-10-fix1, -fix2 and -fix3, and the submission/progress-2026-10* snapshots Nothing open. Agents may delete a merged branch (never submission/*, release-readme/* or unmerged branches); a Claude cloud session cannot delete remote branches
GPU inference speed probes (C reader) torch.compile gives about 1.85x over eager fp16 per tile; max-autotune about 1.9x; TensorRT fp16, int8 and fp8 builds did not complete (missing ONNX file and onnx_graphsurgeon) Fix the ONNX export before any further probe; no launch without approval

Umbilici Space row as of 24 October 2026 (moved here when 1.8.0 shipped)

Item State Next step
Umbilici Space (23 Oct) spaces/umbilici/ and its page on branch claude/project-thread-xrkbs0; Space SharpMeow/umbilici 1.6.1 deployed (Space commit c72b2cb0; center lines v2.2 per-end CT grades, colored per end): guide for every level, VC3D and villa notes cited to villa source, Data tables with CSV and JSON, per-line statistics. CT streams from the open-data bucket in the visitor's browser; nothing is rehosted. Releases entry umbilici added Public since 23 Oct (Chase switched it; live recheck passed: 22 scans, PHerc0846A CT 110 of 110 heights). SharpMeow/pherc0175a-lasagna public since 08:09 UTC; live recheck at 08:15 UTC: all three lasagna dataset links resolve, none fall back to "(soon)". PR #162 merged 23 Oct 08:30 UTC; 1.5.0 and 1.6.0 merged in #163; 1.6.1 (grade coloring) in the follow-up PR. Waiting on Chase: whether lag and black flashes are gone on his Mac

Open items added 15 October 2026 (checked 23:20 ET)

Public work only. Every PR and SHA below was checked on GitHub when written; anything not checked says unverified.

handoff:
  written: 2026-10-15T23:30-04:00
  repo: ChaseHendrick/Scrolls
  base: main
  main_head_at_writing: 303c33f
  open_prs:
    - {number: 85, branch: grok/vesuvius-bible, head: 9229ff8522, topic: Vesuvius Challenge reference book, state: open}
    - {number: 87, branch: grok/unroll-link, head: 5b963dab59, topic: link to the Unroll viewer Space, state: open}
    - {number: 88, branch: grok/autopipe-readme, head: 9983e6f3df, topic: AutoPipeline reference README and agent rules, state: open}
  in_progress_not_pushed:
    - vesuvius_bible_layout_redesign
    - autopipeline_electricity_cli_and_modal_ledger_rows
    - unroll_destroy_mode_agent_api_ink_bench
  rules: [no_force_push, do_not_touch_main_claude_or_codex_branches, log_every_cloud_run, scan_images_not_in_this_repo]
Item State Next step Waits on Where
Vesuvius Challenge reference book Merged 16 Oct in PR #85 (merge fafc316), files under docs/vesuvius-bible, with the redrawn charts (95ea240); its branch grok/vesuvius-bible (#85) is deleted Further layout work (the rebuilt PDF, if unfinished) starts on a new branch from main Chase PR #85
AutoPipeline reference README PR #88 open, head 9983e6f3df (docs/autopipeline/README.md, docs/autopipeline/AGENTS.md, docs/README.md). Its commit is authored as Grok Bot, not Chase, against the identity rule below; fix by a new commit only if Chase wants it rewritten (no force-push) Review and merge Chase PR #88
AutoPipeline local-run and ledger tooling In progress, not pushed: kit run local (wall time, CPU time and an electricity estimate, rate read from local config, never git), kit run backfill, and automatic one-row-per-app cloud ledger rows. tests/test_letterlines.py passes on main (13 tests); the pending letterlines change is unverified Review, open a PR agent not yet in git
Unroll viewer link PR #87 open, head 5b963dab59 (README.md, docs/unroll-space.md). The Space (huggingface.co/spaces/SharpMeow/unroll) serves commit f6dcaa7: multi-scroll registry (scrolls/index.json with one manifest per scroll) and Open your own (load your own meshes and ink maps in the browser). In progress, not deployed: Destroy mode (tear, crush, burn, water at any unroll amount), a window.unroll agent API, and an Ink Bench whose scores are agreement with the published ink layer, not ground truth Merge the three working copies, test, deploy; then update docs/unroll-space.md Chase PR #87

Open items (checked 14 October 2026, 22:45 UTC)

Item State Next step Waits on Where
Stranger account in the contributors Done 14 October: public main was rewritten and force-pushed with Chase's approval, so the two exporter commits that GitHub credited to github.com/noreply (5462ebf, 301e12d, now 1544c0f, 7404735) are authored by Chase; files and messages unchanged, 14 commits from that day got new IDs. Grok-Bot and codex stay listed for their older commits by his choice. Release branches and the umbilicus-v1 and letters-v2-real tags were not moved, so umbilicus-v1 points at a commit no longer on main (its download still works) Any agent committing here follows the AGENTS.md identity rules (standing decisions, 14 October) None This row
Segment stack check and the PHerc0139 segment note Released 14 October 2026 in PR #80 after Chase approved its 11-file list: kit stackcheck (kit/stackcheck.py, tests/test_stackcheck.py, CLI) checks a stack of consecutive tifxyz segments against the umbilicus from geometry alone and writes per-vertex masks; the note gives the PHerc0139 w033 to w037 measurements, example vertices and a by-eye CT look at 12 places; stackcheck entry in releases.json, stackcheck_checks in results.json Run it on other published stacks when a spiral fit or winding count needs them anyone logs/2026-10-14-pherc0139-segment-defects.md
Reports to villa Issues #2058 and #2059, draft fix #2060 and seed-anchor PR #2063 are open upstream. Issue #2104 (posted by Chase on 14 October): a vc_grow_seg_from_seed trace with x/y/z limits stops once a cell skipped at a limit lies inside used_area; its fix PR is drafted, not posted Answer maintainers' reviews; any further post needs the owner's word villa maintainers, then the owner logs/2026-10-12-upstream-reports.md
AutoPipeline public release Released 14 October with Chase's approval of the exact file list: branch submission/progress-2026-10, commit faada83 Fixes go out as new file lists, each approved by Chase first Chase Branch submission/progress-2026-10; Scrolls-private
Scroll Text Reader release Done 14 October. Released with Chase's approval in PR #57: kit letterread, kit greeklm, training and benchmark scripts in scripts/letters/. PR #58, merged by Chase (merge 25914fb), makes it installable, reads whole maps, adds controls and exports, and makes the CC BY 4.0 weights letters-v2-ccby the default. The letter reader thread installed the guide's pip line from main in a fresh venv afterward: it installs, fetches letters-v2-ccby and the demo passes. The weights are not in git. letters-v2-ccby is the release asset on tag letters-v2-ccby (sha256 b14988852fc7..., CC BY 4.0, published 14 October). letters-v2-real-step030000.npz stays on tag letters-v2-real (sha256 44946dad...587477, CC BY-NC 4.0), pinned in kit/data/letter-weights.json. Do not re-tag or delete either, because --weights downloads from them Nothing open. Any new weights get a new tag and registry entry Nobody letter-reader.md, logs/2026-10-14-letter-reader.md
Released tools in the README Done 14 October: PR #60 merged (d1a34ff) after Chase approved it. The README's "Released tools" section is generated from docs/releases.json Nothing left open. Every later release from private work adds its entry with python -m kit releases add (AGENTS.md rule 15); Progress Prize releases arrive as a release-readme/<submission_id> branch from the private exporter, for a PR into main None releases.json, PR #60
PHerc0841 Hecate caveat and README finding 1 like for like Done 14 October: PR #37 merged after Chase left the call to Claude. PHerc0841 is now called held out for every reader except possibly Hecate, and finding 1 compares v8in 0.738 with ink_9um 0.907 on the same bare crop. Its own 2026-10-09 prize snapshot was dropped, since the 2026-10-11 snapshot already records the PHerc. 343 award Nothing left open None logs/2026-10-09-pherc0841-hecate.md

12 October 2026: findings reported upstream

Three findings went public on ScrollPrize/villa from ChaseHendrick's account on 12 October, with the owner's go-ahead on each: #2058 (VC3D caches a transient S3 404 as a permanent empty chunk), its draft fix #2060, #2059 (the tracer does not hold an explicit seed) and a comment on #1843 (a CT check of the PHerc1667 transform). They are README findings 12 and 13 and an update to finding 10; numbers, controls and limits are in the log, and the false-404 test and render receipts in evidence/2026-10-12-false-404/. The relay that replays S3's false 404 is scripts/false404/fault_relay.py. #2060 is a draft: a merge, review answers or further upstream posts each need the owner's word. Nothing else was released.

11 October 2026: public community guidance

The existing Apache-2.0 license is retained, with a project NOTICE and explicit README scope for code versus third-party data and models. Contributor Covenant 2.1 uses the owner's approved public reporting address. Contribution, support and security guidance, issue templates, a PR template and CODEOWNERS are in standard GitHub locations. Private vulnerability reporting is enabled. These community changes do not release private research or authorize compute.

Correction 9 October 2026: PHerc0841 may not be held out from Hecate

The glossary, rulebook, results.json and several docstrings called PHerc0841 a scroll no candidate or released reader trained on. That holds for ink_9um, v8in, v8in-1447, d9v2 and Reader v2. It is not established for Hecate. Hecate's card names scrollprize/ink_canonical_2um as its base model; that model's recipe is new_canon_autoresearch_recipe, and its committed trainer (villa 94602c91, lines 200-207 and 292-293) lists w00 and both PHerc0841 auto_grown segments as training fragments, holding out only l5_0_crop (line 794) (Sourced fact). That the released weights came from that list is Interpretation. The team's published new_canon_autoresearch_recipe maps of PHerc0841, used by README findings 7 to 9, are therefore probably in-sample too. PHerc0841 stays the held-out test for the five readers above; Hecate's PHerc0841 numbers, and anything built on the team's PHerc0841 maps, carry this caveat. No number changed. Evidence and what stays unverified: log. tests/test_repo.py now fails if a live file calls PHerc0841 held out from every reader without naming Hecate. The same day, README finding 1 was set like for like (v8in 0.738 against ink_9um 0.907, both inferred on the same bare w045 crop, instead of 0.914 from a whole-segment map) and its line on v8in's evaluation history was corrected from the v8in card; both edits went to Chase for review in PR #37.

Correction 8 October 2026: w045 is not held out from ink_9um

ink_9um trained on PHerc0139 w045's 2.399 um render, pooled to 9.6 um (segment pherc0139-w029 in its label dataset). Our w045 test scores the native 9.362 um render of the same surface, so for ink_9um, d9v2 and Reader v2 it is a cross-scan check on a training surface; it is still unseen by v8in. Use PHerc0841 for held-out claims. Wording is corrected across the live docs and code comments, the numbers are unchanged, and the owner chose to keep README Novel finding 1 with its correction until v8in's PHerc0841 crop scores replace it (log).

Before any long job: GPU work goes to Modal (user decision, 8 October 2026)

The user does not want hours spent on CPU for work a GPU does in minutes. Before starting a job, estimate its time. Anything that needs a GPU, or more than about an hour on CPU, runs on Modal. Claude's cloud sessions cannot reach Modal, even with the CLI installed, because their proxy does not carry Modal's gRPC traffic, so do not try to sign in from one. Write the exact run spec in compute/modal-specs/ and give the user a short prompt to paste into Codex, or commands to run on their own computer. The rule is AGENTS.md hard rule 11.

Session 8 October 2026: d9v2 fine-tune sweep

Four short fine-tunes of d9v2 on public human labels (PHerc0841 and w045 excluded) were trained on Modal and all 24 checkpoints scored on the PHerc0841 w00 and ag896 selection crops (log). None beats Reader v2: the best, mean 0.8616, sits between d9v2 (0.8612) and Reader v2 (0.8620), far from the 0.8820 promotion line, and ag405 stays unscored (Model output). Arm A (anchor 1.0, lr 2e-5) held its mean; B and C lost about 0.01 to 0.015; unanchored D fell to 0.8218 (Interpretation). Depth windows of the best checkpoint peaked at 0.8666 (z8-27), below d9v2 at the same window (0.8761).

Session 8 October 2026: optional development host

The DigitalOcean workspace guide records an optional development host for preparing work and controlling Modal jobs. DigitalOcean is not a dependency of Modal. The procedure remains unvalidated end to end; installation and sign-in alone do not prove callable tools or a provisioned workspace. Hosting costs and Modal compute authorization must be checked separately. This documentation does not launch or authorize compute.

Session 7 October 2026 (evening): mesh hypothesis study

The user asked for a deep dive on the mesh question with the data public. Protocol first (plan, four dated amendments committed before each measurement), then kit meshaudit (26 tests) and runs on existing cloud CPUs. Results: log, data, README findings 10 and 11.

  • All 692 published surface volumes reproduce their canvas from a published mesh (villa #1727's gap is closed in today's bucket).
  • One stored matrix (PHerc1667 1.129 to 2.399 um) misses its own landmarks by 42 to 212 um. Post hoc, the published PHerc1667 1.129 um renders follow the landmark refit, not the matrix: misplaced by a median 158 um on five segments. The pre-registered H5 failed its control bar, so this needs a calibrated rerun.
  • 1.129 um renders on three other scrolls sit a constant 16 um from their 2.4 um renders; the cause is unexplained.
  • 2023 DLS scans appear about 1 % smaller in voxel size than nominal (Interpretation).

Nothing was posted upstream. Reporting the PHerc1667 matrix to the organisers needs the user's go-ahead. The same branch also carries the five 2026-10-07 cloud job record branches (PR #29).

Repository routing

This repository holds tools, public-data benchmarks and material cleared for public release. Private investigations, target-run rules, candidate outputs, operational plans and submission material live in ChaseHendrick/Scrolls-private (access required). Read its handoff and relevant branches before continuing private work. Keep private content out of public commits, PRs, documentation and CI logs. Earlier mixed operational history has been preserved privately; public benchmark logs and evidence remain here.

Standing public decisions: no Hugging Face or forum posts; leave docs/contrib/villa-1865-m1pro-comment.md unchanged; no paid compute without the user's budget decision. Subagents and existing cloud CPUs were authorized for the completed work. These results do not authorize an outward post, submission or new rental.

Merged review closure

PR #25, PR #26 and PR #27 are merged. Their combined main commit is 25dd450dda3a3da69b02374198fe28055c3b66cc. The integration record preserves checks and hashes without changing earlier sealed evidence.

  • PR #25 keeps the fine-tuning job unrun. It fixes unknown-label pooling, probability scaling and strict checkpoint loading; explicit execution gates, isolated pinned worker checkouts and verified input/crop/inference receipts prevent accidental execution or stale-cache adoption. No training or paid compute occurred. A precise family-level decision rule must still be frozen before a separately authorized research launch. The original status-only results remain unchanged.
  • PR #26 adds tested crop-scan input and memory guards and gates the historical runner. Nonfinite bootstrap intervals invalidate the archived R1/R2 decisions; those results are unresolved, not recoverable from the saved summary. The downsampled point-AUC proxy remains descriptive for its measured overlapping crops and brightness readers. It does not establish general inference accuracy or a production speedup. See the qualified lane I log.
  • PR #27 merges the performance changes below and the public/private routing. Generic tools and public benchmark evidence stay here; private material belongs in Scrolls-private. Earlier public versions remain in Git history.

Combined validation ran 253 unit tests with numerical dependencies: 252 passed and one Torch-only test skipped. All 17 fine-tuning guard tests passed separately in the existing CPU Torch runtime. The combined-main workflow passed its Python 3.10, Python 3.13 and numerical jobs, including all 39 experiment regressions. These checks validate software behavior and integration, not an end-to-end GPU fine-tune or a new research result.

Current public performance work

PRs #6-19, #20 and #22 were reviewed and merged; PR #24 is the baseline for the latest scaling comparisons (c43c41a59ac3793b9a653fa236165f6f6b9d47a4). Inspect current Git/PR state for the later integration rather than assuming an old branch is still open. The scaling log and evidence record the current measurements on public PHerc0841 inputs.

  • Optional kit rowscore --fast-resize reduced complete file-scoring operation time from 39.7320 to 5.6701 seconds median on a public 16460 by 18560 map, 7.0073x across three alternating fresh-worker pairs. This timer includes imports, reads, scoring and JSON construction, but excludes interpreter startup/shutdown and evidence writes. Parent process-wall timings are also retained. Dense and sparse use the same build. Historical fields and resized arrays matched on the tested real inputs, but other shapes differ by float32 rounding and near-tied FFT peaks can change angle or period. Dense remains the default; compatibility and usage.
  • Exact triangle-edge batching reduced complete correction-process time from 2.5138 to 2.2761 seconds median, 1.1044x relative to PR #24. Five alternating pairs and controls preserve report fields, projections, output hashes and refusal rules. The larger 4096-point correspondence test improved 1.1238x. The real correction still accepts zero edits and flags 16 regions; no recovery improvement is established.
  • Exact high-pass reuse reduced fresh paired HP CLI time from 11.2761 to 7.9506 seconds median on a public 2560-pixel crop, 1.4183x across five alternating pairs. The second map in this large test is a synthetic roll used for computation/parity, not a depth control. Real 640-pixel paired tests also matched every field. No persistent cache was added.
  • A fixed CPU channels-last inference experiment was rejected: three-map median time increased from 5.3590 to 6.9713 seconds, and shuffled output changed by one uint8 pixel. No inference setting was promoted.

The original scaling integration passed 229 unit tests and 39 experiment regressions; the combined merged validation above includes the later review tests. Fresh real correction and HP CLIs preserve stdout, stderr, files and statuses; correction retains expected abstention exit code 1. Row CLI checks preserve default output and identify both directions' backend when opted in. All tests used existing cloud CPUs and cached public inputs. Raw scans, maps, labels and weights stay outside Git. These ratios are operation-specific and must not be multiplied into total pipeline throughput.

Earlier production-speed work measured a 2.0744x complete continuous-correction speedup and a 1.25x fresh AUC CLI speedup against its earlier baseline. PR #24 already contains those changes. The inherited 14x layer-export claim was removed: the old 23-second complete export and 72-second read measurement had different scopes. Input preloading saved only 0.71 seconds across three cached-crop maps and was not shipped. Existing banded layer export remains unchanged.

Public geometry and reader evidence

The controlled follow-up, real validation, support-mask review and adaptive-resolution experiment retain successes and failures.

  • Schema 2 surface correspondence uses certified continuous bilinear patches and fractional map sampling. It admitted 479 geometry matches on the labelled PHerc0841 crop, 444 within reference coverage, where nearest-vertex matching admitted zero at the same 50 um limit. Ambiguous, singular and uncertified matches are rejected. Historical schema 1 replay remains unchanged.
  • Twelve matched actual CT-derived d9v2 maps on a fresh supervised w00/ag896 crop produced four evaluable regions, zero accepted edits and 16 flags. The +1 voxel AUC gain 0.00889 had simultaneous paired interval [-0.00461, 0.02239], failing the frozen bar. All eight full-search displaced-reference nulls accepted zero. Successful correction and combined-rerender improvement remain unestablished.
  • Six w045 maps checked published and fresh official stacks. Fresh forward/reverse/shuffle AUC was 0.9255/0.3346/0.5814; pixel controls passed and high-pass detail controls failed. Corresponding maps differed by at most one uint8 level. w045 is a training-scroll pipeline control, not an independent-scroll result.
  • Local pag0-to-pag50 CT filtering predicted a disjoint cube with correlation 0.99724, but transport to the original reconstruction failed. The new affine estimator passed 34 algorithm controls, then failed 7/16 held-back checks and four calibration disagreements. No original-to-phase matrix is renderer-approved. The earlier 18.724 um value was an integer-peak discrepancy, not a calibrated physical warp; preserve old records with that qualification.
  • Public villa PR #1996 was reviewed at d651f04d2f5c73fc5ba46c5f859392391cc59b43. Its tests and saved tables rebuilt. Near-98% public coverage uses a 38.4 um tolerance; the roughly 2x timing refers to one flattening comparison with a distortion tradeoff. Our PHerc0841 stress test uses different native spacing, establishes local support/geometry behavior only, and does not reproduce flattening or ink throughput. Support mode is not enabled in our defaults.
  • Adaptive experiments reduced hypothetical primitive counts, but their original retention or reduction gates failed. No conforming adaptive export, global geometry guarantee, measured adaptive speedup or better ink reading is established.

Public model/threshold history is in results.json, scan status, cloud partials and the dated logs. w00 and ag896 trace the same sheet; their scores are correlated descriptive measurements. Preserve stride-mismatched historical controls as provisional. Published v8in results from Bullo27 are prior art, not a new finding here. No cloud queue is asserted to be currently running.

Evidence and next public work

Evidence archives contain fixed rules, append-only amendments, source/input receipts, raw timings, failures and independent reviews. SHA-256 checks establish integrity, not scientific validity or external pre-run timestamping. Old provenance seals describe historical commits; verify them against the corresponding exports rather than replacing hashes after a documentation change. Generic tools and public benchmarks remain public even when an artifact's filename includes candidate.

Useful next public checks are larger end-to-end pipeline and memory measurements; independently selected supervised correction with Lasagna as comparator and an actual combined-surface rerender for any accepted edit; and conforming adaptive geometry with transition/global-collision costs. Phase rendering remains blocked until a new independently validated registration method passes fresh gates. A full upstream spacing-5/10 support benchmark requires its pinned working grids/tracks and runtime; cached native20 meshes cannot substitute for it.

Environment

CPU development uses Python 3.12 and numerical dependencies in .venv; no services are required. The reusable cloud setup was already tested and saved. Do not restart onboarding or create a worktree merely to resume. Git read/push and public GitHub, S3 and Hugging Face metadata access worked during this session; older denial reports in dated logs describe their earlier attempts. Access to metadata does not prove every checkpoint/CDN route works. This cloud environment has no CUDA, MPS or connection to the user's Mac.

Run python -m unittest discover -s tests -v and the separate numerical experiment regressions when changing code. Consult mac.md for public device controls and surfacefix.md for correction conventions. Inspect current Git state before editing shared files, preserve any pending user changes and do not modify scripts while they are running.