page

Assignment-Based Ownership Architecture

Assignment-Based Ownership Architecture

Status: In Progress Track Project: 53e19f4c (Multi-Tenant Implementation) Date: 2026-01-03

Problem Statement

Resources (sessions, track projects, contacts, etc.) currently have user ownership baked into Redis keys: - sess:{user_id}:{session_id} - not transferable - track:{user}:{ts}:project:{id} - not shareable - Current session pointer in User env creates cross-env dependency

Solution: Assignment Environment for All Ownership

Remove user_id from resource keys. Use Assignment environment to link users to resources.

Key Pattern Changes

Session (Before -> After)

sess:{user_id}:{session_id}     -> sess:{stable_id}
sess:{user_id}:{session_id}:items -> sess:{stable_id}:items
user:{user_id}:session:current  -> sess:current:{user_id}

Track (Before -> After)

track:{user}:{ts}:project:{id}  -> track:{ts}:project:{stable_id}
track:{user}:projects           -> track:index:projects
assign:access:session:{stable_id}:{user_id} -> {access_level: 'admin'}
assign:access:track:{stable_id}:{user_id}   -> {access_level: 'admin'}

AI State: Hybrid Approach

Two-tier AI state within sessions:

Session-Level: sess:{stable_id}:ai_state:{ai} - Shared context visible to all participants - Session summary and major accomplishments

User-Level: sess:{stable_id}:ai_state:{ai}:{user_id} - Active todos for this user's AI - Working notes specific to current task

Implementation Phases

  1. DONE - Create assignment_helper.py - /opt/mcp-servers/shared/assignment_helper.py
  2. NEXT - Update session_helper.py - Remove User env dependency, new key patterns
  3. PENDING - Update Session MCP server - New tools: join, share, transfer
  4. PENDING - Update TodoWrite hook - Use new session lookup
  5. PENDING - Update Track MCP server - Assignment integration
  6. PENDING - Migration script - Convert existing data

Files

  • Plan: /home/nexus/.claude/plans/enumerated-sniffing-lerdorf.md
  • Assignment Helper: /opt/mcp-servers/shared/assignment_helper.py
  • Session Helper: /opt/mcp-servers/shared/session_helper.py
  • Session MCP: /opt/mcp-servers/session/mcp_session_server.py
  • Track MCP: /opt/mcp-servers/track/mcp_track_server.py
ID: 9bfaeac5
Path: Nexus 3.0 Architecture > Assignment-Based Ownership Architecture
Updated: 2026-01-03T17:54:13