From 0e1369e6b49657d8a26f356df2076bac0fed92db Mon Sep 17 00:00:00 2001 From: Joakim Persson Date: Fri, 7 Aug 2026 21:31:06 +0200 Subject: [PATCH] pi-atelier.json: modernise to the current schema (0.7+/0.8 keys) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The config was written against pi-atelier's pre-0.7 vocabulary and had drifted behind upstream. It still LOADED — 0.7.x/0.8.0 keep reading the old keys — but only through compatibility shims, and it was missing every sidebar control that pi-atelier has added since: - `segments` (flat id list) -> `segmentLayout` (ordered, explicit per-segment `visible`). Upstream routes the old key through `parseLegacySegments()` and treats it as non-authoritative. - `ornament: "none"` -> `{"id":"brand","visible":false}`. types.ts calls Ornament "legacy menu vocabulary ... translated to Brand visibility". - `showExtensionStatuses` -> `{"id":"statuses","visible":true}`. Upstream maps it onto statuses visibility; the README states Brand and Statuses rendering "is controlled only by this normalized layout". - added `showSidebarAgent`, `showSidebarTodos`, `showSidebarOnStartup` — the last of which did not exist when this file was written (added in 0.8.0). Every deliberate choice in the old file is preserved exactly: editorial preset, alt+a, compact density, 60/85 context thresholds (earlier than upstream's 70/90), 3 currency decimals, session actions on, sidebar tool names on, completion notifications off (desktop toasts are noise in a container). The two segments the old `segments` list omitted — brand and performance — are now explicitly hidden rather than implicitly absent. Verified by loading both the old and new file through pi-atelier 0.8.0's own `loadConfig()`: zero warnings from each, and identical EFFECTIVE config (same visible segments, density, thresholds, panels) — so this is a pure schema modernisation with no behaviour change. `sidebarPanelLayout` is deliberately NOT set. Declaring it makes the user file authoritative for the panel set, which would freeze it as upstream adds panels (its README notes Subagents/Skills are "intentionally not implemented" — i.e. plausibly coming). Omitting it keeps the product default, currently all eight panels. Context: pi-devbox v1.7.0 vendors pi-atelier into the image at a pinned tag, so this file goes from "config for a thing you hand-installed" to the default every container gets. --- install.sh | 9 +++++++-- pi-atelier.json | 17 ++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 4c15b28..84659e4 100755 --- a/install.sh +++ b/install.sh @@ -11,8 +11,13 @@ # (e.g. "read the pi-extensions skill at session start"). # - settings.example.json : template for ~/.pi/agent/settings.json so pi # starts without --provider/--model. Copy + edit. -# - pi-atelier.json : default Status Rail config for the pi-atelier -# extension (cp'd, not symlinked — see below). +# - pi-atelier.json : default Status Rail + Sidebar config for the +# pi-atelier extension (cp'd, not symlinked — see below). +# Written in pi-atelier's CURRENT schema (segmentLayout +# with explicit per-segment visibility, plus the +# showSidebar* toggles), not the pre-0.7 compatibility +# keys (`segments`, `ornament`, `showExtensionStatuses`), +# which upstream still reads but only as legacy inputs. # # No dependency on MemPalace. For the palace bridge see # https://gitea.jordbo.se/joakimp/mempalace-toolkit (optional). diff --git a/pi-atelier.json b/pi-atelier.json index 582f8d3..53877ba 100644 --- a/pi-atelier.json +++ b/pi-atelier.json @@ -1,14 +1,25 @@ { "preset": "editorial", "shortcut": "alt+a", - "segments": ["activity", "metrics", "context", "model", "git", "statuses", "menu"], "density": "compact", - "ornament": "none", + "segmentLayout": [ + { "id": "brand", "visible": false }, + { "id": "activity", "visible": true }, + { "id": "metrics", "visible": true }, + { "id": "performance", "visible": false }, + { "id": "context", "visible": true }, + { "id": "model", "visible": true }, + { "id": "git", "visible": true }, + { "id": "statuses", "visible": true }, + { "id": "menu", "visible": true } + ], "contextWarning": 60, "contextDanger": 85, "currencyDecimals": 3, - "showExtensionStatuses": true, "showSessionActions": true, "showSidebarToolNames": true, + "showSidebarAgent": true, + "showSidebarTodos": true, + "showSidebarOnStartup": true, "completionNotifications": false }