From 5923f039f7a1b02b0493a225cbada33aab02b51a Mon Sep 17 00:00:00 2001 From: "Claude (adr9-steward)" Date: Fri, 9 Oct 2026 09:45:46 -0700 Subject: [PATCH] docs(adr): ADR 009 makes the client pruning recipe conditional and restores the dropped-connection test (improvise-felo.4) Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze --- context/adr/009-incremental-evaluation.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/context/adr/009-incremental-evaluation.md b/context/adr/009-incremental-evaluation.md index 02310a7b..cbb35871 100644 --- a/context/adr/009-incremental-evaluation.md +++ b/context/adr/009-incremental-evaluation.md @@ -190,11 +190,11 @@ and dimensions. The window is never state, and a request costs O(visible). displayed values is hidden. This replaces today's whole-grid `prune_empty`. The model answers one restricted successor query: "the next k rows after position p with a value in a column of S", and the same for columns. A per-column sorted index of occupied rows -answers it in O(|S| log n + k|S|), holding O(occupied cells). The client prunes its -window, fills forward with that query, and finds a new top-left when scrolling up or left -by galloping backwards in doubling jumps (about 14 to 28 probes at density 10⁻⁴). Whether -pruning runs on the client and which parameters travel are ADR 008's questions. This -design supports either answer. +answers it in O(|S| log n + k|S|), holding O(occupied cells). Whether pruning runs on +the client and which parameters travel are ADR 008's questions, and this design supports +either answer. If the client prunes, it prunes its window, fills forward with that +query, and, when scrolling up or left, finds a new top-left by galloping backwards in +doubling jumps (about 14 to 28 probes at density 10⁻⁴). **The change notice.** After each accepted batch the host emits one notice to every client, addressed to none. It carries: @@ -283,7 +283,8 @@ Step 8's required tests: - `[AddItem, SetCell]` publishes one notice, and no client refetches; - a dropped notice is detected; - a reconnect after a host restart refetches; -- a refused frame consumes no publication number. +- a refused frame consumes no publication number; +- a dropped connection forces a refetch. ## Open questions