@excitedjs/dreamux 0.13.0 → 0.14.0

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.
Files changed (88) hide show
  1. package/CHANGELOG.json +41 -0
  2. package/CHANGELOG.md +16 -1
  3. package/README.md +7 -4
  4. package/dist/admin/methods.js +86 -61
  5. package/dist/admin/methods.js.map +1 -1
  6. package/dist/admin/socket.js +31 -0
  7. package/dist/admin/socket.js.map +1 -1
  8. package/dist/agent-runtime/builtin/claude-code/runtime.js +8 -3
  9. package/dist/agent-runtime/builtin/claude-code/runtime.js.map +1 -1
  10. package/dist/agent-runtime/builtin/claude-code/supervisor.js +5 -0
  11. package/dist/agent-runtime/builtin/claude-code/supervisor.js.map +1 -1
  12. package/dist/agent-runtime/builtin/codex/codex-home.js +2 -3
  13. package/dist/agent-runtime/builtin/codex/codex-home.js.map +1 -1
  14. package/dist/agent-runtime/builtin/codex/paths.js +16 -62
  15. package/dist/agent-runtime/builtin/codex/paths.js.map +1 -1
  16. package/dist/agent-runtime/builtin/codex/runtime-support.js +4 -3
  17. package/dist/agent-runtime/builtin/codex/runtime-support.js.map +1 -1
  18. package/dist/agent-runtime/builtin/codex/runtime.js +5 -6
  19. package/dist/agent-runtime/builtin/codex/runtime.js.map +1 -1
  20. package/dist/agent-runtime/builtin/codex/supervisor.js +11 -1
  21. package/dist/agent-runtime/builtin/codex/supervisor.js.map +1 -1
  22. package/dist/agent-runtime/completion-body.js +14 -9
  23. package/dist/agent-runtime/completion-body.js.map +1 -1
  24. package/dist/channel/feishu/bot.js +0 -18
  25. package/dist/channel/feishu/bot.js.map +1 -1
  26. package/dist/channel/feishu/feishu-message.js +9 -2
  27. package/dist/channel/feishu/feishu-message.js.map +1 -1
  28. package/dist/cli/doctor.js +23 -0
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/dreamux.js +1 -1
  31. package/dist/cli/dreamux.js.map +1 -1
  32. package/dist/cli/server-ctl.js +2 -2
  33. package/dist/cli/server.js +9 -4
  34. package/dist/cli/server.js.map +1 -1
  35. package/dist/daemon/restart-intent.js +7 -2
  36. package/dist/daemon/restart-intent.js.map +1 -1
  37. package/dist/dispatcher-service/dispatcher/base-prompt.js +4 -4
  38. package/dist/dispatcher-service/dispatcher/base-prompt.js.map +1 -1
  39. package/dist/dispatcher-service/dispatcher/service.js +7 -10
  40. package/dist/dispatcher-service/dispatcher/service.js.map +1 -1
  41. package/dist/dispatcher-service/dispatcher-workspace.js +108 -0
  42. package/dist/dispatcher-service/dispatcher-workspace.js.map +1 -0
  43. package/dist/dispatcher-service/service.js +5 -12
  44. package/dist/dispatcher-service/service.js.map +1 -1
  45. package/dist/dispatcher-service/team/service.js +214 -65
  46. package/dist/dispatcher-service/team/service.js.map +1 -1
  47. package/dist/dispatcher-service/team/store.js +6 -0
  48. package/dist/dispatcher-service/team/store.js.map +1 -1
  49. package/dist/dispatcher-service/team/types.js.map +1 -1
  50. package/dist/dispatcher-service/teammate/identity-store.js +11 -77
  51. package/dist/dispatcher-service/teammate/identity-store.js.map +1 -1
  52. package/dist/dispatcher-service/teammate/name-allocator.js +86 -0
  53. package/dist/dispatcher-service/teammate/name-allocator.js.map +1 -0
  54. package/dist/dispatcher-service/teammate/runtime-state.js +26 -8
  55. package/dist/dispatcher-service/teammate/runtime-state.js.map +1 -1
  56. package/dist/dispatcher-service/teammate/service.js +365 -113
  57. package/dist/dispatcher-service/teammate/service.js.map +1 -1
  58. package/dist/dispatcher-service/teammate/session-ledger.js +306 -0
  59. package/dist/dispatcher-service/teammate/session-ledger.js.map +1 -0
  60. package/dist/dispatcher-service/teammate/types.js +14 -0
  61. package/dist/dispatcher-service/teammate/types.js.map +1 -1
  62. package/dist/dispatcher-service/teammate/worktree-manager.js +74 -4
  63. package/dist/dispatcher-service/teammate/worktree-manager.js.map +1 -1
  64. package/dist/dispatcher-service/teammate/worktree-paths.js +53 -0
  65. package/dist/dispatcher-service/teammate/worktree-paths.js.map +1 -0
  66. package/dist/mcp/team-mcp.js +86 -75
  67. package/dist/mcp/team-mcp.js.map +1 -1
  68. package/dist/mcp/teammate-mcp.js +32 -25
  69. package/dist/mcp/teammate-mcp.js.map +1 -1
  70. package/dist/onboard/run.js +3 -3
  71. package/dist/onboard/run.js.map +1 -1
  72. package/dist/onboard/uninstall.js +7 -1
  73. package/dist/onboard/uninstall.js.map +1 -1
  74. package/dist/platform/logs.js +32 -0
  75. package/dist/platform/logs.js.map +1 -0
  76. package/dist/platform/owner-only-dir.js +37 -0
  77. package/dist/platform/owner-only-dir.js.map +1 -0
  78. package/dist/platform/paths.js +130 -33
  79. package/dist/platform/paths.js.map +1 -1
  80. package/dist/platform/runtime-sockets.js +127 -0
  81. package/dist/platform/runtime-sockets.js.map +1 -0
  82. package/dist/server.js +47 -1
  83. package/dist/server.js.map +1 -1
  84. package/package.json +1 -1
  85. package/skills/dispatcher/SKILL.md +62 -38
  86. package/skills/dispatcher/references/dispatch-task.md +3 -3
  87. package/skills/dispatcher/references/inspect-and-resume.md +5 -3
  88. package/skills/dreamux-maintenance/SKILL.md +21 -0
package/CHANGELOG.json CHANGED
@@ -1,6 +1,47 @@
1
1
  {
2
2
  "name": "@excitedjs/dreamux",
3
3
  "entries": [
4
+ {
5
+ "version": "0.14.0",
6
+ "tag": "@excitedjs/dreamux_v0.14.0",
7
+ "date": "Thu, 11 Jun 2026 13:39:40 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Internal: fold the per-dispatcher session ledger via a streaming reader so `teammate.history` (materializeSessions) no longer buffers the whole append-only sessions.jsonl into an events array (issue #182 final gate). No user-visible behavior, API, schema, or path change; history output is identical."
12
+ }
13
+ ],
14
+ "minor": [
15
+ {
16
+ "comment": "Logs stage + runtime socket path-budget fix (issue #182). Logs: runtime child stdout/stderr log files are opened eagerly as inherited fds and normal Codex/Claude traffic flows over the socket/stream, so they are usually empty; each supervisor now removes its child's stdout/stderr log on clean shutdown when it stayed zero-byte, so empty logs no longer accumulate one-per-start (files that captured startup/crash output are kept). Log retention stays MANUAL in 0.x — Dreamux does not age-prune logs; a 7-day retention is the documented guidance and zero-byte files are always safe to delete (see the dreamux-maintenance skill's Log Maintenance section). The whole ~/.dreamux/logs/ tree is rebuildable and safe to clear while no server runs. Runtime sockets: the volatile rendezvous-socket allocator now also considers a private per-user OS temp dir (resolved from TMPDIR/TMP/TEMP then os.tmpdir()) after $XDG_RUNTIME_DIR and ~/.dreamux/run/sockets/, but only when it is NOT a world-shared root like /tmp (Linux /tmp is still rejected). On macOS, os.tmpdir() is the per-user $TMPDIR (/var/folders/.../T, owner-only) and is far shorter than a long per-run $HOME, so Codex/Claude sockets stay within the Unix sun_path budget when there is no $XDG_RUNTIME_DIR and the run root would be over budget — fixing the macOS path-budget failure without using shared /tmp and without persisting socket paths. Rebuild: none. No config/state schema change; old empty log files left by a previous version may be deleted manually."
17
+ },
18
+ {
19
+ "comment": "BREAKING: dreamux-owned volatile run files moved from ~/.dreamux/state to ~/.dreamux/run (issue #182 PR-1): the admin socket (state/admin.sock -> run/admin.sock, plus its .lock) and the one-shot restart marker (state/restart-intent.json -> run/restart-intent.json). Codex app-server listen sockets no longer use descriptive in-state paths (state/<dispatcher>/codex.sock or teammate runtime dirs); every runtime start now allocates a fresh short random socket under $XDG_RUNTIME_DIR/dreamux/sockets/ or ~/.dreamux/run/sockets/, swept on server start, never persisted to durable state. Mixed-version caveat: a CLI or MCP shim older than this version looks for the admin socket under state/ and cannot reach a new server (and vice versa) — upgrade the package and restart the daemon so server and shims ship from the same version. Upgrade step: STOP the old daemon (dreamux daemon stop, or stop the managed service) BEFORE starting this version. Because the admin lock moved from state/admin.sock.lock to run/admin.sock.lock, a still-running old server would not be seen by the new one; the new server now fails loud on startup if a live old server still holds the legacy lock, so stop it first. The unused server.json path declaration was removed. Rebuild: nothing to rebuild; old leftovers may be deleted manually: ~/.dreamux/state/admin.sock, ~/.dreamux/state/admin.sock.lock, ~/.dreamux/state/restart-intent.json, ~/.dreamux/state/<dispatcher>/codex.sock, ~/.dreamux/state/<dispatcher>/teammate/runtime/<name>/codex.sock, and stale dreamux-codex-*.sock files under $XDG_RUNTIME_DIR (or the per-user os temp dir, e.g. macOS $TMPDIR)."
20
+ },
21
+ {
22
+ "comment": "BREAKING: dreamux cache/spill artifacts moved into a new ~/.dreamux/cache tree (issue #182 PR-2). Teammate completion spill files moved from shared /tmp/teammate-<source>-<id>.output to ~/.dreamux/cache/<dispatcher-id>/spill/, and the Feishu inbound attachment cache moved from ~/.dreamux/state/<dispatcher-id>/feishu-attachments/ to ~/.dreamux/cache/<dispatcher-id>/feishu-attachments/. Both are rebuildable cache, not durable state: nothing reads a spill file back (only its path is inlined into a dispatcher turn) and attachments are re-fetchable. dreamux uninstall now also removes ~/.dreamux/cache. No automatic migration. Rebuild: nothing to rebuild; old leftovers may be deleted manually: stale /tmp/teammate-*.output files and the old ~/.dreamux/state/<dispatcher-id>/feishu-attachments/ directories."
23
+ },
24
+ {
25
+ "comment": "BREAKING (MCP contract): intent/note are now required on TeamMate and Team lifecycle tools (issue #182 PR-3). teammate.spawn requires intent and teammate.close requires note; team.create and team.create_group require intent and team.dissolve requires note. teammate.send gains an OPTIONAL intent that updates the recorded recovery subject before the turn. These are the durable recovery subject and the close/dissolve reason for the session/Team ledger. The synthetic 'team dissolved' fallback was removed — dissolve now records the operator's real reason. Persisted fields stay nullable, so existing identity/Team records written without intent/note still load (they read as null); only new lifecycle calls must supply the fields. A dispatcher/agent that called these tools without intent/note will now get a 'must be a non-empty string' rejection. The requirement is enforced at every layer — MCP json-schema, the shim arg builders, the admin methods, AND the TeamMate/Team service boundary — so even an in-process caller cannot persist a missing/empty required field. Recreating a closed Team now adopts the new create.intent (it was previously left stale). No durable file format or path change. Not included here: the later list/status/history reshape, ctx/history_events removal, or create/create_group merge (PR-7)."
26
+ },
27
+ {
28
+ "comment": "BREAKING (dispatcher workspace + managed worktree layout): every configured dispatcher must now declare an explicit `cwd` (issue #182 PR-4). `dreamux serve` fails loud at startup if any enabled dispatcher has no `cwd` — there is no longer a fallback to a Dreamux state directory (`~/.dreamux/state/<id>/cwd`). A configured-but-missing `cwd` is created with mkdir -p; a `cwd` that is not a usable directory fails startup. `dreamux doctor` diagnoses the same contract per dispatcher (`dispatcher <id> workspace`). Rebuild: add `\"cwd\": \"/abs/path/to/workspace\"` to each dispatcher in ~/.dreamux/config.json (a real, operator-owned project directory, NOT inside ~/.dreamux) and `daemon restart`. Dreamux-managed TeamMate/Team Git worktrees were relocated OUT of `~/.dreamux/state/<id>/teammate/worktrees/` into the dispatcher workspace at `<cwd>/.workspace/worktree/<repo-disambiguated-slug>/<teammate-or-team-slug>/`. `.workspace/` is self-ignored (a `*` .gitignore) so managed worktrees never become repo content. The repo-disambiguated slug (`<sanitized-basename>-<sha256(repo-root):12>`) keeps same-named repos and Team/TeamMate worktrees distinct across repos. Managed worktree creation fails loud if the workspace resolves under `~/.dreamux`. Legacy teammate/Team identity records that still point at the old under-state worktree path are read verbatim (no rewrite, no deletion); only newly created managed worktrees use the new location, so a teammate with a since-deleted old managed worktree is re-prepared at the new path on reopen. reuse-cwd teammates are unchanged and do not require the dispatcher cwd contract. No persisted file FORMAT change. Not included: PR-5 session ledger, PR-6 list/status/history read surface, PR-7 Team MCP cleanup, logs/retention."
29
+ },
30
+ {
31
+ "comment": "Add durable TeamMate/Team session ledger capture (issue #182 PR-5). A new per-dispatcher append-only file `~/.dreamux/state/<dispatcher-id>/teammate/sessions.jsonl` records session lifecycle events (spawn/create, send, turn submitted — including TeamLeader turns delivered through a bound Team channel — turn settled, close/dissolve) keyed by a stable `session_id`. Each event denormalizes the facts needed to reconstruct work weeks later: repo, source cwd, runtime cwd, worktree slug/path/branch/base_ref, name, role (teammate/team_leader/team_member), team_id, human-readable leader name, intent, turn origin (dispatcher/team_leader/channel), runtime checkpoint kind + resumable session/thread id, status, and close note — never a volatile runtime socket path. TeamMate identity records gain a nullable `session_id` field; records written before this change read as null and the id is minted lazily on the first post-upgrade lifecycle event (spawn, send, channel turn, or close) and persisted, so existing teammates start being captured without a rebuild — and a send reopening a closed teammate reuses the existing id, so the key never re-keys to the runtime thread id. This is additive and backward compatible: no existing public MCP/tool behavior changes, the per-name history index and Team ledger are unchanged, and old state still loads. The capture is best-effort (a ledger write failure is logged, never failing a lifecycle verb); the settled-turn fact is captured after the reverse-delivery attempt regardless of its outcome, so a failed delivery still records recovery metadata and capture never perturbs delivery timing. No Rebuild required. Not included: the public `last(turns=N)`/filterable session read surface (PR-6), the `ctx`/`history_events`/Team-surface redesign (PR-6/PR-7), and any log relocation/cleanup."
32
+ },
33
+ {
34
+ "comment": "BREAKING: Concrete TeamMate names, durable last(turns), and read-surface cleanup (issue #182 PR-6, #188). The TeamMate `spawn.name` is now a requested base slug / display hint, NOT the final address: the service allocates a concrete, never-reused name (`${slug}-${suffix}` ordinary, `tm-${slug}-${suffix}` Team member, `tl-${team_slug}-${suffix}` TeamLeader; 8 base36-char suffix; slug truncated to keep the 64-char limit) and returns it as `teammate.name`. Callers MUST use the returned concrete name for every later send/status/last/close — the requested label is preserved as the new `display_name` field. Uniqueness is checked against all persisted identities (closed included), so a concrete name is never reused. A Team's durable `leader_name` is now the concrete `tl-` name instead of `${teamId}-leader` (which survives only as the leader's display_name); channel routing/status/dissolve read the stored name. The `last` verb is reworked: it reads a teammate's most recent settled turn(s) from the durable session ledger by concrete name, accepts `turns` (default 1, range 1..5), returns the final assistant output captured up to a 160,000-char hard cap with an `assistant_truncated` flag, and never starts/resumes a runtime — so it works for a closed/stopped teammate and is the fallback when reverse-delivery of a completion failed. The settled session-ledger event gains `assistant` + `assistant_truncated`; identity/status/ledger rows gain `display_name` (and `session_id` on ledger rows). The obsolete `ctx` and raw `history_events` verbs are removed from the TeamMate MCP schema, admin methods, and capabilities `verbs`; use `last` and `history` instead. Backward compatible state: identity records written before this change read `display_name` as null and remain usable without migration; the session ledger and per-name history index still load. Rebuild: none required for stored state — but any saved automation, prompt, or note that hard-codes a teammate name like `reviewer` or a Team leader name like `myteam-leader`, or that calls the removed `ctx`/`history_events` verbs, must be updated to use the concrete name returned by `spawn` and the `last`/`history` verbs."
35
+ },
36
+ {
37
+ "comment": "BREAKING: Align the Team MCP surface with the TeamMate read-surface model (issue #182 PR-7). The dispatcher-only `team` MCP is now addressed by Team `name` (the internal `team_id` storage key is unchanged and equal to `name` today), and its read tools mirror the TeamMate `list`/`status`/`history` split: `team.list` returns compact scan rows (name, status, intent, repo signal, leader name/state, member count, bound-group marker, timestamps) instead of full summaries; `team.status` returns one Team's detail by name including the active bound Feishu group; and the raw per-Team event `team.ledger` verb is replaced by a filterable `team.history` recovery search over Teams (filters: name, status, close_status, repo, intent text `grep`, `since`/`until`, `limit`, `cursor`) — the raw lifecycle event timeline stays internal. Binding is simplified: `team.bind_channel` becomes `team.bind_group` taking Team `name` + `chat_id` (Feishu group only; the redundant `chat_type` is removed from the public surface, which the binding store rejected for non-group anyway), and `team.transfer_channel_back` likewise drops `chat_type`. `team.create`/`team.create_group` are unchanged in this PR (create_group retirement is deferred to a follow-up). Rebuild: none for stored state — Team records, ledgers, and channel bindings load unchanged. But any saved automation or prompt that calls the Team MCP with `team_id`, or that uses the removed `team.ledger`/`team.bind_channel` verbs or a `chat_type` argument, must switch to addressing by `name` and to `team.history`/`team.bind_group` without `chat_type`."
38
+ },
39
+ {
40
+ "comment": "BREAKING: Final #182 cleanup — retire the public `team.create_group` tool and remove the write-only per-name TeamMate history index (issue #182 PR-8). (1) `team.create_group` (create a brand-new Feishu group and invite users) is removed from the Team MCP tool list, capabilities, admin methods, and docs. Its binding role is replaced by an optional `team.create` argument `bind_group: { chat_id }` that binds an EXISTING Feishu group chat to the new Team at create time; a standalone `team.bind_group` still binds an existing group later. The dreamux-side group-creation plumbing (TeamService.createGroup, the dispatcher's createFeishuGroup wiring, and the channel bot's createGroup method) was removed with it. (2) The per-name TeamMate history index `~/.dreamux/state/<dispatcher-id>/teammate/history/<name>.jsonl` is no longer written or read: since PR-6 the durable session ledger `sessions.jsonl` is the single recovery record (list/status/history/last all read it), so the per-name index had no readers and only added files. `appendHistory`, `TeamMateIdentityStore.history()`, the per-name path builder, and the `TeamMateHistoryEvent` types were removed. Rebuild: none required for stored state — Team records, channel bindings, and the session ledger load unchanged. Existing `teammate/history/<name>.jsonl` files become unused and may be deleted manually. Any saved automation or prompt that called `team.create_group` must switch to `team.create` with `bind_group` (binding an existing group); creating a brand-new Feishu group from the Team MCP is no longer supported."
41
+ }
42
+ ]
43
+ }
44
+ },
4
45
  {
5
46
  "version": "0.13.0",
6
47
  "tag": "@excitedjs/dreamux_v0.13.0",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
1
  # Change Log - @excitedjs/dreamux
2
2
 
3
- This log was last generated on Wed, 10 Jun 2026 07:24:34 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 11 Jun 2026 13:39:40 GMT and should not be manually modified.
4
+
5
+ ## 0.14.0
6
+ Thu, 11 Jun 2026 13:39:40 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - Logs stage + runtime socket path-budget fix (issue #182). Logs: runtime child stdout/stderr log files are opened eagerly as inherited fds and normal Codex/Claude traffic flows over the socket/stream, so they are usually empty; each supervisor now removes its child's stdout/stderr log on clean shutdown when it stayed zero-byte, so empty logs no longer accumulate one-per-start (files that captured startup/crash output are kept). Log retention stays MANUAL in 0.x — Dreamux does not age-prune logs; a 7-day retention is the documented guidance and zero-byte files are always safe to delete (see the dreamux-maintenance skill's Log Maintenance section). The whole ~/.dreamux/logs/ tree is rebuildable and safe to clear while no server runs. Runtime sockets: the volatile rendezvous-socket allocator now also considers a private per-user OS temp dir (resolved from TMPDIR/TMP/TEMP then os.tmpdir()) after $XDG_RUNTIME_DIR and ~/.dreamux/run/sockets/, but only when it is NOT a world-shared root like /tmp (Linux /tmp is still rejected). On macOS, os.tmpdir() is the per-user $TMPDIR (/var/folders/.../T, owner-only) and is far shorter than a long per-run $HOME, so Codex/Claude sockets stay within the Unix sun_path budget when there is no $XDG_RUNTIME_DIR and the run root would be over budget — fixing the macOS path-budget failure without using shared /tmp and without persisting socket paths. Rebuild: none. No config/state schema change; old empty log files left by a previous version may be deleted manually.
11
+ - BREAKING: dreamux-owned volatile run files moved from ~/.dreamux/state to ~/.dreamux/run (issue #182 PR-1): the admin socket (state/admin.sock -> run/admin.sock, plus its .lock) and the one-shot restart marker (state/restart-intent.json -> run/restart-intent.json). Codex app-server listen sockets no longer use descriptive in-state paths (state/<dispatcher>/codex.sock or teammate runtime dirs); every runtime start now allocates a fresh short random socket under $XDG_RUNTIME_DIR/dreamux/sockets/ or ~/.dreamux/run/sockets/, swept on server start, never persisted to durable state. Mixed-version caveat: a CLI or MCP shim older than this version looks for the admin socket under state/ and cannot reach a new server (and vice versa) — upgrade the package and restart the daemon so server and shims ship from the same version. Upgrade step: STOP the old daemon (dreamux daemon stop, or stop the managed service) BEFORE starting this version. Because the admin lock moved from state/admin.sock.lock to run/admin.sock.lock, a still-running old server would not be seen by the new one; the new server now fails loud on startup if a live old server still holds the legacy lock, so stop it first. The unused server.json path declaration was removed. Rebuild: nothing to rebuild; old leftovers may be deleted manually: ~/.dreamux/state/admin.sock, ~/.dreamux/state/admin.sock.lock, ~/.dreamux/state/restart-intent.json, ~/.dreamux/state/<dispatcher>/codex.sock, ~/.dreamux/state/<dispatcher>/teammate/runtime/<name>/codex.sock, and stale dreamux-codex-*.sock files under $XDG_RUNTIME_DIR (or the per-user os temp dir, e.g. macOS $TMPDIR).
12
+ - BREAKING: dreamux cache/spill artifacts moved into a new ~/.dreamux/cache tree (issue #182 PR-2). Teammate completion spill files moved from shared /tmp/teammate-<source>-<id>.output to ~/.dreamux/cache/<dispatcher-id>/spill/, and the Feishu inbound attachment cache moved from ~/.dreamux/state/<dispatcher-id>/feishu-attachments/ to ~/.dreamux/cache/<dispatcher-id>/feishu-attachments/. Both are rebuildable cache, not durable state: nothing reads a spill file back (only its path is inlined into a dispatcher turn) and attachments are re-fetchable. dreamux uninstall now also removes ~/.dreamux/cache. No automatic migration. Rebuild: nothing to rebuild; old leftovers may be deleted manually: stale /tmp/teammate-*.output files and the old ~/.dreamux/state/<dispatcher-id>/feishu-attachments/ directories.
13
+ - BREAKING (MCP contract): intent/note are now required on TeamMate and Team lifecycle tools (issue #182 PR-3). teammate.spawn requires intent and teammate.close requires note; team.create and team.create_group require intent and team.dissolve requires note. teammate.send gains an OPTIONAL intent that updates the recorded recovery subject before the turn. These are the durable recovery subject and the close/dissolve reason for the session/Team ledger. The synthetic 'team dissolved' fallback was removed — dissolve now records the operator's real reason. Persisted fields stay nullable, so existing identity/Team records written without intent/note still load (they read as null); only new lifecycle calls must supply the fields. A dispatcher/agent that called these tools without intent/note will now get a 'must be a non-empty string' rejection. The requirement is enforced at every layer — MCP json-schema, the shim arg builders, the admin methods, AND the TeamMate/Team service boundary — so even an in-process caller cannot persist a missing/empty required field. Recreating a closed Team now adopts the new create.intent (it was previously left stale). No durable file format or path change. Not included here: the later list/status/history reshape, ctx/history_events removal, or create/create_group merge (PR-7).
14
+ - BREAKING (dispatcher workspace + managed worktree layout): every configured dispatcher must now declare an explicit `cwd` (issue #182 PR-4). `dreamux serve` fails loud at startup if any enabled dispatcher has no `cwd` — there is no longer a fallback to a Dreamux state directory (`~/.dreamux/state/<id>/cwd`). A configured-but-missing `cwd` is created with mkdir -p; a `cwd` that is not a usable directory fails startup. `dreamux doctor` diagnoses the same contract per dispatcher (`dispatcher <id> workspace`). Rebuild: add `"cwd": "/abs/path/to/workspace"` to each dispatcher in ~/.dreamux/config.json (a real, operator-owned project directory, NOT inside ~/.dreamux) and `daemon restart`. Dreamux-managed TeamMate/Team Git worktrees were relocated OUT of `~/.dreamux/state/<id>/teammate/worktrees/` into the dispatcher workspace at `<cwd>/.workspace/worktree/<repo-disambiguated-slug>/<teammate-or-team-slug>/`. `.workspace/` is self-ignored (a `*` .gitignore) so managed worktrees never become repo content. The repo-disambiguated slug (`<sanitized-basename>-<sha256(repo-root):12>`) keeps same-named repos and Team/TeamMate worktrees distinct across repos. Managed worktree creation fails loud if the workspace resolves under `~/.dreamux`. Legacy teammate/Team identity records that still point at the old under-state worktree path are read verbatim (no rewrite, no deletion); only newly created managed worktrees use the new location, so a teammate with a since-deleted old managed worktree is re-prepared at the new path on reopen. reuse-cwd teammates are unchanged and do not require the dispatcher cwd contract. No persisted file FORMAT change. Not included: PR-5 session ledger, PR-6 list/status/history read surface, PR-7 Team MCP cleanup, logs/retention.
15
+ - Add durable TeamMate/Team session ledger capture (issue #182 PR-5). A new per-dispatcher append-only file `~/.dreamux/state/<dispatcher-id>/teammate/sessions.jsonl` records session lifecycle events (spawn/create, send, turn submitted — including TeamLeader turns delivered through a bound Team channel — turn settled, close/dissolve) keyed by a stable `session_id`. Each event denormalizes the facts needed to reconstruct work weeks later: repo, source cwd, runtime cwd, worktree slug/path/branch/base_ref, name, role (teammate/team_leader/team_member), team_id, human-readable leader name, intent, turn origin (dispatcher/team_leader/channel), runtime checkpoint kind + resumable session/thread id, status, and close note — never a volatile runtime socket path. TeamMate identity records gain a nullable `session_id` field; records written before this change read as null and the id is minted lazily on the first post-upgrade lifecycle event (spawn, send, channel turn, or close) and persisted, so existing teammates start being captured without a rebuild — and a send reopening a closed teammate reuses the existing id, so the key never re-keys to the runtime thread id. This is additive and backward compatible: no existing public MCP/tool behavior changes, the per-name history index and Team ledger are unchanged, and old state still loads. The capture is best-effort (a ledger write failure is logged, never failing a lifecycle verb); the settled-turn fact is captured after the reverse-delivery attempt regardless of its outcome, so a failed delivery still records recovery metadata and capture never perturbs delivery timing. No Rebuild required. Not included: the public `last(turns=N)`/filterable session read surface (PR-6), the `ctx`/`history_events`/Team-surface redesign (PR-6/PR-7), and any log relocation/cleanup.
16
+ - BREAKING: Concrete TeamMate names, durable last(turns), and read-surface cleanup (issue #182 PR-6, #188). The TeamMate `spawn.name` is now a requested base slug / display hint, NOT the final address: the service allocates a concrete, never-reused name (`${slug}-${suffix}` ordinary, `tm-${slug}-${suffix}` Team member, `tl-${team_slug}-${suffix}` TeamLeader; 8 base36-char suffix; slug truncated to keep the 64-char limit) and returns it as `teammate.name`. Callers MUST use the returned concrete name for every later send/status/last/close — the requested label is preserved as the new `display_name` field. Uniqueness is checked against all persisted identities (closed included), so a concrete name is never reused. A Team's durable `leader_name` is now the concrete `tl-` name instead of `${teamId}-leader` (which survives only as the leader's display_name); channel routing/status/dissolve read the stored name. The `last` verb is reworked: it reads a teammate's most recent settled turn(s) from the durable session ledger by concrete name, accepts `turns` (default 1, range 1..5), returns the final assistant output captured up to a 160,000-char hard cap with an `assistant_truncated` flag, and never starts/resumes a runtime — so it works for a closed/stopped teammate and is the fallback when reverse-delivery of a completion failed. The settled session-ledger event gains `assistant` + `assistant_truncated`; identity/status/ledger rows gain `display_name` (and `session_id` on ledger rows). The obsolete `ctx` and raw `history_events` verbs are removed from the TeamMate MCP schema, admin methods, and capabilities `verbs`; use `last` and `history` instead. Backward compatible state: identity records written before this change read `display_name` as null and remain usable without migration; the session ledger and per-name history index still load. Rebuild: none required for stored state — but any saved automation, prompt, or note that hard-codes a teammate name like `reviewer` or a Team leader name like `myteam-leader`, or that calls the removed `ctx`/`history_events` verbs, must be updated to use the concrete name returned by `spawn` and the `last`/`history` verbs.
17
+ - BREAKING: Align the Team MCP surface with the TeamMate read-surface model (issue #182 PR-7). The dispatcher-only `team` MCP is now addressed by Team `name` (the internal `team_id` storage key is unchanged and equal to `name` today), and its read tools mirror the TeamMate `list`/`status`/`history` split: `team.list` returns compact scan rows (name, status, intent, repo signal, leader name/state, member count, bound-group marker, timestamps) instead of full summaries; `team.status` returns one Team's detail by name including the active bound Feishu group; and the raw per-Team event `team.ledger` verb is replaced by a filterable `team.history` recovery search over Teams (filters: name, status, close_status, repo, intent text `grep`, `since`/`until`, `limit`, `cursor`) — the raw lifecycle event timeline stays internal. Binding is simplified: `team.bind_channel` becomes `team.bind_group` taking Team `name` + `chat_id` (Feishu group only; the redundant `chat_type` is removed from the public surface, which the binding store rejected for non-group anyway), and `team.transfer_channel_back` likewise drops `chat_type`. `team.create`/`team.create_group` are unchanged in this PR (create_group retirement is deferred to a follow-up). Rebuild: none for stored state — Team records, ledgers, and channel bindings load unchanged. But any saved automation or prompt that calls the Team MCP with `team_id`, or that uses the removed `team.ledger`/`team.bind_channel` verbs or a `chat_type` argument, must switch to addressing by `name` and to `team.history`/`team.bind_group` without `chat_type`.
18
+ - BREAKING: Final #182 cleanup — retire the public `team.create_group` tool and remove the write-only per-name TeamMate history index (issue #182 PR-8). (1) `team.create_group` (create a brand-new Feishu group and invite users) is removed from the Team MCP tool list, capabilities, admin methods, and docs. Its binding role is replaced by an optional `team.create` argument `bind_group: { chat_id }` that binds an EXISTING Feishu group chat to the new Team at create time; a standalone `team.bind_group` still binds an existing group later. The dreamux-side group-creation plumbing (TeamService.createGroup, the dispatcher's createFeishuGroup wiring, and the channel bot's createGroup method) was removed with it. (2) The per-name TeamMate history index `~/.dreamux/state/<dispatcher-id>/teammate/history/<name>.jsonl` is no longer written or read: since PR-6 the durable session ledger `sessions.jsonl` is the single recovery record (list/status/history/last all read it), so the per-name index had no readers and only added files. `appendHistory`, `TeamMateIdentityStore.history()`, the per-name path builder, and the `TeamMateHistoryEvent` types were removed. Rebuild: none required for stored state — Team records, channel bindings, and the session ledger load unchanged. Existing `teammate/history/<name>.jsonl` files become unused and may be deleted manually. Any saved automation or prompt that called `team.create_group` must switch to `team.create` with `bind_group` (binding an existing group); creating a brand-new Feishu group from the Team MCP is no longer supported.
4
19
 
5
20
  ## 0.13.0
6
21
  Wed, 10 Jun 2026 07:24:34 GMT
package/README.md CHANGED
@@ -98,20 +98,23 @@ logs:
98
98
  | Path | Purpose | Source of truth |
99
99
  |---|---|---|
100
100
  | `~/.dreamux/config.json` | User-editable config and Feishu bot secrets, created by `dreamux onboard`; edit and restart to apply | the operator |
101
- | `~/.dreamux/state/server.json` | Server status snapshot | the server |
102
- | `~/.dreamux/state/admin.sock` | Admin Unix socket | the server |
101
+ | `~/.dreamux/run/admin.sock` | Admin Unix socket (+ `admin.sock.lock`); volatile run file | the server |
102
+ | `~/.dreamux/run/restart-intent.json` | One-shot daemon restart marker; volatile run file | the server |
103
+ | `~/.dreamux/run/sockets/` | Fallback root for ephemeral Codex app-server rendezvous sockets (preferred root: `$XDG_RUNTIME_DIR/dreamux/sockets/`); random per start, never persisted | the server |
103
104
  | `~/.dreamux/state/<id>/status.json` | Dispatcher runtime status and runtime thread/session id | the server |
104
105
  | `~/.dreamux/state/<id>/access.json` | Dispatcher-local access-gate state | the server |
105
- | `~/.dreamux/state/<id>/codex.sock` | Codex app-server Unix socket | the server |
106
106
  | `~/.dreamux/state/<id>/claude-code-mcp.json` | Claude Code MCP config generated from Dreamux-owned descriptors | the server |
107
107
  | `~/.dreamux/state/<id>/teammate/` | TeamMate task ledger, results, and delivery retry state | the server |
108
+ | `~/.dreamux/cache/<id>/spill/` | Over-budget teammate completion spill files; rebuildable cache, only the path is inlined into a dispatcher turn | the server |
109
+ | `~/.dreamux/cache/<id>/feishu-attachments/` | Feishu inbound attachment cache; re-fetchable, safe to delete | the server |
108
110
  | `~/.dreamux/logs/codex-app-server/<id>.log` | Codex app-server stdout/stderr | the server |
109
111
  | `~/.dreamux/logs/feishu-channel/<id>.log` | Feishu channel logs | the server |
110
112
  | `~/.dreamux/logs/teammate-mcp/<id>.log` | TeamMate MCP shim diagnostics | the server |
111
113
  | `~/.codex/` | Codex global default home: auth, memory, and config | the operator / Codex |
112
114
  | `<dispatcher cwd>/.codex/skills/dispatcher/SKILL.md` | Dispatcher skill copied by `dreamux onboard`; reported but not deleted by `dreamux uninstall` | dreamux installer |
113
115
 
114
- `rm -rf ~/.dreamux/state ~/.dreamux/logs` is a state/log recovery path; dreamux
116
+ `rm -rf ~/.dreamux/run ~/.dreamux/cache ~/.dreamux/state ~/.dreamux/logs` is a
117
+ run/cache/state/log recovery path (only while no server is running); dreamux
115
118
  config and global Codex auth survive.
116
119
 
117
120
  ## Configure dispatchers
@@ -118,17 +118,18 @@ export const adminMethods = {
118
118
  const sharedWorkspace = caller.kind === 'team_leader'
119
119
  ? await server.dispatcherService.teams.sharedWorkspace(id, caller.teamId)
120
120
  : undefined;
121
- const intent = optionalString(params, 'intent');
121
+ // Required recovery subject (issue #182 PR-3).
122
+ const intent = mustNonEmptyString(params, 'intent');
122
123
  try {
123
124
  return await server.dispatcherService.teammates.spawnScoped({
124
125
  principal: caller,
125
126
  name,
126
127
  prompt,
128
+ intent,
127
129
  ...(sharedWorkspace !== undefined ? { sharedWorkspace } : {}),
128
130
  ...(cwd !== null ? { cwd } : {}),
129
131
  ...(agentRuntime !== null ? { agentRuntime } : {}),
130
132
  ...(worktree !== null ? { worktree } : {}),
131
- ...(intent !== null ? { intent } : {}),
132
133
  });
133
134
  }
134
135
  catch (err) {
@@ -141,11 +142,15 @@ export const adminMethods = {
141
142
  const caller = callerPrincipal(id, params);
142
143
  const name = mustString(params, 'name');
143
144
  const prompt = mustString(params, 'prompt');
145
+ // Optional: when supplied, updates the recorded recovery subject before the
146
+ // turn (issue #182 PR-3).
147
+ const intent = optionalString(params, 'intent');
144
148
  try {
145
149
  return await server.dispatcherService.teammates.sendScoped({
146
150
  principal: caller,
147
151
  name,
148
152
  prompt,
153
+ ...(intent !== null ? { intent } : {}),
149
154
  });
150
155
  }
151
156
  catch (err) {
@@ -157,12 +162,13 @@ export const adminMethods = {
157
162
  mustExistingDispatcher(server, id);
158
163
  const caller = callerPrincipal(id, params);
159
164
  const name = mustString(params, 'name');
160
- const note = optionalString(params, 'note');
165
+ // Required close reason (issue #182 PR-3).
166
+ const note = mustNonEmptyString(params, 'note');
161
167
  try {
162
168
  return await server.dispatcherService.teammates.closeScoped({
163
169
  principal: caller,
164
170
  name,
165
- ...(note !== null ? { note } : {}),
171
+ note,
166
172
  });
167
173
  }
168
174
  catch (err) {
@@ -178,13 +184,6 @@ export const adminMethods = {
178
184
  ...historyQuery(params),
179
185
  });
180
186
  },
181
- 'mcp.teammate.history_events': async (server, params) => {
182
- const id = mustDispatcherId(params);
183
- mustExistingDispatcher(server, id);
184
- const caller = callerPrincipal(id, params);
185
- const name = mustString(params, 'name');
186
- return server.dispatcherService.teammates.historyEventsScoped(caller, name);
187
- },
188
187
  'mcp.teammate.list': async (server, params) => {
189
188
  const id = mustDispatcherId(params);
190
189
  mustExistingDispatcher(server, id);
@@ -204,13 +203,8 @@ export const adminMethods = {
204
203
  const id = mustDispatcherId(params);
205
204
  mustExistingDispatcher(server, id);
206
205
  const name = mustString(params, 'name');
207
- return server.dispatcherService.teammates.lastScoped(callerPrincipal(id, params), name);
208
- },
209
- 'mcp.teammate.ctx': async (server, params) => {
210
- const id = mustDispatcherId(params);
211
- mustExistingDispatcher(server, id);
212
- const name = mustString(params, 'name');
213
- return server.dispatcherService.teammates.contextScoped(callerPrincipal(id, params), name);
206
+ const turns = optionalInteger(params, 'turns');
207
+ return server.dispatcherService.teammates.lastScoped(callerPrincipal(id, params), name, turns ?? undefined);
214
208
  },
215
209
  'mcp.teammate.capabilities': (server) => server.dispatcherService.getTeamMateCapabilities(),
216
210
  'mcp.team.create': async (server, params) => {
@@ -220,17 +214,20 @@ export const adminMethods = {
220
214
  const repoCwd = mustString(params, 'repo_cwd');
221
215
  const leaderAgentRuntime = mustString(params, 'leader_agent_runtime');
222
216
  const worktree = optionalWorktreeRequest(params, 'worktree');
223
- const intent = optionalString(params, 'intent');
217
+ // Required recovery subject (issue #182 PR-3).
218
+ const intent = mustNonEmptyString(params, 'intent');
224
219
  const prompt = optionalString(params, 'prompt');
220
+ const bindGroup = optionalBindGroup(params, 'bind_group');
225
221
  try {
226
222
  return await server.dispatcherService.createTeam({
227
223
  dispatcherId: id,
228
224
  name,
229
225
  repoCwd,
230
226
  leaderAgentRuntime,
227
+ intent,
231
228
  ...(worktree !== null ? { worktree } : {}),
232
- ...(intent !== null ? { intent } : {}),
233
229
  ...(prompt !== null ? { prompt } : {}),
230
+ ...(bindGroup !== null ? { bindGroup } : {}),
234
231
  });
235
232
  }
236
233
  catch (err) {
@@ -245,41 +242,46 @@ export const adminMethods = {
245
242
  'mcp.team.status': async (server, params) => {
246
243
  const id = mustDispatcherId(params);
247
244
  mustExistingDispatcher(server, id);
248
- const teamId = mustString(params, 'team_id');
249
- return server.dispatcherService.getTeamStatus(id, teamId);
245
+ // #182 PR-7: public addressing is by `name` (== team_id storage key).
246
+ const name = mustString(params, 'name');
247
+ return server.dispatcherService.getTeamStatus(id, name);
250
248
  },
251
- 'mcp.team.ledger': async (server, params) => {
249
+ 'mcp.team.history': async (server, params) => {
252
250
  const id = mustDispatcherId(params);
253
251
  mustExistingDispatcher(server, id);
254
- const teamId = mustString(params, 'team_id');
255
- return server.dispatcherService.getTeamLedger(id, teamId);
252
+ const name = optionalString(params, 'name');
253
+ const status = optionalTeamStatus(params, 'status');
254
+ const closeStatus = optionalCloseStatus(params, 'close_status');
255
+ const repo = optionalString(params, 'repo');
256
+ const grep = optionalString(params, 'grep');
257
+ const since = optionalInteger(params, 'since');
258
+ const until = optionalInteger(params, 'until');
259
+ const limit = optionalInteger(params, 'limit');
260
+ const cursor = optionalString(params, 'cursor');
261
+ return server.dispatcherService.getTeamHistory({
262
+ dispatcherId: id,
263
+ ...(name !== null ? { name } : {}),
264
+ ...(status !== null ? { status } : {}),
265
+ ...(closeStatus !== null ? { closeStatus } : {}),
266
+ ...(repo !== null ? { repo } : {}),
267
+ ...(grep !== null ? { grep } : {}),
268
+ ...(since !== null ? { since } : {}),
269
+ ...(until !== null ? { until } : {}),
270
+ ...(limit !== null ? { limit } : {}),
271
+ ...(cursor !== null ? { cursor } : {}),
272
+ });
256
273
  },
257
- 'mcp.team.bind_channel': async (server, params) => {
274
+ 'mcp.team.bind_group': async (server, params) => {
258
275
  const id = mustDispatcherId(params);
259
276
  mustExistingDispatcher(server, id);
277
+ // #182 PR-7: bindings are always Feishu group chats; the public surface no
278
+ // longer takes `chat_type` (the store rejects non-group for Team binding).
260
279
  return server.dispatcherService.bindTeamChannel({
261
280
  dispatcherId: id,
262
- teamId: mustString(params, 'team_id'),
281
+ teamId: mustString(params, 'name'),
263
282
  provider: 'builtin:feishu',
264
283
  chatId: mustString(params, 'chat_id'),
265
- chatType: mustString(params, 'chat_type') === 'group' ? 'group' : 'p2p',
266
- });
267
- },
268
- 'mcp.team.create_group': async (server, params) => {
269
- const id = mustDispatcherId(params);
270
- mustExistingDispatcher(server, id);
271
- return server.dispatcherService.createTeamGroup({
272
- dispatcherId: id,
273
- name: mustString(params, 'name'),
274
- repoCwd: mustString(params, 'repo_cwd'),
275
- leaderAgentRuntime: mustString(params, 'leader_agent_runtime'),
276
- sourceChatId: mustString(params, 'source_chat_id'),
277
- sourceChatType: mustString(params, 'source_chat_type') === 'p2p' ? 'p2p' : 'group',
278
- requesterOpenId: mustString(params, 'requester_open_id'),
279
- ...optionalMappedStringProp(params ?? {}, 'group_name', 'groupName'),
280
- ...optionalStringProp(params ?? {}, 'intent'),
281
- ...optionalStringProp(params ?? {}, 'prompt'),
282
- inviteOpenIds: optionalStringArray(params, 'invite_open_ids') ?? [],
284
+ chatType: 'group',
283
285
  });
284
286
  },
285
287
  'mcp.team.transfer_channel_back': async (server, params) => {
@@ -290,19 +292,21 @@ export const adminMethods = {
290
292
  dispatcherId: id,
291
293
  provider: 'builtin:feishu',
292
294
  chatId: mustString(params, 'chat_id'),
293
- chatType: mustString(params, 'chat_type') === 'group' ? 'group' : 'p2p',
295
+ // #182 PR-7: group-only; the public surface no longer takes `chat_type`.
296
+ chatType: 'group',
294
297
  }),
295
298
  };
296
299
  },
297
300
  'mcp.team.dissolve': async (server, params) => {
298
301
  const id = mustDispatcherId(params);
299
302
  mustExistingDispatcher(server, id);
300
- const teamId = mustString(params, 'team_id');
301
- const note = optionalString(params, 'note');
303
+ const name = mustString(params, 'name');
304
+ // Required dissolve reason (issue #182 PR-3).
305
+ const note = mustNonEmptyString(params, 'note');
302
306
  return server.dispatcherService.dissolveTeam({
303
307
  dispatcherId: id,
304
- teamId,
305
- ...(note !== null ? { note } : {}),
308
+ teamId: name,
309
+ note,
306
310
  });
307
311
  },
308
312
  };
@@ -349,6 +353,19 @@ function mustString(params, key) {
349
353
  }
350
354
  return params[key];
351
355
  }
356
+ /**
357
+ * Like `mustString` but rejects the empty string too — the admin-layer guard
358
+ * for required, meaningful fields (issue #182 PR-3 intent/note). Matches the
359
+ * shim's `requireString` so an empty required field is rejected at every layer,
360
+ * including a direct admin caller that bypasses the shim.
361
+ */
362
+ function mustNonEmptyString(params, key) {
363
+ const value = mustString(params, key);
364
+ if (value === '') {
365
+ throw new AdminError('BAD_REQUEST', `param '${key}' must be a non-empty string`);
366
+ }
367
+ return value;
368
+ }
352
369
  function mustDispatcherId(params) {
353
370
  const id = mustString(params, 'dispatcher_id');
354
371
  try {
@@ -444,25 +461,37 @@ function optionalCloseStatus(params, key) {
444
461
  return value;
445
462
  throw new AdminError('BAD_REQUEST', `param '${key}' must be open or closed`);
446
463
  }
447
- function optionalInteger(params, key) {
464
+ function optionalBindGroup(params, key) {
448
465
  if (params === undefined)
449
466
  return null;
450
467
  const value = params[key];
451
468
  if (value === undefined || value === null)
452
469
  return null;
453
- if (!Number.isInteger(value)) {
454
- throw new AdminError('BAD_REQUEST', `param '${key}' must be an integer`);
470
+ if (typeof value !== 'object' || Array.isArray(value)) {
471
+ throw new AdminError('BAD_REQUEST', `param '${key}' must be an object`);
455
472
  }
456
- return value;
473
+ const chatId = value['chat_id'];
474
+ if (typeof chatId !== 'string' || chatId === '') {
475
+ throw new AdminError('BAD_REQUEST', `param '${key}.chat_id' must be a non-empty string`);
476
+ }
477
+ return { chatId };
478
+ }
479
+ function optionalTeamStatus(params, key) {
480
+ const value = optionalString(params, key);
481
+ if (value === null)
482
+ return null;
483
+ if (value === 'starting' || value === 'running' || value === 'closed')
484
+ return value;
485
+ throw new AdminError('BAD_REQUEST', `param '${key}' must be starting, running, or closed`);
457
486
  }
458
- function optionalStringArray(params, key) {
487
+ function optionalInteger(params, key) {
459
488
  if (params === undefined)
460
489
  return null;
461
490
  const value = params[key];
462
491
  if (value === undefined || value === null)
463
492
  return null;
464
- if (!Array.isArray(value) || value.some((item) => typeof item !== 'string')) {
465
- throw new AdminError('BAD_REQUEST', `param '${key}' must be an array of strings`);
493
+ if (!Number.isInteger(value)) {
494
+ throw new AdminError('BAD_REQUEST', `param '${key}' must be an integer`);
466
495
  }
467
496
  return value;
468
497
  }
@@ -470,10 +499,6 @@ function optionalStringProp(params, key) {
470
499
  const value = optionalString(params, key);
471
500
  return value === null ? {} : { [key]: value };
472
501
  }
473
- function optionalMappedStringProp(params, key, targetKey) {
474
- const value = optionalString(params, key);
475
- return value === null ? {} : { [targetKey]: value };
476
- }
477
502
  function mustExistingDispatcher(server, id) {
478
503
  const row = server.repos.dispatchers.get(id);
479
504
  if (row === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/admin/methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/admin/methods.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@
7
7
  */
8
8
  import { createServer } from 'node:net';
9
9
  import { chmod, readFile, rm, writeFile } from 'node:fs/promises';
10
+ import { dirname } from 'node:path';
11
+ import { ensureOwnerOnlyDir } from '../platform/owner-only-dir.js';
10
12
  import { AdminError, } from './protocol.js';
11
13
  import { adminMethods } from './methods.js';
12
14
  /**
@@ -33,6 +35,10 @@ export function createAdminSocketServer(server, socketPath, options = {}) {
33
35
  // hold it, nobody else can be inside this start() concurrently.
34
36
  // Stale pidfiles (dead holder) are reclaimed up to RECLAIM_ATTEMPTS
35
37
  // times; a live holder always loses the race.
38
+ // The socket + lock live under the volatile run root (issue #182),
39
+ // which may not exist yet on a fresh install — create it owner-only, and
40
+ // tighten it if a pre-existing run dir is group/world-traversable.
41
+ await ensureOwnerOnlyDir(dirname(socketPath));
36
42
  await acquirePidLock(lockPath, myPid, isAlive);
37
43
  holdLock = true;
38
44
  try {
@@ -177,6 +183,31 @@ function defaultIsPidAlive(pid) {
177
183
  return e.code === 'EPERM';
178
184
  }
179
185
  }
186
+ /**
187
+ * Fail loud when a still-running OLD-version dreamux server holds the
188
+ * pre-#182 admin socket lock (issue #182 PR-1, PR #183 review P1).
189
+ *
190
+ * The new server's single-instance guard locks `run/admin.sock.lock`, but an
191
+ * old server locks the legacy `state/admin.sock.lock` — a different path — so
192
+ * the two cannot see each other and could run simultaneously, which would also
193
+ * break the runtime-socket sweep's single-server premise. We detect a *live*
194
+ * legacy holder and refuse to start. Detection only: the legacy file is never
195
+ * read for migration, removed, or rewritten here. A stale legacy lock (missing,
196
+ * unreadable, or a dead PID) is ignored so a crashed old server does not block
197
+ * the upgrade.
198
+ */
199
+ export async function assertNoLegacyAdminServer(options) {
200
+ const isAlive = options.isPidAlive ?? defaultIsPidAlive;
201
+ const holder = await readPidFile(options.legacyLockPath);
202
+ if (holder !== null && isAlive(holder)) {
203
+ throw new Error(`a legacy dreamux serve process (pid ${holder}) still holds the pre-upgrade admin ` +
204
+ `socket lock at ${options.legacyLockPath}. This version moved the admin socket to ` +
205
+ '~/.dreamux/run/admin.sock, so the old and new servers cannot see each other and ' +
206
+ 'could run at the same time. Stop the old daemon (dreamux daemon stop, or stop the ' +
207
+ 'managed service) before starting this version. The legacy file is left untouched; ' +
208
+ 'remove it manually only after the old server is stopped.');
209
+ }
210
+ }
180
211
  function handleConnection(server, sock) {
181
212
  let buf = '';
182
213
  sock.setEncoding('utf8');
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/admin/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/admin/socket.ts"],"names":[],"mappings":"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"}