Skip to content

Dev#633

Closed
JerrettDavis wants to merge 14 commits intobradygaster:devfrom
JerrettDavis:dev
Closed

Dev#633
JerrettDavis wants to merge 14 commits intobradygaster:devfrom
JerrettDavis:dev

Conversation

@JerrettDavis
Copy link
Copy Markdown

No description provided.

JerrettDavis and others added 14 commits March 24, 2026 21:16
Implements RuntimeProvider interface for Claude Code CLI:
- Spawns `claude --json` subprocess per session
- stdin/stdout JSON line protocol for message exchange
- Maps Claude CLI events to RuntimeProviderEvent types
- Graceful shutdown with SIGTERM→SIGKILL escalation
- Multiple concurrent sessions supported

Includes smoke tests with mock claude binary validating:
- Session lifecycle (start/send/shutdown)
- Event subscription and unsubscription
- Concurrent session isolation
- Clean error handling on dead sessions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Graceful handling of malformed JSON output lines
- Configurable session timeout with auto-shutdown
- Clear error on missing/non-executable claude binary
- Idempotent shutdown (double-call safe)
- Clear error when sending to dead subprocess

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add providers/index.ts barrel and re-export from the SDK
entry point so consumers can import directly:
  import { ClaudeCodeRuntimeProvider } from '@squad/sdk';

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
resolveRuntime() factory returns the correct RuntimeProvider based
on config. Defaults to 'copilot' (placeholder until Lane A
extraction). 'claude-code' resolves to ClaudeCodeRuntimeProvider.

Includes: isValidRuntime(), listRuntimes() helpers and full test
coverage for resolver logic.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Thin wrapper that adapts the existing SquadClient/CopilotSessionAdapter
to the RuntimeProvider interface. Maps Squad event names to
RuntimeProviderEvent types. No behavior change to existing Copilot path.

Updates resolver to use CopilotRuntimeProvider instead of placeholder.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… C slice 1)

Replace hardcoded Copilot references with {{CODING_AGENT_HANDLE}},
{{CODING_AGENT_LABEL}}, {{CODING_AGENT_ASSIGNEE}} tokens in 6
template files. Add renderer helper with defaults for copilot
and claude-code runtimes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…zation

- Add listModels() to CopilotRuntimeProvider
- Map tool events in Copilot provider if available
- Tokenize operational Copilot refs in squad.agent.md
- Add provider contract test verifying interface parity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add isSessionAlive() to RuntimeProvider interface and both impls
- Normalize error event payload shape (message, code, retryable)
- Add docs/runtime-providers.md (selection guide, compatibility matrix,
  troubleshooting)
- Update README with runtime providers section

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- worktrees.md: replace `gh copilot "..."` (GitHub Copilot CLI extension,
  wrong tool) with `squad init` — the correct provider-neutral command
- squad-heartbeat.yml (sdk + cli): fix stale comment that still said
  "labeled squad:copilot" while the actual code already used
  {{CODING_AGENT_LABEL}} — comment now matches the token

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
larsontim12 pushed a commit to larsontim12/squad that referenced this pull request Mar 27, 2026
…r#633) (bradygaster#634)

- Governance check now validates ## Members has roster entries, not just
  that team.md exists
- Post-init message clarifies scaffold needs team casting
- Updated acceptance and journey tests for new messaging

Closes bradygaster#633

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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