Skip to content

Remote chats: distinguish synchronization from outages - #3

Draft
cmdr-chara wants to merge 2 commits into
mainfrom
codex/remote-chat-sync
Draft

cmdr-chara wants to merge 2 commits into
mainfrom
codex/remote-chat-sync

Conversation

@cmdr-chara

@cmdr-chara cmdr-chara commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Integrate @alexandre-vl's implementation from zeronsh/zeron#1038, source head ca40ee678adffcc502ddbddfc214c10227a847ae, as an explicitly attributed code-only integration. The commit credits the original contributor. This is not a claim of a newly written independent implementation.
  • Certify the in-memory cursor after a successful verified snapshot write. Reopening a remote chat no longer repeats the one-time legacy repair and unnecessarily downloads its history again. Failed writes do not falsely certify the cursor.
  • Distinguish opening, synchronizing, reconnecting and genuinely offline states. Only promise that messages will send when there is an actual draft, queued message or pending send.
  • Give empty remote chats and side chats a centered loading state. Open a pending fork immediately, and keep its failure and Retry action in its own tab rather than the parent's composer.
  • Include snapshot-failure, cursor-rejoin and delayed-handshake regressions, UI tests, the native remote-sync-fixture, and the original regression documentation.
  • The integration starts from upstream's clean merge tree 2cff845a91a0a643dcef82ac073628443a3fc3f5, retains all later main changes through 962a3207, and omits the fourteen PR screenshot files. Images are linked below instead of committed.

Before / after

These are genuine production-Shell captures published by the original contributor, comparing upstream main c04e3749 with the source implementation. They are not fresh captures from this fork's final head. The original fixture attaches the production shell to an engine and scripts delayed connectivity. Fresh base/head verification remains outstanding.

Scenario Before After
Remote chat opening on a slow connection Before: a blank remote transcript and misleading outage wording After: a visible synchronization state while the chat opens
Returning while its room reconnects Before: reopening gives no useful synchronization cue After: the chat reports its synchronization state
Outage with nothing to send Before: the composer promises message delivery although there is no message After: connection status without a false delivery promise
Side chat opening Before: a side chat opens without an informative loader After: the side chat shows synchronization progress
Remote fork fails Before: the fork error appears in the parent composer After: the fork keeps its own error and Retry action

Limits

A rejoin before the first successful verified write, or while writes continue to fail, can still repeat the checkpoint download. This is not a full repair for poisoned Loro documents. iOS keeps its existing grace behavior. No encryption, new network listener or direct-host transport is introduced.

Test plan

  • Inspect the source changes and regression coverage, including successful versus failed snapshot writes.
  • Attribute the original implementation and distinguish original contributor evidence from independent verification.
  • Exclude all source PR screenshot files from this integration tree.
  • Independently run the full engine library suite on this exact head through cloud cargo nextest run --lib. The core job passed: 632 engine library tests; 1,706 tests across the selected core packages, 28 skipped; nextest also reported 3 leaky tests. Snapshot success/failure, cursor rejoin, delayed HELLO and terminal-flood regressions passed.
  • Independently run the full UI library suite on this exact head through cloud nextest, which isolates each test process. The UI/layout job passed all 1,962 selected UI/layout/geometry tests, with 1 skipped.
  • Finish all exact-head platform CI: Linux and Windows passed; macOS/iOS remains pending in the runner queue.
  • Verify combined PRs Sessions: keep background sends aligned with their running agents #1 + fixed Claude: show forked skills and stream their progress #2 + Remote chats: distinguish synchronization from outages #3 on isolated head 422b9316: the combined run passed core, UI/layout and native X11/Wayland browser jobs.
  • Run the production capture fixture against this fork's base and head, then attach fresh before/after captures.
  • Verify an installed app with a real slow remote host, plus supported platform behavior.

Capture command: cargo run -p zeron-ui --features appshots-fixture --example remote-sync-fixture -- <output-directory> cold-open. Other scenes: revisit, outage, outage-draft, side-chat, fork. Keep capture output outside the checkout.

Upstream reports 635 passing engine tests with 5 ignored, 1897 passing UI tests with two attachment tests isolated, targeted mutation failures, and a two-engine local edge check. Those are the original author's results, not tests executed in this session.

Independent verification: the earlier local builds were stopped after the laptop slowdown report. Actions are now enabled, and validation is running on GitHub-hosted runners against exact head f44b90c8e8bba86d6a5808717636ebe527d92364:

Linux, Windows and combined Linux CI have passed. macOS/iOS CI remains queued. The native capture run completed, but visual inspection found that its head captures do not show expected changes; the base/head fork-failure images are identical. The head build appears to have reused the base build's Cargo target directory. A corrected capture run uses isolated build directories and records executable hashes; its images still need inspection, and the capture checkbox remains open. The successful Windows run does not include its optional GUI/pixel probes. No real remote host is available for the last checklist item, which remains open. This PR remains a draft. No merge is requested or performed.

Integrate the implementation by @alexandre-vl from zeronsh#1038
at ca40ee6, including its regression
tests and native capture fixture. This is an attributed integration,
not a new independent implementation.

Start from upstream's clean integration tree at 2cff845,
retain the newer main changes through 962a320, and omit all fourteen
PR screenshot files. Original captures are linked from the PR instead.

Independent compilation, execution and fresh native screenshots remain
unverified in this environment. Keep the PR in draft pending validation.

Co-authored-by: Alexandre VARGAS <58216944+alexandre-vl@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Final diff review caught newer main files missing from the initial
integration tree. Restore the mobile and protocol subtrees and the
existing screenshots exactly to main at 962a320. The remote-sync PR
must change only its thirteen source, fixture and documentation files.

No remote-sync screenshot files are committed. No runtime validation
is implied by this tree-level correction.

Copy link
Copy Markdown
Owner Author

Final integration check

  • Verified final head f44b90c8e8bba86d6a5808717636ebe527d92364, targeting cmdr-chara/zeron:main at 962a3207c31f0f955ac74d37510133f82289e0e4.
  • Final diff review caught unrelated newer-main files missing from the first integration tree. The follow-up commit restores the mobile/protocol files and existing screenshot assets. Rechecked the final PR: exactly 13 intended source, fixture and documentation files, with no screenshot changes.
  • GitHub reports mergeable: true. The PR is open and remains a draft.
  • No pull-request-triggered workflow runs were returned for the final head at the time of checking. No independent compilation, Rust tests or native-app capture was possible in this sandbox.
  • The before/after images are the source contributor's published evidence, explicitly labeled as such.

Exact-head CI, fresh base/head captures and the combined integration with PRs #1 and #2 are still required. Mergeability is not a green-test result. Nothing was merged.

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