CareerVector Assistant Connector Runtime

Outcome

CareerVector can connect a person's provider account, stream an assistant turn, cancel it, expose only bounded CareerVector tools, and recover honestly without treating provider login as product identity or giving a model filesystem, terminal, database, or arbitrary-network authority.

Process placement

The native TUI's device-local host is as built. It downloads checksum-pinned official connector artifacts into private application data, activates them atomically, retains a rollback target, supervises their processes, and keeps provider credentials out of application/workspace data.

The web chat rail still needs an execution bridge. That placement is intentionally open. A hosted service, a local companion, or another reviewed mechanism may be selected only if it preserves link-based workspace access, provider credential isolation, persistent thread/replay semantics, the typed tool boundary, and the no-paywall promise. The architecture no longer assumes a hosted connector gateway indexed by a CareerVector identity principal.

Stable connector boundary

  • ChatGPT/Codex uses the official Codex App Server JSONL protocol and ChatGPT device login. It is not ACP.
  • Gemini and GitHub Copilot use their native ACP boundaries where provider terms and protocol maturity permit.
  • A provider connector owns provider login, credential storage, model/session behavior, stream, cancellation, and limits.
  • CareerVector owns the connector allowlist, reviewed versions/checksums, managed installation, process sandbox, context policy, tools, visible events, and recovery.
  • ACP interoperability is not provider authorization. Unsupported or legally unclear connectors stay absent.

The TUI's current field-replacement contract and local MCP stdio service are as-built evidence. Product integration replaces their filesystem adapter with the shared canonical assistant tool boundary; it does not grant additional filesystem or shell access.

Thread, event, and privacy contract

Provider runtimes may own opaque provider conversation state. CareerVector owns any workspace-scoped thread mapping, normalized durable transcript/events, tool receipts, and replay cursor needed to project the same assistant through browser, TUI, and Tauri. Route/job/document context narrows a turn but never grants authority.

No prompt, response, document, provider credential, workspace link, or tool payload enters ordinary logs or aggregate Management telemetry. Management may receive connector/runtime version, install outcome, turn duration, limit/error class, cancellation outcome, and explicit participant-supplied diagnostics.

Failure and recovery

  • Provider limit or authorization expiry remains distinct from workspace access.
  • Connector crash or protocol mismatch fails closed and preserves direct workspace work.
  • Runtime install/update verifies provenance before activation and can return to the previous verified version.
  • Cancellation, late events, reconnect, and duplicate suppression have explicit terminal rules.
  • Web execution failure cannot sign a person out because CareerVector has no product login.

Implementation evidence and gaps

careervector-tui/careervector-tui/src/runtime.rs and assistant.rs are the normative as-built device-host evidence. lib/agent-gateway remains useful supporting TypeScript evidence for Codex initialization, normalized events, bounded dynamic tools, and transcript fixtures; it is not proof of a deployed hosted service or a reason to reintroduce accounts.

Signed cterm/TUI distribution, web execution placement, cross-client persistent threads/events, canonical tool adapters, connector supply-chain projection into Management, and production provider consent smokes remain target/open work.

Acceptance evidence

Acceptance requires hermetic protocol fixtures, checksum/signature and rollback tests, process isolation, credential/log scanning, bounded-tool denial tests, canonical mutation parity, durable stream replay/cancellation, link/provider-authority separation, and one consented smoke for each shipping provider and client placement.

Source: architecture/modules/careervector-connector-runtime.md