Skip to content

fix(project): reconcile canonical autosave authority truth - #801

Merged
qnbs merged 4 commits into
mainfrom
fix/553-truth-sync-20260920
Sep 20, 2026
Merged

qnbs merged 4 commits into
mainfrom
fix/553-truth-sync-20260920

Conversation

@qnbs

@qnbs qnbs commented Sep 20, 2026

Copy link
Copy Markdown
Owner

Summary

Reconcile the #553 persistence truth records with the implementation already shipped on main.

  • Update the IDB canonical-authority module header to record that production web/PWA autosave, lifecycle flush, and manual-save paths reach the canonical authority through services/projectAutosavePersistence.ts.
  • Update docs/native/CORE-MIGRATION-LEDGER.md to mark that web/PWA integration as complete while keeping the Tauri/filesystem writer, remaining universal ingress/egress, Rust Core authority, and R-15 transition gates explicitly incomplete.
  • Keep the Unreleased note tied to the real PR number: PR fix(project): reconcile canonical autosave authority truth #801.

Scope boundaries

This PR changes documentation and truth records only. It does not change runtime behavior, persistence semantics, migration behavior, fallback/dual-write policy, Tauri authority, Rust Core authority, Qt readiness, or R-15 admission.

Validation

  • pnpm run signing:doctor
  • pnpm run hooks:install
  • pnpm run docs:check
  • PR_BUDGET_BASE=origin/main pnpm run ci:prepush — PASS, DOCS_ONLY
  • git diff --check
  • Exact-head CI/CD, CodeQL, CodeAnt, CodeScene, Vercel, and CHANGELOG Reference Guard checks are green.

Summary by Sourcery

Align persistence documentation and truth records with the canonical autosave authority currently used in production.

Enhancements:

  • Reconcile canonical autosave authority records with the production web/PWA routing and explicitly document the remaining Tauri/filesystem and fallback boundaries.

Documentation:

  • Update the migration ledger and changelog to reflect completed web/PWA canonical-authority integration while preserving the incomplete migration and desktop authority gates.

Summary by CodeRabbit

  • Documentation
    • Documented that web and PWA autosave, lifecycle flushes, and manual saves use the standard persistence path.
    • Clarified that Tauri desktop autosave normally uses the filesystem backend.
    • Documented the fallback behavior for Tauri when filesystem initialization or legacy-key cleanup fails.
    • Clarified that desktop persistence routes remain separate from the generation-fenced writer.
    • Updated migration records to reflect remaining desktop and persistence integration work.

The production web/PWA autosave, lifecycle flush, and manual-save paths now use the canonical IndexedDB authority, but the authority module header and migration ledger still described that integration as future work. That stale wording could make the release and native-readiness evidence contradict the shipped persistence boundary.

Update both truth records to identify the shared autosave persistence seam, preserve the deliberate Tauri/filesystem boundary, and retain the remaining universal-ingress, filesystem-writer, Rust-Core, and authority-switch gates as incomplete. No runtime behavior, fallback policy, migration behavior, or production authority is changed.

Validation:
- pnpm run signing:doctor
- pnpm run hooks:install
- pnpm run docs:check
- pnpm run pr:budget -- --base origin/main --prospective
- git diff --check
@vercel

vercel Bot commented Sep 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
worldscript-studio Ready Ready Preview Sep 20, 2026 10:16pm UTC

@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml

Review profile: CHILL

Plan: Essentials

Run ID: dd277342-0fb1-454f-b26c-f9506bf01029

📥 Commits

Reviewing files that changed from the base of the PR and between 8cc3234 and 458f19d.

📒 Files selected for processing (1)
  • CHANGELOG.md

Included review availability: 2 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

The PR updates documentation for web/PWA canonical persistence routing and Tauri filesystem-first routing. It records the non-canonical IndexedDB fallback conditions and remaining migration work.

Changes

Persistence routing documentation

Layer / File(s) Summary
Canonical persistence routing status
CHANGELOG.md, docs/native/CORE-MIGRATION-LEDGER.md, services/storage/idbProjectCanonicalAuthority.ts
The documentation records canonical-authority use for web/PWA autosave, lifecycle flush, and manual-save paths. It records Tauri filesystem persistence, the legacy desktop save path, and non-canonical IndexedDB fallback conditions.

Priority: ⬇️ Low


Comment @coderabbitai help to get the list of available commands.

@sourcery-ai

sourcery-ai Bot commented Sep 20, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

This metadata-only correction updates project migration documentation and module comments to accurately record that web/PWA autosave, lifecycle flush, and manual-save flows now route through the generation-fenced canonical IndexedDB authority, while Tauri/filesystem persistence and other integration paths remain unfinished.

File-Level Changes

Change Details Files
Updated the migration ledger and decision record to reflect that production web/PWA persistence now uses the canonical project authority.
  • Changed the Wave 2 compatibility-adapter status from standalone primitives to wired production autosave integration.
  • Recorded coverage for autosave, lifecycle flush, manual-save routing, and refusal/success behavior.
  • Clarified that Tauri/filesystem persistence and remaining ingress/egress paths still use the legacy boundary or remain incomplete.
docs/native/CORE-MIGRATION-LEDGER.md
Updated the canonical IndexedDB authority documentation to describe its production routing and retained desktop boundary.
  • Documented web/PWA autosave, lifecycle flush, and manual-save integration through the full-snapshot bridge.
  • Clarified that Tauri remains on the filesystem backend pending an equivalent generation-fenced writer.
  • Preserved the legacy save path for the desktop boundary.
services/storage/idbProjectCanonicalAuthority.ts

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@codeant-ai

codeant-ai Bot commented Sep 20, 2026

Copy link
Copy Markdown

🏁 CodeAnt Quality Gate Results

Commit: 458f19d5
Scan Time: 2026-09-20 22:44:52 UTC

✅ Overall Status: PASSED

Quality Gate Details

Quality Gate Status Details
Secrets ✅ PASSED 0 secrets found
Duplicate Code ✅ PASSED 0.0% duplicated
SAST ✅ PASSED No security issues
Bugs ✅ PASSED Rating S: No bugs
IAC ✅ PASSED No IAC issues

View Full Results

codescene-access[bot]

This comment was marked as outdated.

The repository CHANGELOG Reference Guard requires the actual GitHub PR number in the Unreleased note, which was unavailable until draft PR #801 was created.

This bootstrap correction intentionally changes CHANGELOG.md only. It records the already-completed #553 truth-sync documentation fix and does not alter source, tests, workflows, or governance behavior.

Validation:
- git diff --check
- pnpm run pr:budget -- --base origin/main --prospective
- staged path: CHANGELOG.md only
codescene-access[bot]

This comment was marked as outdated.

@qnbs qnbs changed the title chore(meta): reserve PR number fix(project): reconcile canonical autosave authority truth Sep 20, 2026
@qnbs
qnbs marked this pull request as ready for review September 20, 2026 21:39
@codeant-ai

codeant-ai Bot commented Sep 20, 2026

Copy link
Copy Markdown

🤖 CodeAnt AI — Review Status

Status Commit Started (UTC) Finished (UTC)
✅ Reviewed your PR 6688184 Sep 20, 2026 · 21:39 21:40

@sourcery-ai sourcery-ai Bot 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.

Sorry @qnbs, you've used your own review budget of 250,000 diff characters for the last 7 days.

You can request another review in 2 days and 2 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@codeant-ai

codeant-ai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@codeant-ai codeant-ai Bot added the size:S This PR changes 10-29 lines, ignoring generated files label Sep 20, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6688184e59

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread services/storage/idbProjectCanonicalAuthority.ts Outdated

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: qnbs/WorldScript-Studio/.coderabbit.yaml

Review profile: CHILL

Plan: Essentials

Run ID: 69dd019f-b8a2-445a-b870-5b0f9f87768b

📥 Commits

Reviewing files that changed from the base of the PR and between 8e2a687 and 6688184.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • docs/native/CORE-MIGRATION-LEDGER.md
  • services/storage/idbProjectCanonicalAuthority.ts

Included review availability: 4 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.

Comment thread services/storage/idbProjectCanonicalAuthority.ts Outdated
The canonical IDB authority documentation incorrectly described the Tauri path as filesystem-only, although storageService can retain its existing IndexedDB backend when filesystem initialization or legacy-key cleanup fails.

Qualify the module header and the #553 migration ledger to distinguish the normal Tauri filesystem writer from that non-canonical dbService fallback. Add the required single QNBS-v3 persistence/native-boundary rationale comment.

Runtime routing, authority selection, fallback behavior, and canonical writer semantics are intentionally unchanged. The desktop fallback remains outside the generation-fenced canonical writer until an admitted equivalent filesystem writer exists.

Validation:\n- pnpm run docs:check\n- git diff --check\n- PR_BUDGET_BASE=origin/main pnpm run pr:budget -- --base origin/main --prospective
@codecov

codecov Bot commented Sep 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

codescene-access[bot]

This comment was marked as outdated.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 8cc3234900

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CHANGELOG.md Outdated
The #553 release note still described the Tauri persistence boundary as unconditional filesystem-only, although storageService retains its existing non-canonical IndexedDB backend when filesystem initialization or legacy-key cleanup fails.

Qualify that single release-note sentence so the changelog matches the module header and migration ledger. This is metadata-only: runtime routing, authority selection, fallback behavior, and canonical writer semantics remain unchanged.

Validation:\n- PR_BUDGET_BASE=origin/main pnpm run pr:budget -- --base origin/main --prospective\n- pnpm run docs:check\n- git diff --cached --check

@codescene-access codescene-access Bot 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.

Gates Passed
3 Quality Gates Passed

See analysis details in CodeScene

Quality Gate Profile: The Bare Minimum
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.

@qnbs
qnbs merged commit 87dd85a into main Sep 20, 2026
45 checks passed
@qnbs
qnbs deleted the fix/553-truth-sync-20260920 branch September 20, 2026 22:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant