Skip to content

Plan-look chooser + 0.20.0 release dialog (with GitLab / sem / install fixes)#879

Merged
backnotprop merged 6 commits into
mainfrom
feat/plan-look-chooser
Jun 9, 2026
Merged

Plan-look chooser + 0.20.0 release dialog (with GitLab / sem / install fixes)#879
backnotprop merged 6 commits into
mainfrom
feat/plan-look-chooser

Conversation

@backnotprop

Copy link
Copy Markdown
Owner

Consolidated pre-0.20.0 branch — kept together intentionally to avoid sprawl; a broader rationalization can follow.

Plan look + release announcement

  • feat(plan): default to the grid look + look-and-feel image chooser — grid is the default look again; first-run users pick Grid vs Clean from real screenshots.
  • feat(plan): 0.20.0 release announcement dialog — turns that chooser into a two-page announcement:
    • Page 1: header with a Full release notes link, a four-up feature grid (fresh look, semantic review, multi-repo review, leaner install), and the grid/clean chooser.
    • Page 2: Workspaces are coming teaser with the waitlist image + link.
    • Footer actions grouped bottom-right on both pages (shimmering teaser via TextShimmer + primary action) so focus stays in one corner across the page turn.

Release-gate fixes (consolidated here)

  • fix(review): restore GitLab /diffs fallback for MR reviewfetchGlMR keeps raw_diffs primary, falls back to paginated /diffs on empty/failure, and throws a clear "MR diff is empty" error.
  • fix(install): bound the optional sem sidecar download — caps the optional semantic-diff sidecar fetch.
  • chore(install): remove the Glimpse install option from the installers — installer-only removal; the Glimpse runtime is untouched.

Notes / confirm before merge

  • Links currently point to https://plannotator.ai/workspaces (teaser + waitlist) and the GitHub releases page (Full release notes). Easy to change if you want different targets.
  • Chooser/teaser images ship as inlined PNG/WebP (self-contained, offline-proof). Converting the two PNGs to WebP is a trivial future size cleanup.
  • The parked semantic-diff.test.ts review-probe and a stray hello-world.html were intentionally left out of this branch.

- Flip gridEnabled default back to true (classic grid / floating-card look),
  reverting #863's flat-by-default so existing users without an explicit
  choice return to the grid view they're used to.
- Rewrite the look-and-feel announcement into a two-image chooser: Grid
  (classic, now the default) vs Clean (the new flat look), each a clickable
  screenshot that hover-zooms to preview — mirroring the code-review
  DiffTypeSetupDialog pattern.
- Bump the announcement version (1 -> 2) so existing users are re-offered the
  choice once.
- Add look-grid.png / look-flat.png preview assets (resized app screenshots).
#871's pr-gitlab refactor moved to the raw_diffs endpoint and deleted the
paginated /diffs path, hard-breaking MR review on self-hosted GitLab too old to
expose raw_diffs (opaque "Failed to fetch MR diff") and silently rendering zero
files when raw_diffs returns empty for oversized MRs.

Keep raw_diffs as the primary path (it preserves binary markers + collapsed
content), but fall back to the restored paginated /diffs + reconstructPatch when
raw_diffs fails or is empty, and throw a clear "diff is empty / too large" error
if both come back empty. Restores parsePaginatedArray / reconstructPatch and
adds tests for the fallback paths.
The semantic-diff 'sem' download (#871) ran curl / Invoke-WebRequest with no
timeout. The sidecar installs after plannotator itself, so a slow or hung fetch
could wedge an otherwise-complete install. Add --connect-timeout 10
--max-time 120/60 (sh, cmd) and -TimeoutSec 120/60 (ps1) so it times out and
skips gracefully, and document the PLANNOTATOR_SKIP_SEM_INSTALL opt-out in the
installer help.
The installers offered to `npm install -g glimpseui` (a wizard prompt +
--glimpse/--no-glimpse flags + saved pref). Drop all of it across install.sh,
install.ps1, and install.cmd: flags, usage text, the wizard question, the
glimpse_present detection, the saved-pref read/write, the persistence clauses,
and the install block. The guided wizard is now two questions (extras,
model-invocable).

Runtime Glimpse support is unchanged: the app still opens in the native window
if glimpseui is on PATH (packages/server/browser.ts), still gated by
PLANNOTATOR_GLIMPSE. Updated install.test.ts (asserts the installers are
glimpse-free) and the installation docs.
Turn the first-run look chooser into a two-page 0.20.0 announcement.

- Page 1: header with a "Full release notes" link, a four-up feature
  grid (fresh look, semantic review, multi-repo review, leaner install),
  and the grid/clean plan-look chooser.
- Page 2: "Workspaces are coming" teaser with the waitlist image + link.
- Footer actions grouped bottom-right on both pages (shimmering
  "Workspaces are coming" teaser via TextShimmer + the primary action)
  so focus stays in one corner across the page turn.
- Reshoot the grid/clean chooser screenshots on a clean prose plan and
  add the workspaces teaser image.
Add a fifth what's-new card for --render-html (annotate HTML reports and
explainers rendered full-screen) and move Leaner install to the front of
the grid.
@backnotprop backnotprop merged commit 0be4295 into main Jun 9, 2026
13 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