Durable tracker for the coordinated cross-SDK version bump + release that must
follow the rich-text *_attachments follow-up stack. "Scheduled separately" is
not durable tracking — this issue is.
Why a bump is needed
#433 lands a breaking change (Kotlin): 24 optional model array fields across
15 models change from List<T> to List<T>? = null. Current version is 0.8.0;
with a Kotlin-breaking change the appropriate target is 0.9.0.
Merge / release sequence
Open follow-up debt (not blockers for this release)
Related PRs
Durable tracker for the coordinated cross-SDK version bump + release that must
follow the rich-text
*_attachmentsfollow-up stack. "Scheduled separately" isnot durable tracking — this issue is.
Why a bump is needed
#433 lands a breaking change (Kotlin): 24 optional model array fields across
15 models change from
List<T>toList<T>? = null. Current version is 0.8.0;with a Kotlin-breaking change the appropriate target is 0.9.0.
Merge / release sequence
main— Kotlin: optional model arrays become List<T>? = null (breaking) #433. Known conflict: B and D both edit the same.PHONYline and thecheck:recipe line inMakefile(each appends its guard target). The rebase must retain bothcheck-fixture-coverageandkt-check-optional-arrays. Re-run CI after the rebase.make bump VERSION=0.9.0(bumps all six SDKs + lockfiles + conformance runner). Do NOT bump inside A/B/D.make release VERSION=0.9.0from cleanmain; monitor all release workflows (release-github, release-go, release-typescript, release-ruby, release-kotlin, release-swift, release-python).Open follow-up debt (not blockers for this release)
rubric-audit.json1B.4 ispass:falseuntil resolved or explicitly waived.SearchResult.attachmentsaggregate key unmodeled (demand-gated).Related PRs