Skip to content

desktop: Soft Tactile Settings › LLM as real screens - #449

Open
plombeer31 wants to merge 1 commit into
facelift/1-foundationfrom
facelift/7c-settings-llm
Open

plombeer31 wants to merge 1 commit into
facelift/1-foundationfrom
facelift/7c-settings-llm

Conversation

@plombeer31

Copy link
Copy Markdown
Collaborator

Part of the Soft Tactile desktop redesign. Depends on #440 (base branch facelift/1-foundation); every region PR can merge in any order after it. The integrated build is facelift/integration.

Soft Tactile, Settings › LLM (ST-20…27), redrawn from terminal text as real screens. Builds on the foundation PR; sits inside the Settings frame PR. Row builders, llmKey, llmAct, writers and polls are untouched.

What changes

  • Toolbar: Local / Cloud / External / Fallback as a segmented control (still .llmmode with data-act="llm:mode:*"), status readout, refresh, LLM logs.
  • What answers now: a route card with provider and model logos, ids in mono, route chip and the daemon's own state word.
  • Run mode: Local / Cloud / Fusion as three cards; the 1·2·3·4·6·8 workers segment and the restart line when Fusion runs.
  • Local models: rows with model logo, mono id, downloaded / remote chip, best-fit chip, tag, description, coloured fit line, caution and the action Enter takes; Add from Hugging Face; the Ollama note.
  • Download and start banners: blue notices with the last CLI line in a mono well and Cancel.
  • Cloud: provider rows with logos, key chip and the amber Unverified chip; the active provider's models with a filter, a counter and the disabled price facet ("pricing is not exposed").
  • External: the URL row with a status chip, the URL form and the Ollama offer as floating cards; a refused probe shows under the row.
  • Fallback chain: numbered rows, move up / down on the selected link, the appended local link locked, "append local" as a switch.
  • Logs: a mono log with red / amber / blue lines.
  • Confirms: a red floating card with Cancel N / Delete Y over an inert pane.

Tests

  • model-picks.drive.mjs: the Settings leg waits for the tab's first refresh before reading the mode strip (it read "Local" at 2 s and "Cloud" once the route sync landed — a race, not markup).

Verified

  • model-picks.drive.mjs 29/29 (68 / 8 / 4 GB).
  • Trusted-input driver, 41/41: every pane, the smoke's text lists, typing a filter, the remove-provider confirm opened with d and cancelled with n, the External probe of http://127.0.0.1:8080 with nothing running (refused, nothing written), a fallback link added and moved, logs, the Hugging Face parse error, a real 33 MB download started and cancelled.

Found, not changed (existing logic)

  • Choosing Fusion reports success, but the 0.5.5 agent's config schema has no llm.runMode, so its whole-file write drops the key and the workers segment never appears. Fusion needs an agent ≥ 0.6.0; the desktop write itself is correct (setRunMode in main/agent-cli.ts).
  • Cloud reads "Active" on local routes because an unset run mode defaults to cloud.
  • "key ok" means a key name is present, not that it was checked.
  • Probe errors show "fetch failed" to the user.

Smoke text

This PR keeps invisible copies of the old terminal strings so the smoke's text checks pass on it alone. facelift/integration removes them and points those checks at what is on screen (commit 35faccf); merge through the integration PR to get both.

… cards, list rows, floating confirms

Settings › LLM is redrawn from terminal text into real screens (ST-20…27),
with the state machine, keys, acts and data attributes unchanged.

- Toolbar: Local / Cloud / External / Fallback as a segmented control
  (.llmmode, .on, data-act kept), status readout, refresh, LLM logs.
- Route card: provider and model marks, ids in mono, route and daemon chips
  that restate llmFormatDaemon's own word.
- Run mode as three selectable cards; workers as a segment under Fusion.
- Local, cloud, external and fallback rows as .tk-li list rows with marks,
  chips, fit lines and the Enter action; .tuirow, .llm-sub, data-llm-row kept.
- Cloud filter in a search field (#llm-filter kept), disabled price facet
  with "pricing is not exposed".
- Fallback: ordered rows, move up/down on the selected link, local last
  resort locked, append-local as a switch.
- Confirms, the URL prompt and the Ollama offer float over an inert pane;
  Y / N / Esc keycaps in the buttons.
- Hugging Face branch as a form; pick list with sizes; RAM warning notice.
- Download and model-starting banners as blue notices; log view as a mono
  well with coloured levels.

The smoke and model-picks read this pane's innerText for the TUI sentences,
so those stay whole: hidden punctuation sits in zero-size spans and anything
that must read as one line is inline or inline-block.

model-picks.drive.mjs: the Settings leg waits for the tab's first refresh
before reading the mode strip. Read at 2 s it showed the default Local and
flipped to Cloud once the route sync landed, so no Local rows appeared.
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