The Turso workspace-file plan adds an AGENTS.md rule for the SPA: no new localStorage stores. UI state goes to one of three homes: workshop.toml (account preferences), workshop-state.json (account ephemera), or the .pfwork file (workspace scope).
The plan adds HTTP routes for the workspace file, so the third home is reachable from the SPA. The first two are not. Both files are written only by Rust code (shell config, workshop-menu) and no HTTP route exists for the SPA to write a preference or ephemera value. Until one does, the only rule-compliant option for new account-scoped SPA state is to leave it in localStorage.
Decision from the review thread: defer account state to the settings project, but record the gap. The plan should say explicitly that the no-localStorage rule binds only for workspace-scoped state until account write routes land, and this issue tracks adding those routes.
Related: the five legacy localStorage stores (editor-settings-service, commands-history, recent-files-store, layout-persistence, zoom) migrate in the settings project.
The Turso workspace-file plan adds an AGENTS.md rule for the SPA: no new localStorage stores. UI state goes to one of three homes:
workshop.toml(account preferences),workshop-state.json(account ephemera), or the.pfworkfile (workspace scope).The plan adds HTTP routes for the workspace file, so the third home is reachable from the SPA. The first two are not. Both files are written only by Rust code (shell config,
workshop-menu) and no HTTP route exists for the SPA to write a preference or ephemera value. Until one does, the only rule-compliant option for new account-scoped SPA state is to leave it in localStorage.Decision from the review thread: defer account state to the settings project, but record the gap. The plan should say explicitly that the no-localStorage rule binds only for workspace-scoped state until account write routes land, and this issue tracks adding those routes.
Related: the five legacy localStorage stores (
editor-settings-service,commands-history,recent-files-store,layout-persistence,zoom) migrate in the settings project.