Skip to content

chore(powersync): rebuild Guion fork on upstream 0.0.7 - #3

Merged
birdmanmandbir merged 24 commits into
mainfrom
feat/upstream-v0.0.7-guion
Aug 10, 2026
Merged

chore(powersync): rebuild Guion fork on upstream 0.0.7#3
birdmanmandbir merged 24 commits into
mainfrom
feat/upstream-v0.0.7-guion

Conversation

@orga-agent

@orga-agent orga-agent Bot commented Aug 10, 2026

Copy link
Copy Markdown

What

Rebuild the Guion fork on official PowerSync Native v0.0.7 and retain only evidence-backed downstream patches.

Retained fixes:

  • scan already-queued CRUD when a connection starts
  • release the download writer lease before awaiting async work
  • emit ConnectionEstablished only after a successful HTTP response
  • accept LF and CRLF stream framing
  • repair failed SQLite transaction cleanup, failed-open handle cleanup, and owned control-argument binding
  • maintain CI for the actual Linux glibc x86_64 and macOS ARM64 targets, with a patch inventory

Dropped old Guion patches include reader busy_timeout, extra BEGIN IMMEDIATE sites, the Reader release sender, From<io::Error>, rusqlite 0.32 alignment, broad lint allowances, and fork-specific musl/no-rusqlite/Windows checks.

Why

Official v0.0.7 already contains upload retry behavior and newer PowerSync core/rusqlite dependencies. Carrying the old concurrency workarounds would hide bugs and make upstream synchronization harder. Each retained behavioral patch has a deterministic regression test. The fork intentionally follows upstream's reqwest defaults and default rusqlite consumer path.

Verification

  • cargo test --workspace --all-features — 59 passed
  • strict workspace/all-target/all-feature Clippy — passed
  • all-feature build — passed
  • cargo fmt --all --check — passed
  • cargo deny check — passed
  • FlickNote disposable canary compiled on rusqlite 0.39 after removing its remaining SQLx SQLite dependency
  • FlickNote actor canary passed live write, pre-connect backlog, and transient retry scenarios

Downstream migration note

FlickNote must remove its remaining SQLx SQLite dependency before pinning this release because SQLx 0.8 and rusqlite 0.39 link incompatible libsqlite3-sys versions. That cleanup is already part of FlickNote plan #1783. Its generic connector errors should use upstream PowerSyncError::upload_error rather than restoring the old From<io::Error> patch.

Target release after merge: v0.0.7-guion.1.

@orga-agent

orga-agent Bot commented Aug 10, 2026

Copy link
Copy Markdown
Author

CI bootstrap note: this PR introduces the repository's first pull-request workflow and adds pull_request to the existing CI workflow. GitHub does not register a new PR trigger until the workflow exists on the default branch, so PR #3 currently reports no checks. The full local matrix and FlickNote downstream canary are recorded in the PR body. After merge, the main-branch push will run the newly installed CI; subsequent PRs will receive normal checks.

@orga-agent

orga-agent Bot commented Aug 10, 2026

Copy link
Copy Markdown
Author

Resolved the reported merge conflict with merge commit 88cd55b. This uses Git's ours merge strategy only to reconcile the old Guion 0.0.5 history with the intentionally rebuilt upstream 0.0.7 history. The candidate file tree is byte-for-byte unchanged from verified commit 4af5094 (same tree 8a6245a9…; git diff 4af5094..88cd55b is empty), so no retired patches were reintroduced and no force-push was used.

@birdmanmandbir
birdmanmandbir merged commit 34acf8d into main Aug 10, 2026
5 checks passed
@orga-agent
orga-agent Bot deleted the feat/upstream-v0.0.7-guion branch August 10, 2026 10:55
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.

3 participants