[PR #2414] feat(setup): support private Claude Code project registrations #5210

Open
opened 2026-10-31 01:04:50 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/2414
Author: @dev-zaib
Created: 10/12/2026
Status: 🔄 Open

Base: main ← Head: codex/2187-claude-local-registration


📝 Commits (8)

  • 5e93b2d feat(setup): support private Claude Code project registrations
  • d94b7e7 fix(setup): preserve project provenance through shared registration inspection
  • 46762d3 test(setup): expect re-enable guidance for disabled Claude entries
  • e4ec49a fix(setup): preserve local scope across package view integration
  • 2727235 fix(setup): generate Claude remediation from registration scope
  • d94f657 chore: merge main into PR #2414
  • aa2e7c2 Merge branch 'main' into codex/2187-claude-local-registration
  • 5d0264e fix(setup): address project scope review and integrate main

📊 Changes

17 files changed (+1934 additions, -97 deletions)

View changed files

📝 docs/installation.md (+35 -0)
➕ src/application/ClaudeCodeProjectDirectory.ts (+163 -0)
📝 src/application/ClientConfigurationDocument.shape.test.ts (+110 -1)
📝 src/application/ClientConfigurationDocument.ts (+115 -3)
📝 src/application/ClientConfigurationFiles.ts (+83 -4)
📝 src/application/ClientRegistrationStatus.ts (+94 -18)
📝 src/application/Doctor.ts (+4 -0)
📝 src/application/SetupClientConfiguration.ts (+27 -2)
📝 src/application/SetupHost.ts (+27 -3)
📝 src/application/SetupPlan.ts (+12 -6)
📝 src/application/SupportedClients.ts (+2 -0)
📝 src/application/Uninstall.ts (+39 -10)
📝 src/cli/setupCommands.ts (+118 -47)
📝 src/doctorRuntime.ts (+2 -0)
📝 tests/acceptance/setup/clientConfigurationDiagnosticsCli.test.ts (+319 -0)
📝 tests/boundary/filesystem/clientConfigurationTransactions.test.ts (+129 -0)
📝 tests/boundary/filesystem/clientRegistrationStatus.test.ts (+655 -3)

📄 Description

Closes #2187.

Claude Code setup currently registers REA for every project. rea setup --client claude_code --scope local [--project DIR] now writes only the selected private project registration. Its plan identifies the project and profile, and local setup skips personal skills and Hopper. Setup and uninstall retain their user-scope defaults.

Doctor checks the current project's effective registration, supports --project DIR, and reports source scope and project context. rea uninstall --scope local [--project DIR] removes only the owned entry in that project, preserving peer servers, user registrations, other projects, personal skills and shared data. Writes reuse backups, readback verification and rollback.

The parser selects local data before interpreting unrelated global tables. Physical Git roots and worktree metadata select the project; exact native Windows keys preserve inactive aliases. Unresolved project identity fails explicitly. Shared .mcp.json and managed-policy registrations are outside this change.

Latest update: 5d0264e66 merges main 70cd4cbfb, resolves integration conflicts, rejects empty local client selection and preserves local guidance for package-version drift. The review response explains the findings, fixes and native evidence for retaining exact drive casing and Git pointer paths.

Validation on the latest revision (Windows, Node 24.18.0/npm 11.16.0):

  • Two focused runs across 15 files: 258 passed, 3 skipped, 2 failed. All 19 compiled configuration CLI tests passed. Both failures reproduce in an unchanged main 70cd4cbfb checkout: Doctor's canonical Hopper install fixture and Claude Desktop's directory-symlink EPERM.
  • Typecheck, lint, formatting, knip, metadata, module boundaries, architecture guards, test discovery, generated-doc/license checks and five README consistency tests passed. Pre-push check passed.
  • Native Claude Code 2.1.296: linked-worktree setup/doctor/uninstall, byte-idempotence, peer preservation, inactive drive-case aliases and separate Git directories passed in isolated profiles. Native Windows npx.cmd/bunx.cmd launch tests passed.
  • npm pack --dry-run passed (1,665 entries).

The full suite, full package verifiers, authenticated Claude model use and Linux/macOS verification were not run for this revision. Earlier OCR reviews ran; further OCR remains skipped at the user's request after the configured account returned HTTP 402. No personal Claude profile was edited during verification.


🔄 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/2414 **Author:** [@dev-zaib](https://github.com/dev-zaib) **Created:** 10/12/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `codex/2187-claude-local-registration` --- ### 📝 Commits (8) - [`5e93b2d`](https://github.com/morluto/rea/commit/5e93b2d9789d7f52f9ddcd92ec6f2e56f1560ce2) feat(setup): support private Claude Code project registrations - [`d94b7e7`](https://github.com/morluto/rea/commit/d94b7e79262bc5cb37aa5501e0c3113d8b21b958) fix(setup): preserve project provenance through shared registration inspection - [`46762d3`](https://github.com/morluto/rea/commit/46762d346946412798eed18d463dc3f2238fd11d) test(setup): expect re-enable guidance for disabled Claude entries - [`e4ec49a`](https://github.com/morluto/rea/commit/e4ec49a9d839eeb1dd2bffa215e7489e27b1a3e8) fix(setup): preserve local scope across package view integration - [`2727235`](https://github.com/morluto/rea/commit/27272352b6e5e377fb2868bccc5637334d4995f9) fix(setup): generate Claude remediation from registration scope - [`d94f657`](https://github.com/morluto/rea/commit/d94f657ba0899e2c2fcdafe19b768cbd2bdc37f7) chore: merge main into PR #2414 - [`aa2e7c2`](https://github.com/morluto/rea/commit/aa2e7c23d5dbb99f8c2967f7b4eb07d9d97373a2) Merge branch 'main' into codex/2187-claude-local-registration - [`5d0264e`](https://github.com/morluto/rea/commit/5d0264e66cf8e5b62c107d5ccf4e289e29d82cc4) fix(setup): address project scope review and integrate main ### 📊 Changes **17 files changed** (+1934 additions, -97 deletions) <details> <summary>View changed files</summary> 📝 `docs/installation.md` (+35 -0) ➕ `src/application/ClaudeCodeProjectDirectory.ts` (+163 -0) 📝 `src/application/ClientConfigurationDocument.shape.test.ts` (+110 -1) 📝 `src/application/ClientConfigurationDocument.ts` (+115 -3) 📝 `src/application/ClientConfigurationFiles.ts` (+83 -4) 📝 `src/application/ClientRegistrationStatus.ts` (+94 -18) 📝 `src/application/Doctor.ts` (+4 -0) 📝 `src/application/SetupClientConfiguration.ts` (+27 -2) 📝 `src/application/SetupHost.ts` (+27 -3) 📝 `src/application/SetupPlan.ts` (+12 -6) 📝 `src/application/SupportedClients.ts` (+2 -0) 📝 `src/application/Uninstall.ts` (+39 -10) 📝 `src/cli/setupCommands.ts` (+118 -47) 📝 `src/doctorRuntime.ts` (+2 -0) 📝 `tests/acceptance/setup/clientConfigurationDiagnosticsCli.test.ts` (+319 -0) 📝 `tests/boundary/filesystem/clientConfigurationTransactions.test.ts` (+129 -0) 📝 `tests/boundary/filesystem/clientRegistrationStatus.test.ts` (+655 -3) </details> ### 📄 Description Closes #2187. Claude Code setup currently registers REA for every project. `rea setup --client claude_code --scope local [--project DIR]` now writes only the selected private project registration. Its plan identifies the project and profile, and local setup skips personal skills and Hopper. Setup and uninstall retain their user-scope defaults. Doctor checks the current project's effective registration, supports `--project DIR`, and reports source scope and project context. `rea uninstall --scope local [--project DIR]` removes only the owned entry in that project, preserving peer servers, user registrations, other projects, personal skills and shared data. Writes reuse backups, readback verification and rollback. The parser selects local data before interpreting unrelated global tables. Physical Git roots and worktree metadata select the project; exact native Windows keys preserve inactive aliases. Unresolved project identity fails explicitly. Shared `.mcp.json` and managed-policy registrations are outside this change. Latest update: 5d0264e66 merges main 70cd4cbfb, resolves integration conflicts, rejects empty local client selection and preserves local guidance for package-version drift. The [review response](https://github.com/morluto/rea/pull/2414#issuecomment-6184424021) explains the findings, fixes and native evidence for retaining exact drive casing and Git pointer paths. Validation on the latest revision (Windows, Node 24.18.0/npm 11.16.0): - Two focused runs across 15 files: **258 passed, 3 skipped, 2 failed**. All 19 compiled configuration CLI tests passed. Both failures reproduce in an unchanged main 70cd4cbfb checkout: Doctor's canonical Hopper install fixture and Claude Desktop's directory-symlink EPERM. - Typecheck, lint, formatting, knip, metadata, module boundaries, architecture guards, test discovery, generated-doc/license checks and five README consistency tests passed. Pre-push check passed. - Native Claude Code 2.1.296: linked-worktree setup/doctor/uninstall, byte-idempotence, peer preservation, inactive drive-case aliases and separate Git directories passed in isolated profiles. Native Windows npx.cmd/bunx.cmd launch tests passed. - npm pack --dry-run passed (1,665 entries). The full suite, full package verifiers, authenticated Claude model use and Linux/macOS verification were not run for this revision. Earlier OCR reviews ran; further OCR remains skipped at the user's request after the configured account returned HTTP 402. No personal Claude profile was edited during verification. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
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#5210
No description provided.