Skip to content

feat(server): merge projects atomically and stop phantom cwd projects - #12

Merged
asfires merged 1 commit into
mainfrom
t3code/fix-server-breadcrumb-label
Aug 12, 2026
Merged

asfires merged 1 commit into
mainfrom
t3code/fix-server-breadcrumb-label

Conversation

@asfires

@asfires asfires commented Aug 12, 2026

Copy link
Copy Markdown
Owner

What Changed

  • Added project merge support to move active threads into another project and delete the source atomically.
  • Added validation for deleted projects/threads, self-merges, and unrelated workspace roots, with an explicit override when needed.
  • Persisted thread project changes through orchestration events and projections.
  • Updated startup and terminal project discovery to avoid creating phantom projects for equivalent working directories.
  • Added focused orchestration, projection, startup, CLI, and reducer coverage.

Why

Project merges previously required inconsistent manual updates and could leave thread projections out of sync. This change makes project consolidation transactional, preserves workspace-root safety, and prevents startup from registering duplicate or phantom cwd projects.

UI Changes

No UI changes.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

- Auto-bootstrap looked up projects by the server process cwd only; a
  pnpm-filtered start (cwd=apps/server) silently created a duplicate
  project named after the subdirectory, splitting threads across projects
- Bootstrap now checks the exact cwd first, then falls back to the cached
  repository-root lookup before creating anything, so an existing
  repo-root project is always reused
- Add thread.project.set and project.merge commands through the decider
  so a project's threads can move atomically in one transaction, guarded
  against unrelated workspace roots; t3 project merge <src> <tgt> wraps it
- Client thread reducer applies thread.project-set so open threads track
  their new project live

Built by Claude Fable 5 via Claude Code with GPT-5.6-Sol via Codex CLI.
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Aug 12, 2026
@asfires
asfires merged commit 5e3afc9 into main Aug 12, 2026
6 of 11 checks passed
@asfires
asfires deleted the t3code/fix-server-breadcrumb-label branch August 12, 2026 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant