Pane reports ready and accepts input but never launches the agent
First: thank you for Pane. It has been genuinely excellent to work in — I orchestrate a lot of parallel agent work through it and it is usually invisible in the good way. This report is one narrow failure mode, offered in that spirit.
## Summary
For one repository, every pane I created reported healthy and accepted input, but **no agent process was ever launched behind it**. Panes on other repositories on the same daemon, created minutes apart, worked normally.
The failure is silent: every signal RunPane exposes says the pane is ready.
## What I observed
Across three panes and four CLI panels on the affected repository:
- `runpane panes create --wait-ready` returned `matched: true, timedOut: false`
- `runpane panels wait --panel <id> --for ready` returned `matched: true`
- `runpane panels screen` reported `initialized: true`, `isCliReady: true`, `isCliPanel: true`, `agentType: "claude"`
- `runpane panels submit --input-file` returned `ok: true` with the correct byte count
- `runpane panels submit-composer --strategy enter` returned `ok: true`, `verifiedSubmitted: false`, `verification: "unverifiable"`
- `activityStatus` stayed `idle` indefinitely, or flipped to `active` for a few seconds and back without producing anything
## The decisive evidence
The agent CLI writes a per-working-directory project directory on first run. After three panes and four panels on the affected repository, **no such directory existed for any of its worktrees**. Every other repository I had panes on that day had one.
I then ran the CLI by hand in the exact worktree the pane had created:
```
cd <repo>/worktrees/<pane-worktree>
claude -p "reply with exactly OK"
→ OK (exit 0)
```
It answered immediately, and *that* run created the project directory the panes never did. So the CLI, the worktree, the checkout, and folder trust were all fine — the agent simply was never started by Pane.
## Control
Two minutes later, on the same daemon and the same session, I sent a one-line probe to a pane on a different repository:
```
runpane panels submit --panel <other-pane> --text "Reply with exactly: ALIVE" --yes
→ activityStatus: active
```
That pane responded normally and did real work for the rest of the session. So this is not daemon-wide, and not a general input-delivery failure.
## What did not fix it
- Sending a bare CR, repeatedly
- Sending the down-arrow + CR sequence used to clear a folder-trust prompt
- A short one-line message, to rule out a large paste being the problem
- Creating a **fresh CLI panel** inside the same pane
- **Archiving the pane and creating a new one** — twice, once with a different pane name and a different worktree path
The last one is the most interesting: a completely new pane, new worktree, new panel, same result.
## Related, possibly the same root cause
The first pane on that repository genuinely did show the agent's folder-trust prompt, which a human cleared from the UI. That is expected. What is not expected is that:
1. `--wait-ready` and `--for ready` both reported ready while that prompt was blocking, and
2. subsequent panes on new worktree paths under the same repository failed the same way *after* trust was granted, with no prompt visible to the human either.
So the trust prompt may be one instance of a broader issue: the readiness signal does not appear to reflect whether an agent process actually exists and is accepting input.
## Suggestion
If `isCliReady` could be derived from the agent process actually being up — or if `panels submit` could report that there is no process behind the panel — this would have been a ten-second diagnosis instead of a long one. `verification: "unverifiable"` was the only hint anything was wrong, and it appears in healthy cases too, so it is not usable as a signal on its own.
## Environment
- Platform: linux/arm64, headless (no DISPLAY), remote daemon over a unix socket
- Daemon reachable, 13 repositories registered
- Agent: claude
- Affected repository: a pnpm/TypeScript monorepo. Its `.claude/` contains only a `launch.json` (a dev-server config) and one rules markdown file — no `settings.json`, no hooks.
- Unaffected repositories in the same session included a Python service and several other TypeScript repos, so it does not look language- or toolchain-specific.
## Also worth knowing, separate issue
Throughout the same session, `runpane panels screen` and `runpane panels output` returned **zero bytes for every panel**, including panels that were demonstrably working, for several hours. `runpane doctor` reported the daemon healthy and `activityStatus` continued to be correct. That is what made the above hard to diagnose — there was no way to see what any pane was showing. `runpane watch --follow` stayed healthy throughout and was the only reliable channel.
Happy to gather anything else useful if it helps narrow either one.
{
"source": "npm",
"wrapper": {
"runtime": "node",
"version": "2.4.92",
"paneDir": "~/.pane_remote",
"endpoint": {
"transport": "unix",
"path": "/tmp/pane-daemon-1008-ce2237ed7aa6d5d8/daemon.sock"
}
},
"platform": {
"os": "linux",
"arch": "arm64"
},
"release": {
"ok": false,
"error": "input.body: expected string"
},
"installedPane": {
"found": true,
"path": "~/.local/bin/pane",
"version": "[Polyfill] ReadableStream already available, skipping polyfill\n[PanelManager] Loading panels from database...\n[2520351:0904/125624.340918:ERROR:ui/ozone/platform/x11/ozone_platform_x11.cc:256] Missing X server or $DISPLAY\n[2520351:0904/125624.340946:ERROR:ui/aura/env.cc:246] The platform failed to initialize. Exiting."
},
"daemon": {
"reachable": true,
"endpoint": {
"transport": "unix",
"path": "/tmp/pane-daemon-1008-ce2237ed7aa6d5d8/daemon.sock"
},
"app": {
"version": "2.4.92",
"isPackaged": true,
"platform": "linux",
"electronVersion": "41.10.3",
"nodeVersion": "24.18.0"
}
},
"remoteSetup": {
"ready": true,
"displayAvailable": false,
"headlessEnvironmentApplied": true,
"diagnostics": [
{
"code": "PANE_REMOTE_DAEMON_UPDATE_PENDING",
"severity": "warning",
"message": "The remote daemon is still running an older or deleted process image, but its launcher can resolve the installed Pane executable on restart."
}
]
}
}
RunPane watcher failure report
Report title
Failure evidence
RunPane diagnostics