mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 22:21:33 +00:00
* feat(ui): path-based session and dashboard URLs * docs(ui): document control UI URLs * fix(ui): finalize session path routing * feat(ui): anchor session URLs on stable keys * docs(ui): clarify stable session URL identity * fix(ui): resolve session prefixes with full prefix and pagination Query sessions.list with the full supplied prefix instead of an eight-char truncation, and paginate up to a bounded page count so longer disambiguation links resolve instead of being reported ambiguous. Zero strict-prefix matches now fall through to literal-key resolution rather than rendering an empty ambiguity view. Also document the ~dot/~dotdot segment escape: peer ids reach session keys trimmed and lowercased only (src/routing/session-key.ts), so a literal '.' or '..' segment is reachable and browsers would normalize it away. * fix(ui): synchronize committed session routes * test(ui): split native shell host coverage * fix(ui): thread configured mainKey through session URL builders Reserved-set disambiguation needs the operator-configured mainKey at runtime, so thread it from agentsList through every session path builder and the ClickClack control URL. Unambiguous non-hex single-segment rests now resolve literally while short-id-shaped rests still fail closed, which restores ClickClack channel compatibility detection and control-link reconciliation. Also bound prefix-resolution retries, preserve catalog thread identity, and keep draft state on ambiguous candidate links. * fix(ui): repair session URL CI integration * perf(ui): lazy-load session route resolution * perf(ui): isolate session prefix resolution * perf(ui): defer session path parsing * perf(ui): defer session navigation startup * fix(ui): preserve first-run and literal session navigation * fix(ui): satisfy session routing type and export gates * fix(clickclack): preserve unscoped control link agent * style(ui): satisfy chat page line limit * refactor(ui): move chat page helpers to owning modules * fix(ui): preserve destination session route identity * fix(ui): preserve agent identity in session routes * fix(ui): escape dots in literal session path segments encodeURIComponent leaves periods intact, so a literal key segment like channel:release.js produced /chat/main/channel/release.js. In-app navigation is intercepted by the SPA, but a refresh, an external link, or a ClickClack link would be served as a static asset request and never reach the app. pathForWorkboardBoard already escapes dots for this reason; mirror it in both the session URL contract and the ClickClack encoder, route the agent id through the same segment encoder, and pin the case in both shared vector tables. * fix(ui): stop bootstrap after teardown race * refactor(ui): centralize session navigation targets * fix(ui): consume bootstrap teardown abort * fix(ui): canonicalize configured main session routes * fix(ui): preserve distinct session references * fix(ui): redirect released session query links * fix(ui): make bootstrap teardown abort-safe
54 lines
1.6 KiB
JSON
54 lines
1.6 KiB
JSON
{
|
|
"name": "openclaw-control-ui",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "vite build",
|
|
"dev": "vite",
|
|
"preview": "vite preview",
|
|
"test": "vitest run --config vitest.config.ts"
|
|
},
|
|
"dependencies": {
|
|
"@awesome.me/webawesome": "3.10.0",
|
|
"@codemirror/commands": "6.10.4",
|
|
"@codemirror/language": "6.12.4",
|
|
"@codemirror/language-data": "6.5.2",
|
|
"@codemirror/state": "6.7.1",
|
|
"@codemirror/view": "6.43.6",
|
|
"@create-markdown/preview": "2.0.3",
|
|
"@lezer/highlight": "1.2.3",
|
|
"@lit/context": "1.1.6",
|
|
"@modelcontextprotocol/ext-apps": "1.7.4",
|
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
"@noble/ed25519": "3.1.0",
|
|
"@openclaw/gateway-client": "workspace:*",
|
|
"@openclaw/libterminal": "0.3.2",
|
|
"@openclaw/media-core": "workspace:*",
|
|
"@openclaw/normalization-core": "workspace:*",
|
|
"@openclaw/session-url-contract": "workspace:*",
|
|
"@openclaw/uirouter": "0.1.0",
|
|
"@openclaw/workboard-contract": "workspace:*",
|
|
"@tanstack/lit-virtual": "3.13.33",
|
|
"@tanstack/virtual-core": "3.17.4",
|
|
"dompurify": "3.4.12",
|
|
"ghostty-web": "0.4.0",
|
|
"highlight.js": "11.11.1",
|
|
"json5": "2.2.3",
|
|
"lit": "3.3.3",
|
|
"markdown-it": "14.3.0",
|
|
"markdown-it-task-lists": "2.1.1",
|
|
"marked": "18.0.6",
|
|
"remend": "1.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/markdown-it": "14.1.2",
|
|
"@vitest/browser": "4.1.10",
|
|
"@vitest/browser-playwright": "4.1.10",
|
|
"jsdom": "29.1.1",
|
|
"openclaw": "workspace:*",
|
|
"playwright": "1.61.1",
|
|
"vite": "8.1.5",
|
|
"vitest": "4.1.10"
|
|
}
|
|
}
|