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
TUIkit lacks terminal-meaningful cross-cutting SwiftUI behaviors: accessibility labels/values/hints/hidden state, .searchable, .refreshable, keyboardShortcut, Link, Toolbar families, ScenePhase, OpenURLAction, and DismissAction. Without them, controls and navigation cannot expose a consistent semantic model or application action flow.
Application command menus are already tracked by issue #5 and should consume the same action/shortcut infrastructure rather than being reimplemented here.
Proposed solution
Add an internal semantic tree populated by SwiftUI-compatible accessibility modifiers and control defaults.
Add searchable state/presentation for lists, tables, navigation, and command palettes.
Add refresh actions with task identity, cancellation, and visible progress semantics.
Semantic snapshots expose stable labels, values, hints, roles/states, and hidden behavior for all public controls.
Search filters/queries, focus, cancellation, and navigation are deterministic.
Refresh runs once per trigger, inherits actor isolation, and cancels on identity removal/shutdown.
Shortcut conflicts have deterministic priority and are testable without a real terminal.
Scene/open/dismiss actions and Link are injected per app and have documented unsupported-platform behavior.
Toolbar content composes with Scene/commands/status-bar placement and preserves stable action identity.
Swift 6.0 macOS/Linux build, tests, lint, and DocC are warning-free.
Dependencies
Depends on runtime #8, event loop #9, Scene composition #19, data flow #18, focus #22, controls #23, and navigation #31. Command rendering remains in #5.
Parallelization
Accessibility semantics and action/environment infrastructure can proceed in parallel. Search/refresh integration follows the relevant containers.
Commit structure
Split this issue into small, thematic, independently revertible commits wherever the work can remain coherent.
Every commit must build and keep its applicable tests/gates green. Do not commit an intentionally failing regression test; use local/known-issue characterization or land the test with the smallest fix.
Keep characterization/fixtures, mechanical renames or moves, semantic changes, and documentation/migration updates separate when each step remains green.
The issue boundary is not a commit boundary; multiple commits are expected for independently reversible changes.
Problem
TUIkit lacks terminal-meaningful cross-cutting SwiftUI behaviors: accessibility labels/values/hints/hidden state,
.searchable,.refreshable, keyboardShortcut,Link, Toolbar families, ScenePhase, OpenURLAction, and DismissAction. Without them, controls and navigation cannot expose a consistent semantic model or application action flow.Application command menus are already tracked by issue #5 and should consume the same action/shortcut infrastructure rather than being reimplemented here.
Proposed solution
Link, ScenePhase, OpenURLAction, and DismissAction through the per-app Scene/Environment model with portable terminal behavior.ToolbarContent,ToolbarItem, applicable placements, and toolbar modifiers mapped to status-bar and command regions without duplicating Enhancement: Implementation of an Application Menu System #5.Acceptance criteria
Dependencies
Depends on runtime #8, event loop #9, Scene composition #19, data flow #18, focus #22, controls #23, and navigation #31. Command rendering remains in #5.
Parallelization
Accessibility semantics and action/environment infrastructure can proceed in parallel. Search/refresh integration follows the relevant containers.
Commit structure