Remove legacy Claude-only team mode code - #810
Merged
Merged
Conversation
…f615af4 # Conflicts: # src-tauri/tests/suite_http_handlers/main.rs
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
lazabogdan
marked this pull request as ready for review
July 22, 2026 21:43
lazabogdan
enabled auto-merge (squash)
July 22, 2026 21:43
reefagent
pushed a commit
that referenced
this pull request
Jul 22, 2026
Resolve conflicts from #810 (legacy Claude-only team mode removal): - agent_conversation_start_service/mod.rs: keep strict-ticket PR-naming imports, drop removed TeamService import. - agent_workspace_review_unfinished_git_tests.rs: adopt main's bounded timeout pause-synchronization (pause_started) matching the shared tail. - unified_chat_commands/mod.rs: drop stale team_service param/arg from publish_agent_conversation_workspace_while_guarded to match main's team-mode removal and the existing 4-arg call sites.
adriandemian
added a commit
that referenced
this pull request
Jul 23, 2026
* Shared Agent Runtime Picker and Overrides (#832) * feat: add scoped agent runtime overrides * feat: add scoped agent runtime overrides * fix: bump workspace review migration schema version * fix: refresh stale workspace review fixer receipts * fix: resolve workspace review CI blockers * Block Workspace Review During Unfinished Git Operations (#826) * feat: Block Workspace Review During Unfinished Git Operations * test: seed valid base commit in PR recovery * test: satisfy workspace review patch coverage --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * fix: refresh stale workspace review fixer receipts * fix: complete workspace repair rebase * fix: dedupe workspace review repair helpers * fix: repair runtime override CI fixtures * fix: align runtime picker CI expectations * feat: Reuse provider picker for agent role settings * feat: Shared Agent Runtime Picker and Overrides * fix: isolate reviewer provider test from fast catalog * fix: isolate provider default test from fast catalog * feat: Shared Agent Runtime Picker and Overrides --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Debug PR #849 describer cross-project ticket leak (#852) * feat: Debug PR #849 describer cross-project ticket leak * feat: Debug PR #849 describer cross-project ticket leak * fix: resolve clippy manual_contains in git_service query tests * test: authorize clickup link via branch evidence in external PR reconciliation test PR title/body are now discovery-only evidence for ClickUp linking, so the reconciliation test must carry the ticket token in a workspace-owned signal (the branch name) for the link to be authorized. * Scope publish progress to live attempts and retire orphaned toasts (#853) * fix: settle orphaned publish operation toasts * test: align publish pane coverage --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Fix usage stats calculation drift (#841) * feat: correct agent usage accounting * fix: update pending usage stats assertion * feat: Fix usage stats calculation drift * feat: Fix usage stats calculation drift * fix: mock usage events in provider tests * fix: stabilize persisted artifact pane test * fix: update delegated Codex usage fixture * fix: mark uncounted usage totals unavailable * fix: harden usage accounting review findings * fix: correct delegated token expectation * fix: align delegated timeline fixture --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Remove legacy Claude-only team mode code (#810) * feat: remove legacy Claude team mode * fix: restore filesystem enforcement derivation * fix: preserve native team runtime after merge * refactor: remove legacy Claude team mode * feat: Remove legacy Claude-only team mode code * feat: Remove legacy Claude-only team mode code * feat: Remove legacy Claude-only team mode code * feat: Remove legacy Claude-only team mode code * fix: reconcile merged Rust call sites * fix: repair legacy team removal test fallout * fix: order tasks feature state migration * fix: remove stale folder context export * fix: stabilize persisted artifact pane test * fix: align workspace review test state * feat: Remove legacy Claude-only team mode code * fix: align agent panel send tests * fix: align plan proposal message tests * fix: align streaming test call signature * feat: Remove legacy Claude-only team mode code --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Fix workspace review deadlock on conflicts (#854) * fix: break workspace review repair deadlock * fix: validate PR fix against workspace HEAD * test: align stale review handoff recovery assertion * test: align workspace review recovery assertions * test: align repair completion error assertion * test: seed active workspace review monitor * test: align stale repair PR status assertion --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Fix harness-aware agent chat delivery (#856) Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Agent Launch Reservation and PR Autofix Recovery Hardening (#851) * fix: harden agent launch reservation recovery * fix: align integration registry test doubles * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * fix: harden agent launch reservation recovery * fix: align integration registry test doubles * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * Shared Agent Runtime Picker and Overrides (#832) * feat: add scoped agent runtime overrides * feat: add scoped agent runtime overrides * fix: bump workspace review migration schema version * fix: refresh stale workspace review fixer receipts * fix: resolve workspace review CI blockers * Block Workspace Review During Unfinished Git Operations (#826) * feat: Block Workspace Review During Unfinished Git Operations * test: seed valid base commit in PR recovery * test: satisfy workspace review patch coverage --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * fix: refresh stale workspace review fixer receipts * fix: complete workspace repair rebase * fix: dedupe workspace review repair helpers * fix: repair runtime override CI fixtures * fix: align runtime picker CI expectations * feat: Reuse provider picker for agent role settings * feat: Shared Agent Runtime Picker and Overrides * fix: isolate reviewer provider test from fast catalog * fix: isolate provider default test from fast catalog * feat: Shared Agent Runtime Picker and Overrides --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * fix: remove duplicate workspace review action * fix: restore PR autofix compilation * fix: expose PR autofix classification to recovery * fix: expose PR autofix issue to recovery * fix: retain stale repair recovery summary * fix: complete stale running agent registry mock * fix: align PR autofix integration fixtures * fix: align queued message test call * fix: make PR supervision recovery claims atomic * fix: align PR supervision regression fixtures * fix: align PR autofix route test with immediate dispatch * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * fix: align plan PR autofix route fixture * test: cover launch recovery ownership branches --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * chore: prepare v0.76.0 daily release * Fix user message text wrapping in agent chat (#858) * feat: Fix user message text wrapping in agent chat * test(visual): update compact split composer baseline for user bubble wrapping fix * feat: Review PR #854 for accuracy (#859) * feat: Show publishing state on commit & publish (#862) * fix: scope legacy team migration FK check to introduced violations (#863) * fix: scope legacy team migration FK check to introduced violations The v20260720140000 legacy Claude team removal validated integrity with a database-wide `pragma_foreign_key_check`. Production never enables `PRAGMA foreign_keys`, so live databases carry orphan rows this migration neither created nor cleans up. Those pre-existing violations were counted as migration damage, so the migration failed, AppState initialization panicked, and the app aborted on every launch with no way to recover. Baseline the violations inside the transaction and gate only on ones the migration introduces. Violations are keyed by constraint rather than rowid so the comparison survives the table rewrites the migration performs, and the error now names the offending child/parent tables. * docs: correct foreign-key enforcement rationale in legacy team migration Foreign keys are enforced in production: libsqlite3-sys builds bundled SQLite with -DSQLITE_DEFAULT_FOREIGN_KEYS=1. Orphan rows accumulate because migrations that rewrite tables disable enforcement, not because it is never enabled. Comments only; behavior unchanged. * Fix delegate rehydration and duplicate widgets (#857) * fix: rehydrate delegates without duplicates * test: cover streaming task rehydration * fix: preserve delegate card during snapshot suppression * test: stabilize terminal publish visual scenario --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Compact agent workspace toolbar status * fix: settle workspace reviews after accepted completion (#869) Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> --------- Co-authored-by: Laza Bogdan <lazabogdan@users.noreply.github.com> Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
adriandemian
added a commit
that referenced
this pull request
Jul 24, 2026
* Implement Commit & Publish header alignment run 1 (#868) * Shared Agent Runtime Picker and Overrides (#832) * feat: add scoped agent runtime overrides * feat: add scoped agent runtime overrides * fix: bump workspace review migration schema version * fix: refresh stale workspace review fixer receipts * fix: resolve workspace review CI blockers * Block Workspace Review During Unfinished Git Operations (#826) * feat: Block Workspace Review During Unfinished Git Operations * test: seed valid base commit in PR recovery * test: satisfy workspace review patch coverage --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * fix: refresh stale workspace review fixer receipts * fix: complete workspace repair rebase * fix: dedupe workspace review repair helpers * fix: repair runtime override CI fixtures * fix: align runtime picker CI expectations * feat: Reuse provider picker for agent role settings * feat: Shared Agent Runtime Picker and Overrides * fix: isolate reviewer provider test from fast catalog * fix: isolate provider default test from fast catalog * feat: Shared Agent Runtime Picker and Overrides --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Debug PR #849 describer cross-project ticket leak (#852) * feat: Debug PR #849 describer cross-project ticket leak * feat: Debug PR #849 describer cross-project ticket leak * fix: resolve clippy manual_contains in git_service query tests * test: authorize clickup link via branch evidence in external PR reconciliation test PR title/body are now discovery-only evidence for ClickUp linking, so the reconciliation test must carry the ticket token in a workspace-owned signal (the branch name) for the link to be authorized. * Scope publish progress to live attempts and retire orphaned toasts (#853) * fix: settle orphaned publish operation toasts * test: align publish pane coverage --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Fix usage stats calculation drift (#841) * feat: correct agent usage accounting * fix: update pending usage stats assertion * feat: Fix usage stats calculation drift * feat: Fix usage stats calculation drift * fix: mock usage events in provider tests * fix: stabilize persisted artifact pane test * fix: update delegated Codex usage fixture * fix: mark uncounted usage totals unavailable * fix: harden usage accounting review findings * fix: correct delegated token expectation * fix: align delegated timeline fixture --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Remove legacy Claude-only team mode code (#810) * feat: remove legacy Claude team mode * fix: restore filesystem enforcement derivation * fix: preserve native team runtime after merge * refactor: remove legacy Claude team mode * feat: Remove legacy Claude-only team mode code * feat: Remove legacy Claude-only team mode code * feat: Remove legacy Claude-only team mode code * feat: Remove legacy Claude-only team mode code * fix: reconcile merged Rust call sites * fix: repair legacy team removal test fallout * fix: order tasks feature state migration * fix: remove stale folder context export * fix: stabilize persisted artifact pane test * fix: align workspace review test state * feat: Remove legacy Claude-only team mode code * fix: align agent panel send tests * fix: align plan proposal message tests * fix: align streaming test call signature * feat: Remove legacy Claude-only team mode code --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Fix workspace review deadlock on conflicts (#854) * fix: break workspace review repair deadlock * fix: validate PR fix against workspace HEAD * test: align stale review handoff recovery assertion * test: align workspace review recovery assertions * test: align repair completion error assertion * test: seed active workspace review monitor * test: align stale repair PR status assertion --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Fix harness-aware agent chat delivery (#856) Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Agent Launch Reservation and PR Autofix Recovery Hardening (#851) * fix: harden agent launch reservation recovery * fix: align integration registry test doubles * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * fix: harden agent launch reservation recovery * fix: align integration registry test doubles * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * Shared Agent Runtime Picker and Overrides (#832) * feat: add scoped agent runtime overrides * feat: add scoped agent runtime overrides * fix: bump workspace review migration schema version * fix: refresh stale workspace review fixer receipts * fix: resolve workspace review CI blockers * Block Workspace Review During Unfinished Git Operations (#826) * feat: Block Workspace Review During Unfinished Git Operations * test: seed valid base commit in PR recovery * test: satisfy workspace review patch coverage --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * fix: refresh stale workspace review fixer receipts * fix: complete workspace repair rebase * fix: dedupe workspace review repair helpers * fix: repair runtime override CI fixtures * fix: align runtime picker CI expectations * feat: Reuse provider picker for agent role settings * feat: Shared Agent Runtime Picker and Overrides * fix: isolate reviewer provider test from fast catalog * fix: isolate provider default test from fast catalog * feat: Shared Agent Runtime Picker and Overrides --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * fix: remove duplicate workspace review action * fix: restore PR autofix compilation * fix: expose PR autofix classification to recovery * fix: expose PR autofix issue to recovery * fix: retain stale repair recovery summary * fix: complete stale running agent registry mock * fix: align PR autofix integration fixtures * fix: align queued message test call * fix: make PR supervision recovery claims atomic * fix: align PR supervision regression fixtures * fix: align PR autofix route test with immediate dispatch * feat: Agent Launch Reservation and PR Autofix Recovery Hardening * fix: align plan PR autofix route fixture * test: cover launch recovery ownership branches --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * chore: prepare v0.76.0 daily release * Fix user message text wrapping in agent chat (#858) * feat: Fix user message text wrapping in agent chat * test(visual): update compact split composer baseline for user bubble wrapping fix * feat: Review PR #854 for accuracy (#859) * feat: Show publishing state on commit & publish (#862) * fix: scope legacy team migration FK check to introduced violations (#863) * fix: scope legacy team migration FK check to introduced violations The v20260720140000 legacy Claude team removal validated integrity with a database-wide `pragma_foreign_key_check`. Production never enables `PRAGMA foreign_keys`, so live databases carry orphan rows this migration neither created nor cleans up. Those pre-existing violations were counted as migration damage, so the migration failed, AppState initialization panicked, and the app aborted on every launch with no way to recover. Baseline the violations inside the transaction and gate only on ones the migration introduces. Violations are keyed by constraint rather than rowid so the comparison survives the table rewrites the migration performs, and the error now names the offending child/parent tables. * docs: correct foreign-key enforcement rationale in legacy team migration Foreign keys are enforced in production: libsqlite3-sys builds bundled SQLite with -DSQLITE_DEFAULT_FOREIGN_KEYS=1. Orphan rows accumulate because migrations that rewrite tables disable enforcement, not because it is never enabled. Comments only; behavior unchanged. * Fix delegate rehydration and duplicate widgets (#857) * fix: rehydrate delegates without duplicates * test: cover streaming task rehydration * fix: preserve delegate card during snapshot suppression * test: stabilize terminal publish visual scenario --------- Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> * Compact agent workspace toolbar status * fix: settle workspace reviews after accepted completion (#869) Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> --------- Co-authored-by: Laza Bogdan <lazabogdan@users.noreply.github.com> Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: Implement Commit & Publish header alignment run 2 (#875) * feat: Implement Commit & Publish header alignment run 3 (#877) * feat: Implement Commit & Publish header alignment run 4 (#881) * test(agents): update stale Band-1 toolbar assertions for M1/M2 disclosure The header-alignment polish moved the base ref into the branch accessible name (M1) and made the workspace mode pill borderless (M2), but two assertions in the AgentsArtifactPane integration suite still expected the pre-polish visible text and inline border styles. Assert the base ref via the accessible name and the mode pill via text, accessible name, and absence of inline border styling, mirroring the idiom already used in AgentWorkspaceToolbar.test.tsx. * fix(agents): keep publish sub-tab selection when the pane is already open Clicking the History, Checks or Automation sub-tabs snapped straight back to Changes. handlePublishSubTabChange always routed through onOpenPublish(), which in production resolves to handleOpenPublishPane() with no argument; its default tab is "changes", so it re-requested the changes sub-tab and immediately overrode the selection. Review escaped this because handleOpenReview never calls onOpenPublish. Only route through onOpenPublish()/onTabChange("publish") when the publish artifact tab is not already active, matching the existing handleOpenReview pattern. Also contain the tab strip at narrow widths (min-w-0 overflow-x-auto) so the 5-tab row scrolls instead of pushing the publish pane into horizontal overflow. No visual change at normal widths. Adds a regression test that wires onOpenPublish to the real request loop; it fails against the unfixed source. * test(visual): drive publish History tab and refresh publish snapshots The publish event log moved from the Changes tab into the lazy-mounted History tab, so the visual spec now activates History via the page object before asserting on the event log, scoped to the History panel. Adds History/Automation locators and select helpers to the publish page object. Regenerates the 13 publish-pane snapshots invalidated by the action-bar and tab-band restructure; several were silently stale because their diffs sat within the comparison threshold. * test(visual): refresh terminal publish history snapshot for the tabbed pane Merging main re-baselined this snapshot without the publish header redesign. The diff is confined to the publish pane (action bar reflow plus the Changes/Review/Checks/History tab band); sidebar, composer, and terminal are pixel-identical and all functional assertions pass. * cleanup --------- Co-authored-by: Laza Bogdan <lazabogdan@users.noreply.github.com> Co-authored-by: lazabogdan <6580668+lazabogdan@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
User Impact
Technical Context
agents/ralphx-execution-team-*andagents/ralphx-ideation-team-*definitions and deletes the legacy team-mode frontend modules, tests, and backend/plugin handlers tied to that surface.Risks / Follow-Ups
build/artifacts are now part of the expected committed state, so future changes inplugins/app/ralphx-mcp-serverneed to keep source and generated output aligned.View full plan
Goal
Remove the decommissioned Claude Code Agent Teams implementation end to end while preserving RalphX-native team/delegation behavior for both Claude and Codex harnesses. Per the follow-up decision—“Not interested in keeping HISTORICAL COMPATIBILITY … I’d rather clean it up”—the cleanup also removes legacy-only persisted state, schema fields, deserialization branches, renderers, and compatibility tests rather than retaining inert historical support.
Assumptions:
CoordinationMode::RxNativeTeamplus backend-owneddelegate_start/delegate_wait/delegate_cancelorchestration described indocs/architecture/native-agent-delegation-bridge.md.legacy_claude_teamconversations are rewritten once torx_native_teamso unrelated conversation history remains usable; this is a destructive schema cleanup, not an ongoing compatibility path.ralphx-plugin/ralphx-mcp-server/is not a second implementation or a live symlink: inspection shows only an empty 96-byte npm lockfile. Remove that entire stray root tree while preserving the canonical package atplugins/app/ralphx-mcp-server/.create_team_artifactandget_team_artifactsare used by current RX-native delegated agents and therefore remain available. The nativeTeamIntent,TeamIntentStrategy,TeamMessageTarget, andTeamMessageTargetKindcontracts also remain. By contrast, the unrouted typedpublish_verification_finding/get_verification_findingspath andArtifactType::VerificationFindingmetadata are obsolete fixed-verifier/team-era state and are removed. The preserved artifact writer is not already neutral:handlers/teams/artifacts.rscurrently hard-codescreated_by,author_teammate, and the system-bucket writer asteam-lead; replace those legacy sentinels with backend-owned/system creation plus caller-agent attribution injected by the MCP transport, without adding an author field to the model-facing schema.Repository Evidence And Classification
Delete: Claude-only live implementation
agents/ralphx-{ideation,execution}-team-{lead,member}/**: four Claude-only roles whose prompts use TeamCreate, Claude Task(team_name), SendMessage, and TeamDelete.config/processes.yaml:process_mapping.*.teambranches andteam_constraintspresets/model/tool ceilings.src-tauri/src/infrastructure/agents/claude/agent_config/team_config.rs:TeamMode,TeamConstraints*, teammate plan validation/presets/budgets, env overrides, and team-variant resolution; plus team agent aliases and Claude teammate spawn helpers inclaude_code_client.rs. The provider-neutralProcessMapping/ProcessSlotdefault registry is not deleted.src-tauri/src/application/team_state_tracker.rs,team_service.rs,team_stream_processor.rs,team_events.rs, sibling tests, and incidental wiring through AppState/HTTP/chat factories.src-tauri/src/http_server/handlers/teams/{plan,spawn,spawn_execution,spawn_helpers,session_state}.rs, the corresponding HTTP types/routes, andsrc-tauri/src/commands/team_commands.rs.request_team_plan,request_teammate_spawn,get_team_session_state, andsave_team_session_state, includingteam-plan-handler.tsand focused tests.publish_verification_finding/get_verification_findingshandlers and HTTP DTOs,ArtifactType::VerificationFinding,VerificationFindingMetadata/VerificationFindingGap, and their compatibility tests. Current Plan verification uses exact-artifact proof throughcomplete_plan_verification, not fixed critic artifacts.frontend/src/api/team.ts,stores/teamStore.ts, legacy team hooks/components, chat team status/history UI, Claude-only Solo/Team execution selector, and their tests.team_modeUI feature flag/config/env gate andCLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSwriters/protection.src-tauri/manual_agent_teams_process.txtand documentation that presents Claude Agent Teams as supported RalphX behavior. The text file is an unreferenced manual transcript ofCLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, TeamCreate, ClaudeTask(team_name), SendMessage, and manual teammate relaunch experiments, so it is legacy evidence rather than product documentation.ralphx-plugin/ralphx-mcp-server/package-lock.jsonand now-empty parent directories. The lockfile has an emptypackagesobject and no adjacent manifest or source; the real MCP package remains underplugins/app/ralphx-mcp-server/.Modify: compatibility and shared seams
CoordinationMode, chat send/resumption, frontend conversation schemas, and SQLite constraints currently still admitlegacy_claude_team.HarnessTeamCapabilities, agent capability validation, managed overlay resolution, availability helpers, lane/model/effort resolution, and process mappings still carry Claude-only branches.team_modeormetadata.agent_variant == "team"into the Claude runtime.TeamServiceonly to satisfy old chat-service construction.src-tauri/src/http_server/handlers/teams/artifacts.rsmixes active artifact behavior with dead typed verification-finding behavior inside the legacy team namespace; relocate only active create/get artifact handlers mechanically while preserving their public contract.Keep: current RX-native behavior only
CoordinationMode::RxNativeTeam, native team intents/strategy, capability gates, delegated agent sessions, current task cards, and thedelegate_start/wait/cancelauthorization and transport paths.delegation.allowed_targetsin activeagents/*/agent.yaml,HarnessTeamCapabilities.rx_native_team, and provider-neutral agent-conversation team controls.create_team_artifact,get_team_artifacts, their HTTP contract, theteam-findingsbucket, artifact repository, andArtifactType::{TeamResearch,TeamAnalysis,TeamSummary}because current RX-native agents actively use them.TeamIntent,TeamIntentStrategy,TeamMessageTarget,TeamMessageTargetKind, persistedRxNativeTeamqueue/resume handling, and the current Agent conversation capability UI.ProcessMapping/ProcessSlotregistry consumed by the shared agent spawner for both Claude and Codex; extract it from the legacy-named team config module rather than deleting it.Implementation Sequence
Keep intermediate states compile-safe and prevent a migrated database from being opened by code that still expects removed columns:
TeamService/TeamStateTrackerwiring and implementations after reference search proves native coordination has no dependency on them; mechanically relocate the preserved artifact handlers.Affected Files
Normalize persisted coordination data and schemas after callers are removed
src-tauri/src/infrastructure/sqlite/migrations/that: rewriteschat_conversations.coordination_mode = 'legacy_claude_team'to'rx_native_team'; removes the entireagent_variantkey from valid task metadata while preserving every unrelated metadata key; deletes obsoleteverification_findingartifacts and their dependent relations; normalizes preservedteam_research/team_analysis/team_summarymetadata that still contains the syntheticteam-leadauthor to an explicit backend/system legacy-attribution fallback; rewrites persistedteam-findings.config_jsonto accept only the three preserved artifact types with backend/system writing; dropsteam_messagesbeforeteam_sessions; dropsideation_sessions.team_modeandteam_config_json; and rebuilds the conversation CHECK constraint without the legacy literal.research/debatefields: those fields are discarded fail-closed. Only the explicit conversation-levellegacy_claude_teamvalue is converted torx_native_team, matching the current next-send normalization behavior.team-findingsbucket andteam_research/team_analysis/team_summaryartifacts. Before deletingverification_findingrows, inventory every artifact-id reference, clear retained artifacts' self-FKprevious_version_idwhen it targets a removed finding, and explicitly delete, clear, or assert absence for every other cascading and non-FK dependent pointer so no dangling reference survives. Use the established FK/legacy-alter-table restoration pattern, wrap destructive DML/DDL in an explicit transaction with rollback, recreate and verify dependent indexes/triggers during the CHECK rewrite, runPRAGMA foreign_key_check, and leave no*_new/*_oldtables after success or injected failure.MIGRATIONS, bumpSCHEMA_VERSION, and add focused full-chain and direct migration tests. Do not provide a downgrade path that recreates deleted legacy data.LegacyClaudeTeamfrom the provider-neutral coordination enum insrc-tauri/crates/ralphx-domain/src/entities/team.rs; retain native team intent/mailbox types. Remove the legacy literal fromfrontend/src/types/chat-conversation.ts, API zod schemas/transforms, imports/exports, and fixtures.src-tauri/src/application/chat_service/mod.rs,chat_resumption.rs,agent_capability_validation.rs,managed_team/overlay_resolver.rs,manual_router_config.rs, andmanual_role_default_service.rsafter the database and serializers can no longer produce the legacy variant.Remove Claude-only capability, agent, and process selection
legacy_native_team_toolsfromHarnessTeamCapabilitiesinsrc-tauri/crates/ralphx-domain/src/agents/harness.rs; retainrx_native_team.effective_team_mode_for_harness,harness_supports_team_mode, Claude-only availability helpers, and the team-lead branches inchat_service_helpers.rs,ideation_harness_availability.rs, agent lane/model/effort resolvers, and their tests.agents/ralphx-*-team-*/directories and remove their aliases from Rust andplugins/app/ralphx-mcp-server/src/{agentNames,canonical-agent-metadata}.ts.process_mapping.ideation.team,process_mapping.execution.team, and the entireteam_constraintssection fromconfig/processes.yaml; rewrite its header as the provider-neutral process registry.ProcessMapping,ProcessSlot, canonical/default mapping load/overlay, andresolve_process_agentplus their non-team tests fromagent_config/team_config.rsinto a provider-neutral process-config module used by the shared spawner. DeleteTeamMode,TeamConstraints*, teammate plan validation/presets/budget logic, legacy env overrides, and team-only tests. Preserve default/readonly/chat/history/custom variants and prove Claude and Codex spawner resolution still works.frontend/src/components/PermissionDialog.tsxand update agent-catalog/config validation tests to assert only active canonical agents.Remove legacy activation and Claude spawn behavior
team_mode: bool/AtomicBoolflow from ChatService construction, task transitions, queued/recovered chat starts, ideation verification starts, and Claude command building/resumption.CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSinchat_service_context.rsandprovider_env_file.rs.src-tauri/src/infrastructure/agents/claude/**; preserve the normal Claude interactive process registry used by standard and RX-native chat.agent_variantinput/metadata contract—not only the== "team"branch—from frontend task APIs, Tauri commands, restart/move flows,TaskTransitionService, queued/recovered execution starts, and tests. The migration removes the key regardless of its old value while preserving unrelated task metadata.team_mode/team_config_jsonfrom the domain entity/builder, SQLite repository projections, session creation/linking/inheritance, verification/runtime starts, running-process views, commands/HTTP DTOs, session import/export, frontend API/types/mocks/renderers, and fixtures. Bump the portable ideation export format from schema v1 to v2 and reject v1 imports rather than silently preserving their removed team field; old command/HTTP payload fields receive the normal unknown/unsupported-field behavior of their owning boundary. Do not add a compatibility parser or runtime fallback.targetteammate-routing input and its team-store callers, but preserve the typed nativeteam_message_targetcontract.Remove the legacy control plane before deleting its implementation
request_team_plan,request_teammate_spawn,get_team_session_state, andsave_team_session_statefromplugins/app/ralphx-mcp-server/src/**.handlers/teams/{plan,spawn,spawn_execution,spawn_helpers,session_state}.rs.create_team_artifact/get_team_artifactsand their validation helpers fromhandlers/teams/artifacts.rsinto the existingsrc-tauri/src/http_server/handlers/artifacts/ownership seam (for example a leafteam_artifacts.rsre-exported byartifacts/mod.rs). Preserve/api/team/artifact,/api/team/artifacts/:session_id, model-facing request/response shapes, active MCP tool names,team-findingsstorage, and theteam:artifact_createdevent contract. In the MCP proxy dispatch, inject the canonicalAGENT_TYPEas hidden transport context (not a tool-schema field); validate it backend-side and record it as the active artifact'sauthor_teammate, while the backend/system remains the bucket-authorized writer. Missing non-MCP attribution falls back explicitly tosystem, neverteam-lead.publish_verification_finding/get_verification_findingsfunctions, their HTTP DTOs,ArtifactType::VerificationFinding, metadata structs, bucket allowance, and tests.mcp_tools, process allowlists, canonical metadata, tool schemas, authorization, recovery hints, dispatch branches, and generated declarations together so no prompt mentions a removed tool and no registered removed tool is left unauthorized or unreachable.npm run buildinplugins/app/ralphx-mcp-serverand commit the regeneratedbuild/**output required by package policy.Unwind the old live team runtime and persistence wiring
TeamService/TeamStateTrackerfrom chat streaming/background send, startup cleanup, AppState, HTTP state,lib.rs, app/server boot, runtime state registration, automation, ticketing, question commands, unified commands, and their fixtures.team_state_tracker.rs,team_service.rs,team_stream_processor.rs,team_events.rs,team_commands.rs, and focused tests once no caller remains.team_sessionsandteam_messagesin the new forward migration after all readers/writers are removed; leave the original historical migration file untouched.Remove the Claude-only frontend workflow
frontend/src/api/team.ts,stores/teamStore.ts, old team event/action/status/keyboard hooks, TeamContextBar/filter/cards/message/plan/system components, thecomponents/Team/**split-pane view, legacy running-processTeamProcessGroup/TeammateProgressBar, and their tests after their imports are removed.IntegratedChatPanel.tsx,ChatMessageList.tsx, global/pane lifecycle hooks, running-process views, task-detail views, andApp.tsxnavigation so they no longer hydrate, target, or render the old team service; preserve current Agent-conversation native delegation cards and typed native mailbox controls.TaskCreate/TaskUpdate/TaskListwidgets fromcomponents/Chat/tool-widgets/TeamTaskWidgets.tsxinto a neutralTaskWidgets.tsxleaf and preserve their registry entries/lazy-loading behavior. Delete only the Claude Team lifecycleTeamCreate/TeamDeletewidgets and registry entries.agent_variant: "team".FeatureFlags.teamMode,RALPHX_UI_TEAM_MODE,useTeamModeAvailability, and the corresponding settings/config schema. Preserve the separate currentagentConversationTeamfeature/capability.research/debatemetadata, including the legacy PlanDisplay team summary/debate sections and IdeationSessionCard badge. Preserve generic artifact-pane rendering and activeTeamResearch/TeamAnalysis/TeamSummarystorage based on current artifact schemas, not a historical compatibility fallback.Remove repository detritus and update documentation
ralphx-plugin/tree, currently onlyralphx-plugin/ralphx-mcp-server/package-lock.json; do not move, merge, or regenerate it. Confirmplugins/app/ralphx-mcp-server/{package.json,package-lock.json,src/**,build/**}remains the sole canonical package and continues to build.ralphx-plugin/ralphx-mcp-server/package-lock.jsonliteral insrc-tauri/crates/ralphx-domain/src/entities/agent_conversation_issue_tests.rsas an intentional regression fixture: it proves issue canonicalization deduplicates reports of this accidental setup artifact and is not a runtime dependency on the deleted path. Classify that fixture explicitly in the final reference audit rather than deleting the guard.src-tauri/manual_agent_teams_process.txtas captured legacy experiment output; no replacement or archival copy is needed because version control provides history.CLAUDE.md,.claude/rules/ideation-verification-architecture.md,.claude/rules/orchestrator-ideation-workflows.md,.claude/rules/synthetic-failure-archetypes.md,.claude/rules/delegation-topology.md,.claude/rules/multi-harness.md,.claude/rules/agent-mcp-tools.md,docs/architecture/harness-specific-agent-config.md,docs/architecture/ideation-pipeline.md,docs/features/cross-project.md, active agent catalog docs, and user-facing team documentation to state that team orchestration is RalphX-native and provider-neutral and to remove deleted agent path triggers.docs/architecture/agent-teams-system-card.md,docs/architecture/agent-teams-context-relaunch.md,docs/architecture/agent-teams-context-relaunch-modifications.md,src-tauri/manual_agent_teams_process.txt,plugins/app/ralphx-mcp-server/TEAM_TOOLS_TESTS.md, and stale Claude Team sections/references; rely on version control for historical archaeology rather than keeping compatibility documentation in the live tree.docs/architecture/native-agent-delegation-bridge.mdand update cross-links to it.LegacyClaudeTeam, TeamCreate/TeamDelete, experimental-agent-teams env, team-lead agent, spawn/session-state endpoint,VerificationFindingcontract, legacy feature flag, taskagent_variantcontract, or ideationteam_mode/team_config_jsoncontract.Data / State
team_mode,team_config_json, or taskagent_variant; remove these writers before deleting the readers and storage.team_messagesthenteam_sessions; drop ideation activation columns; rebuild/narrow the conversation constraint; verify dependent schema/FKs; commit. Failure at any stage rolls back data/schema changes and restores PRAGMA state.TeamResearch/TeamAnalysis/TeamSummaryartifacts and theteam-findingsbucket remain because they are active RX-native state. ObsoleteVerificationFindingrows/types are deleted, persisted bucket configuration is narrowed, and the irrecoverable historicalteam-leadplaceholder on preserved artifact metadata is normalized tosystem; newly published artifacts carry the MCP transport's validated canonical caller agent. Field-by-field call-site evidence, not “team” naming, decides whether artifact data is kept or removed.Agent And MCP Surface
delegate_start,delegate_wait, anddelegate_cancel; the backend owns delegated session identity, dispatch, settlement, and terminal state.team-leadauthor.team_message_targetrouting and delete the legacy string teammatetarget; preservedelegate_start/wait/canceland remove the old plan/spawn/session-state tools..claude/rules/agent-mcp-tools.md.UI / UX
Progression Scenarios
RxNativeTeamfor the chosen supported harness → backend runs native delegates → task cards/events settle normally.agent_variantkey, ideationteam_mode/team_config_jsoncolumns, obsolete verification-finding artifacts, and legacy session/message tables → post-upgrade schemas and APIs contain no compatibility reader or selectable legacy mode, while unrelated task metadata and active team artifacts remain.create_team_artifact→ preserved MCP/HTTP artifact path stores and retrieves it successfully after handler relocation.Constraints
.claude/rules/delegation-topology.md,multi-harness.md,agent-mcp-tools.md,stateful-workflow-review.md, andtask-state-machine.md.TaskTransitionServicepaths; do not add directinternal_statuswrites.apply_patchonly for wiring/fix-up during implementation.cargo fmt.Avoid
ralphx-plugin/, neverplugins/app/ralphx-mcp-server/. Do not remove the issue-canonicalization regression fixture merely because it contains the deleted path as inert test data.Decisions
rx_native_teamonce, matching existing next-send semantics, then remove the legacy enum/literal everywhere outside immutable migration history.agent_variantand ideationteam_mode/team_config_jsoncontracts from writers, readers, storage, DTOs, imports/exports, serializers, and projections; do not tolerate them through dedicated compatibility code.legacy_claude_teamrows torx_native_team; discard old ideation research/debate activation fail-closed, drop legacy session/message tables, and scrub deprecated activation metadata in the forward migration.create_team_artifact/get_team_artifacts,TeamResearch/TeamAnalysis/TeamSummary, and native team intent/mailbox contracts; relocate artifact handler ownership but defer public renaming. Remove the dead fixed-verifierVerificationFindingcontract.Proof Obligations
LegacyClaudeTeam,legacy_claude_team, TeamCreate/TeamDelete,CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, team-lead/team-member agent IDs,request_teammate_spawn,request_team_plan, team session-state tools,VerificationFinding, taskagent_variant, ideationteam_mode/team_config_json, or the legacy UI feature flag. Only immutable historical migration text, vendor reference material, or documented release history may retain legacy vocabulary.team_sessions/team_messagesand ideation activation columns, preserves active team artifacts/bucket plus dependent schema objects, and leaves a schema that rejects the legacy coordination literal while acceptingsolo,rx_native_team,rx_native_workflow, andcodex_native_ultra.VerificationFindingcontract, or compatibility variants; ideation export schema v2 omits them and rejects v1, and stale legacy payloads cannot activate Claude teammate spawning or set the experimental env.teamvariants and constraints are gone.rx_native_teamcapability is true, and no branch special-cases Claude for native coordination.team-lead, missing transport attribution falls back tosystem, the persistedteam-findingsbucket has noverification_findingorteam-leadallowance, and preserved active artifacts contain no stale synthetic legacy author.ralphx-plugin/andsrc-tauri/manual_agent_teams_process.txtare absent from the repository, whileplugins/app/ralphx-mcp-server/still contains the canonical manifest, lockfile, source, and regenerated build. The only permitted deleted-root-path reference is the explicit issue-canonicalization regression fixture.Testing Strategy
Use TDD for preserved behavior and desired-state guards: first add focused tests that fail because the migration has not normalized/deleted legacy state, current schemas still accept legacy inputs, or native behavior lacks a preservation assertion; then remove the legacy code. Delete tests whose only purpose was exercising removed implementations rather than replacing them with line-execution or compile-failure tests.
Rust
agent_variantkey removal with unrelated metadata preserved, obsolete verification-artifact deletion, cascading/non-FK dependency cleanup, retained-artifactprevious_version_idrepair, persistedteam-findingsconfig narrowing, syntheticteam-leadmetadata normalization, active team-artifact preservation, child-before-parent table removal, narrowed CHECK behavior, index/trigger/FK preservation, idempotency/retry safety, and injected-failure rollback with no leftover rebuild tables.agent_variant, ideation export v2 plus v1 rejection, typed native mailbox routing, shared Claude/Codex process resolution, native delegation settlement, and current verification exact-proof behavior..claude/rules/rust-test-execution.md, using root-libcargo test ... --features test-utils <single-filter>andcargo nextest run --test <suite> -E 'test(<focused-name>)'for integration suites.rustfmt --edition 2021 --check <touched-leaf.rs>for every modified Rust leaf file; never run it onmod.rsroots.python3 scripts/check-layering.pybecause handler/module ownership and runtime wiring change.package_lock_drift_dedupes_across_agent_wordingRust test to preserve detection/deduplication of reports naming either the canonical lockfile or the deleted accidental root path, and assert by repository path inspection that the stray tree and manual transcript are gone.Frontend
cd frontend && npm run test:run -- <touched test files>, thennpm run typecheck; run targeted lint only for touched frontend files if supported.MCP plugin
workflow-tools, canonical metadata, routing, and artifact-dispatch tests to assert removed tools are absent, preserved artifact/delegation tools remain, caller identity is injected fromAGENT_TYPErather than accepted from model arguments, unknown/missing attribution follows the specified validation/fallback behavior, and no artifact writer emitsteam-lead.cd plugins/app/ralphx-mcp-server && npm test -- <focused test files>.cd plugins/app/ralphx-mcp-server && npm run buildand verify the generatedbuild/**diff contains the same removals.Final false-success review
Before handoff, follow
.claude/rules/big-pr-review-checklist.mdand.claude/rules/stateful-workflow-review.md: check migration ordering/rollback, absence of stale persisted modes and compatibility readers, event ordering, restart recovery, capability/prompt/schema drift, artifact route preservation, single-writer ownership, and scope leakage. Review the complete diff againstHEADand report any unrelated pre-existing failures without expanding scope.Generated by RalphX