Current Architecture

The whole-system map is the Architecture Blueprint. It is a five-by-four lattice with three product/data columns and one full-height Management column.

Product and AI shape

  • CareerVector has no registration, login, membership, ownership account, or account recovery. A private workspace link is the collaboration capability.
  • The same canonical CareerVector workspace is projected through browser, terminal TUI, and Tauri desktop clients.
  • Blueprint 05/08/12 is the AI spine: JobCache × AI, vendor AI, and CareerVector × AI. Vendor assistants host conversation; products retain data, context, tool, mutation, receipt, and recovery authority.
  • JobCache may use product-local accounts to grant capabilities or identify charge targets. Runtime work still scopes itself with workspace, session, request, operation, and corpus identifiers.
  • The fourth Blueprint column is Management: policy, obligations, observability, monitoring, operations, QA, Status, Wiki, support, recovery, cost, audit, and accountability.

Runtime and storage

CareerVector uses SvelteKit and Cloudflare Workers, D1/R2, a Cloudflare Durable Object plus Deno fallback for realtime byte fan-out, MCP/API perspectives, Yjs workspace sub-documents, and Typst browser/native render paths.

Durable CareerVector writes cross the typed operation path. Realtime carries committed Yjs bytes; it is not a second durable authority. UI, MCP, API, and AI tools must converge on the same operation contracts.

The shared fact vocabulary is:

role                         hidden shared aggregate
ad                           source listing for one URL/posting
job                          workspace-local tracked item exposed to users/APIs
workspace.jobs[job_id]       { url, attributes }

D1/Yjs owns private workspace jobs, CV/CL trees, notes, settings, evaluations, collaboration, and local summaries. CrateDB/JobCache owns public ad/role facts, evidence, embeddings, matching, and reducer-approved aggregates. Absence, unknown, disagreement, and explicit empty values remain distinct.

Evidence discipline

The repository is authoritative only where a claim resolves to source plus the appropriate test, probe, or runtime evidence. A green package test does not by itself prove a cross-product boundary. Use the Blueprint note and typed connection before changing authority or moving data.

Source: wiki/content/onboarding/02-current-architecture.md