Skip to content

feat(watch): discoverable local service — Aspire AppHost pattern for squad watch #811

Closed

Description

@tamirdresher

Squad Watch as Discoverable Local Service

Inspiration

Microsoft Aspire's MCP server treats running AppHost instances as discoverable services — you can list all running AppHosts on the machine, select one, query resources/logs/traces, and execute commands (start/stop/restart). This is the pattern squad watch should evolve toward.

Aspire's Pattern

Aspire Tool What it does
\list_apphosts\ Discover all running AppHost instances on machine
\select_apphost\ Switch between multiple AppHosts
\list_resources\ Show resource state, health, endpoints
\�xecute_resource_command\ Start/stop/restart resources
\doctor\ Diagnose environment issues

Squad Watch Equivalent (Future)

Squad Tool What it does
\squad watch --list\ Discover all running watch instances on machine
\squad watch --select \ Switch context to a specific watch
\squad watch --health\ ✅ Already done (PR #809) — PID, uptime, auth, capabilities
\squad watch --stop\ Stop a running watch instance
\squad watch --restart\ Restart with updated config
\squad doctor\ Diagnose auth, rate limits, connectivity

Implementation Ideas

  • Watch process writes PID + metadata to \os.tmpdir()/squad-watch-{hash}.json\ (PR feat(watch): health check — show running watch instance status (#808) #809 does this)
  • --list\ scans temp dir for all \squad-watch-*.json\ files, verifies PIDs alive
  • Future: squad-watch MCP server that exposes these as MCP tools (like Aspire does)
  • Scope awareness: which watches are for repos in CWD vs elsewhere

References

Activity

  1. added
    squadSquad triage inbox — Lead will assign to a member
    on Apr 4, 2026
  2. github-actions commented on Apr 4, 2026

    @github-actions
    Contributor

    🏗️ Squad Triage — Flight (Lead)

    Issue: #811 — feat(watch): discoverable local service — Aspire AppHost pattern for squad watch
    Assigned to: DSKY (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:

    • Flight (Lead) → label: squad:flight
    • Procedures (Prompt Engineer) → label: squad:procedures
    • EECOM (Core Dev) → label: squad:eecom
    • FIDO (Quality Owner) → label: squad:fido
    • PAO (DevRel) → label: squad:pao
    • CAPCOM (SDK Expert) → label: squad:capcom
    • CONTROL (TypeScript Engineer) → label: squad:control
    • Surgeon (Release Manager) → label: squad:surgeon
    • Booster (CI/CD Engineer) → label: squad:booster
    • GNC (Node.js Runtime) → label: squad:gnc
    • Network (Distribution) → label: squad:network
    • RETRO (Security) → label: squad:retro
    • INCO (CLI UX & Visual Design) → label: squad:inco
    • GUIDO (VS Code Extension) → label: squad:guido
    • Telemetry (Aspire & Observability) → label: squad:telemetry
    • VOX (REPL & Interactive Shell) → label: squad:vox
    • DSKY (TUI Engineer) → label: squad:dsky
    • Sims (E2E Test Engineer) → label: squad:sims
    • Handbook (SDK Usability) → label: squad:handbook
    • Ralph (Work Monitor) → label: squad:ralph
    • @copilot (Coding Agent) → label: squad:copilot

    To reassign, remove the current squad:* label and add the correct one.

  3. bradygaster commented on Apr 18, 2026

    @bradygaster
    Collaborator

    @tamirdresher still relevant? if so, re-open but it seems like we've move past this one. keen to re-open if you think we need more on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    go:needs-researchNeeds investigationsquadSquad triage inbox — Lead will assign to a member

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions