Tandem v0.5.10
See the assets below to download the installer for your platform.
v0.5.10 (Unreleased)
Tandem 0.5.10 opens the enterprise connector source-binding workstream. The
focus is safe ingestion governance for hosted and enterprise deployments:
connector credentials as secret references, source bindings mapped to
ResourceRef and DataClass, quarantine/revoke/rotate workflows,
resource-scoped memory retrieval, and hosted authorization hardening around
who may bind company data into Tandem.
This unreleased line currently contains the contract foundation, enterprise
admin shell, storage-backed organization-unit registry, and storage-backed
source-binding registry. Manual memory imports can now optionally target an
enabled source binding so imported chunks carry resource and data-class
metadata. Google Drive now has a guarded admin-triggered import path; Notion,
GitHub, Slack, Gmail, live OAuth, background workers, and production connector
automation remain follow-up implementation phases.
Enterprise Connector Source Binding
- Added transport-safe enterprise contract types for connector instances,
connector lifecycle state, connector credential references, credential
classes, source binding state, ingestion policy, source objects, ingestion
jobs, ingestion quarantine, quarantine dispositions, and scoped memory chunk
references. - Added generic organization-unit taxonomy contract types so admins can model
company-specific domains such as HR, Doctors, Consultants, Claims Adjusters,
Board Members, or Platform Oncall without hardcoded Tandem roles. - Organization-unit memberships can feed
ScopedGrantthrough the new
organization-unit membership grant source while preserving the existing
principal/resource/data-class projection model. - Added enterprise admin endpoints for org-unit and source-binding management.
Organization units now have tenant-scoped storage-backed create/list behavior;
source bindings now have tenant-scoped storage-backed create/list/update
behavior withResourceReftenant validation and admin-gated mutations. - Verified hosted context now preserves signed assertion roles so enterprise
admin mutations can fail closed unless the Tandem-signed hosted context
carries admin/owner/reconfigure authority. - Added a hidden-by-default Enterprise admin page in the control panel. It reads
the storage-backed org-unit and source-binding endpoints, displays
tenant/principal context, creates org units and source bindings, and can move
source bindings between enabled, disabled, and quarantined states. - Connector credential references carry only
SecretRefmetadata and default
to read-only credentials. They intentionally do not model raw credential
values. - Source bindings map external source roots to Tandem
ResourceRefand
DataClassvalues, giving manual upload and future external connectors a
common resource-scoped ingestion contract. - Manual memory imports accept an optional
source_binding_id, fail closed if
the binding is outside the tenant or disabled for indexing, and stamp chunks
with source-binding, resource, data-class, and source-object metadata while
preserving local/default import behavior when unset. - Source-bound vector memory now fails closed before ranking. Chunks stamped
with enterprise source-binding metadata are hidden unless the caller supplies
a strict tenant access projection with a matchingReadgrant for the bound
ResourceRefandDataClass. - Governed/global memory search now applies the same source-binding guard.
Records with enterprise source-binding metadata are filtered out unless the
verified tenant assertion carries a strict projection with matching
resource/data-class read authority. - Response-cache entries can now be partitioned by tenant and source binding,
and invalidated for a specific binding. Source-binding admin changes emit an
invalidation-required event so future cache consumers can purge stale answers
after disable, quarantine, revoke, or permission changes. - Tool schemas now have additive enterprise security descriptors covering
required permissions, resource kinds, data classes, admin surfaces, external
side effects, credential access, and default visibility. Built-in tools emit
descriptors from their metadata, and unannotated MCP/provider tools can be
classified conservatively before future discovery masking and execution
enforcement. - The embedded MCP catalog now carries security metadata for servers and
cataloged tools. Catalog-provided overrides can mark sensitive tools as
admin/credential/hidden, while unannotated tools receive conservative
descriptors from catalog context and action classification. - Operators can provide JSON/YAML MCP tool-security overrides with
TANDEM_MCP_TOOL_SECURITY_OVERRIDES_PATH, allowing enterprise deployments to
tune server and per-tool security descriptors without rebuilding the embedded
catalog. mcp_listnow applies discovery authorization when a signed strict tenant
projection is present. Unauthorized MCP tools are removed from the discovery
inventory before the model can see them; local/unscoped discovery remains
unchanged.- Provider/model calls now apply the same strict projection to advertised tool
schemas before invocation. Unauthorized admin, credential, execute, or
resource-scoped tools are omitted from the provider-visible tool list while
local/unscoped sessions remain compatible. - Source-bound manual uploads now create durable source-object lifecycle
records keyed by tenant, source binding, and native object identity. Changed
documents keep the same source object ID while their hashes update, and
sync_deletestombstones removed uploads so later admin workflows can
reindex, delete, or re-scope by binding/resource. - Enterprise admins can now list source-object lifecycle records for a source
binding, request reindex by purging stale chunks/import index rows, hard
delete a source object and indexed content, or re-scope its resource/data
class metadata. Each mutation reuses enterprise admin authorization and emits
source-binding cache invalidation. - The hidden Enterprise admin page now exposes those source-object lifecycle
rows for a selected source binding and provides reindex, delete, and re-scope
controls from the hosted admin UI. - Hosted/enterprise manual memory imports now require
source_binding_idso
company data is scoped to aResourceRefandDataClassbefore indexing.
Local/default imports can still remain unbound for non-enterprise installs. - Local/default manual memory imports can now opt into the generated
local_manual_uploadbinding. This gives local installs source-object
lifecycle tracking under an internaldocument_collectionscope without
forcing legacy unbound imports to migrate immediately. - The enterprise connector trust-proof matrix now has explicit coverage for
hosted non-admin connector creation denial, source-bound upload
ResourceReflifecycle stamping, and same native source IDs remaining
tenant-scoped. - Source-bound memory retrieval now has explicit tenant-isolation proof: tenant
A cannot retrieve tenant B chunks even when the binding ID, native object
path, and search phrase overlap. - Source-object re-scope now has explicit purge coverage: old indexed chunks
are deleted before lifecycle metadata moves to the new resource/data class,
preventing stale prompt context from surviving permission changes. - Source-bound prompt-context assembly now has explicit regression coverage:
source-bound current-session and history chunks are excluded from assembled
prompt context unless a strict tenant projection grants read access to the
boundResourceRefandDataClass. - Governed memory list responses now apply the source-bound visibility guard
before returning metadata, preventing list/citation browser surfaces from
exposing source-object IDs, native object paths, or binding IDs without a
strict read grant. - Coder governed-memory hit artifacts now fail closed for source-bound records,
with coverage proving coder memory-hit responses do not expose source-object
IDs, native object paths, or binding IDs without a strict read grant path. - Automation upstream evidence now filters source-bound internal identifiers
from read paths, discovered paths, and citations before downstream workflow
nodes can reuse them as citation evidence. - Strict session KB grounding now ignores source-bound internal identifiers
when extracting source labels and document refs, preventing KB citation
renderers from exposing source-object metadata. - Disabling or quarantining a source binding now purges indexed content for its
lifecycle records and tombstones affected source objects, closing the
binding-level stale prompt-context path after permission changes. - Prompt-context injection and coder duplicate-memory scans now skip
source-bound governed records by default, closing remaining local/default
memory caller gaps when no strict grant projection is available. - Managed hosted detection now reports hosted auth availability separately, so
disconnected local test deployments can still use the engine-token sign-in
path while connected hosted servers keep Tandem hosted login enforcement. - Connector instances now have storage-backed tenant-scoped admin endpoints for
lifecycle management. Source-bound imports require the referenced connector
to exist and be active, so paused, revoked, or quarantined connectors block
ingestion before data reaches memory. - The hidden Enterprise admin page can now create connector lifecycle records,
list tenant-scoped connector status, and pause, revoke, quarantine, or
reactivate connectors from the control panel. - Enterprise organization-unit memberships now have tenant-scoped runtime
storage, admin-gated create/list/update endpoints, and hidden admin UI
controls for assigning hosted users, groups, agents, and service accounts to
company-defined units such as departments, clinical roles, consultants, or
executive groups. This is the first Phase H execution slice for turning
company taxonomy into future signed grant projection. - Organization-unit access grants now provide the missing access-rule layer
between company taxonomy and resource/data-class permissions. Enterprise
admins can create tenant-scoped unit grants, preview the effective
ScopedGrantprojection for a member, and disable grants before the global
signing middleware begins appending those projections to verified strict
contexts. - Signed hosted/enterprise request ingress now appends active
organization-unit membership grants into existing verified strict contexts.
This makes company-defined units such as departments, clinical groups, or
consultant groups available to strict runtime access checks while preserving
fail-closed behavior for assertions that do not already carry a strict
projection. - Added denial-focused strict-context tests for department and executive
access: finance grants do not reveal engineering source data, engineering
grants do not reveal HR compensation records, CEO/global access is explicit,
and CEO-spawned agents remain narrow unless the signed projection delegates
broader access. - Fintech audit package assembly now filters scoped artifacts before export.
Artifacts carryingResourceRefandDataClassmetadata are included only
when a strict projection grantsReadfor that resource/data class; scoped
artifacts are excluded with an audit-package limitation when authorization is
missing. - Connector credential-reference admin endpoints now accept and rotate
SecretRefrecords without accepting raw credential values. Credential refs
are tenant-validated, can be source-bound to a resource, and are visible in
the hidden Enterprise admin page as metadata only. - Source-bound manual memory imports now write persisted enterprise ingestion
job audit records with connector/binding scope, job state, timing, and
touched source-object IDs. The hidden Enterprise admin page can inspect these
records for a selected binding. - Review-required source bindings now create persisted quarantine records and
remove newly indexed chunks before they can be retrieved. Enterprise admins
can review quarantines from the runtime or hidden admin page and mark a
release, delete, or reindex disposition. - Connector revoke/rotate response handling now has an admin-visible impact
summary. The runtime and hidden Enterprise admin page can report affected
bindings, source objects, ingestion jobs, quarantines, compromise window, and
recommended response actions for a connector. Compromise-window timing includes
source-object lifecycle timestamps so uploaded/indexed content bounds the
audit window. - Source-binding, source-object, quarantine-review, connector lifecycle, and
connector credential changes now invalidate matching source-bound response
cache entries when the response cache is present. - Google Drive is now exposed as the first constrained enterprise connector
provider with v1 read-only/source-bound credential policy guardrails. The
runtime now includes a read-only Drive client for folder listing, stored-file
download, and Google Workspace export, plus a runtime-onlyenv://...
secret-ref resolver and admin-gated source-binding preflight endpoint for
local bearer-token testing. - The first admin-triggered Google Drive import endpoint now reuses those
guardrails to fetch supported Drive documents into a stable source-binding
namespace, create ingestion job and source-object lifecycle records, honor
review-required quarantine, and invalidate source-bound response-cache entries
after indexing. This remains an admin-controlled v1 path, not broad automatic
OAuth ingestion. - The hidden Enterprise admin page can now run Google Drive source-binding
preflight, trigger the admin-controlled import endpoint, and refresh
source-object, ingestion-job, quarantine, and connector-impact views around
the selected binding. - The Google Drive import path now has HTTP-level regression coverage proving a
review-required source binding records a quarantined ingestion job,
source-object lifecycle row, and quarantine record while keeping resolved
credential material out of responses. - Google Drive enterprise preflight and import route handling now live in a
focused HTTP module, keeping connector-specific orchestration separate from
the general enterprise admin routes as more connector behavior lands. - Organization-unit and ingestion/source-object lifecycle endpoints also now
live in focused enterprise HTTP modules, keeping the primary enterprise admin
route file under the source-size guideline before the next connector work. - Google Drive source bindings now have an explicit admin re-fetch/reindex
operation. It reuses the read-only source-bound credential checks and stable
binding namespace, records ingestion jobs, honors quarantine policy, evicts
source-bound cache entries, and keeps resolved credential material out of
responses. - Ingestion gating helpers model the required fail-closed behavior for paused,
revoked, or quarantined connectors, disabled bindings, and review-only
ingestion policy. - Added the internal enterprise connector source-binding Kanban covering
rollout phases, mitigations, memory/retrieval implications, denial tests,
and open ownership decisions.
Full Changelog: v0.5.9...v0.5.10