Skip to content

feat(tui): add an opt-in shared plans sidebar - #4253

Open
gargsajal9 wants to merge 2 commits into
docker:mainfrom
gargsajal9:gargsajal9-configurable-plans-sidebar
Open

feat(tui): add an opt-in shared plans sidebar#4253
gargsajal9 wants to merge 2 commits into
docker:mainfrom
gargsajal9:gargsajal9-configurable-plans-sidebar

Conversation

@gargsajal9

Copy link
Copy Markdown

Summary

Refs #4115.

  • Add a default-off settings.layout.show_plans preference and a Plans toggle in /settings, including live preview, cancellation, and persistence.
  • List the five most recently updated shared plans in full sidebars. Clicking a plan opens the existing external editor with its displayed revision guard; All plans and Refresh plans reuse the existing browser and service.
  • Share bounded asynchronous refreshes across tabs and preserve canceled-request, conflict, and edit-draft handling.

Proposed scope

This draft uses the existing shared plan store rather than introducing session ownership or another database. Status remains free-form: there is no active/completed classification or status filter.

Top/bottom, narrow, and collapsed layouts show a compact count and browser shortcut. /plans and the command palette remain the keyboard routes. Cross-process changes need an explicit refresh; no polling or filesystem watcher is added. Lean mode and --sidebar=false remain unchanged.

Editing only changes the plan document. It does not approve a plan or authorize or execute staged writes.

The five-plan recent list and direct external-editor destination are proposed for scope review; they are not presented as a maintainer-agreed design.

Validation

  • task build passed with CI=true.
  • Full task lint passed, including the project-specific cops and go mod tidy --diff.
  • Complete tests for the seven affected plans, userconfig, and TUI packages passed with race detection and shuffled order.
  • The full task test run passed 221 packages; only pkg/teamloader failed. Installing its missing gopls dependency resolved the LSP failures. The entire package then passed with exactly the dmr.yaml and unload_on_switch.yaml example subtests excluded because Docker Model Runner is disabled.

The unfiltered full suite is not green locally: those two existing DMR-dependent examples remain an environment limitation. No tests or source were changed to bypass them.

Fixes: #4115

Show the five most recently updated shared plans behind a global layout
preference. Reuse the existing external editor with displayed revision
guards, share asynchronous refreshes across tabs, and keep compact layouts
linked to the plan browser.

Cover configuration persistence, rendering, navigation and late-result
cancellation, and document the default-off behavior and freshness limits.

Refs docker#4115

Signed-off-by: Sajal Garg <9094703+gargsajal9@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@gargsajal9
gargsajal9 marked this pull request as ready for review September 13, 2026 03:44
@gargsajal9
gargsajal9 requested a review from a team as a code owner September 13, 2026 03:44
@aheritier aheritier added area/docs Documentation changes area/testing Test infrastructure, CI/CD, test runners, evaluation area/tui For features/issues/fixes related to the TUI kind/feat PR adds a new feature (maps to feat:). Use on PRs only. labels Sep 13, 2026
@aheritier

Copy link
Copy Markdown
Collaborator

👋 This PR has merge conflicts with the base branch. Please rebase or merge the latest base branch and resolve them. I've moved it to draft and added status/needs-rebase; it'll be picked back up automatically once the conflicts are cleared.

@aheritier
aheritier marked this pull request as draft September 14, 2026 16:12
@aheritier aheritier added the status/needs-rebase PR has merge conflicts or is out of date with main label Sep 14, 2026
Merge current main without rewriting the contribution history. Adapt shared
plan snapshots to tabModel and UpdateEffects while retaining upstream
attention handling and sidebar edit cancellation.

Keep background local/global effects without dispatching hidden UI commands.
Cover snapshot delivery, lazy tabs, page recreation, and pending editor
cancellation when switching, closing, or replacing a tab.

Refs docker#4115

Signed-off-by: Sajal Garg <9094703+gargsajal9@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@gargsajal9
gargsajal9 marked this pull request as ready for review September 14, 2026 20:10
@aheritier aheritier removed the status/needs-rebase PR has merge conflicts or is out of date with main label Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation changes area/testing Test infrastructure, CI/CD, test runners, evaluation area/tui For features/issues/fixes related to the TUI kind/feat PR adds a new feature (maps to feat:). Use on PRs only.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature: configurable sidebar listing for plans with direct link to edit screen

2 participants