Skip to content

fix(cli): cherry-pick terminal flicker fix from main (#254, #310)#405

Merged
bradygaster merged 1 commit intodevfrom
squad/254-flicker-fix-to-dev
Mar 15, 2026
Merged

fix(cli): cherry-pick terminal flicker fix from main (#254, #310)#405
bradygaster merged 1 commit intodevfrom
squad/254-flicker-fix-to-dev

Conversation

@bradygaster
Copy link
Copy Markdown
Owner

Cherry-picks the terminal flicker fix (PR #310, issue #254) from main to dev.

Original fix by Fenster (INCO) — removes raw ANSI escape codes that bypassed Ink's render system, reduces animation FPS from 15→5, consolidates component timers.

Closes #259 investigation (reduces resource pressure that contributed to VS Code crashes).

14 files, 301 insertions, 102 deletions.

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

Root cause: four independent issues combined into a scroll storm:
1. Ink fullscreen clearTerminal path firing every render cycle
2. ~16 unsynchronized animation re-renders/sec from 3 timers
3. Unstable Static component keys causing Ink remounts
4. Layout shift from height toggling between processing states

Changes:
- Patch Ink fullscreen path (disable clearTerminal, incrementalRendering, trailing newline)
- Widen spinner/animation intervals (80->150ms spinner, 500->800ms pulse)
- Share terminal dimension hook with 150ms debounce
- Pin root height to prevent logUpdate cursor drift
- Keep conversation in live viewport (not Static scrollback)
- Stable UUID-based Static keys, responsive maxVisible
- Fix bump-build.mjs to produce valid semver prerelease format
- Fix marketplace test for Windows path compat

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster merged commit 2716aa6 into dev Mar 15, 2026
1 check failed
bradygaster added a commit that referenced this pull request Mar 15, 2026
Session: 2026-03-15T11-40-00Z-skill-install-and-flicker-fix
Requested by: Coordinator

Changes:
- Appended team updates to Flight history: bug classification (6 issues, 2 fixed)
- Appended team updates to PAO history: PR #403 merge (docs FAQ)
- Created INCO history: terminal flicker fix cherry-pick to dev (PR #405)
- Logged session activity for Flight, PAO, INCO, Coordinator

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
bradygaster added a commit that referenced this pull request Mar 15, 2026
… next sprint queued

Updated focus to irritating bugs sprint (#197, #353, #354).
Recorded PR merges (#404, #403, #405), flicker fix cherry-pick,
github-multi-account skill install, and pending PR status.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@bradygaster bradygaster deleted the squad/254-flicker-fix-to-dev branch March 16, 2026 10:59
tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Mar 16, 2026
…bradygaster#414)

* chore(squad): Phase 2 launch — thinking feedback, P0 bugs, dual telemetry

Phase 1 complete: 5 issues closed (bradygaster#325, bradygaster#326, bradygaster#327, bradygaster#328, bradygaster#329), 5 PRs merged.
Phase 2 launched with Cheritto (thinking feedback), Hockney (P0 bugs), Saul (dual telemetry).
Decision inbox merged and archived.

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

* chore(squad): Phase 2 Wave 1 merged, Wave 2 launched

Session: 2026-02-23T2145-phase2-wave2
Phase 2 Wave 1 complete (PRs bradygaster#351, bradygaster#352, bradygaster#353 merged).
Wave 2 launched: Cheritto on ghost response detection (bradygaster#332), Hockney on error hardening (bradygaster#334).

Changes:
- Session log created: 2026-02-23T2145-phase2-wave2.md
- Merged 3 inbox decisions (Cheritto, Hockney, Saul)
- Deleted inbox files post-merge

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

* chore(squad): Epic bradygaster#323 complete — all phases shipped 🎉

All 3 phases delivered:
- Phase 1 (Testing Wave): 6 issues closed
- Phase 2 (Improvement): 6 issues closed
- Phase 3 (Breathtaking): 7 issues closed
- 17 PRs merged, 19 issues closed total

Session log: 2026-02-23T2320-epic-complete.md
Decisions merged from inbox: P2 UX Polish, first-run wow moment

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

* hostile QA: end-to-end quality assessment — 10 findings, 4 HIGH severity

Candid assessment requested by Brady. Traced every code path in cli-entry.ts,
shell/index.ts, shell/commands.ts, App.tsx, coordinator.ts, spawn.ts, and the
SDK adapter client.

Key findings:
- Dead sessions never evicted from agentSessions Map after connection drop
- No React ErrorBoundary — any render throw kills the shell
- Nasty-inputs corpus (95 strings) is never imported by any test
- No SIGTERM handler in interactive shell
- MemoryManager exported but never instantiated (dead code)
- Single streaming content slot clobbers multi-agent output
- User input silently dropped during processing (no type-ahead buffer)

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

* chore(squad): quality review findings — 7 issues filed

Quality audit complete: 5 agents assessed CLI across testing, coverage, stability, accessibility, UX.
Results: 4 P0 blockers (bradygaster#365bradygaster#368), 3 P1 items (bradygaster#369bradygaster#371).
Blocking: Waingro dead sessions, ErrorBoundary, dropped input; Marquez help text consistency.

Changes:
- Logged session summary to .squad/log/2026-02-24T0205-quality-review-complete.md
- Updated .squad/identity/now.md with quality review findings and new issue numbers

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

* chore(squad): merge decision — Marquez UX audit findings

Quality assessment merged from inbox (Grade B): 11 improvements (3 P0, 4 P1, 4 P2). help text, stub commands, vocabulary, separators, roster.

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

* chore(squad): test sprint launch

Session: 2026-02-24T0210-test-sprint
Changes:
- Logged test sprint: 5 agents, 7+ issues
- Branches: P0 fixes, stale tests, E2E, hostile/SDK, A11y

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

* fix: product love — first 10 seconds that make you want the next 10 minutes

Walked through the full first-time user experience and fixed every moment
that wasn't delightful:

**\/clear\ actually clears (bradygaster#400)**
- Was sending raw ANSI escape as message content (no-op in Ink)
- Now resets message array to empty — genuine fresh slate
- Added \clear?: boolean\ to CommandResult interface

**Natural language routing revealed (bradygaster#402)**
- The coordinator auto-routing is the WOW feature — was completely hidden
- Welcome banner hints: 'Just type · @agent to direct · /help · Ctrl+C exit'
- /help explains: 'Just type naturally — the coordinator routes it'
- First-run prompt: adds 'Or just type naturally' hint
- Input placeholder: 'Type anything or @agent...'

**First-run hint layout (bradygaster#404)**
- Was horizontal Box that broke on narrow terminals
- Now vertical flexDirection=column with breathing room

**Exit message consistency (bradygaster#405)**
- Replaced wave emoji with diamond mark (matches P2 emoji removal)

**Welcome roster wrapping (bradygaster#407)**
- Agents were one dense string that wrapped mid-name
- Now individual Ink elements with flex-wrap for clean word-boundary wrapping

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Mar 16, 2026
- bradygaster#405: Exit message uses ANSI-colored ASCII separator instead of Unicode diamond
- bradygaster#404: First-run hint adapts for narrow terminals (<=60 cols): shorter text, no padding
- bradygaster#407: Roster removes emoji from agent names, uses ASCII hyphen separators, columnGap for clean wrapping
- All separators normalized to ASCII hyphens per P2 conventions

Fixes bradygaster#405, bradygaster#404, bradygaster#407

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Mar 16, 2026
…05-404-407

Reviewed by Keaton (Lead). Conflict resolved after rebase onto main. Fixes bradygaster#405, bradygaster#404, bradygaster#407.
tamirdresher pushed a commit to tamirdresher/squad that referenced this pull request Mar 16, 2026
Session: 2026-02-24T0430-prs-merged
Requested by: Brady

Changes:
- Merged 6 decision inbox files into decisions.md (Cheritto, Fenster, Kovash, Marquez, McManus, Waingro)
- Deleted all inbox files (now empty)
- Created .squad/identity/prd-next-waves.md (4-wave execution plan: A=Polish, B=Reliability, C=Testing, D=Delight)
- Updated .squad/identity/now.md to reflect Wave A focus
- Created session log: .squad/log/2026-02-24T0430-prs-merged.md

PRs merged this session: bradygaster#444, bradygaster#445, bradygaster#446, bradygaster#447
Issues closed: bradygaster#400, bradygaster#389, bradygaster#417, bradygaster#391, bradygaster#402, bradygaster#405, bradygaster#404, bradygaster#407, bradygaster#431, bradygaster#429
Issues filed: bradygaster#448-bradygaster#459 (Wave A Polish items)

Process directive: All work through PRs with squad member review before merge

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.

2 participants