Repository navigation
Description
Problem
The dev branch has 35 failing tests across 11 test files, which means CI fails on every PR that targets dev. This has been the case for at least the last 5 commits (since 8b33e6d — Phase 1 SDK-First tests).
Verified locally by checking out upstream/dev and running npm test.
Failing test files (11)
test/acceptance/acceptance.test.ts (2 failures)
test/acceptance/hostile.test.ts (2 failures)
test/cli-p0-regressions.test.ts (6 failures)
test/cli/init.test.ts (1 failure)
test/docs-build.test.ts (1 failure)
test/first-run-gating.test.ts (2 failures)
test/human-journeys.test.ts (5 failures)
test/repl-ux-e2e.test.ts (5 failures)
test/repl-ux-fixes.test.ts (1 failure)
test/repl-ux.test.ts (5 failures)
test/ux-gates.test.ts (5 failures)
Total: 35 failed | 3582 passed | 25 skipped
Root cause clusters
1. --version outputs prefixed string (7 tests)
Tests expect bare semver (0.8.21-preview.4) but CLI outputs squad 0.8.21-preview.4.
Affects: cli-p0-regressions, human-journeys, repl-ux-e2e, ux-gates
2. Empty/whitespace args exit with code 1 instead of 0 (5 tests)
Tests expect help display + exit 0 but CLI exits 1.
Affects: cli-p0-regressions, human-journeys, acceptance/hostile
3. Missing squad doctor hint in error messages (4 tests)
Unknown command errors don't include remediation hint.
Affects: cli-p0-regressions, human-journeys, ux-gates
4. Help output structure (2 tests)
Tests expect grouped commands and footer with squad <command> --help / Getting Started.
Affects: ux-gates
5. REPL shell requires interactive TTY (4 tests)
squad shell exits with ✗ Squad shell requires an interactive terminal in test environment instead of showing welcome/init flow.
Affects: repl-ux-e2e
6. TUI component regressions (5 tests)
AgentPanelshows[IDLE]but tests expectidlestatus text- Animations:
✓ Doneflash not rendering (shows✓ [IDLE]) - Keyboard: Backspace not deleting last character
- Welcome: agent roster not showing team members
Affects:repl-ux
7. init output text changed (1 test)
Test expects Scaffold ready but output is Let's build your team.
Affects: human-journeys
8. .gitattributes path mismatch (1 test)
Test expects .squad/decisions/decisions.md merge=union but actual output differs.
Affects: cli/init
9. runInit missing directory/file creation (1 test)
runInit doesn't create all required .squad/ directories and structural files.
Affects: repl-ux-fixes
10. NODE_NO_WARNINGS not set before imports (1 test)
cli-entry.ts doesn't set NODE_NO_WARNINGS=1 as first statement.
Affects: first-run-gating
11. Banner double-spacer (1 test)
Banner has more than one spacer between banner and version line.
Affects: first-run-gating
12. Docs build failure (1 test)
docs-build.test.ts failing.
Affects: docs-build
13. Acceptance: consult + status commands (2 tests)
Affects: acceptance/acceptance
Impact
All PRs targeting dev show ❌ CI — contributors cannot get a green build. PRs #217 and #219 are both affected.
Activity
williamhallatt commentedon Mar 6, 2026
Root cause investigation findings
Running the test suite locally on
upstream/devconfirms 35 failing tests across 11 files.Confirmed: Implementation regressions (17/35)
Root commit:
4ecc244— "feat: Squad Remote Control"This commit rewrote large portions of
cli-entry.tsand silently dropped multiple P0 bug fixes that had been deliberately committed in earlier fixes:Regression 1:
--versionoutputssquad X.X.Xinstead of bare semver (7 tests)5664fd0(CLI polish) and00d2713(P0 bugs [A2A] Discovery Mechanism (Local + Network) #333):console.log(VERSION)4ecc244rewrote the file and reintroducedconsole.log(squad ${VERSION})cli-p0-regressions,human-journeys,repl-ux-e2e,ux-gatesRegression 2: Empty/whitespace args exit code 1 instead of 0 (5 tests)
00d2713: addedrawCmd?.trim()guard + whitespace-only → help + exit 04ecc244reverted back toconst cmd = args[0]without the trimmingcli-p0-regressions,human-journeys,acceptance/hostileRegression 3:
NODE_NO_WARNINGS=1not set before imports (1 test)ceb599b(suppress SQLite warning, fix: rename template copies to prevent CLI instruction merging (#613) #624)4ecc244rewrite —cli-entry.tsno longer has this at the topfirst-run-gatingRegression 4: REPL first-run (no
.squad/) shows TTY error (4 tests)runShell()fires unconditionally when not in a TTYrepl-ux-e2eexpect first-run (no.squad/) to output a welcome message andsquad inithint even in non-interactive contexts (e.g., piped)Still investigating (18/35)
9 additional clusters are being analyzed to determine if they're further regressions or aspirational tests:
squad doctorhint in error messages (4 tests)initoutput text (1 test).gitattributesmerge paths (1 test)runInitmissing directories (1 test)Will update this issue with full classification once the second wave of investigation completes.
Investigation from fork:
williamhallatt/fix-dev-failing-testswilliamhallatt commentedon Mar 6, 2026
Complete root cause classification — all 35 failures
Investigation complete. 2 tests turned out to be false positives (they actually pass — Backspace and docs-build). Real failure count: 33 tests.
REGRESSIONS — implementation needs fixing (25 tests)
Previously confirmed (17 tests):
--versionoutputssquad X.X.Xinstead of bare semver (7 tests) —4ecc244dropped fix from5664fd0/00d27134ecc244dropped fix from00d2713NODE_NO_WARNINGS=1not set (1 test) —4ecc244dropped fix fromceb599bNewly confirmed (8 tests):
Regression 5:
squad doctorhint missing from unknown-command errors (4 tests)cli-p0-regressions,human-journeys,ux-gates00d2713added the two-hint message: "Run 'squad doctor' to check your setup, or 'squad help' for usage information."0e08594, then silently dropped again in4ecc244cli-entry.tsRegression 6: Completion flash animation broken — shows
✓ [IDLE]instead of✓ Done(3 tests)repl-ux.test.tsb0c3a7baddeduseCompletionFlash()hook and✓ Donerender on working→idle transition72ffcb1(unified status display) introducedgetStatusTag('idle') → '[IDLE]'which overrode the flash textAgentPanel.tsxso✓ Donerenders during flash window instead of[IDLE]Regression 7: Banner spacer source test regex broken (1 test)
first-run-gating.test.tsd1c73c0(REPL UX round 2) refactoredheaderElementfrom inline JSXuseMemo(() => (...), [])touseMemo(() => { if (narrow) ... }, [])nullmatchfirst-run-gating.test.tsto match new function body patternTEST-WRONG — test expectations are incorrect (6 tests)
These tests have expectations that never matched the implementation, or were invalidated by a deliberate refactor:
repl-ux.test.tstoContain('ready')(name says "idle status")toContain('[idle]')(the actual tag)human-journeys.test.tstoContain('Scaffold ready')toContain('Your team is ready')(never matched impl)cli/init.test.ts.squad/decisions/decisions.md(wrong path).squad/decisions.md(canonical path per SDK impl)consult-command.feature"already has a .squad/""No personal squad found"(personal squad checked first)status-extended.featuref8b91d1changed this incorrectly)ASPIRATIONAL — desired behavior not yet implemented (2 tests)
Cluster B: Grouped help output (
ux-gates.test.tslines 76-95)cli-entry.tshas always used a flat list9f044f3(accessibility audit) as forward-looking specFALSE POSITIVES — actually passing (2 tests)
repl-ux.test.ts: "Backspace deletes the last character" — passesdocs-build.test.ts: All 26 tests pass —docs/build.jswas fixed since original investigationSummary
All regressions trace back to two commits:
4ecc244(Squad Remote Control) and72ffcb1(unified status display) — both dropped or overrode previously working behavior without reverting the associated tests.Fix branch:
williamhallatt/fix-dev-failing-testsfix: restore CI green on dev — 25 regressions + 6 test corrections
williamhallatt commentedon Mar 6, 2026
Additional finding: Playwright CI gap
While investigating the 35 failing tests, found one more pre-existing failure in
test/aspire-integration.test.ts:Root cause: Commit
fea6a67(feat: Wave 2 — Aspire Playwright E2E) added the Aspire integration test but didn't add anpx playwright installstep to the CI workflow. The test has a Docker-based skip guard, but GitHub Actionsubuntu-latestrunners have Docker — so the test runs and fails immediately because Chromium isn't installed.Fix: Added to PR #221 — one new step in
.github/workflows/squad-ci.yml:This is the standard Playwright CI pattern from their own docs. Adds ~30s to CI runs.
ci: add npx playwright install chromium step to squad-ci.yml
bradygaster commentedon Mar 6, 2026
amazing! file a pull request
williamhallatt commentedon Mar 6, 2026
PR was up yesterday along with the issue. It's linked in the last comment before yours 😄
Here again for convenience:
https://github.com/bradygaster/squad/pull/221
bradygaster commentedon Mar 7, 2026
✅ Fixed by PR #221 (merged commit 0315468) — 25 test regressions resolved.
Closed as part of v0.8.21 release wave cleanup.
feat: CRLF normalization utility + apply to all 8 parsers
docs(ai-team): Epic github#181 completion — session log + decision merge