Blueprint · careervector.blueprint-graph/v7

Graph explorer

Twenty composable top-level diagrams plus recursively nested 21×21 semantic layers. Nodes descend; boundary arrows cross to neighbours.

Nested layer 1 · product · control · privacy · evidence

Persistent CareerVector assistant chat

The as-built TUI chat pane and target web rail/narrow views converge on a workspace-scoped transcript, bounded context, visible tool effects, and honest recovery.

  • Browser + Tauri chat rail to and from Full-screen narrow chat: responsive projection
  • Native TUI chat pane to Active context descriptor: follow selected application field
  • Browser + Tauri chat rail to Resumable connector stream: send, stop, collapse
  • Active context descriptor to Resumable connector stream: bounded turn context
  • Full-screen narrow chat to Resumable connector stream: send, stop, return
  • Resumable connector stream to Workspace transcript: finalize events
  • Active context descriptor to Tool intent + receipt: render scoped effect
  • Tool intent + receipt to Draft + accessible focus: announce without stealing focus
  • Draft + accessible focus to Honest recovery: retry, undo, or resolve
  • Honest recovery to Resumable connector stream: resume or new turn
responsive projectionfollow selected application fieldsend, stop, collapsebounded turn contextsend, stop, returnfinalize eventsrender scoped effectannounce without stealing focusretry, undo, or resolveresume or new turn
perspectiveas-built

Native TUI chat pane

Hideable conversation beside the editor/PDF, with streamed provider output, cancellation, bounded changes, and undo.

CareerVector TUI
perspectivetarget

Browser + Tauri chat rail

Persistent right rail with collapse, bounded resize, keyboard separator, and no workspace replacement.

CareerVector browser/Tauri
perspectivetarget

Full-screen narrow chat

A dedicated conversation projection returns to the unchanged route and selection.

CareerVector web
boundarytarget

Active context descriptor

Link-scoped workspace plus bounded route, job, document, selection, and clocks; context is not authority.

CareerVector clients + host
processtarget

Resumable connector stream

Cursor replay, duplicate suppression, cancellation, authorization, limits, and terminal state.

CareerVector connector host
storetarget

Workspace transcript

Final messages and safe lifecycle events survive refresh and link-holding devices.

CareerVector D1
perspectivetarget

Tool intent + receipt

Shows affected paths, outcome, provenance, conflict, and Undo without claiming an uncommitted effect.

CareerVector clients
processtarget

Draft + accessible focus

Draft survives recoverable navigation; streaming does not steal focus or flood announcements.

CareerVector clients
processtarget

Honest recovery

Reconnect, reauthorize, retry, cancel, update/rollback, or undo remain distinct and never duplicate a mutation.

CareerVector clients + connector
  1. 01 · perspective · as-built Native TUI chat pane

    Hideable conversation beside the editor/PDF, with streamed provider output, cancellation, bounded changes, and undo.

    CareerVector TUI
  2. 02 · perspective · target Browser + Tauri chat rail

    Persistent right rail with collapse, bounded resize, keyboard separator, and no workspace replacement.

    CareerVector browser/Tauri
  3. 03 · perspective · target Full-screen narrow chat

    A dedicated conversation projection returns to the unchanged route and selection.

    CareerVector web
  4. 04 · boundary · target Active context descriptor

    Link-scoped workspace plus bounded route, job, document, selection, and clocks; context is not authority.

    CareerVector clients + host
  5. 05 · process · target Resumable connector stream

    Cursor replay, duplicate suppression, cancellation, authorization, limits, and terminal state.

    CareerVector connector host
  6. 06 · store · target Workspace transcript

    Final messages and safe lifecycle events survive refresh and link-holding devices.

    CareerVector D1
  7. 07 · perspective · target Tool intent + receipt

    Shows affected paths, outcome, provenance, conflict, and Undo without claiming an uncommitted effect.

    CareerVector clients
  8. 08 · process · target Draft + accessible focus

    Draft survives recoverable navigation; streaming does not steal focus or flood announcements.

    CareerVector clients
  9. 09 · process · target Honest recovery

    Reconnect, reauthorize, retry, cancel, update/rollback, or undo remain distinct and never duplicate a mutation.

    CareerVector clients + connector

Flows

  • Browser + Tauri chat rail ↔ Full-screen narrow chat responsive projection
  • Native TUI chat pane → Active context descriptor follow selected application field
  • Browser + Tauri chat rail → Resumable connector stream send, stop, collapse
  • Active context descriptor → Resumable connector stream bounded turn context
  • Full-screen narrow chat → Resumable connector stream send, stop, return
  • Resumable connector stream → Workspace transcript finalize events
  • Active context descriptor → Tool intent + receipt render scoped effect
  • Tool intent + receipt → Draft + accessible focus announce without stealing focus
  • Draft + accessible focus → Honest recovery retry, undo, or resolve
  • Honest recovery → Resumable connector stream resume or new turn

Canonical architecture note

Open note ↗

Persistent CareerVector Assistant Chat

Outcome

Vendor AI is present wherever the person works without replacing the workspace. Browser and Tauri desktop project chat as a persistent right rail beside the active page; on a narrow browser it is a full-screen conversation with an explicit route back. The terminal TUI projects the same product role as its existing hideable chat pane beside the editor and document preview.

Layout and state

  • Desktop uses a two-column application body: the active workspace consumes the remaining width; the chat rail has a bounded minimum/maximum width and a keyboard-operable resize separator.
  • Collapse state and preferred width are per-device presentation preferences. They do not enter workspace collaboration state or a prompt.
  • Below the product's narrow breakpoint, chat is a full-screen layer/route, not a squeezed side column. Browser back, Escape where appropriate, and a labelled close control return to the same workspace route and selection.
  • A collapsed surface does not cancel a turn; explicit Stop issues the connector's cancellation operation.
  • The target conversation/thread is workspace-scoped and persistent. Refresh, route change, another link-holding device, or connector reconnect resumes it from a durable event cursor. The current TUI chat session is as-built but not yet the canonical persistent transcript.

Context contract

Each turn may include a bounded context descriptor: link-authorized workspace, active route/surface, selected job, document pane, selection identifiers, and canonical clocks. Context follows the UI but is never authorization. The CareerVector host re-resolves link scope and every selected object. Private content is fetched through scoped tools or an explicitly described bounded projection; the browser does not assemble an unbounded workspace dump into every prompt.

Event presentation

The rail renders a versioned sequence of user messages, assistant messages, authorization/limit states, tool intents, tool results, recovery events, and terminal turn state. Streaming deltas are announced without flooding assistive technology; the final message becomes the durable readable event. Tool cards show what was read or changed, affected workspace paths, provenance, outcome, and Undo when the receipt is still safely reversible.

Errors distinguish workspace-link failure, provider authorization, provider plan limits, connector availability, tool conflict, invalid tool request, and general turn failure. The UI never turns these into a generic spinner or an API-key/provider-selection prompt.

Accessibility and safety

  • Chat is fully keyboard operable with a real landmark, labelled transcript, focus restoration, visible focus, and logical reading order independent of rail width.
  • New streaming content does not steal focus. Screen readers receive bounded status summaries and the final message, not every token.
  • The composer retains unsent text across collapse, route changes, and recoverable disconnects, but clears it on explicit discard or local-data cleanup.
  • Markdown and tool payloads are rendered as untrusted content with no raw HTML execution.
  • The UI does not imply that a suggested or failed action changed canonical state; only a durable successful receipt does.

Failure and recovery

On network loss, the rail keeps durable history and the unsent draft, marks the stream interrupted, and reconnects from the last acknowledged cursor with bounded backoff. Duplicate events collapse by event ID. If a turn completed while the browser was absent, its final assistant message and tool receipts appear after replay. If recovery cannot prove terminal state, the UI offers Retry as a new turn and does not duplicate the old mutation.

Acceptance evidence

  • browser tests at desktop widths for open, collapse, resize bounds, reload persistence, active context updates, running-while-collapsed, cancellation, and tool receipt/undo;
  • browser tests at 390px for full-screen chat, focus containment/restoration, browser-back return, draft preservation, and no horizontal workspace crushing;
  • stream fixture tests for replay, duplicate suppression, late delta after cancel, reconnect after completion, authorization expiry, plan limit, tool conflict, and connector outage;
  • accessibility checks for landmarks, transcript announcements, separator keyboard control, focus order, contrast, reduced motion, and sanitized message rendering;
  • a TUI proof for connector cancellation, bounded changes, undo, and document rerender; and
  • two-device proof that holders of the same workspace link resume the intended thread while an unrelated link cannot observe its history or stream.
Source: architecture/modules/careervector-assistant-chat.md