Skip to content

feat: experimental Paseo session-provider backend#655

Open
tmad4000 wants to merge 1 commit into
kunchenguid:mainfrom
tmad4000:fm/paseo-backend-t6
Open

feat: experimental Paseo session-provider backend#655
tmad4000 wants to merge 1 commit into
kunchenguid:mainfrom
tmad4000:fm/paseo-backend-t6

Conversation

@tmad4000

Copy link
Copy Markdown

Adds Paseo (github.com/getpaseo/paseo) as an experimental, explicitly-opt-in session-provider backend: bin/backends/paseo.sh driving the paseo CLI (run/send/logs/stop/delete, --json), native semantic agent state for busy/alive, treehouse still owns worktrees via --cwd, claude Stop-hook turn-end verified to fire under paseo run. Gated like zellij/orca (never auto-detected); refuses harness=grok (not a Paseo provider) and secondmate spawns (out of scope initially); CLI version floor at spawn. docs/paseo-backend.md records the empirical verification (18-check test suite + live E2E with a real claude crewmate: spawn/send/peek/busy/alive/turn-end-wake/interrupt/teardown). shellcheck + fm-lint clean; no-mistakes pipeline review/test/document/lint all green (push step correctly refused direct upstream push, hence this fork PR).

🤖 Generated with Claude Code

Add bin/backends/paseo.sh, a message-based agent-session-provider adapter
driving the paseo CLI (v0.1.104, daemon on 127.0.0.1:6767). Unlike the
multiplexer backends, `paseo run` launches the provider agent directly with a
prompt and --cwd; `paseo send` messages it. Worktrees stay treehouse-owned via
a non-interactive `treehouse get --lease`; Paseo's native worktrees are unused.

- Selectable only via explicit --backend paseo / FM_BACKEND=paseo /
  config/backend; never runtime auto-detected (zellij/orca precedent).
- Spawn-time gates: CLI+daemon+version floor (pinned to verified 0.1.104),
  grok refusal (not a Paseo provider), and --secondmate refusal.
- Turn-end: the existing claude Stop hook fires under paseo run (verified),
  so it is kept; the watcher wakes on every crew turn. Non-claude providers
  documented as a known limitation.
- Ops: run/send --no-wait/logs --tail/inspect status/stop/delete mapped to the
  full backend contract; Escape unsupported.
- Wire fm-backend.sh dispatch, fm-spawn.sh launch path, and fm-teardown.sh
  kill target; record backend=paseo and paseo_agent_id= in meta with
  window=fm-<id> as the display alias.
- docs/paseo-backend.md records the empirical verification (commands, output,
  live end-to-end run); tests/fm-backend-paseo.test.sh mocks the CLI.
- One-line backend-list touch-ups in AGENTS.md and docs/configuration.md.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant