Skip to content

Epic: Client Hierarchy & Workspace Organization #14

Description

@rororowyourboat

Overview

Extend t3code with a persistent Client entity that groups Projects into organizational units, introduce a file tree panel, and add drag-and-drop operations for reassigning workspace artifacts across those units.

Goal: Users can organize work across multiple clients with zero cross-contamination of context, using direct manipulation (drag-and-drop) to manage the hierarchy.

Implementation Phases

Phase 1 — Foundation (P1) ✅

# Feature Issue Status
F1 Client CRUD #4 ✅ Done
F2 Client-Project Binding #5 ✅ Done
F3 Sidebar Hierarchy #6 ✅ Done
F4 Drag-Reorder Clients #7 ✅ Done
F5 Drag Project Between Clients #8 ✅ Done
F6 Project Group Migration #9 ✅ Done

Phase 2 — File Awareness (P2) ✅

# Feature Issue Status
F7 File Tree Panel #10 ✅ Done
F8 Drag File References #11 ✅ Done (copy @mention)

Phase 3 — Advanced (P3)

# Feature Issue Status
F9 Terminal Reassignment #12 ⬜ Deferred (requires terminal Manager refactor)
F10 Agent Session Draggable #13 ✅ Done

Architecture Notes

  • All state mutations flow through the existing event-sourced command pipeline (decider → events → projector)
  • Client is a new aggregate type (aggregateKind: "client") alongside existing "project" and "thread"
  • Backward compatibility: new fields use Schema.optional / Schema.withDecodingDefault so existing snapshots decode cleanly
  • Replaces the fragile localStorage-only project-group system with server-persisted hierarchy
  • F6 auto-migrates existing localStorage groups to Clients on first boot

Commits

  • 4d83190e — F1+F2+F3: Client entity, project binding, sidebar hierarchy
  • f34589ee — F4: Client reorder/rename/delete + New Client button
  • f112c13e — F5: Project-client assignment via context menu
  • 5a44b392 — F6: Auto-migrate localStorage groups to Clients
  • 0ccb9827 — F7: File tree panel with directory listing RPC
  • ce5675ce — F8: Copy @mention from file tree
  • 17109db6 — F10: Thread-project reassignment within same client

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    client-hierarchyClient hierarchy & workspace organizationepicEpic / tracking issue

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions