@link-assistant/hive-mind 1.54.5 → 1.54.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @link-assistant/hive-mind
2
2
 
3
+ ## 1.54.6
4
+
5
+ ### Patch Changes
6
+
7
+ - 2c15727: Migrate Docker images and deployment paths from `konard/sandbox` to the current
8
+ full `konard/box` base image with the `box` user and `/home/box` home directory.
9
+
3
10
  ## 1.54.5
4
11
 
5
12
  ### Patch Changes
package/README.hi.md CHANGED
@@ -197,22 +197,22 @@ docker attach hive-mind
197
197
 
198
198
  # Extract auth data from a running (or stopped) container to the host:
199
199
  mkdir -p ~/.hive-mind
200
- docker cp hive-mind:/workspace/.claude ~/.hive-mind/claude
201
- docker cp hive-mind:/workspace/.claude.json ~/.hive-mind/claude.json
202
- docker cp hive-mind:/workspace/.config/gh ~/.hive-mind/gh
200
+ docker cp hive-mind:/home/box/.claude ~/.hive-mind/claude
201
+ docker cp hive-mind:/home/box/.claude.json ~/.hive-mind/claude.json
202
+ docker cp hive-mind:/home/box/.config/gh ~/.hive-mind/gh
203
203
 
204
- # Fix ownership to match the sandbox user inside the container:
205
- SANDBOX_UID=$(docker exec hive-mind id -u sandbox)
206
- chown -R $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
207
- chown $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude.json
204
+ # Fix ownership to match the box user inside the container:
205
+ BOX_UID=$(docker exec hive-mind id -u box)
206
+ chown -R $BOX_UID:$BOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
207
+ chown $BOX_UID:$BOX_UID ~/.hive-mind/claude.json
208
208
 
209
209
  # On subsequent runs, mount the auth data to keep it between restarts:
210
210
  docker run -dit \
211
211
  --name hive-mind \
212
212
  --restart unless-stopped \
213
- -v /root/.hive-mind/claude:/workspace/.claude \
214
- -v /root/.hive-mind/claude.json:/workspace/.claude.json \
215
- -v /root/.hive-mind/gh:/workspace/.config/gh \
213
+ -v /root/.hive-mind/claude:/home/box/.claude \
214
+ -v /root/.hive-mind/claude.json:/home/box/.claude.json \
215
+ -v /root/.hive-mind/gh:/home/box/.config/gh \
216
216
  konard/hive-mind:latest
217
217
  ```
218
218
 
package/README.md CHANGED
@@ -203,19 +203,19 @@ docker attach hive-mind
203
203
  mkdir -p /root/.hive-mind/claude /root/.hive-mind/codex /root/.hive-mind/gh
204
204
  touch -a /root/.hive-mind/claude.json
205
205
 
206
- # In our Docker images HOME=/workspace, so Codex stores its data in /workspace/.codex.
206
+ # In our Docker images HOME=/home/box, so Codex stores its data in /home/box/.codex.
207
207
  # Mount the full Codex directory so auth.json, config.toml, and sessions survive restarts.
208
- docker run -dit --user sandbox --name hive-mind --restart unless-stopped \
209
- -v /root/.hive-mind/claude:/workspace/.claude \
210
- -v /root/.hive-mind/codex:/workspace/.codex \
211
- -v /root/.hive-mind/claude.json:/workspace/.claude.json \
212
- -v /root/.hive-mind/gh:/workspace/.config/gh \
213
- konard/hive-mind:latest bash -l -c 'bash /workspace/start-bot.sh'
214
-
215
- # After the first start, fix ownership to match the sandbox user inside the container:
216
- SANDBOX_UID=$(docker exec hive-mind id -u sandbox)
217
- chown -R $SANDBOX_UID:$SANDBOX_UID /root/.hive-mind/claude /root/.hive-mind/codex /root/.hive-mind/gh
218
- chown $SANDBOX_UID:$SANDBOX_UID /root/.hive-mind/claude.json
208
+ docker run -dit --user box --name hive-mind --restart unless-stopped \
209
+ -v /root/.hive-mind/claude:/home/box/.claude \
210
+ -v /root/.hive-mind/codex:/home/box/.codex \
211
+ -v /root/.hive-mind/claude.json:/home/box/.claude.json \
212
+ -v /root/.hive-mind/gh:/home/box/.config/gh \
213
+ konard/hive-mind:latest bash -l -c 'bash /home/box/start-bot.sh'
214
+
215
+ # After the first start, fix ownership to match the box user inside the container:
216
+ BOX_UID=$(docker exec hive-mind id -u box)
217
+ chown -R $BOX_UID:$BOX_UID /root/.hive-mind/claude /root/.hive-mind/codex /root/.hive-mind/gh
218
+ chown $BOX_UID:$BOX_UID /root/.hive-mind/claude.json
219
219
 
220
220
  # Important: mounted ~/.codex data overrides the image-baked Codex config.
221
221
  # If the host directory was created before Playwright MCP was added to the image,
@@ -231,7 +231,7 @@ docker exec -it hive-mind bash -lc 'codex mcp list && codex mcp add playwright -
231
231
  - ✅ Easy to run multiple instances with different GitHub accounts
232
232
  - ✅ Consistent environment across different machines
233
233
 
234
- The Docker image itself now registers Playwright MCP for both Claude and Codex during build, and CI verifies those registrations in the built container. If `codex mcp list` is still empty in a running container, the usual cause is not the published image itself but a mounted `/workspace/.codex` directory from the host that replaces the image's default Codex configuration.
234
+ The Docker image itself now registers Playwright MCP for both Claude and Codex during build, and CI verifies those registrations in the built container. If `codex mcp list` is still empty in a running container, the usual cause is not the published image itself but a mounted `/home/box/.codex` directory from the host that replaces the image's default Codex configuration.
235
235
 
236
236
  See [docs/DOCKER.md](./docs/DOCKER.md) for advanced Docker usage.
237
237
 
package/README.ru.md CHANGED
@@ -197,22 +197,22 @@ docker attach hive-mind
197
197
 
198
198
  # Extract auth data from a running (or stopped) container to the host:
199
199
  mkdir -p ~/.hive-mind
200
- docker cp hive-mind:/workspace/.claude ~/.hive-mind/claude
201
- docker cp hive-mind:/workspace/.claude.json ~/.hive-mind/claude.json
202
- docker cp hive-mind:/workspace/.config/gh ~/.hive-mind/gh
200
+ docker cp hive-mind:/home/box/.claude ~/.hive-mind/claude
201
+ docker cp hive-mind:/home/box/.claude.json ~/.hive-mind/claude.json
202
+ docker cp hive-mind:/home/box/.config/gh ~/.hive-mind/gh
203
203
 
204
- # Fix ownership to match the sandbox user inside the container:
205
- SANDBOX_UID=$(docker exec hive-mind id -u sandbox)
206
- chown -R $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
207
- chown $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude.json
204
+ # Fix ownership to match the box user inside the container:
205
+ BOX_UID=$(docker exec hive-mind id -u box)
206
+ chown -R $BOX_UID:$BOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
207
+ chown $BOX_UID:$BOX_UID ~/.hive-mind/claude.json
208
208
 
209
209
  # On subsequent runs, mount the auth data to keep it between restarts:
210
210
  docker run -dit \
211
211
  --name hive-mind \
212
212
  --restart unless-stopped \
213
- -v /root/.hive-mind/claude:/workspace/.claude \
214
- -v /root/.hive-mind/claude.json:/workspace/.claude.json \
215
- -v /root/.hive-mind/gh:/workspace/.config/gh \
213
+ -v /root/.hive-mind/claude:/home/box/.claude \
214
+ -v /root/.hive-mind/claude.json:/home/box/.claude.json \
215
+ -v /root/.hive-mind/gh:/home/box/.config/gh \
216
216
  konard/hive-mind:latest
217
217
  ```
218
218
 
package/README.zh.md CHANGED
@@ -197,22 +197,22 @@ docker attach hive-mind
197
197
 
198
198
  # Extract auth data from a running (or stopped) container to the host:
199
199
  mkdir -p ~/.hive-mind
200
- docker cp hive-mind:/workspace/.claude ~/.hive-mind/claude
201
- docker cp hive-mind:/workspace/.claude.json ~/.hive-mind/claude.json
202
- docker cp hive-mind:/workspace/.config/gh ~/.hive-mind/gh
200
+ docker cp hive-mind:/home/box/.claude ~/.hive-mind/claude
201
+ docker cp hive-mind:/home/box/.claude.json ~/.hive-mind/claude.json
202
+ docker cp hive-mind:/home/box/.config/gh ~/.hive-mind/gh
203
203
 
204
- # Fix ownership to match the sandbox user inside the container:
205
- SANDBOX_UID=$(docker exec hive-mind id -u sandbox)
206
- chown -R $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
207
- chown $SANDBOX_UID:$SANDBOX_UID ~/.hive-mind/claude.json
204
+ # Fix ownership to match the box user inside the container:
205
+ BOX_UID=$(docker exec hive-mind id -u box)
206
+ chown -R $BOX_UID:$BOX_UID ~/.hive-mind/claude ~/.hive-mind/gh
207
+ chown $BOX_UID:$BOX_UID ~/.hive-mind/claude.json
208
208
 
209
209
  # On subsequent runs, mount the auth data to keep it between restarts:
210
210
  docker run -dit \
211
211
  --name hive-mind \
212
212
  --restart unless-stopped \
213
- -v /root/.hive-mind/claude:/workspace/.claude \
214
- -v /root/.hive-mind/claude.json:/workspace/.claude.json \
215
- -v /root/.hive-mind/gh:/workspace/.config/gh \
213
+ -v /root/.hive-mind/claude:/home/box/.claude \
214
+ -v /root/.hive-mind/claude.json:/home/box/.claude.json \
215
+ -v /root/.hive-mind/gh:/home/box/.config/gh \
216
216
  konard/hive-mind:latest
217
217
  ```
218
218
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@link-assistant/hive-mind",
3
- "version": "1.54.5",
3
+ "version": "1.54.6",
4
4
  "description": "AI-powered issue solver and hive mind for collaborative problem solving",
5
5
  "main": "src/hive.mjs",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "hive-telegram-bot": "./src/telegram-bot.mjs"
15
15
  },
16
16
  "scripts": {
17
- "test": "node tests/solve-queue.test.mjs && node tests/limits-display.test.mjs && node tests/test-usage-limit.mjs && node tests/test-codex-support.mjs && node tests/test-build-cost-info-string.mjs && node tests/test-claude-code-install-method.mjs && node tests/test-claude-quiet-config.mjs && node tests/test-configure-claude-bin.mjs && node tests/test-docker-release-order.mjs && node tests/test-issue-1616-pr-issue-link-preservation.mjs && node tests/test-pre-pr-failure-notifier-1640.mjs && node tests/test-telegram-message-filters.mjs && node tests/test-telegram-bot-command-aliases.mjs && node tests/test-solve-queue-command.mjs && node tests/test-queue-display-1267.mjs && node tests/test-telegram-bot-launcher.mjs",
17
+ "test": "node tests/solve-queue.test.mjs && node tests/limits-display.test.mjs && node tests/test-usage-limit.mjs && node tests/test-codex-support.mjs && node tests/test-build-cost-info-string.mjs && node tests/test-claude-code-install-method.mjs && node tests/test-claude-quiet-config.mjs && node tests/test-configure-claude-bin.mjs && node tests/test-docker-release-order.mjs && node tests/test-docker-box-migration.mjs && node tests/test-issue-1616-pr-issue-link-preservation.mjs && node tests/test-pre-pr-failure-notifier-1640.mjs && node tests/test-telegram-message-filters.mjs && node tests/test-telegram-bot-command-aliases.mjs && node tests/test-solve-queue-command.mjs && node tests/test-queue-display-1267.mjs && node tests/test-telegram-bot-launcher.mjs",
18
18
  "test:queue": "node tests/solve-queue.test.mjs",
19
19
  "test:limits-display": "node tests/limits-display.test.mjs",
20
20
  "test:usage-limit": "node tests/test-usage-limit.mjs",
@@ -51,7 +51,7 @@ Options:
51
51
  Examples:
52
52
  configure-claude # apply defaults to ~/.claude/settings.json
53
53
  configure-claude --verify # check only, non-zero exit if drift detected
54
- configure-claude -s /workspace/.claude/settings.json
54
+ configure-claude -s /home/box/.claude/settings.json
55
55
 
56
56
  Reference: https://github.com/link-assistant/hive-mind/issues/1642
57
57
  `;
package/pr-1607-body.md DELETED
@@ -1,34 +0,0 @@
1
- ## Summary
2
-
3
- Fixes #1606 by documenting and verifying Playwright MCP registration for Codex in addition to Claude Code, including the Docker-specific case where persisted Codex state overrides the image defaults.
4
-
5
- ## Root Cause
6
-
7
- The reported environment had `@playwright/mcp` installed and registered in Claude, but `codex mcp list` had no configured servers. The immediate cause was missing Codex MCP registration. Local reproduction confirmed that `/workspace/.codex/config.toml` can exist without a Playwright MCP entry and that `codex mcp add playwright ...` fixes the state immediately. In Docker deployments, the most likely explanation is that a host-mounted `/workspace/.codex` directory preserved an older Codex config and replaced the image-baked MCP registration. Existing docs and helper scripts also focused mainly on Claude setup, so the mismatch was easy to miss even though `/version` already reported it correctly.
8
-
9
- ## Changes
10
-
11
- - added regression coverage for the mixed MCP state where Claude is connected and Codex is not
12
- - updated Playwright MCP verification and integration scripts to check Codex MCP registration explicitly
13
- - updated Docker verification to fail if Claude or Codex is missing the Playwright MCP registration
14
- - updated configuration and Docker docs to include both `claude mcp add ...` and `codex mcp add ...`
15
- - documented that mounting `/workspace/.codex` can override the image defaults and reintroduce the problem
16
- - added the investigation record and collected evidence under `docs/case-studies/issue-1606`
17
-
18
- ## Reproduction
19
-
20
- 1. Install `@playwright/mcp` and register it only with Claude.
21
- 2. Run `claude mcp list` and confirm `playwright` is present.
22
- 3. Run `codex mcp list` and observe `No MCP servers configured yet`.
23
- 4. Run `/version` and observe `Playwright MCP: <version> | Claude Code: connected | Codex: not connected`.
24
-
25
- ## Verification
26
-
27
- - `node tests/test-version-info.mjs`
28
- - `node tests/test-version-parsing.mjs`
29
- - `bash scripts/verify-docker-image.sh`
30
-
31
- ## Evidence
32
-
33
- - case study: `docs/case-studies/issue-1606/README.md`
34
- - PR: https://github.com/link-assistant/hive-mind/pull/1607