Refine responsive Control UI chat controls

Summary:
- Add agent-scoped Control chat session filtering and agent-first session controls.
- Refine responsive chat controls, transcript, result-panel, and duplicate-message behavior.
- Reduce chat load churn by avoiding duplicate initial avatar refreshes.

Verification:
- pnpm test ui/src/ui/app-gateway.node.test.ts ui/src/ui/app-gateway-chat-load.node.test.ts ui/src/ui/chat/chat-responsive.browser.test.ts ui/src/ui/app-render.helpers.browser.test.ts ui/src/ui/app-render.helpers.node.test.ts ui/src/ui/views/chat.test.ts ui/src/ui/app-scroll.test.ts
- pnpm test src/plugin-sdk/file-lock.test.ts
- pnpm exec oxfmt --check --threads=1 ui/src/ui/chat/chat-responsive.browser.test.ts src/plugin-sdk/file-lock.test.ts
- pnpm --dir ui build
- Testbox pnpm check:changed: https://github.com/openclaw/openclaw/actions/runs/25309629891
- PR CI on cd22d3d1ab: https://github.com/openclaw/openclaw/actions/runs/25310534399
This commit is contained in:
Val Alexander
2026-05-04 04:10:33 -05:00
committed by GitHub
parent 5397667272
commit 098b72910d
26 changed files with 1596 additions and 129 deletions

View File

@@ -42,9 +42,6 @@ describe("acquireFileLock", () => {
JSON.stringify({ pid: process.pid, createdAt: new Date().toISOString() }, null, 2),
"utf8",
);
setTimeout(() => {
void fs.rm(lockPath, { force: true });
}, 50);
await expect(acquireFileLock(filePath, options)).rejects.toSatisfy((error) => {
expect(error).toMatchObject({