maniator / maniator/verticopolis

[P3] Old-shell (writeSync-less) manual-save fallback can be clobbered by an in-flight routed autosave

Open
#754 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
5
Forks
1
PR merge metrics
No merged PRs in 30d

Description

From the D4 adversarial review (PR #750). On a hydrated session against a shell that predates writeSync, a manual save falls back to localStorage (shared-headed towers only). If a routed async autosave with OLDER bytes is in flight at that moment, its write-through refreshes the cache and the stamp from the older store commit, silently superseding the fallback save in the cache while the store never saw it. Window is one IPC round trip on an old shell; the transitional shell population makes this low-priority, and the mixed store-plus-fallback mode is the root cause.

Wanted: either invalidate the pending routed write''s write-through when a fallback save lands (the latestAsyncSave token pattern one level up), or refuse the mixed mode outright once shells ship writeSync.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the routed async autosave and manual-save fallback described in PR #750, including the latestAsyncSave token pattern and the writeSync availability check. Reproduce the old-shell race with an older in-flight write, then ensure a fallback save cannot be superseded in cache, or that mixed store-plus-fallback mode is refused.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.