Skip to content

Persist cookies and localStorage in browser profiles - #477

Merged
danwalmsley merged 1 commit into
mainfrom
codex/issue-437-profile-persistence
Sep 18, 2026
Merged

danwalmsley merged 1 commit into
mainfrom
codex/issue-437-profile-persistence

Conversation

@danwalmsley

Copy link
Copy Markdown
Collaborator

Summary

  • persist future-expiring cookies and per-origin localStorage under the existing host-selected directory and partition identity
  • keep session cookies and sessionStorage ephemeral while preserving cookie metadata, ordering, quota, and storage-event behavior
  • add atomic coalesced checkpoints, schema validation, corruption recovery, process locking, bounded clear-data APIs, and IndexedDB-aware all-site-data clearing
  • document profile lifecycle, shutdown budget, permissions, threat model, and IndexedDB composition
  • add restart, cross-process, interrupted-write, corruption, concurrent-open, clear-data, quota, event-delivery, and repeated lifecycle contracts

Validation

  • built webscene_native_engine_tests and webscene_profile_storage_tests on macOS arm64
  • ctest -R ^webscene_profile_storage_tests$ --output-on-failure
  • WEBSCENE_NATIVE_ENGINE_TEST_FILTER=response-header-cookie webscene_native_engine_tests
  • WEBSCENE_NATIVE_ENGINE_TEST_FILTER=web-storage webscene_native_engine_tests
  • git diff --check

Related work

This composes with the IndexedDB partition model from #56 / #94 and the cookie propagation work from #188 and #210. It does not duplicate IndexedDB transactions.

Remaining qualification evidence

Linux x64, Windows x64, Native AOT/relocated SDK, and a manual Spotify restart confirmation still need to run in their dedicated environments. The SpotifyCatalog sample named by the issue is not present on current main; the companion AppScene PR wires the maintained JavaScript host sample and generic SDK API instead.

Addresses #437

@danwalmsley
danwalmsley merged commit c943e3d into main Sep 18, 2026
6 of 12 checks passed
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