Repository navigation
Conversation
…r as the hub The section 3 figure (cascade.svg) drew the pipeline as a column with the graph as a side box, so the one thing the article argues was not visible: InputLayer in the middle, every model and tool around it, and multitasking dispatch derived from it. Redraw it on the layout of the captain's reference diagram: the pipeline head top-left, the external world top-right, the hub in the centre, the active speech loop and the background work below. Facts enter as guarded programs (intent gate, adapters, watchdog, agenda, pump, executor); conclusions leave as standing-query deltas (speech rows to the agenda, work rows to the executor, one row per item, claimed in parallel against the tools and written back as outcomes and observations). Data flow and control flow are distinct and every arrow is labelled; the legend is shared with the other figures. Companion figures: lanes.svg names the tail stage "Pump (tail)" as the hub figure does; dispatch-sequence.svg draws engine deltas dashed, as the legend says. The caption and the paragraph that describes the figure are updated; the content bundle is regenerated from the post.
jsam
marked this pull request as ready for review
October 4, 2026 09:04
jsam
marked this pull request as draft
October 4, 2026 09:56
Contributor
Author
|
Superseded: the voice-agent reference architecture (with this redesigned hub diagram) moved to the voicestack repo: https://github.com/inputlayer/inputlayer-voicestack/pull/3 |
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.
Summary
The section 3 figure of Building a Voice Agent That Knows (
front/public/blog/voice-agent/cascade.svg) drew the pipeline as a column with the graph as a side box, so the article's one argument was not visible in it. This PR redraws it so the message is obvious at a glance: InputLayer is the hub in the centre; every model and every tool sits around it; all coordination goes through it as facts in and subscribed deltas out; and multitasking dispatch is derived from it.The layout follows the captain's reference diagram (
inputlayer-voicestack-multitasking-dispatch.svg): the pipeline head top-left, the external world top-right, the hub in the centre, the two lanes below. It is drawn in the article's shared figure style (same palette, cards, arrowheads and legend as the other four figures), with the article's names and mechanisms:source_healthflips from the watchdog; reservations and playback receipts from the agenda and the pump; claims, outcomes and observations from the executor.speechrows to the agenda,workrows to the executor, one row per item..whyon every decision.work ⋈ lease_owner), claims rows under a guard in parallel, runs them against the carrier API and the order system with idempotency keys and epoch fences, and writes outcomes back as facts; a row entering starts work, a row leaving cancels it; the speech lane keeps talking and corrects itself meanwhile.One deliberate deviation from the reference: the bottom row is mirrored (speech loop bottom-left under the pipeline head, background work bottom-right under the external world). With the reference's placement the pipeline's continuation (voice edges on the data lane,
Interrupton the system lane, from the barge-in stage to the agenda) has to cross the adapters' arrows or loop over the top of the canvas; mirrored, the whole voice pipeline reads top to bottom on the left, the world top to bottom on the right, and the hub sits between them with no crossings. Easy to flip back if the original placement is preferred.Companion figures
Checked the other four figures against the hub picture (names, colours, shapes) and changed only what contradicted it:
lanes.svg: the tail stage is named "Pump (tail)" as in the hub figure (was "Tail pump").dispatch-sequence.svg: the threedelta:arrows are dashed, as the shared legend defines engine deltas (programs stay solid).loop.svgandcorrection-timeline.svg: already consistent, unchanged.Article text
Only the caption and the paragraph that describes the figure changed (section 3, first paragraph): the figure is now described as the hub with facts in and deltas out, and the sentence on where multitasking dispatch comes from.
front/lib/content-bundle.tsis regenerated from the post (node front/scripts/bundle-content.mjs; one content line differs).Self-critique against the captain's complaint
Reviewed the final render as a hostile reader of "InputLayer isn't clearly in the centre and multitasking dispatch isn't shown to be enabled by it": the hub is the largest element at the canvas centre with every arrow converging on it; the dispatch chain is explicit end to end (rules →
work(…)standing result → work deltas, one row per item → executor claims in parallel → two tool columns → claim, outcome and observation back as facts), plus the in-flight attempts from the article (att-9f3,att-b1). Fixed during the pass: cluster titles that collided with arrows, labels under the hub that read as one block, a label over the receipts line, the executor's wording on parallel claims.Verification
:rootand.darkvariables fromfront/app/globals.css) in headless Chrome: dark and light themes, a 358 px phone width at 3x, and the standalone<img>fallback in both colour schemes. No overlaps or clipped text; the hub and the four groups read at phone width.cascade.svgis well-formed XML, starts with<svg(required byInlineSvg), uses thevkcid/class prefix like before, and declares<title>/<desc>.make fmt-checkpasses; no Rust, Python, JS package or perf-gate inputs are touched (docs and figures only), somake pre-prwould select onlyfmt-checkplus the perf gate. Not run:make perf-gateandmake front-build(no runtime change; the front build runs the same bundle script that was run here)./home/sam/firstmate/data/voice-article-diagrams/with the generator script.