Filed by the triage seat executing the maintainer's 2026-08-24 ruling on objectstack#11507 (batch acceptance, verbatim: 「四维分析一致的,接手你的建议。」 — adopting the aligned four-facet recommendation, direction 4: sys_activity.type is author-extensible).
What this card does
objectstack#11507 recorded that no pin asserts the relationship between the platform declaration and this renderer's map in either direction — objectui#5840 deliberately broke the old set-equality pin (pinning to the closed declaration meant dropping stored rows), and the replacement pin could not be written until the vocabulary was ruled. It now is.
Per the ruling, in packages/plugin-detail/src/renderers/recordActivityFeed.ts:
- Pin the open-vocabulary contract: the feed-kind map covers the platform's built-in set (a superset assertion against the declared options — new built-ins turn the pin red so the map keeps up), and an unknown/author-extended
type value renders through a defined fallback presentation — never dropped, never crashing. Pin both halves. - The pin's docblock names the ruling (objectstack#11507, direction 4, 2026-08-24) so the next sweep does not "restore" set-equality.
Boundary
⛔ This card does not touch the platform declaration — the services-lane half (making the select declaration honest about open semantics) rides objectstack#11507 itself. No coordination needed beyond the ruling: the fallback-rendering pin is correct under the ruled semantics regardless of when the declaration lands.
Dedupe: #5840 (landed, removed the wrong pin — this adds the right one); no open card carries this scope.
Filed by the triage seat executing the maintainer's 2026-08-24 ruling on objectstack#11507 (batch acceptance, verbatim: 「四维分析一致的,接手你的建议。」 — adopting the aligned four-facet recommendation, direction 4:
sys_activity.typeis author-extensible).What this card does
objectstack#11507 recorded that no pin asserts the relationship between the platform declaration and this renderer's map in either direction — objectui#5840 deliberately broke the old set-equality pin (pinning to the closed declaration meant dropping stored rows), and the replacement pin could not be written until the vocabulary was ruled. It now is.
Per the ruling, in
packages/plugin-detail/src/renderers/recordActivityFeed.ts:typevalue renders through a defined fallback presentation — never dropped, never crashing. Pin both halves.Boundary
⛔ This card does not touch the platform declaration — the services-lane half (making the select declaration honest about open semantics) rides objectstack#11507 itself. No coordination needed beyond the ruling: the fallback-rendering pin is correct under the ruled semantics regardless of when the declaration lands.
Dedupe: #5840 (landed, removed the wrong pin — this adds the right one); no open card carries this scope.