Repository navigation
Closed
Labels
go:needs-researchNeeds investigationNeeds investigationpriority:p2Next sprintNext sprintsquadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a member
Description
Feature: Persistent Ralph — continuous work monitoring between sessions
Problem
Ralph runs in a loop during a Copilot session but stops when the session ends. There's no way to keep Ralph monitoring between sessions. Additionally, squad watch is implemented (356 lines in watch.ts) but not wired into the CLI, so users can't invoke it.
Current State
Three layers of Ralph exist but two are broken:
| Layer | Status | Issue |
|---|---|---|
| In-session | ✅ Works | Ralph loops while you're in a Copilot session |
Local watchdog (squad watch) |
❌ Not wired | watch.ts is built but cli-entry.ts logs "pending" instead of calling it |
| Cloud heartbeat (GitHub Actions) | ❌ Cron disabled | squad-heartbeat.yml has the cron schedule commented out |
Proposed Solution
Phase 1: Wire squad watch into CLI (same pattern as #224)
- Route
watchcommand incli-entry.tsto the existingwatch.tsimplementation - Add
--interval Nflag (default 10 min) for polling frequency - Add help text entry
Phase 2: Enable heartbeat cron
- Uncomment cron schedule in
squad-heartbeat.yml(default: every 30 min) - Document recommended intervals for different team sizes
Phase 3: Daemon/service support (future)
- PM2 integration for local persistent daemon
- systemd unit file for Linux servers
- Windows Task Scheduler support
- Container-based deployment option
Approaches Considered
| Approach | Pros | Cons |
|---|---|---|
squad watch (foreground) |
Simple, portable, already built | Dies when terminal closes |
| GitHub Actions cron | Free, no infra, already built | 30-min minimum interval, limited to GitHub repos |
| PM2/systemd daemon | Survives reboots, proper service | Requires PM2/systemd knowledge |
| OS scheduled task (cron/Task Scheduler) | Native, no dependencies | Platform-specific setup |
| Docker container | Portable, isolated | Requires Docker |
Acceptance Criteria
-
squad watchworks from CLI with--intervalflag - Heartbeat cron is enabled with configurable schedule
- Documentation covers all three Ralph layers
- Ralph detects platform (GitHub/ADO) and uses correct commands
Metadata
Metadata
Assignees
Labels
go:needs-researchNeeds investigationNeeds investigationpriority:p2Next sprintNext sprintsquadSquad triage inbox — Lead will assign to a memberSquad triage inbox — Lead will assign to a member
Activity
fix: wire watch/triage command and add CLI wiring regression test
test: add tests for 8 untested CLI commands + wiring regression test
test: add tests for 8 untested CLI commands + wiring regression test
github-actions commentedon Mar 7, 2026
📋 Assigned to Fenster (Core Dev)
Issue: #236 — feat: persistent Ralph — wire squad watch + enable heartbeat cron
Fenster will pick this up in the next Copilot session.
github-actions commentedon Mar 7, 2026
🏗️ Squad Triage — Keaton (Lead)
Issue: #236 — feat: persistent Ralph — wire squad watch + enable heartbeat cron
Assigned to: Cheritto (TUI Engineer)
Reason: Issue relates to frontend/UI work
@copilot evaluation: 🔴 Not suitable — issue involves work outside the coding agent's capability profile.
Team roster:
squad:keatonsquad:verbalsquad:fenstersquad:hockneysquad:mcmanussquad:kujansquad:ediesquad:kobayashisquad:fortiersquad:rabinsquad:baersquad:redfootsquad:strauszsquad:saulsquad:kovashsquad:marquezsquad:cherittosquad:breedansquad:natesquad:waingrosquad:ralphsquad:copilotfix: wire upstream and watch/triage commands in cli-entry.ts
fix: wire upstream and watch/triage commands in cli-entry.ts
fix: wire upstream and watch/triage commands in cli-entry.ts
fix: wire upstream and watch/triage commands in cli-entry.ts
7 remaining items
feat: shell chrome + session registry (github#236, github#237)
github-actions commentedon Mar 13, 2026
📋 Assigned to EECOM (Core Dev)
Issue: #236 — feat: persistent Ralph — wire squad watch + enable heartbeat cron
EECOM will pick this up in the next Copilot session.
feat: persistent Ralph — enable heartbeat cron + healthCheck timer (g…
docs: add documentation for persistent ralph (github#236)
feat: persistent ralph — watch + heartbeat (github#236)
Persistent Ralph — watch + heartbeat (#443)
diberry commentedon Mar 31, 2026
🔄 Ralph status: Feature — persistent Ralph (watch + heartbeat cron). Partially addressed by PR #709 (watch upgrade). Note: decisions.md says no cron jobs in GitHub Actions — use CLI watch mode instead.
feat(watch): schedule capability — run schedule.json tasks in watch loop
bradygaster commentedon Apr 18, 2026
Closing as we've got
watchandloopnow.