parallel-codex-tui 0.2.2 → 0.2.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.
@@ -75,8 +75,8 @@ fallback = "new"
75
75
 
76
76
  [workers.claude]
77
77
  command = "claude"
78
- # Automated isolated roles enforce acceptEdits and remove permission-bypass flags.
79
- args = ["--print", "--permission-mode", "acceptEdits", "--output-format", "text"]
78
+ # Main uses Claude auto mode for non-interactive tools. Isolated roles are still clamped to acceptEdits.
79
+ args = ["--print", "--permission-mode", "auto", "--output-format", "text"]
80
80
  # timeoutMs is the hard ceiling; first output owns silent startup and idle starts after actual output.
81
81
  # timeoutMs = 2700000
82
82
  # idleTimeoutMs = 300000
package/README.md CHANGED
@@ -6,7 +6,7 @@ Built with Codex-assisted development.
6
6
 
7
7
  ## Current Release
8
8
 
9
- `v0.2.2` is available from [npm](https://www.npmjs.com/package/parallel-codex-tui/v/0.2.2) and as a [GitHub Release](https://github.com/allendred/parallel-codex-tui/releases/tag/v0.2.2). It automatically inherits the macOS system proxy when explicit proxy variables are absent, expands the default Router cold-start budget, and retains the single Up/Down request-history fix from `v0.2.1`.
9
+ `v0.2.3` is available from [npm](https://www.npmjs.com/package/parallel-codex-tui/v/0.2.3) and as a [GitHub Release](https://github.com/allendred/parallel-codex-tui/releases/tag/v0.2.3). Claude Main now uses non-interactive `auto` permissions so safe tool calls can run instead of asking for an approval that the chat cannot deliver. Isolated coding Workers remain clamped to `acceptEdits`; the macOS system-proxy and Up/Down history fixes from `v0.2.2` remain included.
10
10
 
11
11
  The release keeps terminal scrolling and copying available at the same time without requiring Shift. Ordinary left-drag selection remains owned by the terminal while alternate-scroll delivers the wheel to chat, Worker logs, and structured views. `Ctrl+Y` copies the visible view as a fallback. It preserves the embedded native Agent scrollback across status-detail round trips and real PTY resizes.
12
12
 
@@ -20,7 +20,7 @@ Highlights:
20
20
  - Named Worker Providers support Codex-compatible, Claude-compatible, OpenAI-compatible, Anthropic-compatible, and custom generic commands with independent role, model, environment, permission, resume, and interactive settings.
21
21
  - Worker overview, Feature board, collaboration timeline, Task center, status details, rendered Markdown/Diff/error logs, Unicode search, keyboard navigation, mouse scrolling, and configurable themes share one terminal UI system.
22
22
 
23
- Release acceptance includes a real three-Feature Tetris task with parallel Actor/Critic waves and final integration review. Real Codex and Claude probes both proved fresh and same-session resume calls, the semantic Router completed a live classification, and one TUI completed Main calls in two workspaces before restoring the first workspace without leaking chat state. PTY coverage runs in Apple Terminal, tmux, and Zellij profiles at narrow and wide sizes, including status/log equivalence and preserving the native output tail across status-detail round trips. The deterministic repository suite passed 1,262 tests across 123 files; one quota-consuming real-Agent test is skipped by default and passes through `npm run test:real-agents`.
23
+ Release acceptance includes a real three-Feature Tetris task with parallel Actor/Critic waves and final integration review. Real Codex and Claude probes both proved fresh and same-session resume calls, and a Claude Main session executed safe Bash tools before and after resume with `auto` permissions. The semantic Router completed a live classification, and one TUI completed Main calls in two workspaces before restoring the first workspace without leaking chat state. PTY coverage runs in Apple Terminal, tmux, and Zellij profiles at narrow and wide sizes, including status/log equivalence and preserving the native output tail across status-detail round trips. The deterministic repository suite passed 1,264 tests across 123 files; one quota-consuming real-Agent test is skipped by default and passes through `npm run test:real-agents`.
24
24
 
25
25
  Real Provider probes depend on valid local CLI credentials. In particular, authenticate the Claude CLI before selecting a Claude-compatible Worker, then run `parallel-codex-tui --doctor --probe-agents` to prove fresh and resumed calls on that machine.
26
26
 
@@ -350,7 +350,7 @@ forkArgs = ["fork", "{sessionId}"]
350
350
 
351
351
  [workers.claude]
352
352
  command = "claude"
353
- args = ["--print", "--permission-mode", "acceptEdits", "--output-format", "text"]
353
+ args = ["--print", "--permission-mode", "auto", "--output-format", "text"]
354
354
 
355
355
  [workers.claude.capabilities]
356
356
  profile = "claude"
@@ -363,7 +363,7 @@ args = ["--resume", "{sessionId}"]
363
363
  forkArgs = ["--resume", "{sessionId}", "--fork-session"]
364
364
  ```
365
365
 
366
- `model.args` and `model.env` apply to both automated worker runs and embedded native attach sessions. Native attach appends the rendered model arguments after `interactive.args`, so third-party `{model}` and `{provider}` selections remain active when you press `Ctrl+O`.
366
+ `model.args` and `model.env` apply to both automated worker runs and embedded native attach sessions. Native attach appends the rendered model arguments after `interactive.args`, so third-party `{model}` and `{provider}` selections remain active when you press `Ctrl+O`. Claude Main uses `auto` so safe tool calls can complete in print mode; isolated Claude coding roles are still clamped to `acceptEdits`. When a command genuinely needs interactive approval, Main points to `Ctrl+O` instead of claiming that a chat reply can grant permission.
367
367
 
368
368
  `model.provider` names the remote model service; `capabilities.profile` describes the local CLI protocol. Worker Provider IDs are lowercase names using letters, digits, or `_`; excluding `-` keeps generated Worker directory names unambiguous. Existing `codex`, `claude`, and `mock` IDs remain compatible, while additional profiles can inherit `codex`, `claude`, another named profile, or conservative `generic` defaults.
369
369
 
@@ -516,12 +516,12 @@ The release job installs npm `^11.5.1`, runs on Node `24.15.x`, publishes the pr
516
516
  To publish a release, update `package.json` and `src/version.ts` to the same version, then push a matching tag:
517
517
 
518
518
  ```bash
519
- VERSION=0.2.2
519
+ VERSION=0.2.3
520
520
  git tag "v$VERSION"
521
521
  git push origin "v$VERSION"
522
522
  ```
523
523
 
524
- You can also run the Release workflow manually and enter the same tag value. The release tag must match `package.json`; for example, package version `0.2.2` requires tag `v0.2.2`. Published tags such as `v0.2.1` are immutable and must not be moved or reused.
524
+ You can also run the Release workflow manually and enter the same tag value. The release tag must match `package.json`; for example, package version `0.2.3` requires tag `v0.2.3`. Published tags such as `v0.2.2` are immutable and must not be moved or reused.
525
525
 
526
526
  ## Publishing Hygiene
527
527
 
@@ -214,7 +214,7 @@ export function defaultConfig(projectRoot) {
214
214
  },
215
215
  claude: {
216
216
  command: "claude",
217
- args: ["--print", "--permission-mode", "acceptEdits", "--output-format", "text"],
217
+ args: ["--print", "--permission-mode", "auto", "--output-format", "text"],
218
218
  assignable: true,
219
219
  timeoutMs: 45 * 60 * 1000,
220
220
  idleTimeoutMs: 5 * 60 * 1000,
@@ -232,7 +232,7 @@ export function defaultConfig(projectRoot) {
232
232
  },
233
233
  nativeSession: {
234
234
  enabled: true,
235
- resumeArgs: ["--print", "--resume", "{sessionId}", "--permission-mode", "acceptEdits", "--output-format", "text"],
235
+ resumeArgs: ["--print", "--resume", "{sessionId}", "--permission-mode", "auto", "--output-format", "text"],
236
236
  detectSessionId: true,
237
237
  fallback: "new"
238
238
  },
@@ -6,6 +6,13 @@ export function buildMainPrompt(input) {
6
6
  `# Role: ${role.title}`,
7
7
  "",
8
8
  ...instructionLines(role.instructions),
9
+ "",
10
+ "# Non-interactive execution",
11
+ "",
12
+ "- Use available tools directly when the current permission mode allows them.",
13
+ "- Chat replies cannot grant CLI tool permissions. Never ask the user to approve a command by replying in chat.",
14
+ "- Never claim that a system permission dialog was shown unless a tool result explicitly confirms it.",
15
+ "- If a tool is denied because interactive approval is required, state that it was not run and direct the user to press Ctrl+O to continue in the native agent.",
9
16
  ...(input.context?.trim()
10
17
  ? ["", "# Active task context", "", input.context.trim()]
11
18
  : []),
package/dist/version.js CHANGED
@@ -1 +1 @@
1
- export const version = "0.2.2";
1
+ export const version = "0.2.3";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "parallel-codex-tui",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "A TypeScript TUI wrapper for routed parallel coding with Codex and Claude workers.",
5
5
  "license": "MIT",
6
6
  "type": "module",