You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fixed
Global CLI installs now run directly on Bun and report titen --version
instead of requiring a Node shim.
Successful SDK responses now reject array, null, and primitive JSON
envelopes with an INVALID_RESPONSETitenError while preserving the HTTP
status, request ID, and safe response metadata.
Bun HTTP, Cloudflare Workers AI, and injected embedding-provider results now
require exact output cardinality, ordered provider indices when present,
dense configured dimensions, and finite numeric coordinates before vector
query or indexing.
Semantic readiness now distinguishes intentional FTS-only operation from
partial configuration, unavailable vector initialization, legacy untracked
vectors, missing requeue work, unsafe storage aliasing, empty restored
projections, incompatible fingerprints, and locally observed indexing
dependency failures; configured failures return a fixed local diagnostic
without probing providers.
Semantic retrieval now discards sub-threshold cosine hits before canonical
hydration, so relative ranking cannot turn a best bad neighbor into useful
context. Bun and Cloudflare share the same validated unit-vector boundary.
Manual and background semantic-index drains now fence each outbox row before
provider I/O, so an expired losing attempt cannot add stale failure evidence
after another attempt completes the row. Lease eligibility and expiry now use
the database clock at each conditional claim, so caller clock skew and earlier
work cannot create an expired or stranded owner.
Semantic-index upserts and removals now persist canonical reconciliation
before external mutation and recreate it after stale or apply-then-throw
outcomes, so a losing owner cannot resurrect a purged vector, erase a newer
projection, or report unowned work as complete.
Changed
Capability contract version 1 reports embedding, extraction, and background
enrichment separately while retaining model as a deprecated 0.3.x
embedding alias. Migration 13 persists the claim-index provider, model,
revision, dimensions, metric, preprocessing, and schema fingerprint and
requires an explicit reindex after incompatibility. Migration 14 retains only
safe embedder/vector-store failure timestamps in semantic metadata until a
later complete embed/upsert proves recovery.
sqlite-vec@0.1.9 is a pinned optional peer: default installs remain
dependency-light while the documented vector install is machine-verifiable.
Context compilation now treats a missing project_id as unscoped-only;
explicit cross-project recall requires cross_project: true plus the separate context:compile:all capability and reports its effective scope and grant
reason across REST, SDK, and MCP.
Breaking: Semantic configuration now requires an immutable model revision, a named
role-aware preprocessing profile, and an operator-calibrated cosine floor in
the existing index fingerprint. EmbeddingGemma uses its official asymmetric
query/document prompts; Titen ships no universal threshold.
Migration 16 adds nullable owner and expiry fields to the rebuildable semantic
index outbox; canonical observations and claims are unchanged.