@mulmoclaude/core 4.9.2 → 4.9.3
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.
|
@@ -1393,8 +1393,8 @@ treatment, and the workspace mounted if you want it to follow the port.
|
|
|
1393
1393
|
- The platform token (bot token, app token) was revoked or regenerated.
|
|
1394
1394
|
- The bridge process is not running at all. Check before assuming anything above.
|
|
1395
1395
|
Since #3084 a bridge that died says why on its last line — `[<transport>]
|
|
1396
|
-
|
|
1397
|
-
|
|
1396
|
+
unhandled rejection — exiting: …` or `[<transport>] uncaught exception —
|
|
1397
|
+
exiting: …`, naming the transport. A bridge stopped on purpose names the
|
|
1398
1398
|
signal: Ctrl-C prints `[<transport>] SIGINT — shutting down`, while a plain
|
|
1399
1399
|
`kill <pid>` sends SIGTERM and prints `[<transport>] SIGTERM — shutting down`.
|
|
1400
1400
|
**No such line and the process gone** means either an older npm build (they
|
|
@@ -1498,7 +1498,7 @@ install hint alone.
|
|
|
1498
1498
|
### Why
|
|
1499
1499
|
|
|
1500
1500
|
Two servers over one workspace overwrite each other's `.session-token`. After
|
|
1501
|
-
that a stateless plugin dispatch authenticates cleanly against the
|
|
1501
|
+
that a stateless plugin dispatch authenticates cleanly against the _wrong_
|
|
1502
1502
|
server, while the session-scoped `/api/internal/tool-result` push lands where
|
|
1503
1503
|
the session does not exist and is dropped — so plugin views simply never render
|
|
1504
1504
|
on one of the two and nothing reports an error. The guard refuses that setup
|
|
@@ -1528,10 +1528,51 @@ means a real instance answered.
|
|
|
1528
1528
|
To share one workspace between two servers anyway — accepting the token stomping:
|
|
1529
1529
|
|
|
1530
1530
|
```bash
|
|
1531
|
-
MULMOCLAUDE_ALLOW_MULTIPLE_INSTANCES=1
|
|
1531
|
+
yarn dev --allow-multiple-instances # or MULMOCLAUDE_ALLOW_MULTIPLE_INSTANCES=1
|
|
1532
1532
|
```
|
|
1533
1533
|
|
|
1534
|
-
|
|
1535
|
-
`npx mulmoclaude`
|
|
1536
|
-
|
|
1537
|
-
|
|
1534
|
+
The flag and the env var are equivalent on `yarn dev`, `yarn server` and
|
|
1535
|
+
`npx mulmoclaude` alike. (Before #3113 the flag was silently dropped by `yarn dev`,
|
|
1536
|
+
so an older build needs the env var there.)
|
|
1537
|
+
|
|
1538
|
+
## A bridge enabled in `config/bridges.json` is not running
|
|
1539
|
+
|
|
1540
|
+
### Symptoms
|
|
1541
|
+
|
|
1542
|
+
The workspace has `config/bridges.json` with a bridge switched on, the server
|
|
1543
|
+
started fine, and no messages arrive from that platform.
|
|
1544
|
+
|
|
1545
|
+
### Cause
|
|
1546
|
+
|
|
1547
|
+
An in-process bridge (#3080) never blocks server startup — a failure costs that
|
|
1548
|
+
one bridge and goes to the log. So the server looking healthy says nothing about
|
|
1549
|
+
the bridge. The log line names which of the three happened:
|
|
1550
|
+
|
|
1551
|
+
```
|
|
1552
|
+
bridges bridge failed to start — the server continues without it
|
|
1553
|
+
{ transportId: 'telegram', error: 'TELEGRAM_BOT_TOKEN is required. …' }
|
|
1554
|
+
|
|
1555
|
+
bridges enabled bridge cannot run in-process yet — start it with its CLI instead
|
|
1556
|
+
{ transportId: 'slack' }
|
|
1557
|
+
|
|
1558
|
+
bridges ignoring a malformed entry in config/bridges.json
|
|
1559
|
+
{ key: 'telegram', reason: '`enabled` must be true or false' }
|
|
1560
|
+
```
|
|
1561
|
+
|
|
1562
|
+
### Fix
|
|
1563
|
+
|
|
1564
|
+
1. `grep bridges <the server log>` and read which of the three it is.
|
|
1565
|
+
2. **Credentials missing** — they live in `.env`, not in `config/bridges.json`.
|
|
1566
|
+
The error text names the variable (`TELEGRAM_BOT_TOKEN`, …).
|
|
1567
|
+
3. **Not converted yet** — only `telegram` runs in-process today; the other 24
|
|
1568
|
+
still need `yarn <name>`. See `docs/in-process-bridges.md`.
|
|
1569
|
+
4. **Malformed entry** — the shape is `{ "bridges": { "<id>": { "enabled": true } } }`.
|
|
1570
|
+
A transport id is lowercase letters, digits and dashes.
|
|
1571
|
+
|
|
1572
|
+
Confirm with the startup line that lists what did start:
|
|
1573
|
+
|
|
1574
|
+
```
|
|
1575
|
+
bridges in-process bridges running { transports: [ 'telegram' ] }
|
|
1576
|
+
```
|
|
1577
|
+
|
|
1578
|
+
Absence of that line means nothing started.
|
package/assets/helps/sandbox.md
CHANGED
|
@@ -23,11 +23,11 @@ The container runs with `--cap-drop ALL` and as the host user's UID/GID, so it h
|
|
|
23
23
|
|
|
24
24
|
## Disabling the Sandbox
|
|
25
25
|
|
|
26
|
-
Set the environment variable `DISABLE_SANDBOX=1` to always run the agent directly on the host, even when Docker is available. Equivalently, pass the `--disable-sandbox` CLI flag — `
|
|
26
|
+
Set the environment variable `DISABLE_SANDBOX=1` to always run the agent directly on the host, even when Docker is available. Equivalently, pass the `--disable-sandbox` CLI flag — `yarn dev --disable-sandbox`, `yarn server --disable-sandbox` or `npx mulmoclaude --disable-sandbox`. The flag form is handy on Windows PowerShell (no inline `VAR=value` syntax), in IDE / launcher run configs, and for quick ad-hoc debugging. Both set the same internal switch; the env var stays supported in parallel.
|
|
27
27
|
|
|
28
28
|
## Debug aids (opt-in env vars)
|
|
29
29
|
|
|
30
|
-
These flags exist for development / debugging only. Off by default so production runs aren't surprised. Each has an equivalent `--flag` CLI form (drop the `=1`, kebab-case the name) accepted by `
|
|
30
|
+
These flags exist for development / debugging only. Off by default so production runs aren't surprised. Each has an equivalent `--flag` CLI form (drop the `=1`, kebab-case the name) accepted by `yarn dev`, `yarn server` and `npx mulmoclaude` — e.g. `DISABLE_SANDBOX=1` ≡ `--disable-sandbox`, `PERSIST_TOOL_CALLS=1` ≡ `--persist-tool-calls`, `DISABLE_MACOS_REMINDER_NOTIFICATIONS=1` ≡ `--disable-macos-reminders`, `JOURNAL_FORCE_RUN_ON_STARTUP=1` ≡ `--journal-force-run`, `CHAT_INDEX_FORCE_RUN_ON_STARTUP=1` ≡ `--chat-index-force-run`. Secret-bearing vars (auth token, API keys) have no flag form on purpose — argv is visible via `ps` / shell history.
|
|
31
31
|
|
|
32
32
|
- `DISABLE_SANDBOX=1` — see above. Bypasses the Docker sandbox.
|
|
33
33
|
- `PERSIST_TOOL_CALLS=1` — also persist `tool_call` events to the session jsonl alongside `tool_result`. Useful for reading the args sent to a tool after the run is over (page refresh / server restart). Off by default because args can be large and may carry payload bytes (inline images, full MulmoScript JSON) you didn't expect to land in the jsonl. See [issue #1096](https://github.com/receptron/mulmoclaude/issues/1096) for the rationale.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mulmoclaude/core",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.3",
|
|
4
4
|
"description": "Shared server-side core for MulmoClaude and MulmoTerminal — the always-shipped-together subsystems consolidated behind subpath exports so the two hosts can't drift. Server-only except the browser-safe ./artifacts, ./whisper/client, ./workspace-setup/slug, ./translation/client, ./remote-view, ./remote-host and ./plugin-vue entries. All host specifics are injected.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|