* fix(ui): preserve offline work across connection failures
Keep account-scoped chat, drafts, queues, and loaded visualizations usable during interrupted connections. Reconcile uncertain delivery without replay and show recovery in the existing connection status. Prepare a bounded offline app shell while retaining native HTTP authentication.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* fix(ui): keep chat and drafts usable when connections fail
Worked on by:
- @steipete
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
OpenClaw-Publication: 460948d0-663a-40d6-a1b3-187bfe9fa4ee
* fix(ui): retain recovered attachments and admit route assets
Account for the unscoped recovery source before retiring Blob bytes. Break the outbox type-import cycle at its leaf owners. Validate mutually exclusive route preload variants independently while retaining startup reference, path, and integrity limits.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* fix(lint): prepare schema types before cold core checks
Generate Kysely declarations through the existing owner before direct typed lint and before striped children skip preparation. Keep core lint independent of plugin declaration builds and preserve metadata, focused syntax-only, and caller-owned preparation paths.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
(cherry picked from commit 74354d5450)
* test(lint): include generated-type owner in runner fixtures
Keep copied lint-status and changed-lint fixtures complete after typed runners gained their Kysely prerequisite. Preserve all process-lifetime, signal, timeout, and semantic-lint assertions.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* test(ui): align offline recovery fixtures with account ownership
Exercise admitted same-account peers and account-scoped invalidation. Keep stale handoffs and retired bridge tickets rejected, preserve current-frame state through paced recovery, and compare restored attachment bytes across browser runtimes.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* test(ui): complete account-owned offline recovery fixture cutover
Bind remaining peers, snapshots and handoffs to their captured account. Preserve exact timeout and no-send assertions, including detached command behavior. All 1600 UI files pass locally: 23744 tests, one existing opt-in skip, zero failures. Fresh production build, budgets, offline account recovery and HTTP-auth proxy proof pass with lockfile-matched dependencies.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* fix(ui): scope warm admission retirement to its owner
Preserve peer admission through bootstrap and failed publication, retain exact legacy ownership until replacement, and scope asynchronous roster cleanup. Align browser recovery and deadline fixtures with the admitted account contract.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* test(ui): preserve valid boot records on credential non-admission
Assert byte-identical retention independently of warm admission, while keeping malformed-record eviction and prewarm authorization checks intact.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* fix(ui): keep chat and drafts usable when connections fail
Worked on by:
- @steipete
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
OpenClaw-Publication: a220d772-ba34-415e-b110-de089c3c5cf8
* fix(ui): finish scoped roster generation export cutover
Keep the global generation counter private and exercise admitted-account invalidation through the existing scoped getter. Remove the unused legacy test seeder left after fixture consolidation. Both canonical dead-code scans, targeted tests, type graphs and lint pass.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* test(ui): align browser proofs with scoped offline recovery
Use authenticated snapshot keys, chronological heartbeat time, actual effort readiness, and build-bound worker cache/install contracts. Establish native online state for loopback-only Chromium update fixtures without changing network isolation or production behavior. Preserve draft, cursor, activation, asset and exact-one delivery/terminal assertions.
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
* fix(ui): keep chat and drafts usable when connections fail
Worked on by:
- @steipete
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
OpenClaw-Publication: 1a8e4667-e546-4dab-b847-3bd22ae21d67
---------
Co-authored-by: steipete <58493+steipete@users.noreply.github.com>