Skip to content

feat(cli): deprecation warnings for tunnel, rc, and REPL commands#900

Merged
tamirdresher merged 3 commits intoinsiderfrom
squad/899-deprecate-tunnel
Apr 8, 2026
Merged

feat(cli): deprecation warnings for tunnel, rc, and REPL commands#900
tamirdresher merged 3 commits intoinsiderfrom
squad/899-deprecate-tunnel

Conversation

@tamirdresher
Copy link
Copy Markdown
Collaborator

@tamirdresher tamirdresher commented Apr 7, 2026

What

Adds Phase 1 deprecation warnings to the tunnel, Remote Control, and REPL commands. Five commands now emit yellow warnings pointing users to the GitHub Copilot CLI as the replacement. No behavior changes - all commands still work.

Why

The tunnel/RC/REPL features add significant complexity to the CLI without sufficient adoption. The GitHub Copilot CLI provides native interactive and remote access capabilities. Squad should be lean. Closes #899. Related: #665.

How

Added console.log deprecation notices at the top of each affected command handler in cli-entry.ts, and [DEPRECATED] tags in the --help output. Minimal change - 1 file, 15 insertions.

Command Warning
squad (no args - REPL) Yellow deprecation notice, points to gh copilot
squad start Deprecated notice
squad start --tunnel Additional tunnel-specific warning
squad rc / remote-control Deprecated notice
squad rc-tunnel Deprecated notice

⚠️ Quick Check

  • If SDK/CLI source files changed: completed the applicable Changeset step below (npx changeset add / .changeset/*.md, direct CHANGELOG.md entry for maintainers, or skip-changelog label for no user-facing changes)

PR Readiness Checklist

Branch & Commit

  • Branch created from insider (targeting insider for next insider release)
  • Branch is up to date with insider (rebased)
  • Verified diff contains only intended changes (1 file: cli-entry.ts + 1 changeset)
  • PR is not in draft mode
  • Commit history is clean (2 commits: feat + changeset)

Build & Test

  • npm run build passes
  • npm test - pre-existing failures only (same count on bare insider), no regressions from this PR
  • npm run lint - pre-existing TS2578 on start.ts (exists on bare insider), no new errors from this PR
  • npm run lint:eslint - N/A (no new patterns introduced)

Changeset

  • Changeset added: .changeset/deprecate-tunnel-rc-repl.md (patch for @bradygaster/squad-cli)

Docs

  • N/A - deprecation warnings are self-documenting. README/docs update will accompany the Phase 2 removal PR.

Exports

  • N/A - no new modules or export changes.

Breaking Changes

None. All commands continue to work exactly as before. Warnings are additive console output only.

Waivers

@tamirdresher tamirdresher changed the base branch from main to dev April 7, 2026 15:12
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

🛫 PR Readiness Check

ℹ️ This comment updates on each push. Last checked: commit 34f150a

PR Scope: 📦🔧 Mixed (product + infrastructure)

⚠️ 3 item(s) to address before review

Status Check Details
Single commit 2 commits — consider squashing before review
Not in draft Ready for review
Branch up to date Up to date with insider
Copilot review No Copilot review yet — it may still be processing
Changeset present Changeset file found
Scope clean No .squad/ or docs/proposals/ files
No merge conflicts No merge conflicts
Copilot threads resolved No Copilot review threads
CI passing 1 check(s) still running
Issue linked Issue reference found
Protected files No protected bootstrap files changed

Files Changed (2 files, +20 −7)

File +/−
.changeset/deprecate-tunnel-rc-repl.md +5 −0
packages/squad-cli/src/cli-entry.ts +15 −7

Total: +20 −7


This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.

Copilot and others added 2 commits April 7, 2026 18:13
Adds visible deprecation warnings to:
- Interactive REPL shell (squad with no args)
- squad start (and --tunnel flag)
- squad rc / remote-control
- squad rc-tunnel

Phase 1: warnings only — no behavior changes. Commands still work
but now emit a yellow deprecation notice pointing users to the
GitHub Copilot CLI as the replacement.

Help text updated to show [DEPRECATED] tags on affected commands.

Closes #899
Related: #665

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tamirdresher tamirdresher force-pushed the squad/899-deprecate-tunnel branch from cdb20ec to 34f150a Compare April 7, 2026 15:15
Copilot AI review requested due to automatic review settings April 7, 2026 15:15
@tamirdresher tamirdresher changed the base branch from dev to insider April 7, 2026 15:15
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

🏗️ Architectural Review

⚠️ Architectural review: 1 info.

Severity Category Finding Files
ℹ️ info template-sync Template files changed in .github/workflows/ but not in other template locations. If these templates should stay in sync, consider updating the others too. Changed: .github/workflows/, Unchanged: templates/, .squad-templates/, packages/squad-cli/templates/

Automated architectural review — informational only.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

🔒 Security Review

🔒 Security review: 2 info.

Severity Category Finding Location
ℹ️ info new-dependency 2 new/changed dependency version(s) in packages/squad-cli/package.json. Verify these packages are trusted and necessary. packages/squad-cli/package.json:3
ℹ️ info new-dependency 1 new/changed dependency version(s) in packages/squad-sdk/package.json. Verify these packages are trusted and necessary. packages/squad-sdk/package.json:3

Automated security review — informational only.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 7, 2026

🟡 Impact Analysis — PR #900

Risk tier: 🟡 MEDIUM

📊 Summary

Metric Count
Files changed 2
Files added 1
Files modified 1
Files deleted 0
Modules touched 2

🎯 Risk Factors

  • 2 files changed (≤5 → LOW)
  • 2 modules touched (2-4 → MEDIUM)

📦 Modules Affected

root (1 file)
  • .changeset/deprecate-tunnel-rc-repl.md
squad-cli (1 file)
  • packages/squad-cli/src/cli-entry.ts

This report is generated automatically for every PR. See #733 for details.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds Phase 1 deprecation warnings in the Squad CLI for the interactive REPL (no-args), start (including --tunnel), and Remote Control commands, and marks those commands as deprecated in --help output.

Changes:

  • Mark REPL/default mode, start, rc, and rc-tunnel as [DEPRECATED] in squad --help.
  • Emit yellow deprecation notices when invoking the REPL (no args), squad start (and --tunnel), squad rc, and squad rc-tunnel.
  • Add a changeset documenting the CLI deprecation-warning behavior change.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
packages/squad-cli/src/cli-entry.ts Adds help tags + runtime deprecation warnings for REPL/start/RC/tunnel-related paths.
.changeset/deprecate-tunnel-rc-repl.md Documents the deprecation warnings as a patch changeset for @bradygaster/squad-cli.
Comments suppressed due to low confidence (1)

packages/squad-cli/src/cli-entry.ts:802

  • Same as above: the deprecation guidance mentions running copilot directly, which is ambiguous next to the existing squad copilot command and may not exist in a typical install. Prefer consistently recommending gh copilot, or clarify the expected installation/alias.
    console.log(`\n${YELLOW}⚠ DEPRECATED:${RESET} "squad rc" is deprecated and will be removed in a future release.`);
    console.log(`  Use the GitHub Copilot CLI directly: ${BOLD}copilot${RESET} or ${BOLD}gh copilot${RESET}\n`);
    const { runRC } = await import('./cli/commands/rc.js');
    const hasTunnel = args.includes('--tunnel');
    const portIdx = args.indexOf('--port');
    const port = (portIdx !== -1 && args[portIdx + 1]) ? parseInt(args[portIdx + 1]!, 10) : 0;

Comment on lines +711 to +716
console.log(`\n${YELLOW}⚠ DEPRECATED:${RESET} "squad start" is deprecated and will be removed in a future release.`);
console.log(` Use the GitHub Copilot CLI directly: ${BOLD}copilot${RESET} or ${BOLD}gh copilot${RESET}\n`);
const { runStart } = await import('./cli/commands/start.js');
const hasTunnel = args.includes('--tunnel');
if (hasTunnel) {
console.log(`${YELLOW}⚠ DEPRECATED:${RESET} --tunnel is deprecated and will be removed in a future release.\n`);
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The deprecation message suggests using copilot directly, which can be ambiguous in this repo (there is also a squad copilot subcommand) and may not be installed on all systems. Consider pointing users only to gh copilot (which is the documented default in several places) or explicitly clarifying what copilot refers to to avoid confusion.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,5 @@
---
"@bradygaster/squad-cli": patch
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changeset frontmatter uses double quotes around the package name. Other changesets in this repo consistently use single quotes (e.g. .changeset/fix-team-root-all-commands.md:2). Aligning to the established format avoids churn and keeps changesets consistent.

Suggested change
"@bradygaster/squad-cli": patch
'@bradygaster/squad-cli': patch

Copilot uses AI. Check for mistakes.
@tamirdresher tamirdresher added the skip-version-check Skip prerelease version guard for this PR label Apr 8, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@tamirdresher tamirdresher merged commit 9451e66 into insider Apr 8, 2026
12 checks passed
@diberry
Copy link
Copy Markdown
Collaborator

diberry commented Apr 8, 2026

🏗️ Post-Merge Review — Mal (Lead)

Verdict: ✅ Approve with follow-ups

Deprecating tunnel/RC/REPL is strategically correct — Brady filed #665 himself citing persistent rendering bugs and maintenance drag, and the Copilot CLI is objectively the better interactive experience. Phase 1 (warnings only, no behavior changes) is low-risk and well-scoped.

Findings

# Severity Finding
1 🟡 copilot vs gh copilot inconsistency — Some warnings say both, some say just one. copilot standalone is ambiguous (there's a squad copilot subcommand) and may not exist on the user's PATH. Standardize on gh copilot everywhere.
2 🟠 Two unresolved Copilot review threads merged as-is — guidance ambiguity and changeset quote-style nit. Not blockers, but should be cleaned up.
3 🟡 No removal timeline — Phase 2 needs an explicit version target, and a migration guide must land before the removal PR. The docs waiver was fine for warnings; it won't be fine for removal.

Recommended Follow-Ups

  1. Small follow-up PR to standardize all deprecation messages on gh copilot
  2. Set explicit version target for Phase 2 removal
  3. Write migration guide before the removal PR lands

Good work — clean diff, proper changeset, thorough checklist.


Review by Squad AI team (Mal — Lead) · requested by Dina Berry

@tamirdresher
Copy link
Copy Markdown
Collaborator Author

Thanks @diberry — Mal's review is spot on. Filed #925 to standardize on \gh copilot\ and set Phase 2 timeline. The ambiguity with \squad copilot\ subcommand is a good catch.

tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Apr 8, 2026
…#900, bradygaster#875)

- Add YAML value escaping helper for skill metadata
- Replace catch(err: any) with catch(err: unknown) + narrowing
- Add type guards to replace unsafe type assertions
- Standardize deprecation messages on `gh copilot`
- Fix unsafe exports type cast in cross-package test

Closes bradygaster#924, bradygaster#925, bradygaster#926

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster pushed a commit that referenced this pull request Apr 12, 2026
- Add YAML value escaping helper for skill metadata
- Replace catch(err: any) with catch(err: unknown) + narrowing
- Add type guards to replace unsafe type assertions
- Standardize deprecation messages on `gh copilot`
- Fix unsafe exports type cast in cross-package test

Closes #924, #925, #926

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster added a commit that referenced this pull request Apr 12, 2026
* fix: address post-merge review findings (#876, #900, #875)

- Add YAML value escaping helper for skill metadata
- Replace catch(err: any) with catch(err: unknown) + narrowing
- Add type guards to replace unsafe type assertions
- Standardize deprecation messages on `gh copilot`
- Fix unsafe exports type cast in cross-package test

Closes #924, #925, #926

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: add changeset for review findings fix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(.squad): EECOM history — PR #942 rebase learnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: update changeset to accurately reflect PR changes (drop YAML escaping reference)

Agent-Logs-Url: https://github.com/bradygaster/squad/sessions/54f41407-61bf-4977-85b7-572341c47b62

Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
tamirdresher added a commit that referenced this pull request Apr 21, 2026
* feat(cli): add deprecation warnings for tunnel, rc, and REPL commands

Adds visible deprecation warnings to:
- Interactive REPL shell (squad with no args)
- squad start (and --tunnel flag)
- squad rc / remote-control
- squad rc-tunnel

Phase 1: warnings only — no behavior changes. Commands still work
but now emit a yellow deprecation notice pointing users to the
GitHub Copilot CLI as the replacement.

Help text updated to show [DEPRECATED] tags on affected commands.

Closes #899
Related: #665

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: add changeset for tunnel/rc/REPL deprecation warnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: shorten deprecation hint to fit 80-char UX gate

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher pushed a commit that referenced this pull request Apr 21, 2026
* fix: address post-merge review findings (#876, #900, #875)

- Add YAML value escaping helper for skill metadata
- Replace catch(err: any) with catch(err: unknown) + narrowing
- Add type guards to replace unsafe type assertions
- Standardize deprecation messages on `gh copilot`
- Fix unsafe exports type cast in cross-package test

Closes #924, #925, #926

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: add changeset for review findings fix

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: trigger CI

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(.squad): EECOM history — PR #942 rebase learnings

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: update changeset to accurately reflect PR changes (drop YAML escaping reference)

Agent-Logs-Url: https://github.com/bradygaster/squad/sessions/54f41407-61bf-4977-85b7-572341c47b62

Co-authored-by: bradygaster <41929050+bradygaster@users.noreply.github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-version-check Skip prerelease version guard for this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deprecate --tunnel flag and rc/rc-tunnel/start --tunnel commands

4 participants