Document the native event bus and file the persisted-dedup follow-up - #306
Open
ScottMorris wants to merge 4 commits into
Open
Document the native event bus and file the persisted-dedup follow-up#306ScottMorris wants to merge 4 commits into
ScottMorris wants to merge 4 commits into
Conversation
ScottMorris
marked this pull request as ready for review
August 14, 2026 04:44
Contributor
Author
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b6553617bb
ℹ️ 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".
ScottMorris
force-pushed
the
feat/255-p5a-docs
branch
from
August 18, 2026 16:56
b655361 to
a443180
Compare
…an-out (Phase 5A) Documents the plugins/native-bus substrate (NativeEventBus/DurableEventQueue), the fired->watch-ring and dismiss/snooze->stop native fan-out flows, the ContentProvider registration pattern, the handled_natively tag's real durability-first limitation, and EventDedup's same-process-only scope -- all built and merged in prior Stage 1-4 work on issue #255, previously tracked only in the temporary docs/architecture/255-phase3-payload-contract.md working note, which is folded in here and removed per its own header. Adds docs/plugins/native-bus.md, updates event-architecture.md, wear-sync.md, and alarm-manager.md, adds CLAUDE.md Gotchas entries for the ContentProvider manifest convention, native-bus's direct-Cargo-dependency requirement, the one-way DurableEventQueue migrations, the watch-not-connected gap, iOS's missing implementation, and the wear:alarm:* payload key inconsistency.
The Native Event Bus topic table incorrectly claimed no native Kotlin listener subscribes to alarm-manager:dismiss-requested; NativeStopListener already does, matching the row below it for snooze-requested. Also repoint the handful of Kotlin/Rust comments that still referenced the now-deleted 255-phase3-payload-contract.md at its new home, the Native Event Bus section of event-architecture.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
ScottMorris
force-pushed
the
feat/255-p5a-docs
branch
from
August 18, 2026 17:08
6965e75 to
16a1085
Compare
…empotency gap The note described dismiss_alarm's double-invocation safety as unverified/a known concern, which was accurate when it was written but is now stale -- Phase 4C actually closed that gap. Updated to describe the real fix instead of the historical open question. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Phase 5A of #255's implementation plan — the last piece. Documents everything built across the whole stack (#294–#305), written entirely from reading the actual final merged code, not from the design plan.
What's here
docs/architecture/event-architecture.md: a new "Native Event Bus" section covering theNativeEventBus/DurableEventQueuemechanism and its rationale, a full topic table (including the"alarmId"vs"id"payload key inconsistency that tripped up a reviewer during implementation), the threading contract, thehandled_natively/"watch-ring"tag flow (including its real, disclosed limitation — durability-first ordering means it's essentially always empty in production, a deliberate tradeoff not a bug),EventDedup's accurate (limited) scope, and theContentProviderregistration pattern (substantially closing out issue wear-sync: decide the incremental-sync future and document the channel-bridge pattern #209's ask).docs/plugins/native-bus.md; updates todocs/plugins/wear-sync.md/alarm-manager.md/README.md.CLAUDE.mdgotchas: the provider-manifest convention, native-bus's direct-Cargo-dependency requirement, the one-wayDurableEventQueuemigrations, the watch-not-connected gap, iOS's non-implementation, and the payload key-naming inconsistency.docs/architecture/255-phase3-payload-contract.md(a temporary working note, folded in per its own header) and repointed the handful of source comments that referenced it.EventDedup's state across app restarts (currently in-memory only, so it structurally can't catch the crash-and-restart case it was originally meant for).Review status
Reviewed via
/code-review medium. Found and fixed: a stale topic-table row (claimed no listener subscribes todismiss-requested, whenNativeStopListeneralready does) and the dangling doc-path references mentioned above.Stacked on #305 — the last PR in this stack. Part of #255.