docs: 1.x ADRs — SDK split, instance surface, and messaging contract - #2109
Conversation
✅ Deploy Preview for carbon-ai-chat-components ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for ai-chat-components-react ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for carbon-ai-chat-demo ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
c4bb819 to
a338feb
Compare
davidmenendez
left a comment
There was a problem hiding this comment.
content looks good to me! quick question: this should be in numerical order. not sure why it suddenly went from 2-3-4-5-7-9-23! is there a specific reason for this?
|
@davidmenendez made the mistake of assigning adr numbers in the issues and then had to break some of the adrs up into multiple adrs, meaning I got stuck with adding new issues at the end of the list. Going forward, won't assign numbers in the issues, but didn't want to unwind 20+ issues that reference each other now. |
a338feb to
99c9db6
Compare
Seven related ADRs. Suggested review order: 1. ADR-0002 — the strategic split: framework-agnostic core, React wrapper, and headless SDK all ship from one package 2. ADR-0025 — deep review this last, but skim for orientation now; shows the assembled SDK surface so the shape of the destination is clear before reading the steps to get there 3. ADR-0023 — callbacks survive the split unchanged through a parameterized config; names the two halves 4. ADR-0005 — walks the instance member list and validates the partition assumption ADR-0002 rests on 5. ADR-0004 — chat state moves to per-field scoped stores; deprecates getState() 6. ADR-0009 — every conversation verb is reached through instance.messaging 7. ADR-0007 — both message-delivery APIs run on one store pipeline 8. ADR-0025 — full review now that the sibling records are in hand 9. ADR-0003 — instance lifetime belongs to the acquire, not the host mount
Fills the discussion field on all eight records now that the tracking issues exist. validate:adrs goes green: a proposed record needs a comment venue, and each one now points at its own.
Rejected option C argued that a surviving getState() would be permanent because no release after 2.0.0 takes breaking changes. No 3.0.0 is scheduled, but none is ruled out either. The argument holds on the weaker premise: the next major has no date, so the deprecated getter names no removal release and the two read models coexist indefinitely.
9dea3d0 to
fbf9a42
Compare
376b8e4
Closes #2033
Closes #2034
Closes #2035
Closes #2036
Closes #2040
Closes #2080
Eight architecture decision records for the 1.x SDK and messaging work, merging as
proposed. No code changes —docs/adr/only.Each record decides one thing and takes its own comment window, so an objection to one never blocks the rest. Together they cover the package split, what the instance surface becomes, how state is read, and what the send promise means.
Changelog
New
ChatInstancesurvives the split as the composition of both halvesinstance.messagingChanged
docs/adr/README.md— index rows, regenerated bynpm run sync:adrsTesting / Reviewing
Suggested review order. The records cross-reference each other, so reading them by number is harder than this path:
getState()instance.messagingComment on the record's own issue, not on this PR. Review comments stop being findable once a PR merges, which is the whole reason the venue is an issue. Each record has one:
All eight windows close 2026-08-18 at the earliest. Silence is not agreement — nothing is accepted until a maintainer sets the status.
Gates:
Four records read above the 8–11 band: 0005 and 0007 at 11.1, 0023 at 11.3, 0025 at 11.0.