Skip to content

feat: add multi-tenant session isolation - #231

Merged
Siddhant-K-code merged 1 commit into
mainfrom
feat/multi-tenant-isolation
Aug 16, 2026
Merged

feat: add multi-tenant session isolation#231
Siddhant-K-code merged 1 commit into
mainfrom
feat/multi-tenant-isolation

Conversation

@Siddhant-K-code

Copy link
Copy Markdown
Owner

Description

Adds customer-level tenant tagging, cost attribution, reporting, subject-access export, and auditable erasure across flat and workspace trace stores.

Highlights

  • Adds tenant_id to session metadata/events with watch --tenant-id and AGENT_STRACE_TENANT_ID propagation.
  • Adds exact tenant filters to list and cost, plus tenant report, tenant export, and confirmed tenant delete commands.
  • Includes tenant attributes in OTLP output and protects collector writes from tenant reassignment.
  • Makes export/erasure complete across session sidecars, checkpoints, approvals, eval datasets, retention records, and all workspace stores.
  • Adds durable tag/deletion journals, hash-only audit/tombstone records, immutable tenant assignment, cross-tenant tree protection, and fail-closed path/symlink validation.
  • Preserves containment-safe legacy session/workspace IDs while keeping new ingress strict.
  • Documents GDPR workflows and the collector boundary: one authenticated collector/storage root is one organization. Managed hosted infrastructure remains tracked by feat: hosted collector endpoint — managed agent-strace server with free tier #129.

Version and release

Bumps agent-strace from 0.89.0 to 0.90.0. After merge, the existing release workflow should create v0.90.0; the matching PyPI publish will be verified separately.

Verification

  • Ona full suite: 1,814 Python tests passed.
  • VS Code extension: 3 tests passed.
  • Independent adversarial review completed; all findings were fixed and re-reviewed.
  • git diff --check, compilation, CLI smoke tests, and README 300-line policy passed.

Closes #216

Co-authored-by: Codex <noreply@openai.com>
@Siddhant-K-code Siddhant-K-code added the enhancement New feature or request label Aug 16, 2026
@Siddhant-K-code

Copy link
Copy Markdown
Owner Author

Independent review complete.

Reviewed the tenant boundary end to end: legacy storage compatibility, immutable assignment, collector ingress/read behavior, workspace enumeration, OTLP propagation, parent/child isolation, crash recovery, GDPR export/erasure completeness, external approval/dataset/retention records, hook-state attribution, and path/symlink containment.

The review reproduced and resolved the original high-risk edge cases, including hook filename traversal, outside-root checkpoint/audit access, omitted external records, post-audit rollback inconsistency, legacy event migration, and false-success discovery gaps. The final adversarial re-review approved the fixes with no remaining blockers.

Local CI-equivalent verification is green (1,814 Python tests and 3 extension tests). Merge remains gated on every hosted PR check completing successfully.

@Siddhant-K-code
Siddhant-K-code merged commit db31fe9 into main Aug 16, 2026
5 checks passed
@Siddhant-K-code
Siddhant-K-code deleted the feat/multi-tenant-isolation branch August 16, 2026 19:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: multi-tenant session isolation - per-customer trace tagging, cost rollup, and GDPR export

1 participant