feat: add multi-tenant session isolation - #231
Conversation
Co-authored-by: Codex <noreply@openai.com>
|
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. |
Description
Adds customer-level tenant tagging, cost attribution, reporting, subject-access export, and auditable erasure across flat and workspace trace stores.
Highlights
tenant_idto session metadata/events withwatch --tenant-idandAGENT_STRACE_TENANT_IDpropagation.listandcost, plustenant report,tenant export, and confirmedtenant deletecommands.agent-strace serverwith free tier #129.Version and release
Bumps
agent-stracefrom0.89.0to0.90.0. After merge, the existing release workflow should createv0.90.0; the matching PyPI publish will be verified separately.Verification
git diff --check, compilation, CLI smoke tests, and README 300-line policy passed.Closes #216