Skip to content

feat(app): sync server projects into web client list - #13628

Closed
BlankParticle wants to merge 6 commits into
anomalyco:devfrom
BlankParticle:blank/feat/sync-projects-from-server
Closed

BlankParticle wants to merge 6 commits into
anomalyco:devfrom
BlankParticle:blank/feat/sync-projects-from-server

Conversation

@BlankParticle

@BlankParticle BlankParticle commented Feb 14, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

Hydrate the projects list from the server so newly opened clients show existing projects without manual adds, each client stores its own hidden projects array as there is no way to delete projects on api. basically its now opt out of projects instead of opt in by adding path.

Also had to add worktree path normalisation, because windows paths are weird and projects kept duplicating as we check worktree paths in the seen set

How did you verify your code works?

Tested locally by opening a new client and verifying that the projects show up.

fixes #13626

Hydrate the layout project state from the server project index so newly opened clients show existing projects without manual adds. Skip global project IDs during sync because they do not reconcile reliably.
@BlankParticle
BlankParticle force-pushed the blank/feat/sync-projects-from-server branch from 32a811f to 0c26bad Compare February 14, 2026 18:39
@BlankParticle
BlankParticle force-pushed the blank/feat/sync-projects-from-server branch from bd5cf6f to 9278db1 Compare February 14, 2026 19:07
@BlankParticle

BlankParticle commented Feb 14, 2026 •

Copy link
Copy Markdown
Contributor Author

Ok I checked out the logs for windows test failures,
I don't have a windows device to test this, this is purely based on what I and gpt-5.3 think (can't debug this properly)

looks like there are issues with C:\... vs C:/... style paths, server and client doesn't agree?
so every reload the projects keeps getting duplicated when comparing because there is no normalisation, I will add path normalisation logic on client for this, but not sure what would be the right call here

Run server-to-client project reconciliation once per app load to avoid sidebar churn during concurrent updates. This preserves initial project hydration while preventing Windows e2e DOM instability from repeated re-syncs.
@BlankParticle
BlankParticle force-pushed the blank/feat/sync-projects-from-server branch from ab0bb5e to b74986b Compare February 14, 2026 20:34
@BlankParticle
BlankParticle force-pushed the blank/feat/sync-projects-from-server branch from d6ff682 to 3dfc11e Compare February 15, 2026 11:23
@adisidev

Copy link
Copy Markdown

Would this also sync images etc?

@0xsarawut 0xsarawut left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

app id:1fb75ebb-b720-5f9f-88d8-b43ca6b3532c

@thatdaveguy1

thatdaveguy1 commented Mar 24, 2026 •

Copy link
Copy Markdown

Thanks for pushing this forward.

I ended up with an alternative implementation for #13626 with different semantics: a server-backed, worktree-keyed sidebar rail that syncs membership plus order only, rather than hydrating the full server project list into each client.

It also adds bootstrap and migration safety plus fresh-context UI e2e coverage.

I am checking with maintainers before opening it separately so I do not create unnecessary churn here.

@BlankParticle

Copy link
Copy Markdown
Contributor Author

Closing as been out of date and the entire app has changed

@BlankParticle
BlankParticle deleted the blank/feat/sync-projects-from-server branch May 25, 2026 07:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Auto-sync projects in web UI from server

5 participants