@link-assistant/hive-mind 1.50.10 → 1.50.12
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 +14 -0
- package/README.md +24 -15
- package/package.json +3 -3
- package/pr-1607-body.md +34 -0
- package/src/claude.prompts.lib.mjs +1 -1
- package/src/opencode.prompts.lib.mjs +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @link-assistant/hive-mind
|
|
2
2
|
|
|
3
|
+
## 1.50.12
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 065deae: ## Summary
|
|
8
|
+
|
|
9
|
+
Fix Playwright MCP setup guidance and verification for Codex environments.
|
|
10
|
+
|
|
11
|
+
## 1.50.11
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- bf9cf54: Fix prompt template builders crashing when literal `.png` appears in screenshot guidance.
|
|
16
|
+
|
|
3
17
|
## 1.50.10
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -174,6 +174,10 @@ claude
|
|
|
174
174
|
# Optionally test Claude connection
|
|
175
175
|
claude -p hi --model haiku
|
|
176
176
|
|
|
177
|
+
# Verify Playwright MCP is registered for both CLIs in this container image
|
|
178
|
+
claude mcp list | grep playwright
|
|
179
|
+
codex mcp list | grep playwright
|
|
180
|
+
|
|
177
181
|
# You might need to update hive-mind and agent to latest versions:
|
|
178
182
|
bun install -g @link-assistant/hive-mind
|
|
179
183
|
bun install -g @link-assistant/agent
|
|
@@ -195,25 +199,28 @@ docker attach hive-mind
|
|
|
195
199
|
|
|
196
200
|
# --- Persisting auth data across restarts ---
|
|
197
201
|
|
|
198
|
-
#
|
|
199
|
-
mkdir -p
|
|
200
|
-
|
|
201
|
-
docker cp hive-mind:/workspace/.claude.json ~/.hive-mind/claude.json
|
|
202
|
-
docker cp hive-mind:/workspace/.config/gh ~/.hive-mind/gh
|
|
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
|
|
202
|
+
# On the host, create the directories used by the current Docker workflow:
|
|
203
|
+
mkdir -p /root/.hive-mind/claude /root/.hive-mind/codex /root/.hive-mind/gh
|
|
204
|
+
touch -a /root/.hive-mind/claude.json
|
|
208
205
|
|
|
209
|
-
#
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
--restart unless-stopped \
|
|
206
|
+
# In our Docker images HOME=/workspace, so Codex stores its data in /workspace/.codex.
|
|
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 \
|
|
213
209
|
-v /root/.hive-mind/claude:/workspace/.claude \
|
|
210
|
+
-v /root/.hive-mind/codex:/workspace/.codex \
|
|
214
211
|
-v /root/.hive-mind/claude.json:/workspace/.claude.json \
|
|
215
212
|
-v /root/.hive-mind/gh:/workspace/.config/gh \
|
|
216
|
-
konard/hive-mind:latest
|
|
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
|
|
219
|
+
|
|
220
|
+
# Important: mounted ~/.codex data overrides the image-baked Codex config.
|
|
221
|
+
# If the host directory was created before Playwright MCP was added to the image,
|
|
222
|
+
# re-register it once inside the running container:
|
|
223
|
+
docker exec -it hive-mind bash -lc 'codex mcp list && codex mcp add playwright -- npx -y @playwright/mcp@latest --isolated --headless --no-sandbox --timeout-action=600000 --viewport-size 1920x1080'
|
|
217
224
|
```
|
|
218
225
|
|
|
219
226
|
**Benefits of Docker:**
|
|
@@ -224,6 +231,8 @@ docker run -dit \
|
|
|
224
231
|
- ✅ Easy to run multiple instances with different GitHub accounts
|
|
225
232
|
- ✅ Consistent environment across different machines
|
|
226
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.
|
|
235
|
+
|
|
227
236
|
See [docs/DOCKER.md](./docs/DOCKER.md) for advanced Docker usage.
|
|
228
237
|
|
|
229
238
|
#### Stoping and removing docker container
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@link-assistant/hive-mind",
|
|
3
|
-
"version": "1.50.
|
|
3
|
+
"version": "1.50.12",
|
|
4
4
|
"description": "AI-powered issue solver and hive mind for collaborative problem solving",
|
|
5
5
|
"main": "src/hive.mjs",
|
|
6
6
|
"type": "module",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"lint": "eslint 'src/**/*.{js,mjs,cjs}'",
|
|
21
21
|
"lint:fix": "eslint 'src/**/*.{js,mjs,cjs}' --fix",
|
|
22
22
|
"check:duplication": "jscpd .",
|
|
23
|
-
"format": "prettier --write \"**/*.{js,mjs,json,md}\"",
|
|
24
|
-
"format:check": "prettier --check \"**/*.{js,mjs,json,md}\"",
|
|
23
|
+
"format": "prettier --write \"**/*.{js,mjs,json,md}\" --ignore-path .prettierignore",
|
|
24
|
+
"format:check": "prettier --check \"**/*.{js,mjs,json,md}\" --ignore-path .prettierignore",
|
|
25
25
|
"changeset": "changeset",
|
|
26
26
|
"changeset:version": "changeset version",
|
|
27
27
|
"changeset:publish": "npm run build:pre && changeset publish",
|
package/pr-1607-body.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
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
|
|
@@ -160,7 +160,7 @@ Initial research.
|
|
|
160
160
|
- When you start, create a detailed plan for yourself and follow your todo list step by step. Add as many relevant points from these guidelines to the todo list as practical so you can track the work clearly.
|
|
161
161
|
- When the user mentions CI failures or asks to investigate logs, consider adding these todos to track the investigation: (1) list recent CI runs with timestamps, (2) download logs from failed runs to the ci-logs/ directory, (3) analyze error messages and identify the root cause, (4) implement a fix, (5) verify that the fix resolves the specific errors found in the logs.
|
|
162
162
|
- When you read the issue, read all details and comments thoroughly.
|
|
163
|
-
- When you see screenshots or images in issue descriptions, pull request descriptions, comments, or discussions, download the image to a local file first, then use the Read tool to view and analyze it. Before reading downloaded images with the Read tool, verify that the file is a valid image rather than HTML by using a CLI tool such as the 'file' command. When corrupted or non-image files, such as GitHub "Not Found" pages saved as
|
|
163
|
+
- When you see screenshots or images in issue descriptions, pull request descriptions, comments, or discussions, download the image to a local file first, then use the Read tool to view and analyze it. Before reading downloaded images with the Read tool, verify that the file is a valid image rather than HTML by using a CLI tool such as the 'file' command. When corrupted or non-image files, such as GitHub "Not Found" pages saved as \`.png\`, are read, they can cause "Could not process image" errors and crash the AI solver process. When the file command shows "HTML", "text", or "ASCII text", the download failed, so do not call Read on that file. Instead: (1) when images are from GitHub issues or PRs, such as URLs containing "github.com/user-attachments", retry with: curl -L -H "Authorization: token $(gh auth token)" -o <filename> "<url>" (2) when the retry still fails, skip the image and note that it was unavailable.
|
|
164
164
|
- When you need issue details, use gh issue view https://github.com/${owner}/${repo}/issues/${issueNumber}.
|
|
165
165
|
- When you need related code, use gh search code --owner ${owner} [keywords].
|
|
166
166
|
- When you need repo context, read files in your working directory.${
|
|
@@ -137,7 +137,7 @@ ${workspaceInstructions}
|
|
|
137
137
|
Initial research.
|
|
138
138
|
- When you start, create a detailed plan for yourself and follow your todo list step by step. Add as many relevant points from these guidelines to the todo list as practical so you can track the work clearly.
|
|
139
139
|
- When you read the issue, read all details and comments thoroughly.
|
|
140
|
-
- When you see screenshots or images in issue descriptions, pull request descriptions, comments, or discussions, download the image to a local file first, then use the Read tool to view and analyze it. Before reading downloaded images with the Read tool, verify that the file is a valid image rather than HTML by using a CLI tool such as the 'file' command. When corrupted or non-image files, such as GitHub "Not Found" pages saved as
|
|
140
|
+
- When you see screenshots or images in issue descriptions, pull request descriptions, comments, or discussions, download the image to a local file first, then use the Read tool to view and analyze it. Before reading downloaded images with the Read tool, verify that the file is a valid image rather than HTML by using a CLI tool such as the 'file' command. When corrupted or non-image files, such as GitHub "Not Found" pages saved as \`.png\`, are read, they can cause "Could not process image" errors and crash the AI solver process. When the file command shows "HTML", "text", or "ASCII text", the download failed, so do not call Read on that file. Instead: (1) when images are from GitHub issues or PRs, such as URLs containing "github.com/user-attachments", retry with: curl -L -H "Authorization: token $(gh auth token)" -o <filename> "<url>" (2) when the retry still fails, skip the image and note that it was unavailable.
|
|
141
141
|
- When you need issue details, use gh issue view https://github.com/${owner}/${repo}/issues/${issueNumber}.
|
|
142
142
|
- When you need related code, use gh search code --owner ${owner} [keywords].
|
|
143
143
|
- When you need repo context, read files in your working directory.${
|