Mingo Sidebar: My/All Chats Toggle
OpenFrame v1.0.20 - Platform Stability & AI Enhancements
Version: 1.0.20
OpenFrame v1.0.20 delivers a broad set of stability improvements, AI-powered workflow enhancements, and foundational platform upgrades across the entire stack. This release focuses on hardening the update pipeline, resolving critical agent and device management issues, and significantly improving the Mingo AI assistant experience. Technicians benefit from smarter onboarding automation, improved policy testing tools, and a more polished, consistent UI across all surfaces.
Features Added13
A new two-state toggle above the Mingo chat list lets technicians switch between their own conversations (My Chats) and all tenant-wide dialogs (All Chats). The selection persists across sessions for a consistent workflow.
Mingo Sidebar: Persistent Chat List Panel
The Mingo sidebar now displays the chat list as a persistent left panel alongside the main chat window, allowing technicians to switch between conversations without closing the current chat.
Force Restart Event for Specific Tools
A new server-side force restart event can now target a specific integrated tool (Mesh, Fleet, OpenFrame client, etc.) on a device, enabling remote restart of a stuck or misbehaving tool without restarting the entire agent.
Reboot Device Quick Action on Devices Screen
A 'Reboot Device' option has been added to the quick actions menu on the Devices screen. Technicians can trigger a remote reboot directly from the device list with a confirmation prompt to prevent accidental reboots, and device status updates in real time.
Policy Quick Query for Device
A Quick Query button on the Policy Details page allows users to run the policy's query inline against a specific device. The query syntax is pre-filled and editable, enabling fast live diagnostics without leaving the policy view.
Run Policy Query Live Against a Device
From the Policies screen, users can now run a policy's query live against a selected device on demand to see exactly what is failing, eliminating the need to recreate queries in a separate tool.
Drag and Drop Reordering for Quick Actions
Quick actions in the AI Settings editor for both AI Assistant (Fae) and Mingo can now be reordered via drag and drop. The saved order is persisted and reflected in the chat empty-state chips.
Mobile SSO Auth Pipeline
End-to-end mobile SSO login is now supported via system browser (ASWebAuthenticationSession), replacing the embedded WKWebView approach blocked by Google and Microsoft. Includes tenant discovery domain response, devTicket scoping, Redis store, and AASA configuration.
Block Registration with Disposable and Privacy-Focused Email Providers
Registration is now blocked for known disposable and privacy-focused email provider domains (e.g. Guerrilla Mail, Mailinator, ProtonMail, Tutanota). A clear error message is shown when a blocked domain is used.
Per-Customer Settings
Customer-level settings can now be configured individually, enabling more granular control over behavior and configuration on a per-customer basis.
Guardrails Per Customer
Per-customer guardrails configuration has been implemented, allowing MSPs to define and enforce specific operational boundaries for individual customers.
Client Self-Deactivation on Unrecoverable Backend Responses
When a tenant is deleted and the gateway returns terminal responses (e.g. 410 Gone), the client now recognizes these states, applies exponential backoff, and enters a self-deactivation flow - stopping all outbound calls and attempting self-uninstall.
SaaS Tenant Client Assets Token
Added client assets token support for SaaS tenant configurations, enabling secure asset delivery scoped to individual tenants.
Bugs Fixed10
Mingo Listed Archived Scripts Instead of Active Only
Mingo was returning scripts regardless of status, causing archived scripts to appear alongside active ones. The query-level filter now ensures only ACTIVE scripts are listed, keeping pagination and counts correct.
AI Assistant Chat Blocked Machine Restart on Mac
When the AI assistant chat was open, it prevented macOS from restarting or shutting down, causing the system to hang or prompt the user. The app now handles system shutdown signals correctly without blocking.
Last Activity Filter Not Working on Customers Page
The 'Last activity' filter on the Customers page had no effect on displayed results. The filter now correctly filters the customer list based on the selected last activity criteria.
Page Refreshed When Searching on Scripts Page
Typing in the search field on the Scripts page triggered a full page refresh, resetting scroll position and active filters. Search now filters results in-place without a full page reload.
Null First/Last Name for Users Registered via Microsoft SSO
Users registering or logging in via Microsoft SSO had their first and last names stored as null due to incorrect parsing of Microsoft ID token claims. Name fields are now correctly populated from given_name and family_name claims.
NAT Address Displayed Instead of Friendly Device Name
On some machines behind NAT, the device name was displayed as the NAT address instead of the actual hostname or friendly name. All devices now correctly display their friendly name.
Duplicate Device Created When Upgrading Client Older Than 0.9.6
Upgrading a client older than 0.9.6 caused a duplicate device to be created on the backend instead of reinstalling the existing one, due to missing persisted machine-info store in older versions. The upgrade path now correctly identifies and reinstalls the existing device.
Test Run and Run Now Buttons Active Without Selected Devices
The 'Test Run' and 'Run Now' buttons on the policy page were clickable even when no devices were selected. Both buttons are now disabled when no devices are selected, with an explanatory tooltip.
Mesh Deadlock Issues Causing Agent Hangs
Mesh server instances were experiencing deadlock conditions causing agents to hang or become unresponsive. The root cause related to concurrent connection handling has been identified and fixed, with additional logging added to catch recurrence.
Chunk Processing Issue Causing Incomplete Operations
Chunks were not being processed correctly, potentially causing data loss or incomplete operations. The root cause has been identified, fixed, and logging/monitoring added to prevent silent failures.
Improvements27
OpenFrame CLI Signed for macOS and Windows
The OpenFrame CLI is now code-signed using Mac Developer and Azure Windows keys, matching the signing process used for the OSS tenant and improving trust and installation reliability on both platforms.
Grafana Shared Dashboards Restructured for Compact View
All Grafana shared dashboards have been restructured for a more compact view, with the overall overview dashboard reorganized for improved readability and navigation.
Client Update Prioritized Before Tool Updates
The OpenFrame client (core agent) update is now guaranteed to complete before any tool updates (Mesh, Fleet, etc.) begin, ensuring the base client is on the correct version before dependent tools are updated.
Cascade Update Process Migrated to Ratchet Approach
The cascade update process now uses a ratchet approach - each entity records the last-applied version, and updates only move forward, preventing redundant or out-of-order updates when multiple changes happen in quick succession.
Title Block Responsive Button Layout
The title-block component now wraps action buttons to a second row only when the title is long enough to cause overflow. Short titles keep buttons inline on the same row on both desktop and tablet.
SSO Buttons Moved to Initial Login and Sign Up Screens
Google and Microsoft SSO provider buttons are now visible on the initial login and sign up screens, removing the extra 'Continue' step and allowing users to choose SSO login immediately on page load.
Redirect to Onboarding After Login if Not Completed
Users who have not completed or skipped onboarding are now automatically redirected to the onboarding flow after login instead of landing on the dashboard, ensuring a smoother first-run experience.
Autocomplete Onboarding Steps Already Completed
The onboarding flow now checks the current account state on load and automatically marks steps as complete if the underlying actions have already been performed (e.g. customers exist, devices added), avoiding redundant re-completion.
Centralized Typed Registry of Internal App Routes
A single source of truth for navigation has been introduced. Paths, dynamic IDs, and query parameters (tabs, filters) are now type-checked, eliminating hand-written path strings scattered across the app.
Align Empty State with New Ask Mingo Section
Empty states across relevant pages have been updated to align with the new Ask Mingo section design, ensuring consistent layout, copy, and call-to-action patterns.
Dashboard Aligned with Design and DashboardCard Component Reused
The main dashboard layout has been realigned with the latest design specs. Ad-hoc card implementations have been replaced with the shared DashboardCard component, fixing spacing, sizing, and styling inconsistencies.
Fonts and Typography Fixed Across the System
Font sizes and typography have been corrected across all tables, page headers, search inputs, dashboard sections, and device views to match design specifications and improve visual consistency.
Guide Mode Hub Integration Removed from Mingo Sidebar
The guide mode hub integration has been removed from the Mingo sidebar. Related components, routes, and API calls have been cleaned up with no dead code or broken references remaining.
Native Scrollbars Restored - Custom Scrollbar Removed
The custom OverlayScrollbars implementation has been removed across the platform. All pages and containers now scroll natively using scrollbar-width: thin and scrollbar-color from ODS design tokens, eliminating layout jumps caused by custom track styling.
QuickActionWall: Fixed Brick-Row Distribution and Layout
The QuickActionWall component now distributes chips evenly across brick rows before padding, caps agent surface row counts correctly, and adapts the per-row pad target to the measured container width.
Dashboard Loading Skeletons Updated and Page Jumps Fixed
Loading skeletons on the main dashboard (Devices, Tickets, Customers overviews) have been updated and layout/page jumps caused by content shifting when data loads in have been resolved.
Tool Uninstall Command Bounded with Timeout and Output Streaming
The tool uninstall command now has a configurable timeout and streams stdout/stderr output in real time. Timeout expiry is handled gracefully - the process is killed and the failure is reported clearly.
Log Details Moved to Log Preview Panel
Log detail information has been migrated into the log preview panel, allowing users to access full log context directly from the logs list without navigating to a separate details view.
Redirect to 'Check Your Email' Page After Email Registration
After successful email registration, users are now redirected to a 'Check your email' confirmation page with clear instructions to check their inbox, replacing the previous behavior of staying on the registration screen.
Tool Launch-Failure Log Spam Throttled in openframe-client
The supervision loop in openframe-client now throttles repeated log entries when a managed tool's binary is missing, preventing log flooding (previously ~45 lines/min per broken tool) that was exhausting the Loki export window and obscuring other issues.
Policy Testing UI Updated
The test button has been moved directly below the policy query syntax input. Clicking it reveals an inline block with a device selector, start time, execution timer, and Run Test, Stop Test, and Test Again action buttons.
Monitoring: Default Empty States for Policy Devices Table and Query Assigned Devices Tab
The Devices table on policy details and the Assigned Devices tab on query details now display the standard table empty state (device icon, 'No devices assigned' title, hint line) instead of a plain one-line message.
WebView Installation Check Added to Client Doctor Diagnostics
The client doctor diagnostics now include a check for WebView installation, reporting the detected version (or absence) and flagging a clear pass/fail status for the WebView requirement.
Unified Header Component Across All Projects
The header component has been consolidated into a single shared implementation in the ODS shared library. All projects now use the unified header, eliminating visual inconsistencies and duplicated code.
Tactical RMM Repositories Archived and Images Removed
All TacticalRMM-related repositories have been archived and associated container images removed following the migration to OpenFrame's own RMM platform.
Rust Project Tests Restructured to Best Practice Module Layout
All tests in the Rust project have been moved into the test module following the idiomatic Rust best practice structure for improved maintainability and discoverability.
Test Configurations Extended to Support Pipeline Defaults
Test configurations now support default settings at the test-pipeline level. Pipelines can inherit defaults with per-pipeline or per-test overrides, with defined precedence rules and validation for default values.

Founder and CEO
Hey everyone, I'm Michael - founder and CEO of Flamingo. Before this, I built Vicarius, a cybersecurity company focused on vulnerability remediation, where I raised over $60M in funding. Working closely with service providers through that journey, I saw firsthand how MSPs were losing money to vendor payouts and inefficient systems - and that's when the idea for Flamingo clicked. I set out to build an open-source platform that dramatically increases MSP margins while helping them deliver better service to their clients.