Merged
Conversation
plugin/build-bundle.sh - Claude Desktop's Local-uploads loader rejects flat zips (everything at archive root) with "wrong format". Rebuild the bundle by staging the plugin into a `reva-turbo/` directory first and zipping that — the archive now contains `reva-turbo/.claude-plugin/plugin.json`, which is what the uploader expects. - Move from `zip --exclude` to `rsync` for the staging copy so dotfiles (`.claude-plugin/`, `.claude/settings.json`) land cleanly and macOS AppleDouble cruft (`._*`, `__MACOSX`) is scrubbed before archiving. - Print top-level entries after build as a sanity check. README.md - Correct skill count: 48, not 46. Drop the stale "20 commands" claim (no `commands/` dir exists — the plugin ships skills only). - Update example router URL to the real Railway-assigned shape (`mcp-router-production-*.up.railway.app`); the `reva-ops.up...` example never existed. - Rework the Rev A customizations section to match what reva.py actually seeds now: 8 custom fields with concrete names, explain why JSON-shaped payloads ride as `text` (Nakatomi's field_type set is scalar-only), name the full 12-stage pipeline sequence. - Fix the repository-layout tree: `railway/template.yaml` is reference- only (not executable), call that out; drop the "3 plugins" phrasing (the DBs are Railway-managed *plugins* in Railway's terminology but calling them that here conflates them with the Claude plugin); list docs/ contents accurately (ARCHITECTURE_V2.md and AUTH.md both exist). - Point plugin-install instructions at Claude Desktop's actual menu and tell users not to pre-unzip the bundle (the top-level dir is what Desktop expects to see). - Add a pointer to the Railway GitHub App one-time install flow, which is the main admin-side surprise on first deploy. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
No plugin code change — 2.0.1 exists purely so the GitHub Release asset name (reva-turbo-2.0.1.zip) differs from 2.0.0. Users who hit the "wrong format" upload error on 2.0.0 can tell from the filename alone they're getting a different bundle. Also corrects the manifest's skill count (46 → 48) to match reality. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Claude Desktop rejected 2.0.1 with "Plugin validation failed". Root
cause: Desktop's plugin.json schema for `mcpServers` only accepts
command-based (stdio) entries. My `{type:"http", url:..., headers:...}`
shape is valid in ~/.claude.json (Claude Code CLI) but not in a plugin
manifest.
Fix: wrap the remote router behind npx mcp-remote, the standard stdio↔
HTTP-MCP bridge. mcp-remote reads the URL and `--header` argv and
proxies MCP frames to our FastMCP endpoint.
```
"mcpServers": {
"reva": {
"command": "npx",
"args": ["-y", "mcp-remote",
"${user_config.mcp_url}",
"--header", "Authorization: Bearer ${user_config.api_key}"]
}
}
```
The `${user_config.*}` placeholders are what Desktop prompts the user
for on enable, so the bearer token never lands in plaintext config —
it flows through the plugin's userConfig vault on each spawn.
Also promote node >= 18 from optional to required in `requirements`
(it's on the critical path now — without it, `npx mcp-remote` can't
run and the user sees no tools).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Before this change, a new PM's first run at Rev A required an 8-section local wizard (company, partners, shipping, documents, voice, …) even though every value was identical across PMs and already lived on the router. PMs also had to re-seed the Manufacturing RFQ pipeline per workspace because /signup dropped them in an empty personal space. Four structural fixes so a non-technical PM gets from zip install to working engine in one question: 1. Server-side company profile. Seed publishes the Rev A company profile, escalation matrix, 5-role skill map, and memory taxonomy into workspace.data. The router exposes them via three new MCP tools: reva_whoami, reva_get_company_profile, reva_get_workspace_config. Plugin pulls on first run and caches to ~/.reva-turbo/state/. 2. Role-only first-run. revmyengine is now server-driven: call reva_whoami, ask ONE question (PM / sales / compliance / C-level / eng), call reva_set_user_role, done. The legacy 8-section wizard is kept but marked admin-only. New /role, /refresh, /connected inline commands expose the server config surface. 3. reva_set_user_role escalates through the router's admin token so regular member PMs can self-assign a role without admin creds (Nakatomi's PATCH /workspace is owner/admin-only). 4. cross.py /memory/link call was hitting the wrong endpoint (/memory-links) with the wrong field names (entity_type/entity_id/ memory_id/summary). Fixed to /memory/link with correct schema (connector/external_id/crm_entity_type/crm_entity_id/note/data). reva_remember_about_entity now actually works; the Nakatomi endpoint doesn't require connector registry membership for link storage. Signup UX: - 3-step progress indicator (mint key → install plugin → run engine). - Post-signup shows the GitHub Releases download link and the exact mcp_url to paste into Claude Desktop's plugin config. - Explicit hygiene warning: remove any legacy standalone Nakatomi or AutoMem MCP connectors — the plugin bundles both under prefixed tool names (crm_*/mem_*/reva_*) and duplicates surface raw unprefixed tools that break intent routing. Plugin bumps to 2.1.0 (description now reflects server-driven onboarding). Build-bundle's top-level-entries reporter fixed — the file-count line was leaking into the summary when the archive had many nested files. Verified against production: - Router advertises 28 tools (24 original + 4 new). - Test PM signup → lands in workspace "reva", sees all 28 tools. - reva_set_user_role from a member token updates workspace.data and subsequent reva_whoami returns the new role (needs_role → false). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Removes the Desktop-Settings hunt that non-tech PMs kept tripping on.
The plugin now self-configures from a pasted nk_... key:
- New bin/reva-mcp-launch.sh replaces ${user_config.*} substitution.
Reads creds from ~/.reva-turbo/state/mcp-credentials.env, falls back
to the baked-in Rev A Railway URL. Desktop no longer prompts for
anything on plugin enable.
- revmyengine preflight rewritten: literal signup URL, three-beat
script (mint → /connect in chat → restart), new /connect command
that validates against /auth/me before saving and masks the key in
all output. /connected diagnostic branches on creds-file presence.
- Signup page Step 2/3 updated: no more "Claude prompts for two
values" (2.1.1 has no userConfig). Success banner shows the exact
/connect one-liner.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.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.
No description provided.