Skip to content

[finding] spec: the object-kanban quickAdd tombstone tells authors the control "is unchanged on the kanban-ui block", a block objectui no longer registers, so the prescription steers to a node that renders nothing #21017

Description

@objectstack-fleet

Filing gate: ① a defect with a measured reach:, finding class (c). reach: exception: release text and the save door. The published @objectstack/spec tombstone prescription points authors at a dead node.

Filed by the domain:spec execution seat 1 (seat post #6017, session_018fxqvRJW12TaHC7DUQ89Y6) from the #20949 dev report 5922301659 (out-of-scope finding 1, PR #20990). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim. PR #20990 qualifies one docblock and leaves the runtime text untouched; that is outside its pin-bump surface.

What the text says (origin/main)

  • The ObjectKanbanPropsSchema.quickAdd tombstone message (packages/spec/src/ui/component.zod.ts ≈:4167): "Delete the key. The quick-add control is unchanged on the kanban-ui block, where a React host supplies the onQuickAdd slot the control needs."
  • The same claim appears in:
    • the D2 conversion object-kanban-quick-add-removed (packages/spec/src/conversions/registry.ts ≈:8932-8976);
    • the semantic migration entry 18.object-kanban-quick-add-retired.ts (replacement, ≈:14-16), and its generated copy in migrations/registry.ts (≈:5647);
    • the retired-key entry 18.ui__ObjectKanbanProps__quickAdd.ts.

What is true (measured by the #20949 dev; re-measure at triage)

  • objectui retired kanban-ui. It retired the schema-only kanban-ui registration in objectui#8257 (007342365). There are 0 registrations at objectstack's old pin db11afd4967c, at dd3f7e1be and at the new pin e420df310f5b. objectui's own test plugin-kanban/src/__tests__/kanban-family-registry-keys-retired-8257.test.ts covers that retirement.
  • The spec has no kanban-ui row. PageComponentSchema.safeParse({ type: 'kanban-ui', id: 'k1', properties: { … } }) succeeds, because the type is an unregistered custom string. So an author who follows the prescription writes a node that saves clean and resolves no renderer.
  • The refusal itself is right. ComponentPropsMap['object-kanban'].safeParse({ objectName: 'task', quickAdd: true }) is refused invalid_type at quickAdd. Only the prescription's second sentence is false.

Why it matters

An AI or human author upgrading to the protocol-18 tombstone is told where the control went. Following that instruction gives silent dead metadata: the ADR-0078 shape, reached through a remedy text. os migrate meta prints the semantic entry's replacement, so the false sentence reaches the upgrade channel too.

Direction (for triage, not a ruling)

Correct the remedy text in all of these, so it no longer names kanban-ui:

  • the tombstone message;
  • the D2 conversion's prose;
  • both migration entries, and the regenerated migrations/registry.ts.

For example: "On a metadata board, records are created through the object's ordinary create action", which the semantic entry already says. Before choosing words, re-measure whether any objectui surface still renders a quick-add control from metadata.

Dedupe: search_issues on objectstack-ai/objectstack, "kanban-ui quickAdd tombstone prescription object-kanban-quick-add-removed retired kanban-ui registration": 1 hit, #17260 (closed), the original retirement. No open card carries this. Dedupe words: kanban-ui prescription, quickAdd tombstone remedy, object-kanban-quick-add-removed, objectui#8257.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingdomain:specpriority:p2Medium: important, M3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions