Skip to content

Conversation

@InfiniteTabs
Copy link
Member

@InfiniteTabs InfiniteTabs commented Oct 14, 2025

This pull request introduces a new "Stack Builder" feature to the TUI application, allowing users to interactively build, preview, and save infrastructure stacks composed of multiple modules. The main changes include new state management for the stack builder, keyboard event handling for stack builder interactions, UI rendering updates, and integration into the main application flow.

Stack Builder Feature Implementation:

  • Added a new StackBuilderState to App for managing stack builder interactions and state. (cli/src/tui/app.rs, cli/src/tui/state/stack_builder_state.rs)
  • Implemented async methods in App for opening the stack builder (loading all modules) and saving the generated stack YAML to files, with error handling and UI feedback. (cli/src/tui/app.rs)

Keyboard Event Handling:

  • Added a new StackBuilderHandler to handle all key events within the stack builder, including navigation, module management, variable configuration, preview, and clipboard actions. (cli/src/tui/events/stack_builder_handler.rs, cli/src/tui/events/mod.rs, cli/src/tui/handlers.rs)
  • Registered Ctrl+N as a shortcut to open the stack builder from the stacks view. (cli/src/tui/events/main_handler.rs, cli/src/tui/renderers/common.rs)

UI Rendering Updates:

  • Integrated the stack builder into the main UI rendering logic, displaying it as a fullscreen overlay when active, and handling loading overlays appropriately. (cli/src/tui/ui.rs, cli/src/tui/widgets/mod.rs)

These changes collectively provide a robust, keyboard-driven workflow for building and saving infrastructure stacks in the TUI application.

@InfiniteTabs InfiniteTabs added the enhancement New feature or request label Oct 14, 2025
@InfiniteTabs InfiniteTabs force-pushed the feat/add-stack-generator branch from ff05851 to 4b27142 Compare October 15, 2025 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants