Skip to content

Align recent sessions UX with ChatGPT-style navigation and fix archive/worktree labeling #78

Closed

Description

@OpenCodeEngineer

Summary

Improve session/worktree navigation so the recent sessions experience is closer to ChatGPT-style history and clearer at scale.

Requested changes

  • Make the recent sessions panel behave more like ChatGPT history UX.
  • Fix archiving from the recent sessions panel so archived sessions disappear immediately and do not remain visible in recent sessions.
  • Show a clear prefix before each recent session title so it is obvious which project/folder/worktree the session belongs to.
  • When creating a new worktree, prefix its generated name with the root project folder name and append a numeric timestamp in YYYY-MM-DD-HH-mm format instead of using a random adjective/noun name.

Acceptance criteria

  • Recent sessions are grouped and rendered in a clearer history-oriented UI.
  • Archiving a session from recent sessions removes it from the list without needing a reload.
  • Recent sessions show project/worktree context before the session title.
  • New worktree names follow the <project>-<YYYY-MM-DD-HH-mm> format and remain unique.
  • Relevant tests are added or updated and pass.

Status

  • In progress

Activity

  1. OpenCodeEngineer commented on Mar 28, 2026

    @OpenCodeEngineer
    Author

    Implemented and verified.

    What landed:

    • Recent sessions now load full thread data instead of root-only rows, so child sessions can render nested under their parent.
    • Recent session lists are grouped into ChatGPT-style date sections and each item shows a project/worktree prefix before the session title.
    • Archiving from the recent sidebar now removes the session immediately in the UI, and session archiving now cascades to descendants so child branches do not reappear as orphaned recent items after refresh.
    • New worktree names now use <project-folder>-<YYYY-MM-DD-HH-mm> with numeric suffixes for collisions, and the app displays the generated worktree name instead of the internal opencode/... branch ref.

    Verification:

    • packages/app: bun typecheck
    • packages/app: bun test --preload ./happydom.ts ./src/utils/recent-session.test.ts
    • packages/opencode: bun typecheck
    • packages/opencode: bun test test/server/global-session-list.test.ts test/project/worktree-create.test.ts
    • packages/app: bun test:e2e:local -- -- e2e/sidebar/sidebar-recent-panel.spec.ts e2e/projects/workspaces.spec.ts

    Follow-up documented separately:

  2. dzianisv commented on Jun 21, 2026

    @dzianisv
    Owner

    UX enhancement request. Current sidebar implements grouped-by-time session history (Today, Yesterday, Previous 7 Days), collapsible sections with chevrons, and worktree labels. The core ChatGPT-style UX pattern is present. Further polish is a design decision, not a bug.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions