Repository navigation
Engine release tracker: checkpoints 1-2 live status #199
Description
Live roadmap and status. Done = merged to main with CI green. Updated by firstmate at every change. Last update: 2026-10-05.
InputLayer is the neurosymbolic decision engine. This repository is the symbolic engine (to be renamed inputlayer-symbolic); our model is inputlayer-neural. Founder decisions: business repository docs/decisions.md.
1. Engine production readiness (milestone 7): in its final merges
Merged with CI green since 2026-10-04 (23 PRs), including every critical finding of the production audit:
- Correctness and durability: fix(engine): refuse drops that would make a negating rule fail open, and reject ground negation at registration #253 policy-drop guard, fix(storage): stop acknowledging fact writes after the WAL file is removed or moved #274 no false write acks, fix(storage): fail catalog saves when the directory fsync fails so committed rules stay in the WAL #333 catalog fsync, fix(protocol): keep subscriptions receiving deltas when a publish rings before registration #334 lost subscription wake-up, fix(provenance): stop .why_not refusing derived rows and report the actual blocker #353
.why_noton constant heads, fix(provenance): prove bound recursive queries from Magic Sets' evaluated tuples #354 recursive proofs 1.5 s -> 0.8 ms - Security and limits: feat(auth): add scoped writer and decider roles, per-relation grants, and role-scoped API keys #279 scoped roles and grants, fix(auth): treat blank bootstrap secrets as unset and refuse passwords under 12 characters #294 blank admin password, fix(parser): reject over-deep and oversized input instead of overflowing the stack #295 parser depth/size limits, fix(engine): bound request-supplied sizes so huge values can't abort the server #287 request-size caps, fix: refuse or stop runaway cross-product queries within their limits and release their memory #304 runaway-query guard, feat(execution): refuse queries and writes over memory limits with resource_exhausted #275 memory limits
- Protocol: feat(protocol): report per-statement fact counts structurally in write replies #255 structured write results, feat(protocol): let a proof end a program that writes, evaluated on the snapshot its writes committed against #272 proof at commit, feat(protocol): return the commit revision on write replies #293 commit revision, feat(protocol): add expect_revision precondition on execute #288 expect_revision, feat(protocol): parameterised programs, values bound out of band (EN-5) #282 parameterised programs, feat(protocol): subscription groups and snapshot reads at one revision #278 subscription groups, feat(protocol): share one evaluation among standing queries that differ only in bound constants, and cache their plans #254 session scaling
- Operations: feat(storage): load knowledge graphs on first use so restart reads only metadata #357 fast restart (1,000 graphs: 197 s -> 3 s), fix(protocol): share the probe's round so a bound family evaluates once per revision #303 CI flake fix, test(perf-gate): run benchmarks on the benchmark host, add the engine suite, and publish engine baselines #273 benchmark host and published engine baseline
In review: warm standby part 1 (#283), session throughput (#355).
Open in milestone 7:
- Warm standby: follower must keep reading the stream while it reconciles a large graph #356 Warm standby: follower must keep reading the stream while it reconciles a large graph
- Add a fuzz harness for the parser and WebSocket frames #301 Add a fuzz harness for the parser and WebSocket frames
- Observability gaps: metrics blind spots, a cross-tenant metrics leak, undocumented Prometheus endpoint #300 Observability gaps: metrics blind spots, a cross-tenant metrics leak, undocumented Prometheus endpoint
- CI does not run cargo deny / cargo audit although the config claims it does #299 CI does not run cargo deny / cargo audit although the config claims it does
- Add a sustained concurrency soak with the differential oracle, many subscribers and slow consumers #298 Add a sustained concurrency soak with the differential oracle, many subscribers and slow consumers
- Snapshot specs 33_meta/17, 18, 26 (.debug plans) fail on main since #254's join-planner change #290 Snapshot specs 33_meta/17, 18, 26 (.debug plans) fail on main since feat(protocol): share one evaluation among standing queries that differ only in bound constants, and cache their plans #254's join-planner change
- inputlayer/inputlayer-platform#19 Engine: warm standby part 4, cell failover on the Hetzner VM platform (EN-12)
- Engine: warm standby part 3, promotion with a fenced writer epoch (EN-12) #285 Engine: warm standby part 3, promotion with a fenced writer epoch (EN-12)
- Engine: warm standby part 2, synchronous shipping with RPO 0 (EN-12) #284 Engine: warm standby part 2, synchronous shipping with RPO 0 (EN-12)
- Engine: warm standby with WAL streaming, promotion and fenced writer epoch (EN-12) #264 Engine: warm standby with WAL streaming, promotion and fenced writer epoch (EN-12)
- Engine: structured per-statement counts in write replies (EN-4) #257 Engine: structured per-statement counts in write replies (EN-4)
- Performance gate: quiet runner and fsync-bound metric calibration #198 Performance gate: quiet runner and fsync-bound metric calibration
- Epic: Data safety #189 Epic: Data safety
- Epic: Performance & quality gates #188 Epic: Performance & quality gates
- Scheduling: fair bounded admission for interactive, write and background work #176 Scheduling: fair bounded admission for interactive, write and background work
- Lazy KG loading with LRU eviction; O(shards) startup #135 Lazy KG loading with LRU eviction; O(shards) startup
2. Engine architecture: incremental views (milestone 9): next
Deployed rules become live, incrementally maintained views; queries read them without recomputing; agents subscribe to a rule and query on the same connection at the same revision; vectors work inside live rules. Epic #305 (issues #306-#332) and the test strategy (#335-#350: scenario suite, new PR gate, TESTING.md). Starts once milestone 7's open PRs merge.
3. Gateway: inputlayer-neural and /compat (milestone 8): after 1-2
One API at api.inputlayer.ai, multi-tenant; inputlayer-neural as our model; /compat mirrors of competitor APIs.
Activity
jsam commentedon Oct 4, 2026
Release checkpoint: full suite green on main 4adce1e (all 9 jobs: tests full, coverage, docs, MSRV, Python LangChain live server, Verified Completions gate, perf gate tool, website, release commit): https://github.com/inputlayer/inputlayer/actions/runs/37187663426. Merged since the last update: #202, #204, #212, #213, #214, #218, #219, #220, #221, #222, #223, #224, #225, #226, #227.
jsam commentedon Oct 10, 2026
Most items this tracker lists were delivered in inputlayer-symbolic PRs such as https://github.com/inputlayer/inputlayer-symbolic/pull/61, https://github.com/inputlayer/inputlayer-symbolic/pull/83, https://github.com/inputlayer/inputlayer-symbolic/pull/95. It is stale, so a tracker in inputlayer-symbolic replaces it. Remaining work continues in https://github.com/inputlayer/inputlayer-symbolic/issues/127.