Skip to content

desktop: Soft Tactile Settings — Memory, MCP, Telegram, Import as real screens - #448

Open
plombeer31 wants to merge 1 commit into
facelift/1-foundationfrom
facelift/7b-settings-data
Open

plombeer31 wants to merge 1 commit into
facelift/1-foundationfrom
facelift/7b-settings-data

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 › Memory, MCP, Telegram, Import (ST-12…19, ST-28…32), redrawn from terminal text as real screens. Builds on the foundation PR; sits inside the Settings frame PR.

What changes

  • Memory: channel switch (channels the memory config turns off are disabled and say which setting), auto-refresh readout, profile as a table (key · value · pinned/contextual · votes), notes as rows with tag chips and an active / archived / all switch, a note page with plate, prose and a Links card (outgoing / incoming with weight) whose rows open the neighbour, and an honest empty state for a channel that is turned off.
  • MCP: server rows with the GitHub mark or a plug badge, transport, trust class chip, tool count and the "state not exposed" note; a server page with its launch command and a tools / resources / prompts switch (resources and prompts say they are not exposed); Add server as a modal with the JSON field and its specific error; remove as a red confirm followed by the restart line.
  • Telegram: a connect card with three steps, the token as a password field, the pairing note pointing to the terminal app, and setting rows for Enabled, Token, Owner and Channel.
  • Import: Hermes / OpenClaw switch with their marks, source folder, four toggles described with the agent's own option texts, Run preview ⌃↩; the preview as a table of outcome, kind and item with Edit and Apply.
  • memoryAct accepts filter:<name> and neighbor:<id> so the switch and a clicked link act directly; the bare acts behave as before.

Verified

  • Trusted-input driver, 46/46, on a scratch state with profile facts, linked notes, two stdio MCP fixture servers and a Hermes cron fixture: channels and filters, note → neighbour → expand → Esc, MCP detail / invalid JSON / remove / restart line, Telegram prompt / cancel / empty-token error / dummy token saved at 0600, Import toggles, preview of an empty folder and of the fixture, Apply.
  • "Run preview actually imports" (a 0.5.5 note) does not reproduce: preview left tasks.sqlite at 0, Apply wrote 1.

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.

…Import redrawn as lists, detail pages and forms

Memory (ST-12…15): a segmented channel switch over all six channels (the
ones memory.*.enabled keeps off are disabled and say which setting), the
status readout, profile facts as a table (key · value · pinned/contextual
chip · votes), notes/lessons/procedures as rows with tag chips and an
active/archived/all switch, a note as a page (plate, prose, Links card with
weights; a link row opens that neighbour), other details as plate + mono
well, and the turned-off channel as an amber notice plus empty state.

MCP (ST-16…19): server rows with the GitHub mark or a plug badge, the honest
"state —" chip, transport, trust class and tool count; a detail page with
the launch command, tools / resources / prompts switch and tool rows; the
add-server and remove confirms as modals over the dimmed, inert view, with
the specific parse error in red; the restart line after a change.

Telegram (ST-28…30): the connect card with its one action, the token card
with a password field, the pairing well that points to the terminal app,
and the advanced block as setting rows (enable switch, token, owner,
channel) with their actions beside them.

Import (ST-31, ST-32): source switch with the Hermes/OpenClaw marks, source
folder, four toggles with the agent's own option descriptions, limit and
Run preview; the report as a table (outcome chip · kind · item) under the
summary line, with Edit/Apply or Back to form.

Logic is unchanged: same state, acts, key handlers, ids and data-*
attributes. memoryAct gains two backward-compatible arguments so the new
controls can pick directly: filter:<name> and neighbor:<id> (bare filter
and neighbor behave as before). The settings smoke in main.ts still reads
the TUI strings from innerText; each view keeps them in one visually
hidden, aria-hidden twin until the smoke reads the new markup.
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