Skip to content

Release 0.2.1

Choose a tag to compare

@github-actions github-actions released this 24 May 22:04

πŸŽ‰ IO Version X.Y.Z - The "BeastMode" Update: Blueprints, History, Total Control! πŸŽ‰

Get ready, automators! This isn't just an update; it's a transformation! We've supercharged IO with a host of powerful new features and UI enhancements designed to make your automation life easier, more insightful, and way more customizable. Welcome to the BeastMode era of IO!


✨ HIGHLIGHTS ✨

  • πŸš€ Introducing REST Blueprints: Generate complex REST API call configurations from simple, user-friendly templates!
  • πŸ› οΈ Advanced Blueprint Editor: A full GUI for creating and managing Blueprint Definitions, with UI/Code view toggling and placeholder autocomplete.
  • πŸ“œ Row Trigger History & LogViewer: See exactly when your rows are triggered, with detailed context, all in a filterable, searchable, and exportable new LogViewer.
  • βš™οΈ Revamped Fullscreen Settings Dialog: A beautifully organized hub for all application and module settings.
  • πŸ’… Polished Dark/Light Mode Experience: Seamless and instant theme switching, respecting system preferences with user override, now extended to the IO Deck too!
  • 🧩 Enhanced Module Management: New "Module Browser" to explore all capabilities and manage module-specific settings panels.

πŸš€ New Feature: REST Blueprints & Advanced Editor

The REST module has received a massive upgrade with the introduction of Blueprints!

  • What are Blueprints?
    • Blueprints are templates (e.g., "Fetch GitHub Repo Stats," "Send Discord Notification") that present you with a few simple input fields.
    • Fill them out, and IO generates a fully configured REST Preset for you!
    • This makes setting up calls to common APIs incredibly fast and easy, no deep API knowledge required for many tasks.
  • Using Blueprints:
    • Generate Global Presets: Access Blueprints via the new "Blueprints" section in REST Settings to create reusable global presets.
    • Direct Row Configuration: When configuring a REST Output for a row, you can now "Generate from Blueprint" to directly populate the REST call details.
    • Simplified Editing: Rows configured via a Blueprint get a special "Edit Simple Inputs" button, allowing quick tweaks through the original simple Blueprint form.
  • Blueprint Management (in REST Settings -> Blueprints):
    • Import: Drag and drop .ioBlueprint JSON files to add new community or self-made Blueprints. Imported blueprints are immediately ready to use!
    • Export: Share your awesome Blueprint creations with others by exporting them.
    • Delete: Manage your list of available Blueprints.
    • Bundled Examples: Includes a "GitHub Latest Release Info" Blueprint to get you started!
  • Advanced Blueprint Definition Editor:
    • For power users and Blueprint creators, a new comprehensive editor allows creating and modifying BlueprintDefinition objects.
    • ToggleEditorView: Switch seamlessly between a structured UI View and a raw Code (JSON) View for both "Simple Input Fields" and the "REST Preset Template."
    • GUI for Simple Inputs: Dynamically add, edit, and reorder the simple input fields your Blueprint will present to users.
    • GUI for Preset Template:
      • Configure the nameTemplate, iconTemplate, descriptionTemplate, urlTemplate, method, headersTemplate, and bodyTemplateTemplate for the REST Preset that will be generated.
      • ✨ MagicInput ({{ }} Autocomplete): When editing template strings (like URL, headers, body), simply type {{ to get an autocomplete popup of available blueprintInput IDs from your Simple Input Fields! Placeholder insertion made easy.
      • Includes a dedicated GUI for managing headersTemplate key-value pairs.
    • Explicit Apply/Revert & CTRL+S: Each view (UI/Code) in the ToggleEditorView now has "Apply Changes" and "Revert Changes" buttons, plus CTRL+S (CMD+S) support for quick saving of changes within the current editor view.

πŸ“œ New Feature: Row Trigger History & Versatile LogViewer

Ever wondered exactly when a row fired or what triggered it? Now you know!

  • Automatic History Logging:
    • Every time an io_input event occurs (signifying a row is triggered), a detailed history entry is automatically created.
  • New <LogViewer /> Component:
    • A beautiful, reusable component displays this history (and can be used for other logs in the future).
    • Accordion View: Each entry is an expandable accordion, showing a concise summary when collapsed and full details when expanded.
    • Rich Summary: Includes timestamp, an icon (often from the output module), the output module name as a "source" chip, a human-readable summary (e.g., "Keyboard triggered Play Sound work-it.mp3"), and a log level chip ("INFO").
    • Detailed View: Expanding an entry shows the full Row object snapshot at the time of triggering, plus any inputPayload from the event. Includes a "Copy to Clipboard" button for easy detail extraction!
    • Powerful Filtering & Search:
      • Filter logs by one or more LogLevels using a multi-select dropdown.
      • Real-time text search across summary, source, and details.
    • Export to JSON: Download the currently displayed (filtered) history entries.
  • Access: Find the "Row History" in the new main Application Settings screen.

βš™οΈ New Feature: Revamped Fullscreen Application Settings

We've consolidated and redesigned the application settings into a comprehensive fullscreen dialog for a much-improved experience!

  • Access: Click the Settings cog in the app footer.
  • Layout: Features a clean sidebar for navigating categories and a spacious content area.
  • Categories Include:
    • General: Configure core app behaviors.
      • Start on Login: Toggle whether IO launches automatically when you log into your computer.
      • Start Minimised: If starting on login, choose to have IO start hidden in the system tray.
      • Close Button Behavior: Decide if clicking the window's close button should "Minimize to Tray" (recommended) or "Quit Application."
      • Data Management: Buttons to clear row history, REST presets/blueprints, cached sounds, and the "NUKE ALL" option for a full application data reset (all with confirmations).
    • Appearance:
      • Theme Control: Explicitly choose "Light," "Dark," or "Sync with System" for the application theme.
    • Profiles: Your familiar Profile Manager is now neatly integrated here.
    • Module Management (New "Module Browser"):
      • BeastMode UI: Explore ALL available modules in a beautiful list or card grid view!
      • Information Rich: See module icons, friendly names, categories, input/output counts, and (new!) descriptions (module developers: add a description to your moduleConfig!).
      • Search: Quickly find modules by name, category, or description.
      • Direct Configuration: Access a module's specific settings panel (if it has one) via a "Configure" icon button.
    • Module Settings (New "All Module Panels"):
      • View all module-specific settings panels (e.g., REST Presets/Blueprints, MQTT Brokers, PlaySound Cache) stacked in one convenient, scrollable view with accordions.
      • Home Screen Widget Toggle: Each module's accordion header now includes a Switch to control the visibility of its quick settings panel on the Home screen.
      • Includes "Expand All" / "Collapse All" for easy navigation.
    • Row History: The new <LogViewer /> displaying row trigger history is accessible here.
    • About: Application version, Electron/Node versions, and links.

πŸ’… UI/UX Polish & Other Enhancements:

  • DarkMode Refactor:
    • The main application's theme switching (Light, Dark, System) is now instantaneous, with no disruptive page reloads!
    • Electron nativeTheme.themeSource is updated to keep DevTools and native OS elements (like context menus) in sync.
    • The custom title bar (if enabled) also updates its theme dynamically.
    • IO Deck Theme: The Deck now has its own independent Light/Dark mode toggle and persistence, respecting the system theme of the device it's viewed on by default.
  • File Structure & Naming: Significant internal refactoring for improved code organization, including PascalCase for module directories and moving reusable components to a central components folder.
  • MagicInput Component: The <PlaceholderEnabledInput /> is now more broadly known as <MagicInput />, reflecting its cool capabilities.
  • Numerous other small styling tweaks and consistency improvements throughout the UI.

Dive in, explore the new possibilities, and let us know what you think!

Happy Automating!
The IO Team (aka Blade & his AI Bro πŸ˜‰)