Conversation
Test & Lint Summary
|
|
[major] Multi-tenant scoping isn’t complete yet: none of the |
noa-lucent
left a comment
There was a problem hiding this comment.
Thanks for the massive auth refactor—OIDC + per-user guards are shaping up well. I still need a couple of blockers addressed before we can ship:
- The new cross-tenant guard in
createThreadWithInitialMessagethrowsthread_parent_owner_mismatch, butAgentsThreadsController.createThreadnever catches that error. Attempts to create a child under someone else’s thread now bubble up as a 500 (create_failed) instead of a deterministic 404/403. Please map that error to the proper HTTP response. - The
/api/memoryendpoints were left untouched, so any authenticated user can read or mutate another user’s per-thread memory simply by providing their thread UUID. We need to plumb the principal through those handlers (and/or enforce the owner inMemoryService) and hide other users’ threads when listing docs.
Happy to re-review once those are addressed.}
Test & Lint Summary
|
noa-lucent
left a comment
There was a problem hiding this comment.
All prior blockers are resolved. createThread now enforces parent ownership (and maps thread_parent_owner_mismatch to a 404) before persisting, and every /api/memory endpoint now requires the principal and checks thread ownership so per-thread docs can’t leak. Tests cover both scenarios. Looks good to ship.
Test & Lint Summary
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-confirmed after the latest updates (type fixes and tighter thread validation). Ownership guarding and OIDC/session changes still look solid. Approved.
Test & Lint Summary
|
Test & Lint Summary
|
noa-lucent
left a comment
There was a problem hiding this comment.
Docs + migration refresh look good. README now documents the OIDC env contract comprehensively, and the migration rename consolidates the reminder FK so we still add the cascade constraint in one step. Nothing further blocking merge.
Summary
Testing
Closes #1270