Skip to content

Conversation

@newhook
Copy link
Owner

@newhook newhook commented Jan 15, 2026

Summary

This PR enhances zellij tab naming in the Claude Orchestrator by adding user-friendly names to tab titles. Previously, tabs were named using only technical identifiers (e.g., work-w-3wl). Now they display both the work ID and a descriptive friendly name (e.g., work-w-3wl (action_jackson)), making it significantly easier to identify and navigate between work sessions.

Changes

New Helper Function

  • Added FormatTabName() helper in internal/claude/runner.go to consistently format tab names with optional friendly names
  • Format: prefix-workID (friendlyName) when friendly name exists, otherwise prefix-workID

Updated Functions

All zellij tab creation functions now accept and use friendly names:

  1. SpawnWorkOrchestrator: Creates work orchestrator tabs with friendly names
  2. EnsureWorkOrchestrator: Checks for/creates orchestrator tabs with consistent naming
  3. OpenConsole: Creates console tabs with friendly names
  4. OpenClaudeSession: Creates Claude Code session tabs with friendly names

Updated Callers

Modified all call sites across the codebase to pass work friendly names:

  • cmd/run.go: runTasks, runFullAutomatedWorkflow, RunWork
  • cmd/work.go: runWorkCreate, runWorkConsole, runWorkClaude
  • cmd/work_automated.go: runWorkCreateWithBeads, runAutomatedWorkflow
  • cmd/tui_plan_work.go: executeCreateWork
  • cmd/tui_work.go: createWork, openConsole, openClaude

Issues Resolved

Closes the following beads:

  • ac-msub.1: Add helper function to format zellij tab names with friendly names
  • ac-msub.2: Update SpawnWorkOrchestrator to use friendly name in tab name
  • ac-msub.3: Update EnsureWorkOrchestrator to use friendly name in tab name
  • ac-msub.4: Update OpenConsole and OpenClaudeSession for consistent naming
  • ac-msub.5: Test zellij tab naming with real work units

Testing

  • All functions verified to accept and propagate friendly names
  • FormatTabName helper handles both empty and non-empty friendly names correctly
  • All callers updated to pass work.Name or workerName from database records
  • Tab naming follows consistent format across all zellij tab types

Implementation Details

The implementation maintains backward compatibility - if no friendly name is provided (empty string), tabs display with just the work ID. This ensures the system continues to work even if friendly names are not set.

The change is purely cosmetic and does not affect the underlying functionality or data model. All existing workflows continue to work unchanged.

🤖 Generated with Claude Code

newhook and others added 3 commits January 15, 2026 12:48
…ith friendly names

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…nsureWorkOrchestrator to use friendly names

- Modified function signatures to accept friendlyName parameter
- Updated all callers to pass work.Name or workerName
- Tab names now display as 'work-w-xxx (friendly_name)'

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…sistent naming

- Modified function signatures to accept friendlyName parameter
- Updated all callers to pass work.Name
- Console and Claude tabs now display as 'console-w-xxx (friendly_name)' and 'claude-w-xxx (friendly_name)'

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@newhook newhook merged commit 55da0a1 into main Jan 15, 2026
@newhook newhook deleted the feat/zellij-worker-tabs-dont-have-their-friendly-names branch January 15, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants