Follow-up to #410 / ADR 0005.
Today Session.provider (Packages/CrowCore/Sources/CrowCore/Models/Session.swift)
means both task source and code source. ADR 0005 documents this as a v1 limitation —
the protocol split exists precisely so a Corveil-tasked session can use a GitHub or
GitLab CodeBackend, but the model can't represent that yet.
This ticket adds Session.codeProvider: Provider? so the two halves can come from
different providers.
Acceptance
Session.codeProvider: Provider? exists.
- Default migration: existing sessions get
codeProvider = provider.
SessionService / IssueTracker look up codeBackend(for: session.codeProvider ?? session.provider).
- Persistence round-trip covered by tests.
References:
Follow-up to #410 / ADR 0005.
Today
Session.provider(Packages/CrowCore/Sources/CrowCore/Models/Session.swift)means both task source and code source. ADR 0005 documents this as a v1 limitation —
the protocol split exists precisely so a Corveil-tasked session can use a GitHub or
GitLab
CodeBackend, but the model can't represent that yet.This ticket adds
Session.codeProvider: Provider?so the two halves can come fromdifferent providers.
Acceptance
Session.codeProvider: Provider?exists.codeProvider = provider.SessionService/IssueTrackerlook upcodeBackend(for: session.codeProvider ?? session.provider).References: