Skip to content

feat(cli): add transcript navigation and presentation controls - #1963

Merged
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/cli-transcript-navigation
Aug 2, 2026
Merged

feat(cli): add transcript navigation and presentation controls#1963
limityan merged 1 commit into
GCWing:mainfrom
limityan:yanzhn/cli-transcript-navigation

Conversation

@limityan

@limityan limityan commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add OpenCode-compatible transcript navigation through /timeline, with newest-first user-message points, move-to-preview, and an Enter-confirmed scroll anchor that remains stable while an active turn grows.
  • Add OpenCode-compatible presentation controls: /timestamps with /toggle-timestamps, /thinking with /toggle-thinking, and palette-only Tool details. No new shortcuts or invented slash aliases are introduced.
  • Keep Embedded and Shared TUI behavior aligned while persisting client-local presentation defaults safely across concurrent TUI processes.

Design

  • Reuse ChatState transcript facts; timeline is a read-only CLI projection and adds no Runtime operation, IPC message, or Relay behavior.
  • Extract one conversation-point selector shared by timeline and the existing fork dialog, and reuse the per-message render/layout cache for drawing, line counting, preview, and committed jumps.
  • Use one disclosure override model for thinking and tool cards: a global configured default plus a per-block inversion.
  • Persist focused config mutations by locking, reloading the latest TOML, merging one setting, and atomically replacing the file. Theme selection uses the same path so a stale Shared TUI snapshot does not overwrite presentation preferences.

OpenCode entry compatibility

Capability Entry
Timeline /timeline
Timestamps /timestamps, /toggle-timestamps
Thinking /thinking, /toggle-thinking
Tool details Command palette only

Scope

  • CLI/TUI and existing CLI documentation only.
  • No Agent Runtime, IPC, Relay, workflow, or superpowers/ changes.
  • Timeline remains read-only; fork, undo, copy, and message mutation retain their existing owners and commands.

Verification

  • rustfmt --edition 2021 --check on all changed Rust files
  • git diff --check gcwing/main...HEAD
  • cargo check -p bitfun-cli --locked
  • cargo test -p bitfun-cli --locked -- --skip dispatch::workspace::tests::reported_sync_failure_allows_a_new_operation_to_take_over --skip dispatch::workspace::tests::legacy_sync_failure_without_operation_id_is_reported_then_retryable --skip dispatch::workspace::tests::reprovisioning_a_missing_checkout_never_resets_the_job_branch
    • 594 CLI unit tests passed after the CLI-overlapping rebase
    • ACP, compatibility entrypoint, exec, plugin, product-assembly, and terminal/PTY integration suites all passed
  • After the final unrelated Web-only main update: cargo test -p bitfun-cli --locked opencode_navigation_and_presentation_actions_keep_exact_entrypoints

The three skipped tests are existing Windows Dispatch platform/extended-path failures and are outside this PR's call paths.

@limityan
limityan marked this pull request as ready for review August 2, 2026 03:51
@limityan
limityan merged commit 7641a15 into GCWing:main Aug 2, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant