Blueprint · domain

Link-access CareerVector workspace

CareerVector owns one private, collaborative workspace addressed by link and projected through browser, terminal TUI, and Tauri clients; it has no account system.

Cell 4.2 · product · runtime · privacy · control · feedback
  • Workspace link boundary to Canonical private workspace: resolve link capability
  • Workspace link boundary to Three client trees: open workspace
  • Three client trees to AI integration seam: host explicit AI seam
  • Canonical private workspace to Canonical operations: read + operate
  • AI integration seam to Canonical operations: bounded intent
  • Canonical operations to Visible receipts + recovery: receipt
  • Canonical operations to Converged workspace result: canonical commit
  • Converged workspace result to Canonical private workspace: realtime convergence
resolve link capabilityopen workspacehost explicit AI seamread + operatebounded intentreceiptcanonical commitrealtime convergence
boundarymixed

Workspace link boundary

The private link grants write/collaboration access; provider login remains separate device authority.

Open layer ↘
storeas-built

Canonical private workspace

D1/Yjs owns career, job, application, document, collaboration, and operation state.

CareerVector D1/Yjs
perspectivemixed

Three client trees

Browser, Rust terminal TUI, and Tauri desktop are peer projections over canonical workspace state.

CareerVector clients
boundarytarget

AI integration seam

Vendor chat context and actions enter only through the explicit CareerVector × AI boundary.

CareerVector
servicemixed

Canonical operations

Direct UI and AI-assisted changes share typed, revision-safe product operations.

CareerVector API
storetarget

Visible receipts + recovery

Messages, connector/tool effects, conflicts, limits, cancellation, and undo remain attributable and observable.

CareerVector D1
processmixed

Converged workspace result

Committed state and JobCache projections return through normal realtime and read models to all three clients.

CareerVector workspace
public facts / private requestpublic result, private projectionworkspace context and typed operationsworkspace truth across three clients
  1. 01 · boundary · mixed Workspace link boundary

    The private link grants write/collaboration access; provider login remains separate device authority.

    Open deeper layer ↘
  2. 02 · store · as-built Canonical private workspace

    D1/Yjs owns career, job, application, document, collaboration, and operation state.

    CareerVector D1/Yjs
  3. 03 · perspective · mixed Three client trees

    Browser, Rust terminal TUI, and Tauri desktop are peer projections over canonical workspace state.

    CareerVector clients
  4. 04 · boundary · target AI integration seam

    Vendor chat context and actions enter only through the explicit CareerVector × AI boundary.

    CareerVector
  5. 05 · service · mixed Canonical operations

    Direct UI and AI-assisted changes share typed, revision-safe product operations.

    CareerVector API
  6. 06 · store · target Visible receipts + recovery

    Messages, connector/tool effects, conflicts, limits, cancellation, and undo remain attributable and observable.

    CareerVector D1
  7. 07 · process · mixed Converged workspace result

    Committed state and JobCache projections return through normal realtime and read models to all three clients.

    CareerVector workspace

Flows

  • Workspace link boundary → Canonical private workspace resolve link capability
  • Workspace link boundary → Three client trees open workspace
  • Three client trees → AI integration seam host explicit AI seam
  • Canonical private workspace → Canonical operations read + operate
  • AI integration seam → Canonical operations bounded intent
  • Canonical operations → Visible receipts + recovery receipt
  • Canonical operations → Converged workspace result canonical commit
  • Converged workspace result → Canonical private workspace realtime convergence
as built target / open Boundary arrows open the neighbouring module; ports stay machine-only

CareerVector

Product outcome

Help a person understand the market, manage opportunities, improve their materials, decide where to invest effort, and collaborate with trusted people and the CareerVector assistant. Documents, chat, and AI are means; the private career-intelligence workspace is the product.

Product shape

CareerVector has three first-party client trees over one canonical workspace:

  • the browser client owns the broad job-market matrix, radar, collaboration, and responsive web journey;
  • the native Rust TUI owns a focused, keyboard-first application/document workflow, local managed connector processes, native Typst rendering and measurement, and controlled cterm delivery;
  • the Tauri desktop client loads the browser workspace in a controlled native shell and adds native adapters, fetch/render, updates, and OS integration without adding an offline database;
  • API, MCP, direct UI, and assistant actions share the same typed workspace contracts.

The TUI's current application.json store is an alpha adapter. It is valid as-built evidence for the interaction model, connector boundary, renderer, and revision-safe tools, but it is not a second canonical CareerVector database. Product integration replaces that adapter with the normal D1/Yjs operation and realtime paths.

Authorities

  • Possession of the private workspace link grants workspace access and trusted collaboration. CareerVector has no registration, login, ownership, membership, account ID, or recovery authority.
  • D1/Yjs owns canonical workspace state, collaboration, CV/CL trees, notes, jobs, preferences, application activity, and the durable operation ledger.
  • R2 owns private workspace files and large artifacts.
  • JobCache Core supplies shared public role/ad knowledge through a strict privacy seam.
  • A vendor connector host owns provider login, process lifecycle, streaming, and provider thread state. The TUI host is as-built; browser and Tauri placement follow the same explicit AI seam.
  • Typed CareerVector tools are the assistant's only state-changing capability. They read and mutate the same canonical state and operation ledger as direct UI actions.
  • CareerVector Management owns aggregate browser/native-release operation and participant-supplied support evidence, never private workspace or device authority.

Invariants

  • CareerVector is permanently free to users.
  • Private candidate and workspace activity is not monetized.
  • One workspace serves one person while supporting trusted collaboration by link.
  • Provider authorization is connector authorization, not CareerVector identity.
  • Workspace identifiers and links are not sent to model providers or JobCache.
  • There is no v4 API-key, provider-routing, model-picker, or inference-billing product surface.
  • Browser, TUI, Tauri, API, MCP, and assistant tools do not create parallel state paths.
  • Assistant writes carry connector, thread, tool, operation, and causal receipt provenance; they remain visible in both chat and the affected workspace surface and are reversible where the tool contract says they are.
  • Management receives only bounded product evidence and declared command receipts. It cannot browse workspaces or remotely control TUI devices.
  • No AI success or quality is fabricated where no honest outcome signal exists.

Current state

The collaborative D1/Yjs browser workspace, Tauri Linux shell, shared app/API/MCP foundations, document engine, job tracking, JobCache seam, and link access are as built. The imported TUI has a working local application adapter, guided editor, managed ChatGPT/Gemini/Copilot connector boundary, bounded revision-safe field tools, and native Typst renderer/ruler. Canonical TUI workspace attachment, persistent cross-client assistant threads, the web chat rail and execution bridge, shared tool capabilities, and complete Management evidence remain target/open work.

Completion evidence

A person can open the same link-access workspace from browser, terminal TUI, and Tauri, collaborate without an account, authorize or revoke a provider connector independently, resume a workspace-scoped assistant conversation, and see a typed tool change converge through the normal workspace path. Acceptance also requires link-capability denial/rotation behavior, provider credential isolation, workspace export/erasure, tool idempotency and undo, offline/realtime convergence, TUI install/update/rollback evidence, privacy-safe support, and no-paywall behavior.

Child contracts

Source: architecture/modules/careervector.md