feat: conversation-aware thinking phrases in ThinkingIndicator#362
Merged
bradygaster merged 1 commit intobradygaster:mainfrom Mar 13, 2026
Merged
Conversation
When prior conversation history exists, the ThinkingIndicator cycles through context-aware phrases (e.g. 'Reviewing conversation context', 'Connecting to previous work') instead of generic ones. This gives users immediate feedback that the system recognizes ongoing conversation. - Add CONVERSATION_PHRASES array to ThinkingIndicator - Add hasConversation prop threaded through App -> MessageStream -> ThinkingIndicator - Derive hasConversation from messages array in App.tsx (true when agent responses exist) Closes bradygaster#360 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Collaborator
Author
|
@bradygaster I like the impact of this one but not sure about the implementation of the const strings. |
tamirdresher
pushed a commit
to tamirdresher/squad
that referenced
this pull request
Mar 16, 2026
* 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): Phase 3 Wave 2 merged, final wave launch Changes: - Merged 5 decisions from inbox to decisions.md (progress indicators, adaptivity, copy polish, a11y, animations) - Created session log 2026-02-23T2300-phase3-wave2-merged.md - Wave 2 PRs bradygaster#360–361 merged with merged conflict resolution - Wave 3 final launch: Cheritto working on bradygaster#340 P2 and bradygaster#341 wow moment Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * feat: breathtaking first-run wow moment (closes bradygaster#341) Init ceremony: - Typewriter reveal of 'Let's build your team' at start - Staggered landmark reveal (workspace, skills, workflows, identity, agent prompt) - Celebration: 'Your team is ready. Run squad to start.' - Respects NO_COLOR (static text, no animation) First-launch experience: - .first-run marker written by init, consumed on first shell launch - Guided prompt: 'Your squad is assembled. Try: @keaton what should we build first?' - isFirstRun flag in WelcomeData drives conditional rendering 7 new tests in repl-ux.test.ts sections 11 (init ceremony + first-launch) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs: update Cheritto history and decision for wow moment (bradygaster#341) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- 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.
Summary
Adds conversation-aware thinking phrases to the CLI's ThinkingIndicator. When a session has prior conversation history, the rotating phrases shift from generic ("Routing to agent", "Analyzing your request") to context-aware phrases ("Reviewing conversation context", "Connecting to previous work"), giving users immediate feedback that the system recognizes ongoing conversation.
Closes #360
Motivation
During multi-turn sessions, the
[pending]/ thinking indicator shows the same generic phrases regardless of conversation state. Users can't tell whether the system treats their message as part of an ongoing thread or a fresh request. Context-aware phrases solve this at the earliest visible moment — before the coordinator even responds.What Changed
ThinkingIndicator.tsxCONVERSATION_PHRASESarray (15 phrases) andhasConversationprop. When true, cycles conversation-aware phrases instead of generic ones.MessageStream.tsxhasConversationto props interface and passes it through to ThinkingIndicator.App.tsxhasConversationfrom messages array (truewhen at least one agent response exists). Passes to MessageStream.3 files changed, 38 insertions, 4 deletions.
UX Before / After
First message of session (no change)
Second+ message — Before
Second+ message — After
Documentation Impact
Testing
npm run buildpasses (0 errors)hasConversation, so they exercise the defaultfalsepath)Rollback Plan
Revert the single commit — removes
CONVERSATION_PHRASES,hasConversationprop, and the derivation in App.tsx.Independence
This PR is fully independent of PR #361 (coordinator prompt change). They address different layers:
Either can be merged independently with full value.
Review Checklist
hasConversationderivation is correct (checks forrole === 'agent'in messages)