Skip to content

fix(cli): squad watch silently ignores quoted message #703

Closed as not planned

Description

@tamirdresher

Problem

squad watch --interval 5 "Nick, Run scheduled tasks" silently drops the quoted message. Ralph runs its normal polling loop with no indication the message was ignored.

Users expect the message to be routed to the named agent on each cycle, because direct addressing (Nick, do something) works in interactive sessions.

Root Cause

In cli-entry.ts lines 322-329, only --interval is parsed. Extra args are silently ignored.

Fix

Detect extra args and warn:

Warning: Watch mode does not route messages. Ignoring: "Nick, Run scheduled tasks"
To address Nick directly, use an interactive session.

Files

  • packages/squad-cli/src/cli-entry.ts
  • packages/squad-cli/src/cli/commands/watch.ts

Activity

  1. added
    squadSquad triage inbox — Lead will assign to a member
    bugSomething isn't working
    on Mar 30, 2026
  2. github-actions commented on Mar 30, 2026

    @github-actions
    Contributor

    📋 Assigned to EECOM (Core Dev)

    Issue: #703 — fix(cli): squad watch silently ignores quoted message

    EECOM will pick this up in the next Copilot session.

    For Copilot coding agent: If enabled, this issue will be worked automatically.
    Otherwise, start a Copilot session and say:
    EECOM, work on issue #703

  3. github-actions commented on Mar 30, 2026

    @github-actions
    Contributor

    🏗️ Squad Triage — Flight (Lead)

    Issue: #703 — fix(cli): squad watch silently ignores quoted message
    Assigned to: FIDO (Quality Owner)
    Reason: Issue relates to testing/quality work

    @copilot evaluation: No strong capability match — routed to squad member.

    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.

  4. tamirdresher commented on Mar 30, 2026

    @tamirdresher
    CollaboratorAuthor

    Hey — this behavior has been investigated and a fix is in PR #704.

    What's happening: squad watch is a triage polling loop (Ralph), not a message router. The quoted message ("Nick, Run scheduled tasks") was silently ignored — watch mode only parses --interval.

    The fix (PR #704):

    1. CLI warning — now detects extra args and warns:
      ⚠️  Watch mode does not route messages to agents. Ignoring: "Nick, Run scheduled tasks"
         To address an agent directly, use an interactive session instead.
      
    2. Docs updated — ralph.md and cli.md now clearly explain watch vs direct addressing

    How to do what you want:

    • Direct agent addressing works in interactive sessions: squad → then Nick, Run scheduled tasks
    • Recurring triage: squad watch --interval 5 polls GitHub and routes issues based on squad:{member} labels
    • Route to Nick specifically: create a GitHub issue, add the squad:nick label, and squad watch will triage it to Nick on the next cycle

    See PR #704 for the full fix.

  5. diberry commented on Mar 31, 2026

    @diberry
    Contributor

    🔄 Ralph status: PR #704 addresses this. Needs rebase (behind dev). Small fix — 3 files, warning-only change.

  6. 3 remaining items

  7. tamirdresher commented on Apr 12, 2026

    @tamirdresher
    CollaboratorAuthor

    Update: PR #704 was closed without merge, so this is still unfixed.

    The fix approach from #704 (warn on unused message args) was a partial solution. The root cause is that the watch command passes the prompt as a CLI argument which breaks on quotes/special chars.

    The proper fix is to write the prompt to a temp file and pass it via -p @tempfile\ instead of as an inline argument. PR #830 (next-gen watch) may have changed the execution path — need to verify if this is still reproducible on insider.

  8. bradygaster commented on Apr 12, 2026

    @bradygaster
    Collaborator

    Closing as duplicate of #874 — both trace back to the obsolete \gh copilot --message\ flag. See #874 for tracking the fix.

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

    bugSomething isn't workinggo: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