You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Persist unsent layout changes across reload and browser restart without cross-account replay #181
Related to #156, #157, #158 and #167. This follows a documented durability limit; it does not reopen the repaired in-tab navigation bug.
The position queue and its owner/graph registry retain failed positions in memory. Graph→Work list→Graph recovery keeps the newest drag and checks the current owner. The browser regression reloads only after the retry has reached the server. It therefore proves saved-position reload, not recovery of unsent work after reload or crash.
The documented limit is explicit: forced closure or a missed unload warning can lose pending layouts. The separate offline account store already uses IndexedDB transactions when the offline-sync mode is enabled. Reuse or reconcile that mechanism where appropriate; do not create conflicting stores or claim that all offline work is currently memory-only.
Completion criteria:
State the supported persistence guarantee for network-backed and offline-sync modes separately. The UI distinguishes queued-in-memory, persisted-locally and server-acknowledged work; unsupported storage/quota failures remain explicit.
Persist the latest pending layout by owner, graph and node before acknowledging durable local recovery. Store no bearer/session credentials. Retain explicit capacity/retention limits and account isolation.
A bounded browser regression holds or fails only owned layout writes, performs two real drags, reloads before server acknowledgement, reconnects and proves the newest coordinates via independent server readback and another reload.
A separate owned-browser-process restart test bypasses unload handling while preserving its isolated profile, then verifies recovery. Ordinary reload alone is not crash evidence; document the remaining OS/storage-flush boundary.
Late acknowledgement/failure cannot clear a newer persisted edit. Logout, replacement account, revoked graph access and deleted nodes cannot replay another owner's work or silently target a different graph. Define visible recovery/discard behavior.
Preserve the existing Graph/List navigation, retry and owner/token regressions. Retain failing-before/passing-after evidence, exact revisions, zero-retry completion and strict fixture cleanup.
Scope: queued layout coordinates. Unsaved details-modal drafts, general autosave and server-side multi-actor conflict resolution are separate requirements.
Help requested under the owner's 2026-10-27 instruction to resolve the open backlog. This is the preferred independent assignment while the current agent repairs #192 CI and continues LOD/server CAPTCHA/dependency work.
Please claim this issue with an owned branch/worktree before editing. Implement the existing acceptance criteria without overlapping the LOD renderer: start with positionSaveQueue.ts, its owner registry/hook, and the existing account-scoped IndexedDB store. Preserve server-acknowledged vs locally durable vs in-memory status distinctions. The critical acceptance is real drag → hold write → reload and a separate browser-process restart, plus stale acknowledgement and cross-account/logout/deletion negatives.
Start from live dev, read AGENTS.md, use owned disposable fixtures, retain the failing baseline, run the relevant unit/browser gates, and file a focused PR with exact revision evidence. Request independent review rather than treating an author self-review as approval. Please comment with a blocker or a scoped help request if something prevents completion.
No separate claim has arrived, so the current agent is now taking implementation ownership on isolated branch fix/durable-layout-recovery-20261027, stacked on the reviewed current Core remediation composition. This updates the earlier help request: please avoid concurrent edits to the position queue/store/hook while this branch is active. #182 and #209 remain available for independent help.
Implementation will reuse the account-scoped IndexedDB transaction boundary, retain credential-free owner/graph/node receipts, distinguish in-memory/local-durable/server-acknowledged state, and compare receipt revisions before acknowledging or discarding. Acceptance retains real two-drag reload-before-acknowledgement and a separate owned browser-process termination/restart, stale receipts, logout/account mismatch, missing/deleted/unauthorized nodes, quota failure, and existing Graph/List navigation checks. No runtime durability claim will be made before those tests and independent review pass.
Resolved by reviewed #213, integrated with #214. Durable account/graph/node-scoped receipts preserve unsent positions across reload and actual owned-browser process termination/restart. Generation fences and exact-session replay checks prevent stale/cross-account replay; accepted writes with failed cleanup retry cleanup only. Pending Settings state and delayed error ownership were independently reviewed and corrected. Nine strict browser cases include actualquota/two-tab ordering, account replacement, revoked/deleted targets, unavailable storage/locks and stable LOD labels while work is pending. Earlier negative evidence and the review correction remain in the PR and canonical lessons.
Final aggregate dev acceptance passed at 77899e98a081e725ae8ddc15b6566cc50c9a584f: CI40618347427 and Comprehensive40618347395. Actual downloaded browser reports confirm smoke6, new-user42, semanticLOD2, layout-recovery9, routes7, mobile27 and performance3, all zero failures/warnings/skips, exit0, no timeout/evidence errors, and matching clean fingerprints on this exact dev SHA. Browser artifact.
All applicable quality/build/unit/security, realNeo4j/MCP, three runtime-image, effects/showcase, supported Node22.18/24 and installer/config jobs passed. Main/nightly production-stack job was inapplicable and skipped, not claimed as passed. Native dev parents/tree were verified before closeout; main remains775362e. No release/deployment/protection changes. The intermediate ed963 dev CI was cancelled by the newer aggregate push and was not counted as success.
Closing the defined durability acceptance. Unsupported storage/locks and inaccessible records remain explicit recoverable states; no universal network/hosted guarantee is inferred. Nested LOD continues separately in #215/#216 and must preserve these regressions.
Activity
mvalancy commentedon Oct 27, 2026
Help requested under the owner's 2026-10-27 instruction to resolve the open backlog. This is the preferred independent assignment while the current agent repairs #192 CI and continues LOD/server CAPTCHA/dependency work.
Please claim this issue with an owned branch/worktree before editing. Implement the existing acceptance criteria without overlapping the LOD renderer: start with
positionSaveQueue.ts, its owner registry/hook, and the existing account-scoped IndexedDB store. Preserve server-acknowledged vs locally durable vs in-memory status distinctions. The critical acceptance is real drag → hold write → reload and a separate browser-process restart, plus stale acknowledgement and cross-account/logout/deletion negatives.Start from live dev, read AGENTS.md, use owned disposable fixtures, retain the failing baseline, run the relevant unit/browser gates, and file a focused PR with exact revision evidence. Request independent review rather than treating an author self-review as approval. Please comment with a blocker or a scoped help request if something prevents completion.
mvalancy commentedon Oct 27, 2026
No separate claim has arrived, so the current agent is now taking implementation ownership on isolated branch
fix/durable-layout-recovery-20261027, stacked on the reviewed current Core remediation composition. This updates the earlier help request: please avoid concurrent edits to the position queue/store/hook while this branch is active. #182 and #209 remain available for independent help.Implementation will reuse the account-scoped IndexedDB transaction boundary, retain credential-free owner/graph/node receipts, distinguish in-memory/local-durable/server-acknowledged state, and compare receipt revisions before acknowledging or discarding. Acceptance retains real two-drag reload-before-acknowledgement and a separate owned browser-process termination/restart, stale receipts, logout/account mismatch, missing/deleted/unauthorized nodes, quota failure, and existing Graph/List navigation checks. No runtime durability claim will be made before those tests and independent review pass.
mvalancy commentedon Oct 28, 2026
Resolved by reviewed #213, integrated with #214. Durable account/graph/node-scoped receipts preserve unsent positions across reload and actual owned-browser process termination/restart. Generation fences and exact-session replay checks prevent stale/cross-account replay; accepted writes with failed cleanup retry cleanup only. Pending Settings state and delayed error ownership were independently reviewed and corrected. Nine strict browser cases include actualquota/two-tab ordering, account replacement, revoked/deleted targets, unavailable storage/locks and stable LOD labels while work is pending. Earlier negative evidence and the review correction remain in the PR and canonical lessons.
Final aggregate dev acceptance passed at
77899e98a081e725ae8ddc15b6566cc50c9a584f: CI40618347427 and Comprehensive40618347395. Actual downloaded browser reports confirm smoke6, new-user42, semanticLOD2, layout-recovery9, routes7, mobile27 and performance3, all zero failures/warnings/skips, exit0, no timeout/evidence errors, and matching clean fingerprints on this exact dev SHA. Browser artifact.All applicable quality/build/unit/security, realNeo4j/MCP, three runtime-image, effects/showcase, supported Node22.18/24 and installer/config jobs passed. Main/nightly production-stack job was inapplicable and skipped, not claimed as passed. Native dev parents/tree were verified before closeout; main remains775362e. No release/deployment/protection changes. The intermediate ed963 dev CI was cancelled by the newer aggregate push and was not counted as success.
Closing the defined durability acceptance. Unsupported storage/locks and inaccessible records remain explicit recoverable states; no universal network/hosted guarantee is inferred. Nested LOD continues separately in #215/#216 and must preserve these regressions.