Repository navigation
Releases
Releases · fisidj/fisi-dock
Fisi Dock 0.4.0
Added
/fisi-dock settings: a look menu over the whole screen with the rail drawn under it as a live preview. ↑↓ (or k j) move betweenlogo,frames,colors,accent,divider,motionandsections, ←→ (or h l, and Enter) change the value, Esc (or q) closes. Each change repaints the rail,/dock, the cards, the prompt box and your messages at once. The plain/fisi-dockpicker offerssettingsafteronandoff, and/fisi-docksuggests it.logo:braille(the wordmark as before),text(one boldGENTLESHELLrow) ornone(the panel starts at its first section).frames:faded(as before),classic(the flat gray boxes of 0.3.1) ornone(each title on a fading rule, a blank row between sections; on short screens those blank rows go first). The prompt box and the box around your messages follow it too:fadedfades their frame like the rail's,classicis their flat gray box as before,nonekeeps only their top line as a fading rule with the same labels (you, the working label, mode, model, effort, hints), no sides and no bottom rule.colors:vivid(as before) orsoft, the pastel tones from before 0.3.0 on the panel titles and counters, the prompt labels and petal andyou, with the newFisi-Dock-Softtheme (theFisi-Docktheme of 0.2.1). The menu switches between the two themes when it closes, only while one of them is in use; neither is ever remembered as your theme.colorslight, for a light terminal background, with the newFisi-Dock-Lighttheme (generated bynpm run build:themesfromFisi-Dock, never remembered as your theme): everything Fisi Dock paints repaints for it, the rail,/dock, the narrow cards and strip, the prompt box and the line under it, your messages, the top row, the welcome card, theloadedbox and the menu. Text turns dark, the frames and the divider fade toward the light background, muted and every section color read at least 4.5:1 on#fafafa(decorative frames keep the contrast they had on dark), and the highlight row is light. One light theme for every accent: the accent still paints Fisi Dock's own pink there, darkened for the light background.vividandsoftare unchanged.accent:pink(as before),teal,lilac,amberorgreen. Each comes as a full variant of the theme in vivid and in soft,Fisi-Dock-TealandFisi-Dock-Teal-Softand so on (eight new themes, generated bynpm run build:themesfrom the two pink ones, never remembered as your theme), and the panel's own pink follows it: the highlight bar and the active todo spinner,you, the prompt label wave and petal, the logo's SHELL and the menu. Section titles keep their colors and the permission mode stays red. The menu switches Pi's theme for a changed accent when it closes, likecolors.divider:medium(as before),off(no divider line; its blank column stays so the panel does not move),subtle(dimmer) orstrong(brighter). Only the rail's divider changes; the box frames keep their fade.motion:on(as before) oroff: spinners, the ODD orb and its shine, the prompt label wave and petal stand still on one frame, and new rows appear at once without their entrance; every state keeps its glyph. The timers that only animate stop; data reads go on.sections(7 of 7): → or Enter opens a list of the rail sections,heads-up,odd,rdd,ci,agents,todoandchanges, each[x]or[ ]; Space shows or hides one, Shift+↑↓ (or K / J) moves it, Esc goes back. A hidden section is not drawn on the rail or in/dock, even with data; the order applies to both, andsessionstays first. Short screens leave out the same sections in the same steps, wherever they are. The default is every section in today's order.- The look is saved under
"look"instate.jsonand survives restarts and/fisi-dock on|off: every write to the file now keeps the keys it does not set. The defaults are the look before, so nothing changes until you pick something.
Changed
- The prompt box and your message boxes now fade their frame by default, like the rail's sections (the default
framesisfaded);/fisi-dock settings→frames→classicbrings back their flat gray frame. - Side rail (design sidebar-chrome/02): the section frames keep their boxes but fade, each edge a neutral gray brightest at its middle that sinks into the background at the corners; titles, counters and rows keep their colors.
/dockdraws the same frames; the narrow-screen todo and agents cards keep the flat gray frame. - A divider line runs between the chat and the panel in the rail's first column, brightest halfway down and fading out at the top and bottom, with a blank column before the panel (the panel is two columns narrower than the rail). The rail fills the screen's rows so the divider spans them.
- The session section drops its group labels (
where ──,usage ──,connections ──): project, context, profile, memory and mcp follow each other. On short screens the spacer rows between ODD steps and RDD reviews are now the first to go.
Fisi Dock 0.3.1
Changed
- The clock wave on the prompt box's working label (
ODD checking…) passes in its pastel tones again (pink#f2a7c9at the head, lilac#c3a6ffbeside it): the vivid ones were too strong inside the box. The mode, its dot, the effort and the petal stay vivid. youon the top rule of your messages draws in vivid pink.- The side panel's section titles and counters (rail,
/dock, the narrow-screen todo and agents cards) are a little calmer: 75% of the way from their own color to the vivid one (panelVivid), so pink is#f4549dinstead of#f5388e. The prompt labels and the theme stay fully vivid.
Fisi Dock 0.3.0
Vivid labels
- The labels take the vividness of the cover title
#F43888, each on its own hue: HSL saturation 90% and lightness 59%, lighter in steps of 0.01 (at most 0.80) only where a hue would read under 4.5:1 on the#161616background. One helper,vividinlib/palette.ts. - Panel section titles (
session,heads-up,ODD,RDD,CI,agents,todo,changes) and the counters on their top rule (3/7,on, the agents card's count) draw vivid on the rail, in/dockand on the narrow-screen todo and agents cards. Frames stay gray, rows keep their colors, and gray counters (1 to commit, the CI sha,off) stay muted. - On the prompt box, the permission mode and its dot (vivid red), the effort (vivid blue) and the clock wave on the working label (
ODD checking…, vivid pink and lilac) draw vivid; the model stays muted. The line under the prompt paints the same labels, and the petal Fisi Dock turns with the wave takes the vivid theme tones, like the one Gentle Shell paints from the theme. Gentle Shell's own label and hint keep its colors; words, compaction and layout are unchanged. - The
Fisi-Docktheme's accentspink,deepPink,teal,coral,amber,lilac,green,blueandredtake their vivid values (amber#e0af68->#f5a838, blue#7b9cff->#4c76f6, and the rest); neutrals and backgrounds stay.
Fisi Dock 0.2.1
Project
- Published on npm:
gentle-shell install npm:fisi-dock. docs/screenshot.png, a cover with the GENTLESHELL wordmark, the name and the ODD, agents and todo sections, set as the package'spi.imagepreview for the Pi package gallery. It stays in the repository and out of the npm package.- The security policy says fixes reach
mainand the latest release.
Fisi Dock 0.2.0
Start screen
- A welcome card replaces Gentle Shell's rose banner:
Gentle Shell <version>withwith Fisi Dock,Ready in <project> on <branch>., the five commands to begin with (/resume,/new,/changelog,/hotkeys,/quit) and the alt+k tip. It shows only when Gentle Shell'sgentle:bannercommand exists; without Gentle Shell, Pi keeps its own startup header and listing. - Under the card, Pi's list of loaded skills, prompts and extensions is one
loadedbox in the card's frame: one row per kind with its count and as many names as fit, and<key> lists themon the bottom rule. The key is your real expand key: the one Pi's editor holds, else theapp.tools.expand(or legacyexpandTools) binding in Pi'skeybindings.json, else Pi's defaultctrl+o; a key unbound with[]drops the hint. Pressing it shows Pi's full listing. - Pi's warnings (
[Skill warnings],[Prompt conflicts],[Extension issues],[Theme conflicts]) always print under the box. A Pi listing of a shape Fisi Dock does not recognize is left as it is. /fisi-dock offand session shutdown give Pi's own header and listing back.
Session section
- Grouped (design session-section/02):
where ──,usage ──andconnections ──labels instead of a flat list, with one key column. On short screens the three labels are the first rows to go. - The context meter and its
5% · 53.5k/1Mreadout share a row (the readout moves under the bar on a 34-column rail); filled cells in the state color, empty ones a thin faint─. The cost sits flush right on theprofilerow. - New
memoryrow for Engram (gentle-engram'smem_*tools, not MCP):○ not installed,● connected · N savedfrom this session's successfulmem_savecalls, or✗ unreachableafter a failedmem_*call until the next one succeeds. Nothing is spawned. - MCP servers get one row each (
● connected,◌ connecting,✗ failed); no MCP config saysmcp none configured. - Many MCP servers: the rail shows at most 4
mcprows. With 5 or more, 3 servers keep a row (failed first, then connecting, then connected, config order within each) and the fourth sums up the rest:+7 more · 2 connecting · 5 connected, the counts dropping from the right on a narrow rail./dockstill lists every server.
Prompt box on narrow screens
- The labels compact instead of vanishing: tight separators (
● SUPER-YOLO opus-5.5·high), then no effort (● SUPER-YOLO opus-5.5), then the mode alone (the model alone in normal mode), each tried beside Gentle Shell's hint first. Working at 40 columns reads╭─ ✿ working… ─ ● SUPER-YOLO opus-5.5 ─╮. The line under the prompt compacts the same way before it is cut. - On a phone, idle, the mode, model and effort stay: too tight for them beside
waiting for input, the rule drops the label's words and keeps the petal (╭─ ✿ ──── ● SUPER-YOLO opus-5.5 · high ─╮). - The idle label is told by how Gentle Shell paints it (whole; not the working scan,
queued, an ODD phase or the↑ 3 morescroll indicator), not by the wordswaiting for input, so a translated, custom or clipped idle label (waiting for i…) gets the same rule.
Wordmark
- The rail logo reads GENTLESHELL, joined, GENTLE gray and SHELL in Gentle Shell's Gentleman-Sexy pink (#F43888), drawn in braille dots (gray fade, Sexy pink to its deep pink #BF0F50). The 55-column rail gets the wide 51-column mark; the official 47-column rail gets the 45-column compact one (the same G, N and L, a narrower E, T, S and H), centered with one blank column on each side. Narrower rails show one bold text row, letters spaced (
G E N T L E S H E L L) down to 21 columns and joined below.
Fixes
- The first start applies the
Fisi-Docktheme once and remembers yours first, so/fisi-dock offgives back exactly the theme you had instead ofGentleman-Cute:Fisi Dock applied its theme · /fisi-dock off puts your theme dark back. Installs from before get it once on their next start; later starts keep any theme picked in/settings. The state file records it as"themeApplied": true. Skipped while off, in delegated child sessions, when Pi lacks the theme or cannot set it (tried again next start), and when the state file cannot be written. - On Gentle Shell builds that card rail parts (its
mainbranch, transparent surface) the panel no longer loses its right border to a….
Tests and CI
tests/configs.test.ts: simulated user configurations (another language, no Engram, ten MCP servers, Vim on, a 30-column screen, a remapped or unbound expand key, all at once, and no Gentle Shell) drive the extension end to end, and every surface is checked at every width from 0 to 140.- The Gentle Shell key check finds the package Gentle Shell itself loads (the one its launcher injects, else the
gentle-shelllauncher's own on PATH, pnpm included) before the global npm root, preferring the version provisioned in~/.gentle-shell/config.json. It no longer skips on a pnpm install, and still skips with no Gentle Shell (CI). - CI runs
npm cibefore the tests, so they get Pi's real TUI classes and source.
Project
- Contributing guide, security policy, issue forms for bugs and ideas, and a pull request template.