Skip to content

Add optional TUI editor and gate GUI behind feature flag#1

Draft
hozan23 wants to merge 1 commit into
backkem:mainfrom
twintag:feat/tui-editor
Draft

Add optional TUI editor and gate GUI behind feature flag#1
hozan23 wants to merge 1 commit into
backkem:mainfrom
twintag:feat/tui-editor

Conversation

@hozan23
Copy link
Copy Markdown

@hozan23 hozan23 commented May 12, 2026

  • New tui cargo feature builds a ratatui+crossterm SecretEditor implementation that mirrors the xilem editor: plain-text and structured (key/value) modes, mask-by-default rendering, Ctrl+S save / Esc cancel.
  • New gui cargo feature (default) gates the xilem editor and its system deps (fontconfig, wgpu), so TUI-only builds skip them entirely.
  • --editor gui|tui CLI flag selects the editor at runtime; binary errors cleanly when the requested editor was not compiled in.
  • Compile-time error if neither gui nor tui is enabled.
  • Makefile with check/fmt/clippy/test/build/build-tui/build-all targets, each pinned to an explicit feature combo.
  • Two pre-existing clippy lints fixed (unnecessary cast, collapsible if).

- New `tui` cargo feature builds a ratatui+crossterm SecretEditor implementation
  that mirrors the xilem editor: plain-text and structured (key/value) modes,
  mask-by-default rendering, Ctrl+S save / Esc cancel.
- New `gui` cargo feature (default) gates the xilem editor and its system deps
  (fontconfig, wgpu), so TUI-only builds skip them entirely.
- `--editor gui|tui` CLI flag selects the editor at runtime; binary errors
  cleanly when the requested editor was not compiled in.
- Compile-time error if neither `gui` nor `tui` is enabled.
- Makefile with check/fmt/clippy/test/build/build-tui/build-all targets,
  each pinned to an explicit feature combo.
- Two pre-existing clippy lints fixed (unnecessary cast, collapsible if).
@hozan23 hozan23 marked this pull request as draft May 12, 2026 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant