Skip to content

fix(cli): support force removing projects#3922

Open
Bortlesboat wants to merge 2 commits into
pingdotgg:mainfrom
Bortlesboat:fix/3855-project-remove-force
Open

fix(cli): support force removing projects#3922
Bortlesboat wants to merge 2 commits into
pingdotgg:mainfrom
Bortlesboat:fix/3855-project-remove-force

Conversation

@Bortlesboat

@Bortlesboat Bortlesboat commented Jul 12, 2026

Copy link
Copy Markdown

Closes #3855.

What changed

  • add a --force flag to t3 project remove
  • forward the flag to the existing project.delete orchestration command
  • cover force-removing a project with an active thread in the CLI integration suite

Without this flag, the CLI could not access the server's existing force-delete behavior, so non-empty projects could not be removed from the command line.

Validation

  • pnpm exec vp test apps/server/src/bin.test.ts --run (16 tests passed)
  • pnpm exec vp check (0 errors; 9 pre-existing warnings)
  • pnpm exec vp run typecheck (all 15 workspaces passed)

Note

Low Risk
Thin CLI flag wiring to an existing orchestration command; destructive behavior is opt-in via --force and covered by a new integration test.

Overview
Exposes the server’s existing force-delete path from the CLI so t3 project remove can drop projects that still have threads.

project remove gains a --force flag (default off) described as deleting the project and all of its threads. The handler passes force through on the project.delete dispatch payload instead of only sending projectId.

A CLI integration test adds a project, creates a thread via the orchestration engine, runs project remove --force, and asserts both the project and thread have deletedAt set in the persisted snapshot.

Reviewed by Cursor Bugbot for commit bb362c7. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add --force flag to t3 project remove CLI command

Adds a boolean --force flag (default false) to the project remove command in project.ts. The flag value is forwarded in the project.delete command payload, allowing callers to signal a force deletion. A new test verifies that running project remove --force sets deletedAt on both the project and its associated threads.

Macroscope summarized bb362c7.

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: dda0282e-de92-4be6-adf9-c9635f849fbb

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Jul 12, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 2920b99. Configure here.

Comment thread apps/server/src/bin.test.ts
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jul 12, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR adds a new --force flag that enables destructive cascading deletion of projects and their threads. New user-facing capabilities that enable previously-blocked destructive operations warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@macroscopeapp macroscopeapp Bot dismissed their stale review July 13, 2026 00:09

Dismissing prior approval to re-evaluate bb362c7

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

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: t3 project remove --force to delete non-empty projects from the CLI

1 participant