Skip to content

feat(island): a pill that reads at a glance, an icon bar, a full-width chat, System and Today redrawn - #47

Merged
ChrisPlayer merged 9 commits into
mainfrom
feat/glance
Oct 14, 2026
Merged

ChrisPlayer merged 9 commits into
mainfrom
feat/glance

Conversation

@ChrisPlayer

Copy link
Copy Markdown
Contributor

Five changes to the island, on top of v0.1.15.

The collapsed pill says one thing at a time

The pill used to show the robot, the project, a goal bar, a count, a sentence cut mid-word and one dot per thread, all at once. It now picks one line, in this order (lib/island/pill-view.ts, unit-tested):

  1. Someone waits on you: amber, "Port the scheduler attend votre réponse", or "3 vous attendent".
  2. Something just happened: a thread ended ("2 fils terminés"), a pull request's CI settled, or a rule allowed a request, with its shield.
  3. The rest mode picked in Settings: quota, music or timer.
  4. Agents at work: "2 au travail", with a 2 px progress line when the followed thread keeps a task list.
  5. Nothing: the robot alone.
  • Titles are cut on a whole word, never mid-word.
  • The per-thread dots and the detail line show on hover and on keyboard focus.
  • The resting pill no longer runs the pulsing dot.
  • The timer drop uses the pill's type.

The deck's bar shows icons

  • Each tab has a Lucide icon. Only the shown tab spells its name, which unrolls from its icon.
  • The other tabs name themselves in a tooltip on hover and focus, and through aria-label.
  • "Système" is no longer cut under the quota chip in French.
  • With the edit mode's custom bar, renamed tabs use their custom name, and apps and links keep their own icons. In edit mode, the tooltip adds "Glissez pour déplacer, cliquez pour renommer".

The chat takes the deck's whole width

  • The "Fichiers et captures" tile is gone. Attached files stay chips above the composer, and the two capture actions are icon buttons in the composer (shell only, as before).
  • Dropping files goes through the deck's single drop veil, which shows only while files are dragged.

The System tab is built around the CPU

  • The CPU usage is a large, thin numeral with its last minute drawn beside it. lib/windows/history.ts keeps that minute in a ring buffer while the tab shows.
  • Memory is shown as used over total, with a fine meter. Disks are dense rows.
  • Power is one quiet row of four buttons. Its confirmations are unchanged.
  • Each process has a hairline share bar.
  • The island is 378 px tall on this tab instead of 486.

The Today tab is built around the clock

  • The time is the hero, 68 px and thin, with the date written out.
  • The day's numbers are large and unboxed.
  • No scrollbar shows in the tab: lists fade at their edges (.deck-scroll).
  • The focus timer keeps one primary action; the others are quiet icons.
  • The island is 396 px tall on this tab instead of 458.

bots.css gains a five-step type scale (--deck-small to --deck-hero), used by these two tabs only.

Checks

  • bun run check: 0 errors, 0 warnings.

  • vitest: 71 files, 520 tests.

  • Perf-probe in headless Chrome on a D3D11 GPU, 2 runs, main then this branch:

    Pose main this branch
    closed 17.6 ms/s, 5 running animations 13.5 ms/s, 3 running animations
    closed-working 8 running animations 4 running animations
    open-close about +20 % task time while the island moves (the tab name unrolling), frame p95 4 ms instead of 9.7
    peek 16.4 ms/s 19.3 ms/s
    deck-music 24.8 ms/s 27.1 ms/s
    assistant unchanged

    peek and deck-music are within the noise of two runs.

…ing from its icon

The other tabs and icon-only apps name themselves in a tooltip under the bar, on hover or keyboard focus, gliding from one thing to the next. Renamed tabs show their own name; edit mode names each thing with how to edit it.
The files-and-captures tile goes: dropped files already show as chips above the field, the two screen captures become icon buttons beside it, and the drop shows only while files are dragged over the deck, through its one overlay, which now fades. A dragging demo scene shows it.
One state at a time, from a pure priority (pill-view.ts): an agent waiting, in amber and named; a told line in green; the rest mode; the agents at work with a hairline goal bar; the robot alone. The dots and the detail line move to hover and keyboard focus. sessions=none also empties the pill, to stage the idle state.
@ChrisPlayer
ChrisPlayer merged commit ed1d959 into main Oct 14, 2026
3 checks passed
@ChrisPlayer
ChrisPlayer deleted the feat/glance branch October 14, 2026 21:15
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