Repository navigation
Match the xmd repl Sidekick conversation layout to its approved reference #931
Description
Story
As a person working with the Sidekick in xmd repl, I want a clearly grouped conversation with compact activity beside its replies, so I can follow what it said and what it did without reading a stream of internal turns.
For example, I ask the Sidekick to prepare and run an entry. The pane distinguishes my request, the Sidekick's actual reply, and concise activity such as reading bindings, updating the draft, and completing the entry. An automatic feedback exchange does not become another empty assistant utterance.
Current gap
The implementation reproduces parts of the column geometry, tabs, colors, and composer behavior. Its conversation rendering remains a flat sequence of you: and agent-prefixed rows. The mockup instead uses distinct role headings, grouped response bodies, and compact operation activity.
Passing padding and wrapping tests does not establish that a populated conversation matches the reference.
Reference and contract
Use the XMD REPL Sidekick design, its accepted stronger-column refinement, and the later accepted terminal width/spacing amendments.
The local reference packet is .reviewer/issue-883/reference/: repl-sidekick-clear-columns.html, sidekick-clear-columns.png, and README.md. The Architect comparison is .reviewer/issue-883/pr921-ui-feedback-sessions-history-sidekick.md.
- Establish readable person/Sidekick role hierarchy and response grouping, including multi-line messages.
- Present file links with a short readable label rather than raw Markdown followed by a long absolute path. Keep the exact target available for an intentional follow-up action; displaying a link performs no file access or execution. Settle terminal link/copy interaction before freezing implementation.
- Associate compact, useful activity with the response that performed it. Derive activity from actual operation facts, not an invented success summary.
- Keep explicit Output as the agent's user-facing text. Raw returned binding values, guide chapters, and automatic feedback do not become chat by default.
- Preserve visible failures, interrupted attempts, questions, streaming previews, Stop, and retry behavior.
- Preserve the distinct chat composer and executable draft, their focus destinations, and the accepted terminal footer and drawer behavior.
- Review populated terminal scenes against the reference before freezing the final presentation.
The browser prototype includes scripted countdowns, inline questions, and raw-source/feedback expanders that were not automatically accepted as production behavior. Matching this layout does not authorize adding those interactions.
Acceptance
- Compare a populated exchange containing a person's message, a streamed reply, a binding read, a draft update, an entry outcome, and a final reply.
- Show a control-only response and an interrupted or failed response. Activity remains truthful; internal feedback does not create fake chat messages or hide the failure.
- Capture the agreed wide, intermediate, and narrow terminal scenes and identify any intentional adaptation from the reference.
- Role headings, spacing, grouping, activity, composer placement, and pane boundaries remain understandable with long/wrapped content.
- A saved-file confirmation with a long absolute target displays its concise link label, keeps the full target accessible, and fits the pane at wide and narrow sizes. Literal Markdown inside code examples remains literal.
- Pointer and keyboard controls correspond to what is drawn. Background updates preserve selection, drafts, and focus.
- Reopening restores saved conversation content and activity without repeating agent prompts or entry work.
Use production terminal captures and mounted Sidekick presentation/interaction journeys. An empty-pane screenshot or layout-test count alone does not satisfy the comparison.
Relationships and scope
Follow-up to #883 and PR #921, related to Quest #827. This story owns conversation hierarchy and activity presentation beyond the active column/padding corrections.
The PR-owned empty-reply placeholder correction remains with #921. Do not defer an already accepted but missing #883 requirement merely by linking this follow-up. Identify such defects separately from new visual refinements during the comparison.
Conversation filtering, numeric entry locations, History navigation, the shared checklist in #901, and broader Sidekick initiative in #898 have separate owners. No renderer replacement, new feedback protocol, or change to execution/history semantics is included.
Activity