Scoping captured 2026-06-03. Finish the modularity refactors first, then brainstorm this properly (brainstorm -> spec -> plan).
Already works (no action)
- Multi-user login (
auth.py /auth/login + first-run /auth/setup).
- Admin account creation in Settings (
SettingsApp/UsersPanel.tsx -> POST /auth/users, 8-digit invite-code flow), is_admin role, profile edit / password reset / delete.
Gaps to design + build
- Per-user isolation (foundation).
routes/user_memory.py and routes/chat.py hardcode USER_ID = "user"; agents (config.agents), secrets, and channels are global to the host with no user_id/owner. Stores need to key on the real session user.
- Agent ownership model. Agents have no
owner/shared_with. Add ownership + a sharing mechanism.
- Graduated access levels. No per-user/per-agent access concept today (only the
can_read_user_memory capability flag). Decide granularity (view / use / edit / manage / share).
- Admin delegation. Admin assigns/shares agents to specific users and can manage agents on their behalf.
- Data migration. Migrate today's single-user/global data into the (user_id, …) model without breaking existing installs.
Design questions for the brainstorm
- Ownership +
shared_with list vs full RBAC roles?
- What are the access levels, exactly?
- How does 'admin manages an agent for a user' surface in the UI (the Users panel? the Agents app)?
- Visibility filtering at the route layer + session-user propagation everywhere.
Relates to multi-user separation intent. Sequenced after B3-B7 refactors.
Scoping captured 2026-06-03. Finish the modularity refactors first, then brainstorm this properly (brainstorm -> spec -> plan).
Already works (no action)
auth.py/auth/login+ first-run/auth/setup).SettingsApp/UsersPanel.tsx->POST /auth/users, 8-digit invite-code flow),is_adminrole, profile edit / password reset / delete.Gaps to design + build
routes/user_memory.pyandroutes/chat.pyhardcodeUSER_ID = "user"; agents (config.agents), secrets, and channels are global to the host with nouser_id/owner. Stores need to key on the real session user.owner/shared_with. Add ownership + a sharing mechanism.can_read_user_memorycapability flag). Decide granularity (view / use / edit / manage / share).Design questions for the brainstorm
shared_withlist vs full RBAC roles?Relates to multi-user separation intent. Sequenced after B3-B7 refactors.