Repository navigation
[CTX-1546] docs(ui): amend accepted Plugin API v1 Lua surface contract (statusline removal, overlay focus capture, deferred pointer routing) - #181
Merged
Conversation
…ntract Reconcile the accepted Plugin API v1 Lua Surface RFC (bitty issue #2676, OQ-UI-CONTRACT-AMENDMENT) with what shipped: the closed slot set is the seven names terminal|top|bottom|left|right|tabline|overlay (statusline removed in bitty CTX-1140, PR #1962, refused at the bridge as E_UI_COMPONENT_INVALID, status composes on bottom), the overlay wording separates never-focusing slot content from the Core-owned W-01 capture surface (bitty.ui.overlay.* under ui.overlay.focus; presentation-only bitty.ui.overlay.show under ui.rich+ui.overlay), overlay pointer routing stays deferred, and the authoritative slots, gates, error codes, unchanged 1.0.0 version line, and migration impact are recorded. Candidate token namespaces, one-surface-per-edge, terminal-wide budgets, and headed evidence are not promoted.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Amends the accepted Plugin API v1 Lua Surface contract through the owner amendment process (bitty-terminal/bitty#2676, CarryCtx task CTX-1546, amendment ref
OQ-UI-CONTRACT-AMENDMENT). The accepted text is not rewritten silently: every change is recorded as a dated amendment in the RFC Status section, and the decision record lands in bitty-docs ADR-0009 (sibling PR).Reconciled with what shipped
bitty.ui.mountclosed set is nowterminal | top | bottom | left | right | tabline | overlay(seven names).statuslineleft the set (Core CTX-1140, bitty PR #1962): the bridge slot check refuses the name exactly like any unknown slot withE_UI_COMPONENT_INVALID, and status presentation composes on thebottomedge band. The plugin SDK dropped the retired name (CTX-1570).PanelProvider. Focus and transient input capture live in the separately acceptedW-01Overlay Input Capture Contract (accepted 2026-10-03): Core-ownedbitty.ui.overlay.*(acquire / update / release / show / hide / poll) under the v2 capabilityui.overlay.focus(deny-by-default, never implied byui.overlay), plus the presentation-onlybitty.ui.overlay.show(bitty PR #2406, gatesui.rich+ui.overlay, one presentation overlay per window, no focus grant).ui.rich/ui.overlay/ui.overlay.focus; stable codesE_UI_COMPONENT_INVALID,E_UI_UNAVAILABLE,E_UI_CLAIM_REQUIRED,E_UI_ALREADY_CAPTURED,E_UI_NOT_OWNER;bitty.api_versionremains"1.0.0"(project line0.0.x, pre-stability, so no major-version reset) with migration notes (bottom-band status composition; tolerateE_UI_UNAVAILABLErefusals; opt-inui.overlay.focusgrants).What is NOT promoted (per the issue)
Candidate token namespaces, one-surface-per-edge, terminal-wide budgets, headed evidence, and overlay pointer routing remain candidate/deferred and gain no v1 contract in this amendment.
Files
sdk/plugin-api-v1-lua-surface-rfc.md— Status amendment block, slot set, overlay bullet, tabline/availability error wording, LUA-OQ-11 disposition row.specifications/plugin-platform-rfc.md— host-namespace UI bullet slot list synced.sdk/reference/ui.md— "Accepted RFC divergence" section becomes "Accepted contract amendment record"; References synced.extensibility/plugin-ui-slot-inventory-candidate.md— only the status cross-reference sentence (the draft candidate page is otherwise untouched).Evidence
Read-only implementation evidence at
bitty@1ecfa2e9: slot vocabulary and refusal incrates/bitty-lua/src/ui.rs(UiSlot, unknown-slotE_UI_COMPONENT_INVALID), capture surface and codes incrates/bitty-lua/src/host.rs(ui.overlay.focusgating,E_UI_ALREADY_CAPTURED/E_UI_NOT_OWNER), claim gateE_UI_CLAIM_REQUIREDincrates/bitty-runtime/src/plugin_runtime/services.rs.Precursors already merged: CTX-1419 (bitty PRs #2385/#2392 implementation parity), CTX-1544 factual sync (bitty-plugins-docs #174/#175), CTX-1570 SDK slot drop.
Decision record: sibling PR in
bitty-terminal/bitty-docs(ADR-0009 amendment blocks for LUA-OQ-7/LUA-OQ-11 + decision register row).Docs half of bitty-terminal/bitty#2676.