Repository navigation
Messaging: the live knowledge graph for AI agents - #213
Merged
Merged
Conversation
Rebuild the home page around the approved message: the streaming engine for AI agents. Replace demo.inputlayer.ai CTAs with the quickstart, update site metadata and Open Graph text, and align the commercial page and COMMERCIAL_LICENSE.md with the Elastic License 2.0 text.
Update the README hero, intro and use cases, the docs landing page, use case and compare pages, and package descriptions to the approved message. Correct the 6.83 ms claim to what BENCHMARKS.md measures, drop 'no other' claims, remove unmeasured time-to-learn claims, and label customer stories as illustrative.
Rewrite the benchmarks post around the bound-query versus full-closure comparison it actually reports, correct the retraction timings, and replace unqualified real-time wording. Let the home-page diagram scroll inside its card on narrow screens.
Replace the streaming-engine hero, descriptor and section copy with the final message: "Models think. InputLayer knows." Add the stack line, the knowing/thinking shift, four adoption reasons, the fast-path voice example and the integrations table to the home page, keep batch-to-live as the why-now section, and carry the same language through README, docs, use cases, compare pages, metadata and package descriptions.
Replace unqualified real-time wording in the SDK, WebSocket and gateway guides with live, set the inputlayer-server --help description to the approved descriptor, and word the design-partner card as an invitation.
Restore BENCHMARKS.md, the benchmark blog posts, the README incremental updates section and the compare-page figures exactly as on main, and put the 6.83 ms vs 11.3 s proof point back on the home page.
…icle Remove the industry use-case pages, their content and the footer link, redirect the old use-case URLs to the new article, and publish "Building a Voice Agent That Knows" as the flagship guide, linked from the home page and README.
jsam
marked this pull request as ready for review
October 3, 2026 21:27
jsam
added a commit
that referenced
this pull request
Oct 4, 2026
…ry request (#249) The release-checkpoint performance gate fails on main: cheap_query serial p50 is 1.110x the approved baseline e732cd5 on the 32-vCPU runner (115 -> 126 us). Concurrent latency and throughput did not move. Bisected to #214 (per-connection request pipelining), made worse by #222. Cause: the pipeline runs requests in a `FuturesUnordered`. Its `poll_next` wakes its own task and returns `Pending` after any poll that polled every future in the set. With one request in flight, which is every serial client, that happens on each request's first poll. The connection task wakes itself, tokio schedules that as a yield, and a yield wakes an idle worker to take the task. Each request therefore costs one more context switch (4.0 -> 5.0 per query) and a hand-off of the connection task to another core. #222 added no work per query but made the hand-off dearer: user cycles per query rose 15% at the same instruction count. Fix: keep one never-woken future in the set. After the pipeline's first poll it is never polled again, so no poll reaches every future and the forced yield no longer fires. The yield after futures that wake themselves still applies. Pipelining, ordering, deadlines, cancellation and the credential fence are unchanged. Nothing is added per request: no lock, atomic or allocation. Each connection gets one more set node. Bisect (cheap_query, `?edge(1, Y)`, serial). Server counters per query from perf stat. Ratios are against e732cd5, from an interleaved probe with one pinned server per commit, 40 rounds: | commit | PR | user instr/query | ctx switches/query | p50 ratio | |---|---|---|---|---| | e732cd5 | baseline | 1.282M | 4.0 | 1.000 | | d75ce6e | #208 atomic programs | 1.279M | 4.0 | 0.993 | | 4578fe6 | #215 notification stream | 1.271M | 4.0 | 0.991 | | 71a4d24 | #216 online backup | 1.275M | 4.0 | 1.016 | | 2f621c5 | #200 first-update latency | 1.272M | 4.0 | 1.009 | | e96df5c | #207 | 1.279M | 4.0 | 0.998 | | 4dd8fe9 | #209 shard index | 1.272M | 4.0 | 0.987 | | 277c7f0 | #206 | 1.274M | 4.0 | 1.008 | | 3554c98 | #214 pipelining, deadlines | 1.296M | 5.0 | 1.020 | | 3492a59 | #213 | 1.294M | 5.0 | 1.030 | | 2ba9a5a | #212 provenance | 1.297M | 5.0 | 1.029 | | 9ed61b4 | #204 key expiry | 1.297M | 5.0 | 1.027 | | be35ee3 | #221 | 1.297M | 5.0 | 1.013 | | c98a590 | #222 bounded streaming | 1.298M | 5.0 | 1.047 | | a6fd628 | #219 wildcard fix | 1.297M | 5.0 | 1.061 | | b7f7ad6 | #220 WAL durability | 1.300M | 5.0 | 1.056 | | de54807 | #223 shared standing eval | 1.299M | 5.0 | 1.071 | | 55ec34d | #225 checkpoint-1 fixes | 1.300M | 5.0 | 1.045 | | 23712b8 | main | 1.300M | 5.0 | 1.064 | | this change | | 1.300M | 4.0 | 1.033 | Confirming A/Bs with the gate's own fixture (fresh pinned servers each round, 40 rounds, ratio [95% interval]): - #214 vs its parent 277c7f0: 1.039 [1.027..1.049] - #222 vs its parent be35ee3: 1.025 [1.006..1.044] - A/A 3554c98: 1.010 [1.002..1.025] - e732cd5 -> main: 1.048 [1.028..1.066] - main -> this change: 0.978 [0.958..0.989] - e732cd5 -> this change: 1.021 [1.009..1.044], PASS (budget 1.05) User cycles per query (perf stat, same instruction count): e732cd5 958K, be35ee3 1053K, c98a590 1206K, this change 1006K. Full gate, all fixtures, 20 rounds, servers pinned to CPUs 2-15: - main -> this change: no metric worse. Every required metric is PASS, or INCONCLUSIVE with an interval that includes 1.0. cheap_query p50 0.979 [0.953..1.007]. - e732cd5 -> this change: cheap_query p50 1.029 [1.019..1.072], INCONCLUSIVE on a busy host (load average up to 22); bound_query p50 1.022, PASS. The insert and delta metrics improved since the baseline. The shared host is about 4x slower per query than the CI runner, so the same hand-off is a smaller share of each query here than there. The remaining ~1.7% of user instructions per query since #214 is the pipeline's own per-request bookkeeping: the boxed request future (one 4-8 KiB allocation), its set node, the request control and the in-flight maps.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reworks InputLayer's messaging around the captain's final message: the live knowledge graph for AI agents, with the hero "Models think. InputLayer knows." "Reactive AI agents", "reasoning layer", "Your AI guesses. InputLayer reasons." and the interim "streaming engine" lead are gone from every pitch surface.
Messaging
front/).ComparisonTable, which gained text cells. The page is a server component.docs/README.md, compare pages, the customer story, package descriptions (Cargo.toml, the Python SDK README), theinputlayer-server --helpdescription, the LangChain guide sample text and the GUI welcome line.Use cases replaced by a flagship article
content/use-cases/*, the footer link and the README "Use Cases" list./use-cases/...URLs redirect to the new article (meta refresh, because the site is a static export).content/blog/building-a-voice-agent-that-knows.mdxwith the provided text unchanged; only acategoryfield was added to the frontmatter. It's linked from the home page and the README.Licence, labels and CTAs
COMMERCIAL_LICENSE.mdnow match the licence text: redistribution under ELv2 is allowed, and "forking and selling" is gone because the licence doesn't contain it.demo.inputlayer.ai(TLS currently broken) now goes to the quickstart or docs.Performance content
BENCHMARKS.mdand the benchmark blog posts are identical tomain. The README "What Makes It Different / Incremental updates" section and the compare-page figures are restored as onmain.Testing
cd front && npm run buildpasses. I checked the static export in a browser at 1280 px and 390 px: no horizontal page scroll, no console errors. The use-case URLs redirect to the article.