docs(adr): ADR 009 requires self-contained operators and leaves width-hint placement to scheduling (improvise-felo.4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
Claude (adr9-steward)
2026-10-09 22:32:37 -07:00
committed by Edward Langley
parent b8a0b6a846
commit 14430b5628
+8 -10
View File
@@ -38,6 +38,11 @@ wasm32-clean and serde-free). It provides:
- operator state behind one trace interface (look up, read a range, apply a delta), so
later store-memory work can page or compress it.
**Operators are self-contained.** An operator's state and behaviour depend only on its
inputs and its own state, never on a shared in-process global or on another operator's
internals. That keeps the graph distributable: in principle the model could run across a
cluster of machines. Nothing more is designed for that here.
There are no nested streams, no recursion operator and no timestamps beyond one clock.
**The formula language is the query language.** What a request asks of the model beyond
its axes and window (filters, aggregation, derived values) is written in formula text
@@ -356,8 +361,8 @@ process, an edge is a function call.
Every column incrementally maintains a width hint, which optimises grid sizing and
reduces jitter. The hint is an integrated aggregate: a histogram from display width to
count, so a retraction is O(log d). Which end of the connection maintains it is open
question 1.
count, so a retraction is O(log d). Where in the graph the hint is computed is a
scheduling choice, made as an optimisation later.
### 11. Rollback and memory
@@ -422,11 +427,4 @@ Step 8's required tests:
## Open questions
1. **Which end of the connection maintains a column's width hint?** The client end knows
which values are potentially in its viewport, so it can maintain the hint over the
values it holds, fed by the deltas it already receives. The host end can maintain it
over a whole column, through the graph, including values the client has never held.
It would then need the request's hidden rows (clause 7's overlay) and, for numbers, the
number format. *Recommendation:* the client end, over the values it holds. The host
computes a whole-column hint only where a client asks for one, as a filter operator
on its connection (clause 9).
None.