Skip to content

Move auto-scroll toggle out of AgentChatOutputControl into the status line #36

Closed

Description

@JoshuaRowePhantom

Summary

The auto-scroll toggle (AutoScrollToggle CheckBox) is currently rendered inside AgentChatOutputControl as part of its internal status row. It should be moved out so it lives in the status line (alongside other status elements), with the control simply exposing a bindable boolean property.

Proposed Changes

  1. Remove the \AutoScrollToggle\ CheckBox from AgentChatOutputControl.axaml — the control should no longer own or render the toggle UI.
  2. Expose an \AutoScrollEnabled\ boolean \AvaloniaProperty\ on AgentChatOutputControl — external callers bind to this to drive auto-scroll behaviour; the control reads this property instead of its internal field.
  3. Move the toggle rendering to the status line — the parent view (wherever the status line lives) should render the CheckBox and bind it two-way to \AutoScrollEnabled\ on the control.

Motivation

Keeping the toggle inside the chat output control couples UI layout concerns to the control. Exposing a simple boolean property makes the control reusable and testable in isolation, and allows the status line to own all status-area chrome consistently.

Affected Files (expected)

  • \Phantom.Workspaces.Agent.Gui/Controls/AgentChatOutputControl.axaml\
  • \Phantom.Workspaces.Agent.Gui/Controls/AgentChatOutputControl.axaml.cs\
  • Parent view AXAML that contains the status line

Activity

  1. JoshuaRowePhantom commented on Jun 26, 2026

    @JoshuaRowePhantom
    OwnerAuthor

    Fixed: auto-scroll toggle moved to the conversation status line. Appears only when auto-scroll is off (user has scrolled up), providing a clear re-enable affordance.

  2. added a commit that references this issue on Jun 26, 2026
    dfdf20a
  3. JoshuaRowePhantom commented on Jun 30, 2026

    @JoshuaRowePhantom
    OwnerAuthor

    Verification passed

    Checked: commit dfdf20a (Fix #36), files AgentChatOutputControl.axaml, AgentChatOutputControl.axaml.cs, AgentChatEditorControl.axaml, AgentViewModel.cs, and tests in MainWindowAxamlTests.cs.

    Result: Implementation found, all verification criteria satisfied, tests present and green.

    • AutoScrollToggle CheckBox removed from AgentChatOutputControl.axaml — control now contains only <Border x:Name="BrowserHost" />.
    • AutoScrollEnabled / AutoScrollDisabled properties added to AgentViewModel; the control reads/writes the VM property instead of an internal field.
    • Toggle CheckBox moved to the conversation status line in AgentChatEditorControl.axaml, bound two-way to Agent.AutoScrollEnabled.
    • Toggle uses a .scroll-locked CSS class for opacity animation (appears only when auto-scroll is off), rather than IsHitTestVisible.
    • Tests in MainWindowAxamlTests verify: (a) toggle absent from the output control, (b) toggle present in the editor status line with correct two-way binding, (c) scroll-locked class animation wiring.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestverifiedIssue has been verified

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions