Skip to content

refactor: remove legacy orchestration skill artifacts#295

Merged
mattleaverton merged 35 commits intomainfrom
codex/mcp-orchestration-cleanup
Apr 10, 2026
Merged

refactor: remove legacy orchestration skill artifacts#295
mattleaverton merged 35 commits intomainfrom
codex/mcp-orchestration-cleanup

Conversation

@danshapiro
Copy link
Copy Markdown
Owner

Summary

  • remove the legacy default Freshell orchestration plugin fallback from SdkBridge and strip stale saved references to that removed path
  • make the freshell MCP tool help/instructions the canonical orchestration reference, including caller-default rename support for rename-tab and rename-pane
  • delete obsolete Freshell orchestration skill/plugin wrapper files and update repo docs/plans to reference MCP instead of the old skill path

Testing

  • npm run test:vitest -- --run test/unit/shared/settings.test.ts
  • npm run test:vitest -- --config vitest.server.config.ts --run test/unit/server/mcp/freshell-tool.test.ts test/unit/server/config-store.test.ts test/unit/server/sdk-bridge.test.ts test/unit/server/ws-handler-sdk.test.ts

Notes

  • explicit non-Freshell Claude SDK plugins remain supported; this only removes the old implicit Freshell orchestration wrapper path
  • full npm check was not run

Dan Shapiro added 30 commits March 31, 2026 14:38
Priority 3: Integration test for rendering coalesced tool messages
Priority 4: Edge case tests (empty content, thinking block, session not found)
Priority 5: Invariant tests (message order, model preserved, status updated)
R1 (critical): Add main(argv) function and if __name__ block to tool_coalesce.py
- Script can now be run standalone with --help and other CLI args
- Follows same pattern as smoke_freshell.py

R2 (major): Extend test 4.4 to verify coalescing with malformed lines
- Add new test 'coalesces tool messages even when malformed lines are interspersed'
- Verifies that tool-only assistant messages are still coalesced correctly
  when malformed JSON lines appear between them
Revert src/components/TerminalView.tsx to match main branch.
The handleImagePaste changes (17 lines) were from an unrelated
PR that was merged into this branch accidentally.
…ser state

Show thinking, Show tools, and Show timecodes were stored per-pane in
AgentChatPaneContent. They now live in LocalSettings (browser-local
localStorage), shared across all agent chat panes and persisted across
page loads. All three default to off (false).
… settings

E2e tests now use preloadedState with showTools: true where expanded
tools are expected. CollapsedTurn defaults updated to false. Comments
updated to reflect new per-machine defaults.
Migrate showThinking/showTools/showTimecodes from persisted agent-chat
pane content into browser-local preferences on module load, so existing
users keep their settings after the per-pane → per-machine move.
- SettingsView.agent-chat.test.tsx: 9 tests for Workspace toggles
  (defaults, preloaded state, toggle on/off, local-only persistence)
- browserPreferencesPersistence.test.ts: 4 round-trip tests for
  agentChat.showThinking/showTools/showTimecodes localStorage persistence
…history plan

- Task 4 dedup test now verifies dedup by checking ArrowDown returns to
  empty draft after two Ups (proves only 1 entry exists, not 2)
- Task 4 e2e test imports changed from relative to @/ aliases
- Task 2 hook test import now includes pushEntry
- Removed redundant await import correction note in Task 2
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 13321571ae

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +91 to 92
push(trimmed)
onSend(trimmed)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Preserve send flow when input-history persistence fails

handleSend calls push(trimmed) before onSend(trimmed), and push writes to localStorage without guarding setItem errors. If storage is unavailable (e.g., quota exceeded/private mode), this throws and the prompt is never sent, which breaks agent chat input for affected users. Make history persistence best-effort (catch write failures or avoid blocking onSend).

Useful? React with 👍 / 👎.

Comment on lines +7 to +8
return normalized === '.claude/plugins/freshell-orchestration'
|| normalized.endsWith('/.claude/plugins/freshell-orchestration')
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Normalize trailing slash in legacy plugin path matcher

The legacy plugin filter only matches exact .../.claude/plugins/freshell-orchestration suffixes, so paths saved with a trailing slash are not recognized as legacy. After this commit removes that plugin directory, those stale paths can still be passed to the SDK and may break session startup. Normalize trailing slashes before comparison to ensure stale references are reliably stripped.

Useful? React with 👍 / 👎.

mattleaverton and others added 2 commits April 10, 2026 15:34
…ined target error messages

- normalizePluginPath no longer lowercases paths, preventing false
  matches on case-sensitive filesystems (Linux)
- rename-tab/rename-pane show "No active tab/pane found" instead of
  "Tab 'undefined' not found" when target is omitted

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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