continuity role: operational checkpoint status: current last verified: 2026-10-14 owns: verified current state, active work, known gaps, and next useful action update when: a meaningful stopping point changes any of those facts
five slices are implemented and locally verified: a bounded integer becomes a tested divisor lattice and responsive webgl instrument; a session-scoped cabinet can hold integers, name their relationship to the active form, and illuminate an embedded divisor lattice without changing its topology; the cabinet keeps stable-order collection separate from one full-size front reading and an expandable full-card drawer; four-plus-dimensional exponent bodies now enter through an explicitly named ranked zonotopal projection; the exact lattice model and public scene now have separate computation and inhabitable-rendering budgets.
verification performed:
npm run typecheck
npm run test
npm run build
manage-project-docs check_docset.py
headless chromium desktop, narrow, interaction, and no-webgl smoke
fresh-profile headless firefox webgl2 smoke
production preview at `/upward/`
evidence of success:
47 tests passed; documentation 0 errors/0 warnings; 348 rendered 12 nodes/20 covers;
orbit, zoom, pan, and reset passed; 87/4 reversed; 60 retained (2, 1, 1);
210 rendered 16 nodes/32 covers through a 4→3 ranked zonotopal projection with
four labeled directions and 0 coincident shadows; 105/2 reversed; orbit, zoom,
pan, and reset exercised; narrow overflow 0; no production-preview browser
console errors.
owner-visible chrome rendered and moved smoothly; fresh firefox 157 acquired webgl2
through llvmpipe and mounted three.js r186 with a live context.
153/306 resolved as prime extrusion ×2 with 6 embedded nodes/7 internal covers;
153 retained complement 2; same-tab reload restored only {version, integer values};
306/348 reported same body; 430 px cabinet overflow 0; no-webgl relation rail held.
with held 348, 174, 306 and active 153, card 03 came to the front while the index
remained stable; the desktop drawer revealed all full cards from the spine edge;
the 430 px drawer became a two-column bottom sheet; escape closed and returned
focus; inspect, unfold, release-one, and release-last paths held; reduced motion
removed drawer travel.
held 210 survived production-preview reload as {version:1, values:[210]}; the
430 px projection note remained visible with five specimens and overflow 0;
zero, oversized, and 768-divisor input failures left 210 intact; deliberate
no-webgl retained the projection warrant and all 16 divisor controls; runtime
resources remained on the local preview origin.
pages workflow reviewed; production assets resolved beneath `/upward/` locally.
public custom-domain route returned http 200 from github pages.
510510 remained admitted as a seven-direction 128-node/448-cover cube in domain
proof; 278460 remained admitted at 144 nodes/480 covers; 12441600 was refused at 216
nodes/522 covers and 360360 at 192 nodes/656 covers against the visible 192-node/
640-cover rendering budget; both retained the same 278460 canvas, selected 210,
and 144 divisor controls. the retained scene orbited after refusal; 430 px
overflow remained 0; session restoration reduced [153, 12441600, 210, 360360,
348] to [153, 210, 348] without changing the v1 payload schema; production-
preview runtime errors were empty and resources remained on the preview origin.
- strict decimal input from
1through1,000,000,000; - complete divisor lattice generation with a 512-node computation guard;
- a separate 192-node / 640-cover scene-admission guard shared by active input and held-form normalization;
- exact centered natural geometry for zero through three prime directions;
- deterministic ranked zonotopal geometry for four-plus prime directions, including equal cover length, positive equal rank rise, antipodal complements, canonical structural axis order, and coincident-shadow metadata;
- visible source-to-target dimension, exact/projected warrant, extended prime-
direction palette, and
210starter specimen; - orbit, zoom, pan, reset, selected-node detail, complement highlight, and keyboard-accessible divisor selection;
- a 12-place session cabinet with hold, inspect, unfold, and release actions;
- a full-size front card, stable-order compact index, answering-form surfacing, desktop pullout drawer, and narrow bottom sheet;
- pure identity, structural-twin, divisor-embedding, and prime-extrusion classification with explicit orientation;
- one-at-a-time embedded node/edge emphasis, structural-kinship glow, and equivalent relationship text when webgl is unavailable;
- versioned, integer-only
sessionStoragewith validation and memory fallback; - responsive desktop and narrow layouts;
- explicit build-time refusal to load environment files;
- explicit webgl failure boundary;
- framework-independent domain tests;
- sha-pinned github pages workflow gated by the complete project check;
- canonical github pages project base at
/upward/; - public custom-domain route at
https://resonatrix.tech/upward/.
- some screen-space labels can hide or overlap at a fixed orientation; rotation and the divisor rail remain available;
- the production javascript chunk is about 330 kb gzipped and triggers vite's 500 kb uncompressed chunk warning;
- lattice changes in the vite development server emit react/drei synchronous- html-unmount warnings; the production preview emitted none and retained the correct scene and dom state;
- editable projector controls, exploded coincident shadows, morphing, all-pairs cabinet comparison, export, and broader public-device coverage are deferred;
- an owner-visible firefox profile could not acquire a webgl context while a fresh firefox 157 profile on the same machine could; the profile, graphics configuration, or driver divergence remains unisolated;
- public-device coverage for the new native-dialog drawer remains incomplete; the current rendered proof used local headless chromium, while the established scene proof also includes owner-visible chrome and fresh-profile firefox.
- the scene budget has local isolated-chromium webgl proof, but deployed acceptance of its refusal path remains pending.
- accepted spec: none;
specs/001-first-slice.md,specs/002-held-forms-cabinet.md,specs/003-cabinet-front-and-drawer.md,specs/004-ranked-zonotopal-projection.md, andspecs/005-scene-budget.mdare retired - current focus: none
- blockers: none
review and commit the scene-budget diff, push it to main, observe the pages
workflow, and exercise one refusal at the public custom-domain route before
treating the deployed artifact as updated.
- runtime configuration required: none; vite environment-file loading is disabled at build and test time;
- delivery configuration: github pages through the repository actions workflow;
- persistent state: at most 12 validated integers at
sessionStorage['upward:held-forms:v1']; release them or end the ordinary tab session to clear the cabinet, subject to browser session restoration; - external dependencies: npm packages at build time only;
- recovery warning: preserve the last valid lattice on input failure, enforce both scene measures before rendering, and always name four-plus-dimensional geometry as a projection with disclosed loss.