openclaw/docs/web
Peter Steinberger af552d4bc6
feat(ui): resolve session URLs through the gateway with best-effort slug matching (#114422)
* feat(ui): resolve session URLs through the gateway with best-effort slug matching

Session URLs now resolve a stored board face and a display-name slug through
the gateway instead of guessing from the browser's cached session page.

- An uncached open marks only the in-app navigation, never the shareable href,
  so the chat loader can re-derive the face and replace the URL.
- A cached row settles the lookup locally, keeping navigation off the wire.
- A one-segment reference resolves short id, then literal key, then display-name
  slug; ties reuse the existing disambiguation view.

* refactor(ui): keep slug ties on short disambiguation prefixes

Slug candidates reused the full uuid, which produced 32-character links in the
disambiguation view. uniqueShortIdPrefix already falls back to the full id when
the bounded search was truncated, so reuse it and drop the flag.

* fix(ui): navigate worktree owner links in-app so the face marker survives

The Worktrees owner link was a bare anchor consuming only the shareable href,
so preferenceDerivedFace was a no-op there and an uncached owner always opened
on chat. Match the other session surfaces: keep the clean href and navigate
with the options on plain clicks.

* fix(ui): search the first uuid block so long session references resolve

The gateway matches sessions.list search as a plain substring and stored keys
hold a hyphenated uuid, so any hyphen-stripped reference past the first block
matched nothing and 404'd. This hit disambiguation links, which offer prefixes
longer than eight characters. Send the first block and keep applying the full
prefix per row.

A resolved slug now canonicalizes to that same short reference instead of a
full uuid, so /chat/main/deploy-monitor settles on -6db92d48.

* docs(ui): record why the face marker stays out of shareable hrefs
2026-07-27 04:31:33 -04:00
..
control-ui.md feat(ui): path-based session and dashboard URLs (#113883) 2026-07-26 12:46:04 -04:00
dashboard-architecture.md feat(dashboard): plugin-declared widget data bindings and action verbs (#112083) 2026-07-20 22:43:04 -07:00
dashboard.md docs(control-ui): clarify loopback gateway auth (#112746) 2026-07-22 18:45:56 -04:00
dashboards.md feat(ui): resolve session URLs through the gateway with best-effort slug matching (#114422) 2026-07-27 04:31:33 -04:00
index.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
lobster.md refactor(ui): sidebar IA cleanup: Activity to Settings, Dreams into Agents Memory tab, single MCP mutation owner (#104604) 2026-07-11 14:24:39 -07:00
tui.md refactor(config): config-surface reduction tranche 1 — retire dead keys, dedupe channel schemas, add growth ratchet (#111142) 2026-07-19 00:52:37 -07:00
urls.md feat(ui): resolve session URLs through the gateway with best-effort slug matching (#114422) 2026-07-27 04:31:33 -04:00
webchat.md feat(gateway): chat.send expectedLeafEntryId precondition keeps stale panes off switched branches (#113073) 2026-07-23 12:33:31 -07:00