# Sync editor changes from the web beta \(\#187\) · dara/icarus

[View on GitCafe](https://git.cafe/dara/icarus/commit/23cdc22924ccf6deeeee4c500e6861a10326c961)

Repository: [dara/icarus](https://git.cafe/dara/icarus)

Visibility: public

Requested revision: 23cdc22924ccf6deeeee4c500e6861a10326c961

Requested commit: 23cdc22924ccf6deeeee4c500e6861a10326c961

Commit: 23cdc22924ccf6deeeee4c500e6861a10326c961

Tree: 8da71305124224e626a66cc541dd3fff4f61fda3

Author: Dara Adedeji

Committer: GitHub

## Message

```
Sync editor changes from the web beta (#187)

On web, every edit ended in "Sync needs attention / The cloud could not be
reached" while the library stayed connected. The op queue checks
convexConnectionSnapshotProvider before sending, and that provider read
ConvexClient.isConnected once and kept the value: on web the socket is still
opening when it is first read, so it said offline for the life of the page
and no op was ever sent. The snapshot is now the latest value of the
connection stream, so it follows every change.

The failure was invisible, so op queue and media queue send failures now
report through AppErrorReporter (a warning, echoed to the browser console on
web). Their text goes through a new redactSyncDiagnosticText, which strips
URL queries (a presigned upload URL carries its signature there) and token
assignments; media logs, which held full presigned URLs, use it too.

tool/check_convex_web_binding.mjs loads web/convex.browser.bundle.js and
checks every external member of the Dart web binding exists on the object it
binds. It runs in the linux CI job; it fails on the pre-#185 binding
(_JsConvexClient.clearAuth) and passes now.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
```

## Parents

- [8787b8ddff3277b45dc69cc659eb381a43066b6d](https://git.cafe/dara/icarus/commit/8787b8ddff3277b45dc69cc659eb381a43066b6d?format=markdown)

[Source at this commit](https://git.cafe/dara/icarus/tree/23cdc22924ccf6deeeee4c500e6861a10326c961?format=markdown)
