Skip to content

feat(desktop): add opt-in full-screen conversation surface#266

Draft
yanmxa wants to merge 1 commit into
genai-io:mainfrom
yanmxa:feat/desktop-mode
Draft

feat(desktop): add opt-in full-screen conversation surface#266
yanmxa wants to merge 1 commit into
genai-io:mainfrom
yanmxa:feat/desktop-mode

Conversation

@yanmxa

@yanmxa yanmxa commented Jul 2, 2026

Copy link
Copy Markdown
Member

Add an opt-in full-screen "desktop" surface — an alt-screen window manager — alongside the default inline scrollback view.

  • New internal/app/desktop package: window manager with a tiling layout.
  • desktop_surface.go is the seam between the root model and the desktop: the model renders each pane's content to strings and hands it over at its assigned width, so adding a window is just adding a Pane. The desktop package never reaches into the model.
  • Toggle plus key/mouse routing wired into the app layer; inline scrollback stays the default surface.

@san-ci san-ci Bot added the need-rebase label Jul 9, 2026
@san-ci

san-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

resolve the conflicts — Fix the merge conflicts locally, then push the resolved changes.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

@san-ci

san-ci Bot commented Jul 9, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

resolve the conflicts — Fix the merge conflicts locally, then push the resolved changes.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

2 similar comments
@san-ci

san-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

resolve the conflicts — Fix the merge conflicts locally, then push the resolved changes.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

@san-ci

san-ci Bot commented Jul 10, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

resolve the conflicts — Fix the merge conflicts locally, then push the resolved changes.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

@yanmxa
yanmxa force-pushed the feat/desktop-mode branch from 0d8a81d to ab31087 Compare July 10, 2026 05:41
@san-ci san-ci Bot added the dco:yes label Jul 10, 2026
@yanmxa
yanmxa force-pushed the feat/desktop-mode branch 4 times, most recently from 6e1572e to 5573b93 Compare July 10, 2026 12:40
@yanmxa yanmxa changed the title feat(desktop): add opt-in full-screen window-manager surface feat(desktop): add opt-in full-screen conversation surface Jul 10, 2026
@yanmxa
yanmxa force-pushed the feat/desktop-mode branch from 5573b93 to 78e4864 Compare July 10, 2026 12:58
Add a full-screen alt-screen surface (toggle with ctrl+g) that renders the
same conversation transcript and input bar as the inline view, but owns the
whole screen so the entire history scrolls within the managed frame — where
the inline view commits finished output to the terminal's native scrollback
and can no longer touch it.

The desktop reuses the inline renderers (renderTranscriptAt + the inline
footer), so the two surfaces read identically. While it is active, scrollback
commits are held and flushed back on exit.

Signed-off-by: Meng Yan <yanmxa@gmail.com>
@yanmxa
yanmxa force-pushed the feat/desktop-mode branch from 78e4864 to 02b5042 Compare July 10, 2026 13:05
@san-ci

san-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR is behind the base branch and needs to be rebased.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

rebase your branch — Run git rebase main locally, then force-push the updated branch.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

3 similar comments
@san-ci

san-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR is behind the base branch and needs to be rebased.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

rebase your branch — Run git rebase main locally, then force-push the updated branch.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

@san-ci

san-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR is behind the base branch and needs to be rebased.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

rebase your branch — Run git rebase main locally, then force-push the updated branch.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

@san-ci

san-ci Bot commented Jul 13, 2026

Copy link
Copy Markdown

[REBASE NOTIFIER] Hi @yanmxa! This PR is behind the base branch and needs to be rebased.

The lgtm label has been removed and the reviewer will need to re-review after you fix this.

How to fix this

rebase your branch — Run git rebase main locally, then force-push the updated branch.

After fixing:

  • The need-rebase label will be automatically removed
  • Request a new review from the OWNERS file
  • The reviewer can add lgtm once satisfied

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant