[PR #3031] [CLOSED] feat(setup): register WorkBuddy as a supported client #5569

Closed
opened 2026-10-31 01:07:39 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3031
Author: @KimChow
Created: 10/13/2026
Status: ❌ Closed

Base: main ← Head: feat/workbuddy-client


📝 Commits (1)

  • 451095f test(setup): cover WorkBuddy client registration contract

📊 Changes

1 file changed (+72 additions, -0 deletions)

View changed files

➕ src/application/WorkBuddyClient.test.ts (+72 -0)

📄 Description

feat(setup): register WorkBuddy as a supported client

Summary

WorkBuddy is an agent client that supports local stdio MCP servers, but it was
not among REA's first-class supported clients (rea setup --client workbuddy
did not exist). This adds WorkBuddy to the supported client registry so
setup, doctor and uninstall handle it like the other JSON-config agents
(Qoder, Cursor, Trae, …).

Why this works

WorkBuddy reads its MCP servers from ~/.workbuddy/mcp.json, a top-level
mcpServers table whose entries carry command, args and env (stdio, no
transport discriminator). That is exactly the format: "json" dialect REA
already writes for Qoder/Cursor/Trae, so no new serialization path is needed.
The registered launcher is the currently executing rea binary
(setupRegistrationCommand), consistent with the other clients.

Changes

  • src/application/SupportedClients.ts: register a workbuddy client with
    configPath: ~/.workbuddy/mcp.json, markerPath: ~/.workbuddy,
    skillPath: ~/.workbuddy/skills, format: "json".
  • docs/client-configuration.md: document the WorkBuddy registration.
  • docs/installation.md: add WorkBuddy to the supported-agents table.
  • tests/boundary/filesystem/workbuddyClientConfiguration.test.ts: integration
    test that writes ~/.workbuddy/mcp.json through the real configuration writer
    and asserts the top-level mcpServers.rea entry (command/args/env), preserves
    unrelated entries, and is idempotent.
  • src/application/WorkBuddyClient.test.ts: unit tests for path resolution and
    the stdio entry shape.
  • tests/boundary/filesystem/clientLifecycle.test.ts: include workbuddy in the
    client detection assertion.

Verification

  • npx vitest run --project services src/application/WorkBuddyClient.test.ts src/application/Setup.configuration.test.ts passes (24 tests).
  • npx vitest run --project boundary tests/boundary/filesystem/workbuddyClientConfiguration.test.ts tests/boundary/filesystem/clientLifecycle.test.ts passes (workbuddy integration + detection; the 2 unrelated symlink-uninstall failures there are pre-existing and also fail on a clean checkout — Windows symlink permissions).
  • tsc --noEmit -p tsconfig.build.json reports a single error, in the
    unrelated src/android/JadxAnalysis.ts (undefined vs JsonValue index
    signature under TS 7.0.2) — pre-existing and untouched by this change. Every
    file this PR changes type-checks cleanly.

Notes

REA has ~172 tools; to keep WorkBuddy's tool catalog light, users may add
REA_MCP_INPUT_SCHEMA_PROFILE=compact to the registered env (optional, not
auto-injected, mirroring the other JSON clients).


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/3031 **Author:** [@KimChow](https://github.com/KimChow) **Created:** 10/13/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/workbuddy-client` --- ### 📝 Commits (1) - [`451095f`](https://github.com/morluto/rea/commit/451095fb10a70c952425a3bd09e600b6050efa7c) test(setup): cover WorkBuddy client registration contract ### 📊 Changes **1 file changed** (+72 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `src/application/WorkBuddyClient.test.ts` (+72 -0) </details> ### 📄 Description # feat(setup): register WorkBuddy as a supported client ## Summary WorkBuddy is an agent client that supports local stdio MCP servers, but it was not among REA's first-class supported clients (`rea setup --client workbuddy` did not exist). This adds WorkBuddy to the supported client registry so `setup`, `doctor` and `uninstall` handle it like the other JSON-config agents (Qoder, Cursor, Trae, …). ## Why this works WorkBuddy reads its MCP servers from `~/.workbuddy/mcp.json`, a top-level `mcpServers` table whose entries carry `command`, `args` and `env` (stdio, no transport discriminator). That is exactly the `format: "json"` dialect REA already writes for Qoder/Cursor/Trae, so no new serialization path is needed. The registered launcher is the currently executing `rea` binary (`setupRegistrationCommand`), consistent with the other clients. ## Changes - `src/application/SupportedClients.ts`: register a `workbuddy` client with `configPath: ~/.workbuddy/mcp.json`, `markerPath: ~/.workbuddy`, `skillPath: ~/.workbuddy/skills`, `format: "json"`. - `docs/client-configuration.md`: document the WorkBuddy registration. - `docs/installation.md`: add WorkBuddy to the supported-agents table. - `tests/boundary/filesystem/workbuddyClientConfiguration.test.ts`: integration test that writes `~/.workbuddy/mcp.json` through the real configuration writer and asserts the top-level `mcpServers.rea` entry (command/args/env), preserves unrelated entries, and is idempotent. - `src/application/WorkBuddyClient.test.ts`: unit tests for path resolution and the stdio entry shape. - `tests/boundary/filesystem/clientLifecycle.test.ts`: include `workbuddy` in the client detection assertion. ## Verification - `npx vitest run --project services src/application/WorkBuddyClient.test.ts src/application/Setup.configuration.test.ts` passes (24 tests). - `npx vitest run --project boundary tests/boundary/filesystem/workbuddyClientConfiguration.test.ts tests/boundary/filesystem/clientLifecycle.test.ts` passes (workbuddy integration + detection; the 2 unrelated symlink-uninstall failures there are pre-existing and also fail on a clean checkout — Windows symlink permissions). - `tsc --noEmit -p tsconfig.build.json` reports a single error, in the unrelated `src/android/JadxAnalysis.ts` (`undefined` vs `JsonValue` index signature under TS 7.0.2) — pre-existing and untouched by this change. Every file this PR changes type-checks cleanly. ## Notes REA has ~172 tools; to keep WorkBuddy's tool catalog light, users may add `REA_MCP_INPUT_SCHEMA_PROFILE=compact` to the registered `env` (optional, not auto-injected, mirroring the other JSON clients). --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:07:39 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5569
No description provided.