Architecture and acceptance briefing · 14 August 2026

Jarvis needs a task desk, not a smarter regex

The reliable path to FRIDAY-like interaction is stable entity identity, explicit conversation state, constrained resolution, and repair. An LLM can be a language adapter later; it must not own thread IDs, approvals, or execution.

Current failure modes

The rough edges share one cause

Broken

Names are text, not entities

Whisper hears “Rivvl” as ribbon or ripple. Exact matching fails, then the last project wins or clarification loops forever.

Broken

One last task is not memory

Opening a second conversation overwrites the only reference. “Go back” has no cursor, history, candidate set, or stable target to operate on.

Weak

Prompts are strings, not frames

“Which project?” is spoken, but the system does not preserve a typed slot and candidate IDs robustly enough to repair the next turn.

Weak

Approval sees shell syntax

A wrapper command hides its actual read-only purposes. The agent says “something” because no operation-set adapter explains the inner work.

Deep module

A server-owned task desk

StateWhat it meansVoice examples
focusedThreadIdThe exact task receiving referential commands.“Stop that”, “add tests to this.”
backStack / forwardStackStable navigation history, independent of the visible T3 screen.“Go back”, “return to the newer task.”
recentTasksBounded entities: IDs, project, title, objective, state, aliases.“Switch to the Rivvl pull-request review.”
pendingFrameA typed clarification or confirmation with candidate IDs.“The second one”, “no, the review task.”
newConversationArmedA one-turn instruction to create independent work while preserving focus history.“Start another conversation.”

Resolution order

Language proposes; state proves

  1. Repair first. If a clarification frame exists, resolve only against its candidates.
  2. Exact controls next. Back, forward, stop, status, new conversation, approval, and ordinals are closed grammar.
  3. Entity resolution. Search real project/task entities using exact aliases, relationships, lifecycle, recency, and conservative phonetics.
  4. Confidence gate. One clear winner proceeds; ties remain pending and ask a short discriminating question.
  5. Optional semantic adapter. An LLM may propose an action and entity text only when deterministic parsing rejects the utterance.
  6. Typed authorization. The host resolves stable IDs, validates state, and emits ordinary T3 orchestration commands.

Release acceptance

Test the experience as a system

A green unit test is not enough. Every release should survive these user journeys on a real laptop host and Windows Companion.

InstallShipped

Install once, update thereafter

Install the NSIS build once; verify tray version, background differential download, restart-to-install, and preservation of pairing/defaults.

CaptureShipped

Hold, speak, review, release

First words survive immediate speech, every VAD segment is retained, capture lasts for the full hold, canonical terms are repaired, and the surface dismisses.

ProjectsShipped

Typed project intelligence

“What projects are there?” reads T3 state without Codex. Explicit, phonetic, ordinal, ambiguous, and unknown project cases never silently fall back.

ControlShipped

Exact task control

Start, steer, queue, status, stop, reroute, continuation, restart recovery, blocked replies, and cross-project ownership all retain stable IDs.

ApprovalShipped

Explain purpose and risk

Reads, writes, tests, builds, installs, pushes, migrations, network, elevated, destructive, compound, and unknown commands are distinguished; questions never approve.

SpeechShipped

Brief, useful reports

Completion speech keeps outcome, verification, blockers, and next action while dropping code, paths, hashes, headings, generic “Done,” and changelog noise.

ResilienceShipped

Failure is actionable

Exercise offline host, revoked session, stale provider/default, duplicate surfaces, rapid reports, host restart, and the three supported connection modes.

Task deskPlanned

Multiple conversations

New conversation, back, forward, named-task switching, durable candidate frames, and task relationship search remain the next vertical slices.

Tracer bullets

Build it in five vertical slices

01

Task desk projection

Typed per-client focus, history, recent task entities, restart durability, HTTP and WebSocket parity.

02

Back / forward / new

Instant voice navigation with integration proof that the next turn reaches the selected thread.

03

Named task search

Title, project, objective, relationship, state, ordinal, recency, and learned aliases.

04

Conversation repair

Persisted clarification frames; “second one” fills the open slot instead of becoming a new task.

05

Semantic fallback

Optional small model only for rejected paraphrases, evaluated against deterministic baselines and never trusted with authority.