Skip to content

Plan Apple Silicon local-first inference #60

Description

@cuevaio

Destination

An implementation-ready migration spec for Tab’s initial validated local-first target, the available M4 Pro Mac with 24 GB memory: automatic Suggestions run locally with a user-selected model from the Local Model Catalog, while double-Option explicitly requests remote inference. The spec settles product, architecture, privacy, personalization, billing, telemetry, validation, and rollout decisions without implementing the production migration or claiming support for untested Mac configurations.

Notes

  • Domain: use the canonical language in CONTEXT.md; consult relevant records in docs/adr/.
  • Starting research: docs/deep-research-report.md.
  • Sessions should consult /grilling, /domain-modeling, and the ticket-specific skill; use /prototype for benchmark artifacts.
  • Automatic local Suggestions are unlimited and never silently fall through to remote inference. If local inference is unavailable, automatic Suggestions are unavailable and durable status explains why.
  • Double-Option is the explicit remote-inference action and preserves current backend Personal Memory retrieval, stronger-model generation, metadata telemetry, and quota semantics.
  • Preserve the existing bounded, ephemeral Memory Extraction Window. The backend remains authoritative for Personal Memory and performs LLM-based Memory Extraction; raw window content is not durably stored.
  • Add a read-only Personal Memory Replica for local personalization. It works offline while signed in, is purged at explicit sign-out, and is not used for local Memory Extraction. Signed-out local Suggestions may continue without personalization.
  • Local personalization uses a bounded deterministic shortlist, not local embeddings. Backend Memory Extraction continues to use embeddings.
  • The Local Model Catalog is curated and versioned. Downloads and model updates require user approval; security revocation may disable a compromised model. Arbitrary model import is not supported.
  • Local telemetry remains metadata-only: inference source, catalog model/version, coarse hardware tier, latency, outcome, and length; never Typing Context, memory content, generated text, or exact hardware identifiers.
  • Available benchmark hardware and initial validated target is an M4 Pro Mac with 24 GB memory. Results must not be generalized into support claims for untested Mac configurations.
  • Planning is the default: tickets resolve decisions or produce disposable evidence needed for decisions; production implementation is outside this map.

Decisions so far

Not yet specified

  • The production inference process boundary, lifecycle, warm-residency, cancellation, crash recovery, and resource-pressure behavior after runtime evidence narrows the viable architecture.
  • The catalog manifest, artifact hosting, provenance, signing, checksum, download-resume, storage, update, revocation, and cleanup design after runtime/model formats are known.
  • The local Personal Memory ranking algorithm and prompt budget after model context and quality thresholds are known.
  • The desktop routing/state-machine, API contract, status UI, onboarding, and failure-recovery changes after runtime and model lifecycle decisions settle.
  • Release sequencing, migration from cloud-automatic behavior, rollback, and support policy after architecture and telemetry decisions settle.
  • Which existing ADRs and PRD boundaries must be superseded once the target architecture is settled.

Out of scope

  • Production implementation of the migration.
  • Obtain an 8 GB Apple Silicon benchmark target and support claims for 8 GB or other untested Apple Silicon configurations; broader hardware validation is deferred.
  • Intel Mac, Windows, and Linux support.
  • Arbitrary user-provided or bring-your-own models.
  • Local embeddings on the automatic Suggestion hot path.
  • Local Memory Extraction or local authoritative Personal Memory storage.
  • Durable raw typing logs or durable Memory Extraction Window content.
  • Redesigning the existing remote model/provider path beyond explicit routing and source contracts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions