How a request moves through JARVIS

One spoken or typed request, followed end to end: hearing, choosing a lane, understanding, a model proposal with no authority, the governance chain, a verified effect, and an answer that says only what the record supports.

INTEGRATED , rung 4 of 8 The typed path was proven live on the owner's machine on 16 September 2026 (a historical reading). The spoken path with the C013 voice is integrated (assembly check 18 September 2026), but full-duplex voice and audible latency still need an owner-present sitting.

PARTIAL Parts of this system sit at different rungs. The breakdown below shows each one.

As of
Parts tracked
7
Catalogued capabilities
42

Status breakdown

Where each part stands

2 live-proven 1 integrated 4 tested

  1. Typed conversation, referents and planning Capability model rows CONVERSATION and PLANNING, driven on the owner's machine 2026-09-16. Historical, not current.
    LIVE-PROVEN , rung 6 of 8 OBSERVED Where: Production branch
  2. Governance chain on every effect Registry probes of fail-closed policy and E-stop recorded LIVE 2026-09-17; historical after 24 h.
    LIVE-PROVEN , rung 6 of 8 OBSERVED Where: Production branch
  3. C013 speaking voice Configured on the integration branch; the voice loop assembled with it on 2026-09-18. Audible first-audio latency not measured.
    INTEGRATED , rung 4 of 8 DOCUMENTED Where: Production branch
  4. Context stack and deixis Registry rows were demoted for reachability; later body-matrix rows are recorded between TESTED and PRODUCTION-REACHABLE.
    TESTED , rung 3 of 8 TESTED Where: Production branch
  5. Local speech recognition Registry voice rows are TESTED. The 165 ms figure is a measurement recorded in a code docstring (2026-07-28).
    TESTED , rung 3 of 8 TESTED Where: Production branch
  6. Full-duplex spoken loop Journey J8 (speech interrupted while a mission continues) is fixture-tested only; live full-duplex needs the owner present.
    TESTED , rung 3 of 8 FIXTURE Where: Production branch
  7. Local language model as the brain Tooling is tested; no local model is qualified or integrated. Production cognition is a hosted model.
    TESTED , rung 3 of 8 TESTED Where: Local model runtime

Pipeline

How it flows

A spoken turn

  1. Microphone 30 s pre-roll ring
  2. Echo cancellation and self-speech gate
  3. Speech segmentation Silero VAD
  4. Local ASR faster-whisper on the GPU
  5. End of turn semantic end-of-turn model
  6. Speaker and addressee check uncertainty resolves to silence (can stop the request)
  7. Lane classifier Reflex, Cognition or Mission
  8. ToolProposal carries no authority
  9. Governance chain E-stop, grants, policy, approvals (can stop the request)
  10. Effect and read-back verified or halted (can stop the request)
  11. Receipt stored as evidence
  12. Answer C013 voice and HUD, rendered separately
Amber-marked steps can stop or silence the turn. Typed requests enter at the lane classifier.

A governed action

  1. ToolProposal no authority
  2. Grant allowlist ungranted is refused (can stop the request)
  3. E-stop checked first and again later (can stop the request)
  4. PolicyEngine.decide consumes approvals inside (can stop the request)
  5. Audit trail and action ledger
  6. dispatch_command normalise, expect, read, act, observe
  7. Verify observed against expected (can stop the request)
  8. ToolReceipt into the evidence store
  9. HUD timeline
Every effect, from any origin, takes this path.

Diagrams are simplified from the code paths named in the sources below. They are illustrative, not screenshots.

JARVIS is one owner’s locally hosted personal AI system. It runs on a single desktop PC. This page follows one request from start to finish so that you can see how the separate systems fit together. Each step links to the page that covers it in depth.

Here is the short version. A model helps decide what to do, but it never decides whether to do it. Every effect in the world passes through one governance kernel that can refuse it. Every result is checked by reading the world back afterwards. The answer you hear can only claim what that check found.

Step 1: hearing the owner

A spoken request starts at the microphone. Audio goes into a 30-second pre-roll ring buffer, so the first syllable is not lost while the system decides whether speech has started. Echo cancellation removes JARVIS’s own playback from the input, and a self-speech gate stops JARVIS from hearing itself as the owner. Silero voice-activity detection segments the speech. It refuses to fall back silently to a simpler energy detector; that fallback has to be chosen deliberately.

Transcription runs locally on the GPU with faster-whisper. A measurement recorded in the code’s own documentation (July 2026) gives 165 ms for local transcription against 2,479 ms for the hosted transcription service. That figure is a single recorded comparison, not a current benchmark. A semantic end-of-turn model then decides whether the owner has finished or is only pausing.

Two checks follow before anything is interpreted. Speaker verification admits only the owner. Addressee detection asks whether the sentence was said to JARVIS at all. When either check is uncertain, the system stays silent, because a missed request is cheaper than a wrong action. Details are on the voice page.

A typed request skips all of this and enters at the next step.

Step 2: choosing a lane

A lane classifier puts every utterance into exactly one of three lanes within 30 ms:

Lane What it handles Why it exists
Reflex Answers from local state, such as “what’s your status” Fast answers need no model. A network call from this lane raises an error.
Cognition Conversation, reasoning and short plans This is where the language model is used.
Mission Long, multi-step work Durable work has to survive restarts. See missions.

The project sets separate first-audio budgets for the lanes: reflex p95 ≤ 300 ms, and cognition p50 ≤ 600 ms and p95 ≤ 900 ms. These are targets. The reflex lane has a recorded reading over its budget, and that reading is still owed a fresh owner-present measurement.

Step 3: working out what was meant

Most spoken requests are vague: “move it to the other screen”, “open the page from earlier”. A director component turns vague phrasing into a deterministic plan of known commands, or into nothing. Words like “it” and “that” resolve through a context stack. The stack has slots for things like the current subject, project, artifact and device, and each slot is RESOLVED, STALE or UNBOUND. When a referent has gone stale, JARVIS asks instead of guessing.

A context compiler then builds the prompt for the model within a token budget. It never silently truncates a required section. The tools offered to the model come from the canonical command table, and the model cannot add or edit a tool. External tool servers must be listed by the owner and pinned by digest, and their results are labelled untrusted.

Step 4: the model proposes

Production cognition today uses a hosted commercial language model, reached through a single ProviderGateway. A local model is being trained to replace it, but no local candidate has qualified. The training page covers that work.

Whatever the model suggests is collected into a ToolProposal. A proposal is data. It is not an instruction and it grants no authority. Plans are capped at a depth of four, and they stop at the first step that cannot be verified.

Step 5: the runtime disposes

The proposal now enters the governance chain. Its order in code differs from the usual simplified description in three ways:

  • The E-stop is checked first, and checked again at several later points.
  • Approvals are consumed inside the policy decision, not in a later stage.
  • “Validation” is several layers, not one.

A command outside the grant allowlist is refused. A separate guard for irreversible action classes can refuse the step outright. PolicyEngine.decide is fail-closed: any unexpected error becomes DENY. Twelve action classes always need owner approval, including sending messages, deleting data and printing. That approval is bound to the exact object and expires. Every decision goes into a hash-chained audit trail. The full chain is on the governance page.

Step 6: acting, then checking

Only now does anything happen. The executor normalises the command, computes the state it expects afterwards, reads the world before acting, performs the effect and discards the effect’s own return value. Then it observes the world again. The result is decided by comparing that observation with the expectation:

  • VERIFIED: the world now matches the expectation.
  • REJECTED, UNVERIFIED, FAILED or REFUSED: anything else. The plan halts.

The effect’s own return value is thrown away because an application saying “done” is not evidence that the job is done. On the desktop, a window action that does not match is rolled back rather than reported as done. The computer operation page explains how. A ToolReceipt records the outcome as true, false or unknown, and the receipt goes into an append-only evidence store.

Step 7: answering

The spoken answer and the on-screen answer are rendered separately. Speech points at the result, while the HUD carries the detail. A persona governor enforces answer-first form and epistemic marking: an answer says whether something is confirmed, inferred, incomplete or unknown. A fabrication guard checks that any claim about a state or event is backed by a measurement.

Speech comes from C013, the owner-selected local voice, or from an announced fallback voice. The voice is never swapped silently. The owner can interrupt at any point, with a barge-in budget of 120 ms (14.8–27.6 ms measured in tests). Only the words the owner actually heard stay in the conversation context. The HUD page describes how every value on screen carries its source and the time it was observed.

The same kernel for every other route

Missions, automations, gestures and protocols all feed the same governance kernel. None of them has a separate path to the world. Memory has its own single gate: every write goes through one MemoryRouter, which records where the information came from and refuses writes from untrusted origins. See memory.

System Its role in a request Page
Voice Hears, verifies and speaks /voice
Cognition and architecture Lanes, context, the model boundary /architecture
Governance Decides whether anything may happen /governance
Computer operation Acts on windows, files and the browser, then verifies /computer
Memory Supplies context and records what was learned /memory
Missions and agents Durable long work, split into roles /missions, /agents
Research Cited, evidence-graded answers /research
Engineering Units, solvers, CAD and print preparation /engineering
Perception Screen, camera and gestures as evidence only /perception
HUD Shows what is true now, with its source /hud
Health Knows and reports its own condition /health

What is not proven yet

  • Live readings are dated. The typed conversation and planning readings come from 16 September 2026, and the governance registry probes from 17 September 2026. The project treats live evidence as expiring after 24 hours, so these are records of what happened then, not claims about today.
  • The full spoken loop has not been qualified. Full-duplex voice is waiting on an owner-present sitting. The interrupted-speech journey is fixture-tested only. Audible first-audio latency with the C013 voice has not been measured.
  • The local model is not the brain. Production cognition is hosted. No local candidate has passed its gates.
  • Some context features lag in reachability. Context-stack registry rows were demoted during an internal reachability audit. Later rows record them between TESTED and PRODUCTION-REACHABLE.
  • No release. The project’s own certification matrix reads “JARVIS-READY-V1: NO”, and the final gate has not passed. See capabilities for rung-by-rung status and bench for measurements.

Invariants

Rules the code enforces

  • THE MODEL PROPOSES; THE RUNTIME DISPOSES.

    jarvis/cognition/compose.py

  • The composer never defines a tool and never edits the table.

    jarvis/cognition/tools.py

  • No approval can override E-Stop.

    jarvis/governance/ (E-stop rules)

  • A reading without a measurement time is reported as UNAVAILABLE rather than assumed healthy.

    jarvis/runtime/health_state.py

Capabilities

Related capabilities

All 42 catalogued capabilities in this area

Sources

Sources

Paths are relative to the private JARVIS repository. They are listed so the claims above can be audited by the owner and reviewers; the files themselves are not published.

  • doc docs/analysis/JARVIS_CAPABILITY_MODEL_2026-09-16.md
  • ledger docs/ledger/CAPABILITY_TRUTH.json
  • doc docs/training/BRAIN_AND_VOICE_RUNTIME_MAP.md
  • ledger docs/orders/post-lm/ACCEPTANCE_JOURNEYS.json
  • doc docs/orders/post-lm/HANDOFF.md
  • ledger docs/ledger/CRITICAL_PATH.md