Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions spec/api-gaps/recordable-subtypes-doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ Journal::Entry — there is no contract to model.
do not model ahead of a BC3 contract.
- Where Recording is polymorphic, extend the discriminated structure with the
new `type` values.
- `CloudFile` and `GoogleDocument` are rich-text emitters: their responses
carry their own `*_attachments` companion arrays (see
[[rich-text-attachments-coverage]]). Model those members alongside the base
shapes at absorption time so the rich-text projection stays complete — a
newly-absorbed subtype must not silently drop its companion array.
- Door now has its own documented surface (list/create/get/rename/trash) and is
tracked under [[external-links-doors]] — model it there, not here. It still
also appears as a string `type` value on generic Recording responses.
Expand Down
9 changes: 5 additions & 4 deletions spec/api-gaps/rich-text-attachments-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,9 @@ bc3_refs:
> file metadata (documented in upstream `doc/api/sections/rich_text.md`,
> addressed by bc3 #9980). The gap was SDK-side: the SDK modeled the rich-text
> *strings* but not their companion attachment arrays. #400 shipped the first
> slice (`Todo.description_attachments`); **#405 completes coverage across every
> modeled rich-text decode path** and flips this entry to `absorbed-in-sdk`.
> slice (`Todo.description_attachments`); **#408 (closes #405) completes
> coverage across every modeled rich-text decode path** and flips this entry to
> `absorbed-in-sdk`.
> This is absorption, not a provenance sync — the contract was already within
> the current pin, so no repin.

Expand Down Expand Up @@ -91,7 +92,7 @@ SDK decodes now carries its companion array, reusing `RichTextAttachment` +

- **Generic `attachments` key on SearchResult** (`searches/show:25`): the
recording's aggregate downloadable files, a *different* projection concern, not
a rich-text companion array. Not modeled; tracked separately if demanded.
a rich-text companion array. Not modeled; tracked in #428.
- **everything/aggregates endpoints** (`everything/*`, which also render full
partials): **unmodeled in the SDK** — no decode path exists to carry an array
into. Covered by the separate `everything-aggregates.md` gap
Expand Down Expand Up @@ -158,7 +159,7 @@ Complete. Shipped in two increments, both reusing `RichTextAttachment`:
float-tolerant dimension representation — Go `types.FlexInt`, Kotlin
`FlexibleIntSerializer` on a nullable `Int?`, Swift `Int32?`, Python
`int | float`, Ruby nilable — is documented in SPEC.md §10 Type Fidelity.
2. **#405 (this PR):** `content_attachments` / `description_attachments` on the
2. **#408 (closes #405):** `content_attachments` / `description_attachments` on the
remaining 17 structures (19 members) — 14 concrete `@required`, Gauge and the
two polymorphic projections (SearchResult, Recording) optional/non-nullable —
reusing `RichTextAttachment` and the same per-SDK decode assertions unchanged.
Expand Down
Loading