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
Add the Sync bounded context to the domain model #762
Sync now has domain models of its own (device, pairing code, owner scope, change precedence) and four ADRs make it a persistent replica with a blob store, yet .devbook/domain/ has no sync/ folder and the README still calls it a pass-through that "if it ever grows rules of its own, needs an entry in the context map before it grows projects". It grew the projects first. Found in the 2026-09-27 repository review.
Context
src/Modules/Sync/Backlog.Modules.Sync/DomainModels/ holds Device, PairingCode, OwnerScope, AnnotationChangePrecedence; TaskChangePrecedence is shared by both replicas with tombstone-wins-on-tie.
ADRs 0005, 0009, 0011 and 0014 under .devbook/arc42/adr/ decide the replica, precedence, attachments and pairing.
.devbook/domain/context-map.md has no Sync context; .devbook/domain/ folders are capture, dev-pc-management, devbook, environment, inbox, monitoring, productivity, repository-management, roadmap, sessions, tasks, technology-stack.
README.md line 94 is the paragraph to rewrite once the context exists.
Run devbook:capture-specs for the Sync aggregate(s) and the invariants their unit tests already establish (constant-time credential comparison, pairing code burned before the device is added, push batch refused whole over the cap, LWW precedence).
Land the context via delivery:flow-spec: .devbook/domain/sync/context.md, domain.md, domain.invariants.md, requirements.md, and the context-map entry with its relationships to Inbox, Tasks and Sessions.
The issue sweep (2026-10-15) opened draft pull request #1297. Told to decide without waiting, it made Sync a Supporting context, upstream of Tasks, Sessions and Devbook as an Open Host Service, with Device and Pairing Code as aggregates and the pairing language moved out of Tasks; the pull request names the alternative (Generic, pairing language left in Tasks).
Activity
JSdotNet commentedon Oct 5, 2026
The issue sweep (2026-10-05) stopped this issue at Scope Discovery and routed it to
flow-spec. It opened no branch or pull request.Why: adding Sync as a bounded context is a change to the documented domain model. Three decisions belong to the domain role:
DomainModelstypes are aggregate roots and which are value objects.Scope found, ready for that run:
.devbook/domain/sync/:context.md,domain.md,domain.invariants.mdandrequirements.md.context-map.md): a row and a node, with edges to Inbox (ADR 0009), Tasks (ADR 0005), Sessions and Devbook (ADR 0011).inbox/dependencies.mdline 19.JSdotNet commentedon Oct 15, 2026
The issue sweep (2026-10-15) opened draft pull request #1297. Told to decide without waiting, it made Sync a Supporting context, upstream of Tasks, Sessions and Devbook as an Open Host Service, with Device and Pairing Code as aggregates and the pairing language moved out of Tasks; the pull request names the alternative (Generic, pairing language left in Tasks).
JSdotNet commentedon Oct 17, 2026
Closed by the issue sweep as already fixed: PR #1297 (merge 712e8f1, on main) adds .devbook/domain/sync/ and lists Sync in context-map.md.