Skip to content

The picker, redesigned - #15

Merged
ohansFavour merged 2 commits into
mainfrom
feat/picker-redesign
Sep 16, 2026
Merged

ohansFavour merged 2 commits into
mainfrom
feat/picker-redesign

Conversation

@ohansFavour

@ohansFavour ohansFavour commented Sep 16, 2026 •

Copy link
Copy Markdown
Member

The travel step showed everything at once and taught nothing: every sensible item preselected, so the natural first key accepted the defaults and read as skipping input. This redesign is rendering only — keys, defaults, consent rules, plain mode, flag echo, and assemble-never-execute unchanged.

  • Half-block AGENT SYNC wordmark on launch (bold text fallback), facts card listing only installed agents.
  • Multiselect: picked-count chip, a coach line that retires after the first toggle, full-row highlight bar, hints demoted to one detail line, plain group headers with air between groups, locked section collapsed to a counted line (v expands), three-entry footer (? reveals the rest).
  • Destination step cut: the review is the bundle tree — per-skill counts and sizes, config keys, consent accounting — ending in Pack it? → setup.tgz (y / n / d).

177 tests, typecheck clean.

…il line, collapsed exclusions, review as the bundle tree

The shipped travel step showed everything at once and taught nothing:
every sensible item preselected, so the natural first key accepted the
defaults and read as skipping the user's input. This is the signed-off
redesign, rendering only — keys, defaults, consent rules, plain mode,
flag echo and assemble-never-execute are untouched.

Launch opens with a half-block AGENT SYNC wordmark (bold text in ASCII
or narrow terminals) and a found-on-this-machine card that simply omits
absent agents. The multiselect gets a picked-count chip, a warn-colored
coach line — space picks, enter continues — that retires after the
first toggle, a full-row highlight bar instead of a pointer glyph,
plain group headers with a blank rail line between groups, per-item
hints demoted to one detail line describing the highlighted row, the
locked section collapsed to a counted line with v to expand, and a
three-entry footer with ? revealing the full bindings.

The destination step is gone: the review IS the final screen, and it is
the product promise on screen — the actual bundle tree with per-skill
file counts and sizes, config files naming the keys they carry, the
manifest line, and an accounting of consented hooks, plugins and
exclusions — ending in Pack it? with the destination as a named
default: y packs, n leaves nothing written, d opens the destination
choice, esc cancels. Plain mode reads the same tree and answers one
y/N; destination changes there ride the scripted flags the echo
teaches. The receipt closes with the scripted spelling and the
apply-on-the-other-side line.

Tests: wordmark rows and fallbacks, the review-tree builder, review n
and d key paths end to end, coach retirement, v and ? toggles, the
match-count filter line, forced re-collapse on tight budgets, and the
ascii design snapshot rewritten to the new frame. 177 tests.
@coldtea-pr-lens

coldtea-pr-lens Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

◈ PR Lens

🟢 +1 new · 🟠 ~6 changed · 🔴 -0 removed · 1 flow · 7 files · commit 17d0c93


Architecture

Architecture diagram for coldteadotai/agent-sync at 17d0c93

7 components touched across 3 lanes.

Open the interactive canvas


Inside the changed components — 2 views

Component view — Guided export orchestration

Guided command orchestration of intro wordmark, coached picker selections, review tree rendering, and destination packing.

Architecture view of Component view — Guided export orchestration in coldteadotai/agent-sync

Component view — TUI presentation engine

TUI component state machine, wordmark generator, theme glyphs, and terminal screen renderer.

Architecture view of Component view — TUI presentation engine in coldteadotai/agent-sync

Data flow

Data flow diagram for coldteadotai/agent-sync at 17d0c93

Guided export flow

Open the interactive canvas


View

  • Architecture lens
  • Data flow lens
  • Expand every detail

Tip

The diagrams are links. Click one to open it on the canvas, then press W or click play to walk through the change.

🪧 More tips
  • Run npx skills add coldteadotai/pr-lens, then tell your coding agent: "Diagram the change you just made with PR Lens and attach it to the pull request."
  • Run npx @coldtea/pr-lens-cli analyze --base origin/main on a branch, then npx @coldtea/pr-lens-cli render .pr-lens/graph.json. Same lenses, your own model key, before the pull request exists.
  • Untick Architecture lens or Data flow lens under View to hide a diagram, or tick Expand every detail to open every section. The comment redraws in a few seconds.
  • Click the link under each diagram to open it on a canvas you can zoom, pan and step through.
  • Open a diagram on the canvas, then press W or click play to walk through the change one step at a time.
  • The CLI's render reads .github/pr-lens.yml and applies your renames, exclusions and lane pins at draw time.
  • Set github.comment.collapsed: true in .github/pr-lens.yml to fold the comment behind one View architecture and data flow row. Drawing still runs on every push.
  • Add .github/workflows/pr-lens.yml with coldteadotai/pr-lens/packages/action@v0 and your model provider's key as its api-key to run PR Lens from your own CI. Any /chat/completions endpoint works.
  • Push a commit and the comment redraws for the new head. A slow older run never overwrites a newer one.
  • Switch GitHub to dark mode and the diagrams follow. The moving dots are this pull request's data in motion.

Thanks for using PR Lens! It's built by Coldtea, free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

…separators go through the theme

buildReviewLines' TOML annotation now accepts only lines shaped like a
bare-key assignment: section headers, multi-line array elements and
closing brackets are content, and content never reaches the review
screen — the reviewer reproduced a literal token value printed by the
previous line-splitting. A planted-value test pins it.

The review screen fits itself before rendering: head of the tree, an
elision count, and always the closing consent-accounting line, so a
tall bundle can never scroll the Pack it? prompt and its keys off
screen (renderLive slices top-first). fitReviewLines is exported and
unit-tested.

Prose separators are spelled as the mid-dot once and normalized by the
UI that renders them — the theme separator in the picker, a hyphen in
plain mode — closing the stray hardcoded dot in the intro subtitle and
making the hooks coach line match the drawing. The skip path now also
echoes the scripted spelling, so a plain-mode user who declined
precisely because they wanted a different destination leaves with the
flags in hand. And v/? during filtering type into the query, pinned by
a reducer test.
@ohansFavour
ohansFavour merged commit cc777a2 into main Sep 16, 2026
4 checks passed
@ohansFavour
ohansFavour deleted the feat/picker-redesign branch September 16, 2026 23:10
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