@brutalsystems/muster 0.8.2 → 0.8.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.
package/README.md CHANGED
@@ -66,9 +66,11 @@ used to look identical to a hung or crashed launch. Muster now reads
66
66
  `hasTrustDialogAccepted` for the working directory out of the profile's
67
67
  `.claude.json` when a Claude launch times out with nothing registered, and
68
68
  either names the untrusted directory and the one-time fix or rules trust out
69
- and points at the remaining consent screens — a login prompt, or the
70
- confirmation Claude asks for the first time a profile uses bypass-permissions
71
- mode. That read happens only on the failure path and only ever reads. A
69
+ and sends you to the terminal for whatever else is holding the session — a
70
+ login prompt, or another one-time confirmation. It deliberately does not guess
71
+ which: trust is the only one of them Muster can check, and a message that names
72
+ the wrong screen costs what the vague one did. That read happens only on the
73
+ failure path and only ever reads. A
72
74
  `--kind task` launch into the same directory is the cheap discriminator by
73
75
  hand: it runs headless and never sees the dialog.
74
76
 
@@ -694,6 +696,18 @@ need it), and resume/fork (#32) cannot assume a copy is still there.
694
696
  Launching without `--identity` sets none of this: behaviour is exactly as
695
697
  before, using the ambient environment.
696
698
 
699
+ **That is the right choice for profile work, which is counter-intuitive.** If
700
+ you already work in a shell whose `CLAUDE_CONFIG_DIR` selects an account —
701
+ `~/.claude-armdev`, say — a launch with no `--identity` inherits it, and the
702
+ session lands on that account with no flag at all. `launchEnv` blocks
703
+ `CLAUDECODE`, `CLAUDE_CODE_*`, `CODEX_THREAD_ID`, `TMUX`, `TMUX_PANE` and
704
+ `MCP_*` from reaching the child, and deliberately lets `CLAUDE_CONFIG_DIR`
705
+ through for exactly this reason. Passing `--identity` there does not add
706
+ containment to that account — it **replaces** it, pointing the runtime at a
707
+ copy of a different one, so the session appears under an account you did not
708
+ mean to use. Reach for `--identity` to choose an account Muster manages, not to
709
+ harden the one your shell already selected.
710
+
697
711
  Session discovery follows the same relocated path, so a Claude identity's
698
712
  sessions are found even though `CLAUDE_CONFIG_DIR` no longer points at
699
713
  `~/.claude` — this was previously refused outright as an unsupported
@@ -62,10 +62,13 @@ export async function claudeWorkspaceTrusted(env, cwd) {
62
62
  *
63
63
  * A session sitting on a consent screen has no registry record at all, so the
64
64
  * timeout looks identical to a hung or crashed launch. Several unrelated
65
- * screens produce it — workspace trust, login, the first use of
66
- * bypass-permissions mode — and the old message guessed at two of them
67
- * together. Trust is the one Muster can actually check, so it is either named
68
- * or ruled out; the rest are listed only once it has been ruled out.
65
+ * screens can produce it, and the old message guessed at two of them together.
66
+ * Trust is the one Muster can actually check, so it is either named or ruled
67
+ * out. Nothing else is named: a first-use bypass-permissions confirmation was
68
+ * a plausible account of one report, but no profile on this machine carries a
69
+ * key for it the way they carry `hasSeenAutoModeEntryWarning` and its
70
+ * siblings, so this says "another one-time confirmation" rather than sending
71
+ * the reader after a screen nobody has demonstrated.
69
72
  *
70
73
  * A `--kind task` launch into the same directory is the cheap discriminator:
71
74
  * it runs headless and never sees the dialog, so it succeeds where a session
@@ -77,9 +80,9 @@ export function claudeRegistryDiagnostic(trusted, cwd, configDir) {
77
80
  `accepted for ${cwd} in ${configDir} — accept it once with ` +
78
81
  `\`cd ${cwd} && claude\`, then retry (trust is per-directory and is ` +
79
82
  `not inherited from a parent directory)`);
80
- return (`no Claude session registry found (${cwd} is trusted, so check the ` +
81
- `terminal for a login prompt, or for the one-time confirmation Claude ` +
82
- `asks for the first time a profile uses bypass-permissions mode)`);
83
+ return (`no Claude session registry found (${cwd} is trusted for this profile, ` +
84
+ `so the session is stopped on something else — check the terminal for a ` +
85
+ `login prompt or another one-time confirmation)`);
83
86
  }
84
87
  export async function resolveClaude(root, env, deadline) {
85
88
  const dir = claudeSessionsDir(env);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brutalsystems/muster",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Launch instructed, reachable local agent sessions",
5
5
  "type": "module",
6
6
  "engines": {