fix(cli): cherry-pick terminal flicker fix from main (#254, #310)#405
Merged
bradygaster merged 1 commit intodevfrom Mar 15, 2026
Merged
fix(cli): cherry-pick terminal flicker fix from main (#254, #310)#405bradygaster merged 1 commit intodevfrom
bradygaster merged 1 commit intodevfrom
Conversation
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
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>
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#365–bradygaster#368), 3 P1 items (bradygaster#369–bradygaster#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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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