Skip to content

fix(remote): stabilize PWA worktree state sync - #415

Merged
SDSLeon merged 1 commit into
masterfrom
poracode/fix-pwa-worktree-setup
Jul 29, 2026
Merged

fix(remote): stabilize PWA worktree state sync#415
SDSLeon merged 1 commit into
masterfrom
poracode/fix-pwa-worktree-setup

Conversation

@SDSLeon

@SDSLeon SDSLeon commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a main-process Git state service and project snapshots so desktop and PWA clients share one worktree read model
  • make remote reconnect, hydration, refresh, and reset flows consistently restore Git summaries and thread state
  • harden remote transport with payload interest filtering, size guards, stable timestamps, HTTP compression, and compact image references/previews
  • align mobile and renderer worktree controls, image rendering, and floating UI behavior with the synchronized state model

Root cause

The remote PWA assembled worktree and Git state through several independent snapshot and hydration paths. During setup or reconnect, those paths could race, reuse incomplete legacy data, or omit updates, leaving the PWA with stale or missing worktree state. Large inline image and thread payloads also made remote synchronization less reliable.

Impact

PWA sessions now receive stable, bounded state updates and recover the current worktree, Git summary, thread changes, and image content more reliably after initial setup and reconnects.

Validation

  • pnpm run typecheck
  • pnpm run lint
  • pnpm run test — 7,044 passed, 67 skipped
  • git diff --check

@SDSLeon
SDSLeon marked this pull request as ready for review July 29, 2026 21:44
@SDSLeon
SDSLeon merged commit ecad171 into master Jul 29, 2026
8 checks passed
@SDSLeon
SDSLeon deleted the poracode/fix-pwa-worktree-setup branch July 29, 2026 21:51
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