Skip to content

Render the REPL interaction study in a real terminal #838

Description

@taras

Story

As a person implementing the XMD REPL, I want the approved interaction study reproduced in a real terminal, so layout and rendering decisions are based on terminal cells, input events, scrolling and resizing rather than the browser mockup's canvas.

The harness opens the empty REPL and can switch among representative fixture states: nested execution, concurrent session activity, an Elicit drawer, paused historical inspection, and a settled entry. Resizing the terminal shows the accepted wide, routed narrow, and terminal-too-small behaviors without requiring XMD execution.

Current gap

The approved animation and focus study establish the experience, but they do not prove that @bomb.sh/tty can render it legibly or restore the terminal reliably. Earlier experiments in #774 and #799 remain useful historical evidence, but neither reproduces this coordinated REPL surface and neither is a production foundation.

Contract

This is a bounded rendering experiment under #827. It uses fixture data and @bomb.sh/tty directly to answer whether the renderer can support the design.

  • Wide fixtures compose Sessions/Journal, transcript and Bindings panes above one full-width Execution History footer.
  • Narrow fixtures promote secondary surfaces and Execution History into full-screen views rather than shrinking the wide composition.
  • Transcript fixtures include nested visible scopes, lifecycle rails, generated XMD replacement, long content and collapsed work.
  • History fixtures include entry boundaries, four initial notch heights, deeper nesting, concurrent siblings, dense markers, paused head and historical selection.
  • Drawer fixtures keep the history footer visible in wide mode and become full-screen at constrained sizes.
  • Rendering consumes semantic fixtures. It does not encode terminal cells as application state or establish the final component API.
  • Terminal setup, resize and teardown leave the enclosing terminal usable after normal exit and interruption.

The implementation may be discarded. Its conclusion records which primitives are suitable, which design states require adaptation, and whether any harness should be promoted through later production work.

Acceptance

  • One documented command runs the fixture harness in a real terminal.
  • Captures show the empty, running-with-drawer, paused-history and settled states at representative wide, medium and narrow dimensions.
  • A long nested transcript and a dense scrubber remain operable through scrolling or summarization; clipping them without an accessible route fails the experiment.
  • Resizing across layout profiles preserves the selected semantic fixture and produces no corrupted or stale cells.
  • A terminal below the supported minimum receives an explicit, recoverable terminal-too-small presentation.
  • Normal exit and signal-controlled interruption restore the terminal modes the harness changed.
  • The issue conclusion records observed limitations, the tested terminal dimensions, and a retain, revise or discard decision for the harness.

Evidence

Attach the exact commit, the invocation, terminal captures or recordings, and focused automated evidence for deterministic fixture rendering, resize transitions and terminal restoration. Include at least one negative control that would reveal stale cells, an obscured history footer, or an unusable constrained layout.

Dependencies

Out of scope

  • XMD execution, journals, replay, Agent providers or Elicit validation.
  • The URL router and complete focus model.
  • A public terminal component framework.
  • Production dependency, portability and release commitments.

Activity

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

    UXUser-facing usability and interaction improvementsenhancementNew feature or requestexperimentBounded evidence work that may conclude by discarding its implementation

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions