@the-portland-company/shell 0.27.0 → 0.28.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,36 @@
1
+ ## 0.28.1 — 2026-07-23
2
+
3
+ ### Fixed — the left bar lost its background (regression in 0.25.0)
4
+
5
+ `gen:tokens` regenerated `chrome.css` from Specs but the generator never emitted
6
+ **`--nav-surface`** (the sidebar's own surface, which `NavSidebar` reads
7
+ directly) or the hand-authored neutral-black dark chrome ramp — both had been
8
+ edited into the committed file by hand, so regenerating silently dropped them.
9
+ Live result: the left bar computed `background-color: rgba(0,0,0,0)`.
10
+
11
+ Both are now emitted BY the generator — `--nav-surface` in light, and an
12
+ explicit `#0A0A0A → #161616 → #1F1F1F → #333333` chrome ramp with `#A3A3A3` /
13
+ `#E8E8E8` text in `.dark`, rather than whatever the ShadCN dark triplets happen
14
+ to be. Global-Rules requires dark chrome to be hue-free (R=G=B); deriving it
15
+ from a blue-tinted palette would violate that. Regenerating can no longer lose
16
+ either one.
17
+
18
+ ## 0.28.0 — 2026-07-23
19
+
20
+ ### Fixed — DevNotes "Create Task" did nothing
21
+
22
+ `AppDevNotes` mounted `DevNotesProvider` and the menu, but never
23
+ `<DevNotesOverlay />`. The menu only TOGGLES creation mode; the overlay is what
24
+ renders the click-to-place capture layer, the report dots and the report form —
25
+ so on forms / surveys / polls, clicking **Create Task** closed the menu and
26
+ nothing happened at all (HITL bug report 2026-07-23). Contacts escaped it only
27
+ because it still carried its own hand-rolled surface.
28
+
29
+ The chrome now mounts a `DevNotesSurface` at the chrome root: the overlay, plus
30
+ the "View All Tasks" modal (rendered at the root so the top bar's stacking and
31
+ backdrop-blur can't trap it, and mounted only while open so it doesn't fetch
32
+ every user's tasks on page load).
33
+
1
34
  ## 0.27.0 — 2026-07-23
2
35
 
3
36
  VRM native-chrome parity (shell-nav-handoff §1–§3). All three were verified in
@@ -2235,7 +2235,22 @@ function AppDevNotes({
2235
2235
  }),
2236
2236
  [storagePrefix, identity.role]
2237
2237
  );
2238
- return /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesProvider, { adapter, user, config, children });
2238
+ return /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesProvider, { adapter, user, config, children: /* @__PURE__ */ jsxRuntime.jsx(DevNotesSurface, { children }) });
2239
+ }
2240
+ var DevNotesTasksContext = react.createContext({
2241
+ ready: false,
2242
+ openTasks: () => {
2243
+ }
2244
+ });
2245
+ function DevNotesSurface({ children }) {
2246
+ const [tasksOpen, setTasksOpen] = react.useState(false);
2247
+ const openTasks = react.useCallback(() => setTasksOpen(true), []);
2248
+ const tasksCtx = react.useMemo(() => ({ ready: true, openTasks }), [openTasks]);
2249
+ return /* @__PURE__ */ jsxRuntime.jsxs(DevNotesTasksContext.Provider, { value: tasksCtx, children: [
2250
+ children,
2251
+ tasksOpen ? /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesTaskListModal, { open: true, onClose: () => setTasksOpen(false) }) : null,
2252
+ /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesOverlay, {})
2253
+ ] });
2239
2254
  }
2240
2255
  function PolitogyAppChrome({
2241
2256
  storagePrefix,
@@ -2283,13 +2298,18 @@ function ChromeTopBarActions() {
2283
2298
  {
2284
2299
  title: "DevNotes",
2285
2300
  description: "Capture bugs and notes, filed straight to Forge.",
2286
- children: /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesMenu, {})
2301
+ children: /* @__PURE__ */ jsxRuntime.jsx(ChromeDevNotesMenu, {})
2287
2302
  }
2288
2303
  ),
2289
2304
  /* @__PURE__ */ jsxRuntime.jsx(SupportAction, {}),
2290
2305
  /* @__PURE__ */ jsxRuntime.jsx(NotificationsAction, { orgId: state.orgId })
2291
2306
  ] });
2292
2307
  }
2308
+ function ChromeDevNotesMenu() {
2309
+ const { ready, openTasks } = react.useContext(DevNotesTasksContext);
2310
+ if (!ready) return null;
2311
+ return /* @__PURE__ */ jsxRuntime.jsx(devnotes.DevNotesMenu, { position: "top-right", onViewTasks: openTasks });
2312
+ }
2293
2313
  function useIsSuperAdmin() {
2294
2314
  const state = useChromeState();
2295
2315
  return (state?.orgs ?? []).some((o) => /super/i.test(o.rawRole ?? ""));