You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(liveness): stop counting authoring/preview renderers as runtime consumers (#1878) (#3685)
A 2026-06 sweep that "missed objectui" over-corrected and marked 13 properties
`live` on the evidence of a metadata-admin previews/*Preview.tsx panel — a
surface that only echoes what the author typed. `live` is supposed to mean
"authoring this changes runtime behaviour".
Three of the 13 were re-verified in the §3 naming-drift recheck; all three
were wrong or misleading:
- skill.permissions -> dead + authorWarn. The cloud SkillRegistry reads only
active/triggerConditions/tools; nothing gates invocation by this list.
Mirrors the identical tool.permissions entry. (Cloud documents the intent
in a comment without implementing it.)
- agent.knowledge -> dead + authorWarn. search_knowledge takes sourceIds from
the LLM's tool-call arguments, never from the agent record, so a declared
knowledge scope constrains nothing (and an agent can search sources it was
never scoped to).
- action.disabled: verdict kept (it IS live now) but evidence corrected to the
six rendering surfaces. At ledger-writing time it was enforced on ONE of
six, so the preview-based verdict hid a real five-surface silent no-op —
fixed in objectui#2863.
Also: sync the hand-maintained count table (agent 14/5/0 -> 13/5/1, skill
10/-/- -> 9/-/1) and add a "an authoring/preview renderer is NOT a runtime
consumer" section naming the ten still-unverified preview-only claims, with
the tie-break rule: when in doubt prefer dead + authorWarn — a warning on a
property that works costs nothing; silence on a property that does nothing
ships a bug.
check:liveness green (exit 0); the 13 unregistered-proof warnings are
pre-existing on main.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
| agent |13| 5 |1| – | dead `tenantId` + `planning.strategy`/`allowReplan` REMOVED (#2377) — only `planning.maxIterations` live; autonomy tier experimental; `knowledge` CORRECTED to dead 2026-07 — `search_knowledge` takes `sourceIds` from the LLM's tool-call args, never from the agent record (#1878 §3 recheck)|
211
234
| tool | 9 | 1 | 1 | – |`permissions` dead — tool invocation not permission-gated by it |
212
-
| skill |10| – |–| – |fully live|
235
+
| skill |9| – |1| – |`permissions` CORRECTED to dead 2026-07 — the cloud SkillRegistry reads only `active`/`triggerConditions`/`tools`; mirrors the identical `tool.permissions` entry (#1878 §3 recheck)|
| page | 16 | – | – | 1 | fully live + one planned |
215
238
| view | 70 | 0 | 5 | – | list/form drilled via `children` (#2998 Track B); dead = list.{responsive,performance} + form.{data,defaultSort,aria}, all but aria authorWarn'd; form.{buttons,defaults} now live — objectui ObjectForm folds them onto its flat props (framework#1894 / #2998); audit-era DEAD lines superseded by re-verification (submitBehavior, sharing.lockedBy, list ViewData providers, and the ADR-0021 chart shape — all live now); level-2 dead residue (userActions.buttons, addRecord.mode/formView, tabs[].order) noted on parents — one drill level only |
"note": "LIVE via objectui metadata-admin authoring UI — the 2026-06 audit missed objectui; verified by reading the file."
104
+
"evidence": "objectui: components action-button/-group/-icon/-menu + app-shell DeclaredActionsBar + plugin-detail record-quick-actions — all six rendering surfaces gate the Button on the predicate",
105
+
"note": "EVIDENCE CORRECTED 2026-07 (#1878 §3 recheck): previously cited the metadata-admin PREVIEW renderer, which only echoes the authored value. At that time the predicate was actually enforced on ONE of six surfaces (#1885 wired action:button alone) — the 'live' verdict was right for the wrong reason and hid a real silent no-op on the other five. objectui#2863 wired the rest; showcase specimen `showcase_archive_task` (#3643) dogfoods it."
"note": "LIVE via objectui metadata-admin authoring UI — the 2026-06 audit missed objectui; verified by reading the file."
68
+
"status": "dead",
69
+
"evidence": "agent.form.ts + objectui AgentPreview.tsx:69 (both authoring-side echo only); the RAG path never reads it",
70
+
"authorWarn": true,
71
+
"authorHint": "Declaring `knowledge.sources` does NOT scope retrieval — the `search_knowledge` tool takes `sourceIds` from the LLM's tool-call arguments (cloud service-ai/src/tools/knowledge-tools.ts:96), never from the agent record. Restrict retrieval at the knowledge-service / source level instead.",
72
+
"note": "CORRECTED 2026-07 (#1878 §3 recheck): was marked live on the evidence of the metadata-admin PREVIEW renderer — an echo of what the author typed, not runtime consumption. The `topics`→`sources` NAMING drift is genuinely fixed (#1891 alias fold); the block is nonetheless behaviourally inert. Wiring it would also close a scope gap (an agent can search sources it was never scoped to) — tracked separately."
"note": "LIVE via objectui metadata-admin authoring UI — the 2026-06 audit missed objectui; verified by reading the file."
50
+
"status": "dead",
51
+
"evidence": "skill.form.ts + objectui SkillPreview.tsx:48 (both authoring-side echo only); no gate in the cloud SkillRegistry",
52
+
"authorWarn": true,
53
+
"authorHint": "Skill invocation is NOT permission-gated by this list — the registry reads only `active`/`triggerConditions`/`tools`. Agent-level `access`/`permissions` ARE enforced (#1884), so gate at the agent, or gate the underlying tools' actions via permission sets (ADR-0066).",
54
+
"note": "CORRECTED 2026-07 (#1878 §3 recheck): was marked live on the evidence of the metadata-admin PREVIEW renderer — an echo of what the author typed, not runtime consumption. Mirrors the identical `tool.permissions` entry. Cloud documents the intent ('Layer permissions via Skill.permissions independent of the agent's permissions', service-ai-studio/src/skills/metadata-authoring-skill.ts:15) without implementing it — enforce-or-prune tracked separately."
0 commit comments