RiXCel implementation checklist
This page preserves earlier plans and completion notes; proposed APIs and remaining-work statements below are not the current implementation contract. Use the history index for links to current guides.
Reconciled 2026-09-19. Remaining milestones are ordered in the umbrella ratmath/WORK_PLAN.md (C1–C4). Existing checked milestones remain completion records; no new workbook/tensor-spill semantics are implied by them.
This checklist is ordered so every milestone leaves a usable, testable layer. Checked items are implemented in the current RiX repository.
1. Renderer and notebook integration
3. RiXCel document runtime
Specify the versioned .rixcel JSON format.
Define a formula-slot entity separate from immediate Binding lenses.
Store authoritative formula source and rebuild deferred IR from it.
Give each formula sheet a document-owned isolated execution context.
Define sheet:formula separately from immediate sheet:set events.
Add atomic evaluation epochs with explicit dirty/evaluating/error states.
Add sparse version-2 persistence with stable sheet, slot, and event IDs.
Keep imported FormulaSheet graphs sparse with lazy implicit-slot materialization.
Store source separately from assignment mode.
Implement implied := and explicit RiX assignment modes.
Add grid, row, col, and index evaluation bindings.
Add the near evaluation binding.
Add public FormulaSheet.Near(origin, offsets) for explicit relative reads.
Add explicit book, names, and imports namespaces with document-owned exports.
Record runtime slot-read dependencies.
Incrementally recompute dirty dependents.
Detect cycles and report complete address paths.
Reserve explicit prior-epoch access instead of falling back to stale values during cycles.
Forbid formula writes to other slots.
Publish FormulaSheet commits through the shared reactive subscription protocol.
Retain .LiveView(source, deferred) as a deprecated compatibility wrapper.
Add a general .ReactiveGraph with named source and computed nodes.
Make FormulaSheet a coordinate adapter over the general graph.
Track computed dependencies dynamically from runtime reads.
Incrementally propagate changes through transitive dependents.
Batch graph propagation into atomic evaluation epochs.
Add $name tracked reads/updates and $$name reactive-cell declarations/identity reads.
Add same-cell aliases through $$alias := $$name.
Add atomic ${ ... } reactive transactions with forward references and rollback.
Warn when a reactive definition uses a plain untracked read of a reactive name.
Support uppercase reactive callable bindings such as $$Scale.
Add $sheet[index] tracked reads and deferred formula updates.
Add $sheet whole-sheet tracked reads and $$sheet identity reads.
Accept dense tensor-shaped FormulaSheet definitions at rank N.
Add cosmetic rank-N axis names, coordinate headers, and named slice choices.
Edit FormulaSheet row/column coordinate labels while retaining numeric headers.
Render imported blank fields as blank without hiding intentional _ results.
Let interactive hosts observe and dispose a direct final reactive output such as $frag.
Coordinate workbook document dependencies in one atomic graph, with full cross-document cycle paths and bounded private candidate rebuilds.
Use explicit external snapshot refresh by default; host-opt-in schedules preserve source/version metadata and dispose timers/pending work.
Add round-trip and migration tests for .rixcel documents.
4. Standalone RiXCel editor
Replace the placeholder apps/cel package with a RiXCel web app.
Implement bounded 2D grid-window rendering with row/column navigation.
Edit formula bodies from FormulaSheet grid cells.
Add a dedicated formula bar, assignment-mode control, and exact-value display.
Add document-level undo and redo as event-log cursor movement.
Add single-cell formula copy/paste with explicit absolute grid and relative near semantics.
Add multi-cell copy/paste and fill with atomic batch history events.
Add row/column insertion with parsed reference updates.
Add local persistence and .rixcel open/save.
Preflight imports and edits in a restartable, timed worker with restricted capabilities.
Move persistent FormulaSheet ownership and visible-plane projection fully into the worker.
Show dependency, cycle, parse, and runtime diagnostics in the grid.
Add real Chromium tests for editing, insertion, fill/copy, error recovery, save/reopen/restart, history and bounded sparse navigation.
5. Interchange and embedding
6. Higher-dimensional and advanced behavior
Back to top