You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Epic: persistent rules are incrementally maintained views; everything else is a query (E0) #305
Problem. Persistent rules are stored definitions that every read recompiles and re-derives from base facts in a fresh timely dataflow (src/storage_engine/snapshot.rs:302-405, src/lib.rs:1481-1775, src/code_generator/mod.rs:390,707,1079). Subscriptions re-run their query per relevant commit and diff full results (src/protocol/subscription/reevaluate.rs:124-153). The "incremental engine" mirrors base relations only, is never enabled on the server path, and no rule is compiled into it (src/storage_engine/mod.rs:2318-2350, src/storage_engine/catalog_change.rs:424-429). Measured on the benchmark host at 1M edges: one-row bound read of a view 62 ms (non-recursive) / 2.9 s (recursive); write->delta with one subscriber 70 ms / 3.0 s; ten keyed subscribers on a recursive view 30 s CPU per write and 11.5 GB RSS. A differential-dataflow maintainer of the same rules applies a change in ~100 µs at every size. The docs claim the maintained behaviour.
Target. One per-knowledge-graph view maintainer (long-lived differential dataflow fed from the commit path at the commit's revision) holds every persistent rule as an arrangement; queries import arrangements at a stated revision and never re-derive; subscriptions are keyed diffs of a view between revisions; the cost probe disappears; docs tell the truth. Report Sections 1, 2 and 5.
Acceptance. Every benchmark in report Section 9 (B1-B23, including the vector bars B17-B23) passes in the perf gate on the benchmark host; the differential oracle shows 0 divergences across recursion, negation, aggregates and deletes; rule_evaluations is 0 for reads of deployed views; the docs-truth issue is closed; engine.views default is maintained and the recompute path for persistent rules is deleted.
Supersedes.#143 (and its children #180-#187 map one-to-one onto V2, V3, V4, V5, V5, V7, V10, V9+V20); the DD remainder of #133; #238 (bar kept as B15); #276, #289 and #252 (probe-machinery defects removed by V11). Keeps #292 open until B15 passes. Depends on #296 (runaway-query fix) merging before V9. Size: epic. Order: 0.
Captain requirement (2026-10-05): every change in this milestone must be covered by crafted end-to-end scenarios that exercise the changes together over the real server and wire protocol, not only in isolation (subscribe to a deployed rule for a key, query at the same revision, write with expect_revision, read-your-writes through views, rule replacement while subscribed, retraction through recursion and negation, vectors in live rules, refused arbitrary-query subscriptions, restart/failover, limits, multi-tenant isolation, many agents on one rule). The scenario catalogue and harness are being defined now; each child issue's acceptance will reference the scenarios it must pass, and the same scenarios run against today's recompute path first so they prove the migration preserves behaviour.
Activity
jsam commentedon Oct 5, 2026
Children in merge-train order (max 3 in review at once)
ViewMaintainer: one long-lived differential dataflow per knowledge graph, fed from the commit path (V2) #309 (V2), Rule compiler, positive fragment: persistent rules as arrangements in the maintainer (V3) #310 (V3), Recursion and SCC groups in the maintainer (V4) #311 (V4)revisionon query replies (V9) #315 (V9),at: <revision>reads with a retention window (V13) #316 (V13),MaintainedViewstanding queries: subscriptions are diffs of the view between revisions (V10) #317 (V10)hnsw_nearestin deployed rules (VV5) #327 (VV5), Vector queries over views at a stated revision (VV6) #328 (VV6)jsam commentedon Oct 5, 2026
Captain requirement (2026-10-05): every change in this milestone must be covered by crafted end-to-end scenarios that exercise the changes together over the real server and wire protocol, not only in isolation (subscribe to a deployed rule for a key, query at the same revision, write with expect_revision, read-your-writes through views, rule replacement while subscribed, retraction through recursion and negation, vectors in live rules, refused arbitrary-query subscriptions, restart/failover, limits, multi-tenant isolation, many agents on one rule). The scenario catalogue and harness are being defined now; each child issue's acceptance will reference the scenarios it must pass, and the same scenarios run against today's recompute path first so they prove the migration preserves behaviour.
docs: describe recompute-on-read for persistent rules and re-evaluate…
jsam commentedon Oct 10, 2026
The maintainer, revisions, generations, view reads, subscriptions, budgets, observability and vector views landed across https://github.com/inputlayer/inputlayer-symbolic/pull/26, https://github.com/inputlayer/inputlayer-symbolic/pull/33, https://github.com/inputlayer/inputlayer-symbolic/pull/44, https://github.com/inputlayer/inputlayer-symbolic/pull/52, https://github.com/inputlayer/inputlayer-symbolic/pull/61, https://github.com/inputlayer/inputlayer-symbolic/pull/75, https://github.com/inputlayer/inputlayer-symbolic/pull/92, https://github.com/inputlayer/inputlayer-symbolic/pull/106 and their follow-ups, and the oracle shows 0 divergences. The B1-B16 gate verdicts and the default flip (inputlayer/inputlayer-symbolic#172, still open here) remain. Remaining work continues in https://github.com/inputlayer/inputlayer-symbolic/issues/136.