@ai-ecoverse/slicc-spectrum 1.86.4 → 1.86.6

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/README.md CHANGED
@@ -228,6 +228,7 @@ The sans stack (`--swc-sans-font-family-stack`, also used by the 1.12 components
228
228
  The shell: header with the agent picker, status items, the update status, the network indicator, the tray, the View menu and the theme switch, rails, and a `<slicc-dock>`.
229
229
  Saves the dock layout per screen class to `storage` (default `localStorage`) under `layoutKey`.
230
230
  The dock builds new panel content whenever it lays panels out again (a switch between phone, tablet and desktop, or a layout reset), so what the user opens in a panel (sections, cones, rows, folders, disclosures) lives outside the element, per model and panel (`view-state.ts`, in memory only): a rebuilt panel shows it again, and a click on the outgoing panel while the new one mounts reaches the new one too.
231
+ Files keeps its selected row, its keyboard focus target (without taking focus) and its scroll the same way, and Agents, Memory, Changes, Monitor, the Browser tab cards, Freezer and Settings keep their scroll; the chat log keeps its own. The scroll comes back once the list has laid out, anchored on the selected row when it was in view and otherwise on the first row in view, at the same distance from the top, so a narrower phone layout keeps those rows in view. A list scrolled to its end, Files included, comes back at its end. Files puts its scroll back even when the tree scrolls its focused row into view on its own. After that, a resize or new content keeps the anchored row where it was. These lists set `overflow-anchor: none` on their scroller, since they anchor it themselves. When the app switches models in place, each panel shows the state it keeps for the new model.
231
232
  While connected it sets `overscroll-behavior` to `none !important` on the page's `html` and `body`, so only scroll areas inside panels rubber-band.
232
233
  It sets the page's `color-scheme` to its resolved theme, and when the page has a `theme-color` meta per `prefers-color-scheme`, gives every one of them the content of the meta for that theme, so the page and the installed app's title bar follow the app's setting instead of the OS.
233
234
  When the last app on the page is removed, the page's own inline values and `theme-color` contents come back.
@@ -446,7 +447,7 @@ It closes, clearing the field, when the request leaves `waiting` or while the va
446
447
 
447
448
  #### `<slicc-updates>`
448
449
 
449
- Install / Update: component states, version changes, last checks, download and link counts, action buttons, failures with Retry, and collapsible install logs, which stay open across a layout switch.
450
+ Install / Update: component states, version changes, last checks, download and link counts, action buttons, failures with Retry, and collapsible install logs behind a quiet chevron, which stay open across a layout switch.
450
451
  Opens at boot until the agent is ready without failures.
451
452
  Background updates stay in the header's update status; new failures reopen the panel, and after a reload into a boot that isn't ready yet such a panel closes once the agent is ready.
452
453
  Every automatic close is saved to the layout.
@@ -517,7 +518,7 @@ The URL is never stored or shown again: closing the dialog drops it.
517
518
  The header's **Network** indicator (`data-network`, `data-health`) opens it: a status light, green for `ok`, yellow for `limited` and red for `failing`, with the state in its text and label and `detail` as its tooltip, which adds "Tailscale is connected." while the tailnet runs; on a phone, a cloud icon for the state.
518
519
  While a linked device asks to follow, controls the agent, watches it or has a terminal open, an indicator (`data-remote`, `ask`, `prompt`, `terminal` or `watch`) sits before it, **{name} asks to follow**, **Controlled by**, **Terminal open from** or **Watched by** the device's name (or the number of devices; in that order of precedence), says who does what in its tooltip and opens the panel too.
519
520
  Offered when the model has a `network` port, a `guests` port, or both.
520
- **Link another device** and **Other ways to reach the whole web** stay open across a layout switch once opened.
521
+ **Link another device** and **Other ways to reach the whole web** are quiet chevron disclosures (`swc-icon-chevron-right` in the label's colour, turned down when open, mirrored right to left, still under reduced motion, with the Spectrum focus ring), as are the install logs in Install / Update and **Removed** in Settings › Secrets; none shows the browser's marker. They stay open across a layout switch once opened.
521
522
  With `guests` and no `network`, it shows only the Guests section (no connection, Sync, Leaders, Tailscale, Linked devices, Get the whole web or failures), still titled Network with its rail icon, and the header's Network and remote indicators stay hidden; the tray's connection chip is then a plain status.
522
523
 
523
524
  #### `<slicc-tray>`
@@ -546,6 +547,7 @@ Generic.
546
547
  [`@pierre/trees`](https://www.npmjs.com/package/@pierre/trees) through its `web-components` entry: `paths` (folders end in `/`), `gitStatus`, `expanded`, `query` (shows only the paths that match it; empty shows all), `reveal(path, focus)`.
547
548
  `expanded` also opens and closes the folders of a mounted tree, a `tree-expand` event (`detail.expanded`) reports the open folders when the user changes them, and the tree keeps them when it's moved, such as into a floating group.
548
549
  It has no search field of its own.
550
+ A folder name or flattened folder chain too long for the row ends in an ellipsis instead of losing its middle, and every row carries its full name as a `title`, with its indent and chevron kept.
549
551
  Fires `file-open` on click and on <kbd>Enter</kbd>, and `tree-search` (`detail.key`) when a letter or digit is typed in it, for the panel's search field.
550
552
 
551
553
  #### `<slicc-code-view>`
@@ -1035,7 +1037,7 @@ npm test
1035
1037
  ```
1036
1038
 
1037
1039
  `npm test` builds `dist/` and runs the integration tests in headless Chromium over raw CDP, through the [harness from slicc-shared-web](https://github.com/ai-ecoverse/slicc-shared-web#integration-test-harness), against a fake backend (`test/integration/page/fake-backend.js`).
1038
- It writes V8 coverage to `coverage/` and CPU profiles, screenshots and console logs to `artifacts/`.
1040
+ It writes CPU profiles, screenshots and console logs to `artifacts/`, and V8 coverage of `dist/` to `coverage/` only with `SLICC_COVERAGE=1` (CI leaves it off, since nothing reads it; the unit tests' diff coverage is separate).
1039
1041
  The test page is served cross-origin isolated (COOP/COEP), as slicc-kernel requires.
1040
1042
  `test/integration/kernel.test.mjs` runs `bash -i` end to end on `@ai-ecoverse/slicc-kernel` (a pinned dev dependency), with `@ai-ecoverse/wasm-bash` and `@ai-ecoverse/wasm-coreutils` installed into OPFS by the page (`/kernel.html`).
1041
1043
  `npm start` serves the test page on port 8080, and the UI at `/ui/`.