---
phase: quick
plan: 260330-4ny
subsystem: live-start
tags: [live, psyche, poll, start-flow]
dependency_graph:
  requires: []
  provides: [inline-poll-in-start, self-driven-psyche-download]
  affects: [start.rs, poll.rs, mod.rs, LIVE-SKILL.md, psyche.md]
tech_stack:
  added: []
  patterns: [inline-blocking-call, pub-crate-visibility]
key_files:
  created: []
  modified:
    - src/owl/mod.rs
    - src/live/start.rs
    - psyche.md
    - LIVE-SKILL.md
decisions:
  - "Psyche spawn failure no longer exits -- enters poll loop so Self operates without Psyche"
  - "Removed PSYCHE_CONTEXT async message pattern in favor of Self pulling context via psyche-download"
metrics:
  duration: 148s
  completed: "2026-03-30"
---

# Quick Task 260330-4ny: Revise Live Start and Revive Inline Poll Summary

Single background task for /live start: spawns Psyche wrapper then blocks on Self poll loop inline. Self pulls context via psyche-download instead of waiting for async PSYCHE_CONTEXT message from Psyche.

## What Changed

### Task 1: Make poll pub(crate) and revise start::run to poll inline
- Changed `mod poll` to `pub(crate) mod poll` in `src/owl/mod.rs` for cross-module access
- Removed both `println!("POLL_CMD=...")` lines from `start::run()`
- Added `crate::owl::poll::run(id, "listen", false, true, false, None)` as blocking inline call after wrapper spawn
- Psyche spawn failure path no longer calls `std::process::exit(1)` -- falls through to poll loop
- **Commit:** f06552e

### Task 2: Revise psyche.md to absorb context silently on first invocation
- Deleted Step 2 (Send context to Self / PSYCHE_CONTEXT delivery)
- Added note: "Absorb any downloaded context silently. Do NOT send it to Self."
- Renumbered Step 3 to Step 2 (Save initial context snapshot)
- **Commit:** 9576fc3

### Task 3: Update LIVE-SKILL.md start/revive instructions and psyche-download docs
- Replaced two-step start (run + POLL_CMD) with single background task documentation
- Added Step 2: retrieve Psyche context via `$LIVE psyche-download`
- Updated revive section: Self pulls context directly after revive
- Updated psyche-download docs: Self calls after start/revive, no async message
- Updated edge cases: spawn failure enters poll loop, psyche death uses psyche-download
- Removed all POLL_CMD and PSYCHE_CONTEXT references
- **Commit:** 62e1e28

## Deviations from Plan

None - plan executed exactly as written.

## Known Stubs

None.

## Self-Check: PASSED
