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:
committed by
Edward Langley
parent
b8a0b6a846
commit
14430b5628
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user