engine: 'insertable: false' sidecar flag; apply to the html element #90

Closed
opened 2026-07-18 02:25:31 +02:00 by dominik.polakovics · 1 comment

What to build

A new element sidecar flag insertable: false that removes an element from the insert picker while keeping already-placed instances fully visible and editable in the element tree, edit forms, and preview. This is distinct from hidden: true (which suppresses tree and picker entirely and is only right for items-collection children like img).

Apply the flag to scaffold/editor/elements/html.yaml — the sidecar's own comment promises this follow-up. The "developer only" labeling can stay, but the element must no longer appear in the picker.

Acceptance criteria

  • Schema accepts insertable: false (default true); invalid values rejected with a clear error
  • Web insert picker omits non-insertable elements; server rejects an insert of a non-insertable element (defense in depth)
  • Existing placed html elements remain visible in the tree, editable, movable, and render in preview/publish
  • html.yaml sets insertable: false and drops its now-stale "picker-hiding flag will follow" comment
  • scaffold/site/AGENTS.md documents the flag in the sidecar schema section (same change, per CLAUDE.md)
  • Engine tests cover: insertable omitted, false, and server-side insert rejection

Blocked by

None - can start immediately

## What to build A new element sidecar flag `insertable: false` that removes an element from the insert picker while keeping already-placed instances fully visible and editable in the element tree, edit forms, and preview. This is distinct from `hidden: true` (which suppresses tree and picker entirely and is only right for items-collection children like `img`). Apply the flag to `scaffold/editor/elements/html.yaml` — the sidecar's own comment promises this follow-up. The "developer only" labeling can stay, but the element must no longer appear in the picker. ## Acceptance criteria - [ ] Schema accepts `insertable: false` (default true); invalid values rejected with a clear error - [ ] Web insert picker omits non-insertable elements; server rejects an insert of a non-insertable element (defense in depth) - [ ] Existing placed `html` elements remain visible in the tree, editable, movable, and render in preview/publish - [ ] `html.yaml` sets `insertable: false` and drops its now-stale "picker-hiding flag will follow" comment - [ ] `scaffold/site/AGENTS.md` documents the flag in the sidecar schema section (same change, per CLAUDE.md) - [ ] Engine tests cover: insertable omitted, false, and server-side insert rejection ## Blocked by None - can start immediately
Author
Owner

This was generated by AI during triage.

Triage confirmed — enhancement, ready-for-agent. The issue body is the authoritative agent brief.

Verified against the codebase: html.yaml's own header comment promises exactly this picker-hiding follow-up; hidden: true exists in the element schema and is semantically distinct as described; no insertable flag exists yet anywhere in engine or web. Remember the CLAUDE.md rule: scaffold/site/AGENTS.md must be updated in the same change (already in the criteria).

> *This was generated by AI during triage.* **Triage confirmed — enhancement, ready-for-agent.** The issue body is the authoritative agent brief. Verified against the codebase: `html.yaml`'s own header comment promises exactly this picker-hiding follow-up; `hidden: true` exists in the element schema and is semantically distinct as described; no `insertable` flag exists yet anywhere in engine or web. Remember the CLAUDE.md rule: `scaffold/site/AGENTS.md` must be updated in the same change (already in the criteria).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cloonar/deckle#90
No description provided.