GH-83: feat(core): SyncCapable contract — IssueSnapshot/SyncSource/SyncWriter for board sync (types only)#87
Merged
Merged
Conversation
…r for board sync Adds a new sdk/core contract surface for shadow-based board synchronization, distinct from the trigger-filtered Poller/IssueEvent path. Types only; no connector implements SyncCapable yet — implementations are follow-up issues.
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.
Summary
Automated PR created by Pilot for task GH-83.
Closes #83
Changes
GitHub Issue GH-83: feat(core): SyncCapable contract — IssueSnapshot/SyncSource/SyncWriter for board sync (types only)
Context
SaaS pre-work S0.2 (kanban sync engine foundation — design doc: qf-studio/pilot
.agent/system/saas-kanban-sync-design.md§2). The existingPoller/IssueEventcontract is trigger-label-filtered and carries onlyAction created|updated— unusable as general sync ingest. We need a NEW contract surface insdk/corefor board synchronization, types only in this issue (no connector implementations — those are separate follow-ups).Implementation
New file
sdk/core/sync.gowith exactly this contract (field-for-field):Define
IssueDraft(Title, Body, Labels, Priority) alongside. Doc-comment every type with its role in shadow-based 3-way sync (see design doc §4: the snapshot is diffed against a stored shadow; SequenceID preserves the provider-prefix scheme that Pilot branch naming depends on).Acceptance
sdk/core/sync.gocompiles with the contract above; godoc on every exported symbolsdk/core/api.goldenre-blessed via theTestPublicAPILocked -updateflow with ONLY these additions in the diffgo vet+ existing tests greenRefs
.agent/system/saas-kanban-sync-design.md§2 (contract), §4 (shadow semantics)