hivecode-mcp 0.12.1 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/package.json +3 -2
- package/sync.js +7 -1
package/README.md
CHANGED
|
@@ -116,6 +116,7 @@ Every agent is handed these when it joins. They are worth knowing as a person to
|
|
|
116
116
|
|---|---|---|
|
|
117
117
|
| the agent has no `hive_join` tool | Hivecode isn't loaded in that app yet | run `npx -y hivecode-mcp@latest setup` again, check it printed `READY` for your app, then reload the agent |
|
|
118
118
|
| `setup` printed `FAILED` for an app | that app's config could not be written, or what was written does not start | the reason is on the same line, and the entry to add by hand is printed below it |
|
|
119
|
+
| `npx` stops with `ENOENT` and `AppData\Roaming\npm` (Windows) | that folder is missing, which happens on some fresh Node installs, and npm gives up before Hivecode starts | create it with `mkdir "$env:APPDATA\npm"` in PowerShell (`mkdir "%APPDATA%\npm"` in cmd), then run setup again |
|
|
119
120
|
| `'room-…' is not recognized` or `command not found: room-…` | a join link was pasted into a terminal without quotes | give the link to your agent instead; if you pass it to `setup`, quote it |
|
|
120
121
|
| `NOT JOINED` and the address `livecode-xoss.onrender.com` | an old Hivecode version, still cached by `npx` | put `hivecode-mcp@latest` in your agent's config and restart it |
|
|
121
122
|
| `Q430` | the relay is out of sockets | try again shortly; clients on the older one-socket-per-file transport (the VS Code extension, the browser panel) can lower `HIVE_MAX_OPEN_FILES` |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hivecode-mcp",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.2",
|
|
4
4
|
"description": "MCP server that lets any AI coding agent join a Hivecode room — humans and multiple AI agents edit one live codebase with folder-scoped permissions and approval gates.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -91,10 +91,11 @@
|
|
|
91
91
|
"test:liveness": "node tests/agent-liveness-test.mjs && node tests/unreachable-recipient-test.mjs",
|
|
92
92
|
"build:ext": "node scripts/build-icr-cjs.cjs && node scripts/build-privacy-cjs.cjs",
|
|
93
93
|
"test:selfhost": "node tests/relay-pin-test.mjs && node tests/self-host-test.mjs && node tests/extension-privacy-parity-test.mjs",
|
|
94
|
-
"test:hardening": "node tests/genesis-claim-test.mjs && node tests/bare-root-write-test.mjs && node tests/version-truth-test.mjs && node tests/room-repo-drift-test.mjs && node tests/first-contact-refusal-test.mjs && node tests/open-file-cap-test.mjs && node tests/learnings-test.mjs && node tests/agent-liveness-test.mjs && node tests/unreachable-recipient-test.mjs && node tests/join-honesty-test.mjs && node tests/relay-diagnosis-test.mjs && node tests/blind-recreate-test.mjs && node tests/genesis-collision-test.mjs && node tests/relay-pin-test.mjs && node tests/self-host-test.mjs && node tests/extension-privacy-parity-test.mjs && node tests/readme-promises-test.mjs && node tests/setup-test.mjs && node tests/mcp-conformance-test.mjs && node tests/update-notice-test.mjs && node tests/mux-test.mjs",
|
|
94
|
+
"test:hardening": "node tests/genesis-claim-test.mjs && node tests/bare-root-write-test.mjs && node tests/version-truth-test.mjs && node tests/room-repo-drift-test.mjs && node tests/first-contact-refusal-test.mjs && node tests/open-file-cap-test.mjs && node tests/learnings-test.mjs && node tests/agent-liveness-test.mjs && node tests/unreachable-recipient-test.mjs && node tests/join-honesty-test.mjs && node tests/relay-diagnosis-test.mjs && node tests/blind-recreate-test.mjs && node tests/genesis-collision-test.mjs && node tests/relay-pin-test.mjs && node tests/self-host-test.mjs && node tests/extension-privacy-parity-test.mjs && node tests/readme-promises-test.mjs && node tests/setup-test.mjs && node tests/mcp-conformance-test.mjs && node tests/update-notice-test.mjs && node tests/mux-test.mjs && node tests/own-files-quiet-test.mjs",
|
|
95
95
|
"test:extension": "node tests/extension-parity-test.mjs && node tests/extension-privacy-parity-test.mjs",
|
|
96
96
|
"test:ceiling": "node tests/refused-visible-test.mjs && node tests/ceiling-no-data-loss-test.mjs",
|
|
97
97
|
"test:mux": "node tests/mux-test.mjs",
|
|
98
|
+
"test:live": "node scripts/live-stranger.mjs",
|
|
98
99
|
"test:identity": "node tests/identity-audit-test.mjs",
|
|
99
100
|
"test:billing": "node tests/billing-test.mjs",
|
|
100
101
|
"test:license": "node tests/hive-license-test.js",
|
package/sync.js
CHANGED
|
@@ -64,6 +64,8 @@ const ALWAYS_IGNORE = [
|
|
|
64
64
|
// to tell an authored edit from its own write after a restart (see SHADOW_FILE). It is
|
|
65
65
|
// per-client by definition: syncing it would hand every peer a false ancestor.
|
|
66
66
|
'.hive-shadow.json',
|
|
67
|
+
// ...and its write-then-rename temp, which exists for an instant but is the same file.
|
|
68
|
+
'.hive-shadow.json.tmp',
|
|
67
69
|
// Names a PID on THIS machine. Syncing it would tell every peer their folder is locked by
|
|
68
70
|
// a process that does not exist for them.
|
|
69
71
|
'.hive-lock.json',
|
|
@@ -154,6 +156,10 @@ const AGENTS_FILE = 'HIVE_FOR_AGENTS.md' // how an AI agent opening this folder
|
|
|
154
156
|
// Generated/coordination files are rendered locally from CRDT state — never
|
|
155
157
|
// synced as ordinary files (that would cause echo loops / conflicts).
|
|
156
158
|
const SKIP = new Set([BOARD_FILE, CHAT_FILE, TASKS_FILE, CONFIG_FILE, ID_FILE, RULES_FILE, MEMBERS_FILE, CLAIMS_FILE, AGENTS_FILE])
|
|
159
|
+
// Files a client writes into its folder for ITSELF. They are ignored on purpose, so the "created
|
|
160
|
+
// here but is ignored" notice must never name them: on 27 Sep 2026 every agent joining a live room
|
|
161
|
+
// told the whole team about .hive-shadow.json, a file none of them had made.
|
|
162
|
+
const OWN_LOCAL = new Set([SHADOW_FILE, SHADOW_FILE + '.tmp', LOCK_FILE, '.hive-mcp-session.json', '.hive-id.json'])
|
|
157
163
|
|
|
158
164
|
// Written into every room folder on sync (like the rules). An AI agent that opens
|
|
159
165
|
// this project reads it to learn it's a Hivecode room and how to JOIN — via the
|
|
@@ -2476,7 +2482,7 @@ export function startSync({ relay = 'ws://localhost:1234', room = 'default', dir
|
|
|
2476
2482
|
invisibleWarned.delete(r)
|
|
2477
2483
|
}
|
|
2478
2484
|
for (const r of ignoredRel) {
|
|
2479
|
-
if (SKIP.has(r)) continue
|
|
2485
|
+
if (SKIP.has(r) || OWN_LOCAL.has(r)) continue // control files are ours and are supposed to be invisible
|
|
2480
2486
|
if (preexisting.has(r)) continue // it was already here; nobody did this during the session
|
|
2481
2487
|
if (invisibleWarned.has(r)) continue // once per path, not once per scan tick
|
|
2482
2488
|
const holder = coordinator.sense(r)
|