Summary
When an OMP-backed Paseo agent fans out work with OMP-internal task subagents, the parent agent flips to idle / UI “stopped” even though the OMP process is still actively writing child session logs.
Paseo’s stored persistence.nativeHandle points at a missing .jsonl file, while the real session is a directory with the same stem containing live child *.jsonl files.
This makes long-running fan-out audits look finished/stopped in the agent list when they are not.
Environment
- Paseo:
0.1.110 (/Applications/Paseo.app)
- OMP:
omp/17.0.5
- Provider:
omp / model cursor/cursor-grok-4.5-high-fast
- OS: macOS
26.5.2 (Darwin 25.5.0, arm64)
- Daemon:
127.0.0.1:6767
- OMP provider config uses
params.sessionDir: ~/.omp/agent/sessions
Repro
- Create/run an OMP agent that spawns several internal
task subagents (fan-out audit / research style).
- Wait until the parent turn parks on hub waits / child completion.
- Observe:
paseo inspect <parent-id> --json → Status: idle
- UI shows parent as stopped/idle
- Meanwhile:
omp process for that session is still alive
- child
*.jsonl files under the session directory continue updating
lsof -p <omp-pid> shows open writes to those child files
Observed (exact case)
Parent agent:
- ID:
0d43efa4-2b73-4645-bf79-940b8f82be48
- Title:
critically audit the entire repo, data feed, api usage, pipe
- Status:
idle
- Session ID:
019f7c27-d1fd-7000-918f-fd49e1e66a6a
Stored handle:
~/.omp/agent/sessions/-Antigravity-unusualwhales/2026-07-19T20-53-32-285Z_019f7c27-d1fd-7000-918f-fd49e1e66a6a.jsonl
Actual session:
~/.omp/agent/sessions/-Antigravity-unusualwhales/2026-07-19T20-53-32-285Z_019f7c27-d1fd-7000-918f-fd49e1e66a6a/
- exists as a directory
- contains live child logs such as:
ApiBudgetAudit.jsonl
PipelineFeedAudit.jsonl
Btc5mStratHealth.jsonl
LegacyStratHealth.jsonl
HarnessPnlAudit.jsonl
- etc.
At observation time, parent OMP pid 27988 still had open write FDs on multiple child jsonls in that directory.
Contrast: currently healthy running agents still have existing .jsonl nativeHandle files.
Expected
While OMP-internal child task sessions are still active for a parent:
- Parent should remain
running (or some explicit waiting / delegated status), or
- Child work should be visible in Paseo’s agent/subagent tree, and
nativeHandle should resolve to a real session artifact (file or directory), not a missing path.
Actual
- Parent status becomes
idle / UI stopped
- Child work continues invisibly under
~/.omp/agent/sessions/.../<session-stem>/
- Paseo list no longer reflects that the job is still in progress
- Attach/logs UX is degraded because the parent looks finished
Impact
- False “done/stopped” signal for multi-agent OMP runs
- Hard to babysit long audits from the agent list
- Easy to interrupt/restart/abandon work that is actually still running
- Confusing freeze triage: parent looks idle while child hub waits continue
Workarounds (no Paseo patch)
- Watch session-dir mtimes / open FDs:
~/.omp/agent/sessions/.../<session-stem>/*.jsonl
lsof -p <omp-pid>
- Use
paseo attach <id> / external watcher for activity
- Prefer Paseo-level agents (
paseo run / handoff / advisor) over OMP-internal task when list visibility matters
paseo send can flip the parent back to running briefly, but that does not restore correct child tracking
Suspected gap
Paseo appears to treat OMP parent turn completion / missing parent .jsonl handle as terminal idle, without accounting for OMP’s session-directory + internal task-subagent layout.
Ask
Please consider:
- Keep parent non-idle while OMP child session files under the session stem are still active
- Make
nativeHandle support OMP session directories (or rewrite handle to the real artifact)
- Surface OMP-internal task children in the agent tree / status model
- Or document clearly that OMP-internal
task fan-out is intentionally invisible to Paseo status
Happy to provide more logs / a minimal repro script if useful.
Summary
When an OMP-backed Paseo agent fans out work with OMP-internal
tasksubagents, the parent agent flips toidle/ UI “stopped” even though the OMP process is still actively writing child session logs.Paseo’s stored
persistence.nativeHandlepoints at a missing.jsonlfile, while the real session is a directory with the same stem containing live child*.jsonlfiles.This makes long-running fan-out audits look finished/stopped in the agent list when they are not.
Environment
0.1.110(/Applications/Paseo.app)omp/17.0.5omp/ modelcursor/cursor-grok-4.5-high-fast26.5.2(Darwin25.5.0, arm64)127.0.0.1:6767params.sessionDir: ~/.omp/agent/sessionsRepro
tasksubagents (fan-out audit / research style).paseo inspect <parent-id> --json→Status: idleompprocess for that session is still alive*.jsonlfiles under the session directory continue updatinglsof -p <omp-pid>shows open writes to those child filesObserved (exact case)
Parent agent:
0d43efa4-2b73-4645-bf79-940b8f82be48critically audit the entire repo, data feed, api usage, pipeidle019f7c27-d1fd-7000-918f-fd49e1e66a6aStored handle:
exists = falseActual session:
ApiBudgetAudit.jsonlPipelineFeedAudit.jsonlBtc5mStratHealth.jsonlLegacyStratHealth.jsonlHarnessPnlAudit.jsonlAt observation time, parent OMP pid
27988still had open write FDs on multiple child jsonls in that directory.Contrast: currently healthy
runningagents still have existing.jsonlnativeHandle files.Expected
While OMP-internal child task sessions are still active for a parent:
running(or some explicitwaiting/delegatedstatus), ornativeHandleshould resolve to a real session artifact (file or directory), not a missing path.Actual
idle/ UI stopped~/.omp/agent/sessions/.../<session-stem>/Impact
Workarounds (no Paseo patch)
~/.omp/agent/sessions/.../<session-stem>/*.jsonllsof -p <omp-pid>paseo attach <id>/ external watcher for activitypaseo run/ handoff / advisor) over OMP-internaltaskwhen list visibility matterspaseo sendcan flip the parent back torunningbriefly, but that does not restore correct child trackingSuspected gap
Paseo appears to treat OMP parent turn completion / missing parent
.jsonlhandle as terminal idle, without accounting for OMP’s session-directory + internal task-subagent layout.Ask
Please consider:
nativeHandlesupport OMP session directories (or rewrite handle to the real artifact)taskfan-out is intentionally invisible to Paseo statusHappy to provide more logs / a minimal repro script if useful.