Skip to content

Simplify offline command and projection ownership - #70

Merged
rdlabo merged 1 commit into
mainfrom
feat/simplify-offline-command-state
Aug 13, 2026
Merged

Simplify offline command and projection ownership#70
rdlabo merged 1 commit into
mainfrom
feat/simplify-offline-command-state

Conversation

@rdlabo

@rdlabo rdlabo commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

What changed

  • keep OfflineCommand.payload immutable and move revision changes to Kit-owned baseRevision metadata
  • remove product withServerRevision / withoutServerRevision hooks and the unused public payloadHash
  • retain the released SQLite v2 payload_hash column as a physical compatibility sentinel
  • make pull projection a pure scope + changes decomposition contract
  • preserve optimistic local-only rows when a remote tombstone conflicts with pending intents
  • prevent a queued network effect from immediately restarting a fatal pull loop

Why

Revision state and derived-row ownership were represented in more than one place. That made a command payload mutable after enqueue and forced product projectors to read the repository and rediscover pending state.

The new boundary keeps business intent immutable, lets Kit own transport revision metadata, and makes Pull the only authoritative confirmed-row writer while preserving the existing Outbox, conflict, FIFO, and reconciliation guarantees.

Compatibility

The logical payloadHash field is removed, but the SQLite v2 physical column remains and receives an empty sentinel. Existing v2 databases therefore open and accept new commands without a destructive core-schema migration.

Validation

  • full Kit tests: 44 files / 815 tests
  • focused offline repository/sync/pull tests: 4 files / 324 tests
  • Kit lint
  • Kit production package build
  • independent reviewer: APPROVE

Integration order

Merge and release this PR before the dependent Winecode PR.

@netlify

netlify Bot commented Aug 13, 2026

Copy link
Copy Markdown

Deploy Preview for rdlabo-ionic-angular-library ready!

Name Link
🔨 Latest commit 8f0ac37
🔍 Latest deploy log https://app.netlify.com/projects/rdlabo-ionic-angular-library/deploys/6a7d5222f1dea50007363b6d
😎 Deploy Preview https://deploy-preview-70--rdlabo-ionic-angular-library.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@rdlabo
rdlabo marked this pull request as ready for review August 13, 2026 05:15
@rdlabo
rdlabo merged commit 22a569d into main Aug 13, 2026
12 checks passed
@rdlabo
rdlabo deleted the feat/simplify-offline-command-state branch August 13, 2026 05:18

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 2 additional findings.

Open in Devin Review

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