Release Notes: Tag exclusion filters, custom lifecycles, and inline properties · June 13, 2026
Tag exclusion filters and custom lifecycles. Manage dynamic quote properties and access generated documents. Includes 18 backend fixes and improvements.
New Features
- Tag Exclusion Filters: You can now explicitly exclude specific plans, assignments, or resources from the planning grid using the new “Exclude Tags” filter.
- Saved Exclusions in Views: Custom Views now fully support saving and reloading your excluded tag configurations alongside your standard filters.
- Quote Documents Tab: You can now view and access generated documents directly from a new “Documents” tab within the specific quote’s workspace.
- View Quote Navigation: Added a “View Quote” button to the document detail screen to instantly jump to the document’s originating quote.
- Quote Indicators: The documents list now displays the linked quote’s name alongside the generation date, making it easier to identify specific proposals.
- Inline Quote Item Properties: You can now expand individual quote line items to add and manage custom dynamic properties directly from the quote editor. Use the global toggle in the table header to expand or collapse properties for all items at once.
- Custom Lifecycles: Administrators can now define custom lifecycles to enforce strict status workflows and transitions across records (like engagements and quotes).
- Dynamic Lifecycle Defaults: The backend now automatically ensures only one default status exists per lifecycle. If a new default is set, previous defaults are automatically unmarked.
- Multi-Collection Lifecycles: A single lifecycle can now be mapped to multiple collections simultaneously, ensuring consistent statuses across different types of records.
- Automated Initial Status: Newly created records are now automatically assigned their default status by the backend lifecycle engine.
- Strict Status Enforcement: Client-side modifications to the
statusfield are now strictly blocked by Firestore security rules. Statuses must be updated via approved lifecycle transitions. - Status Transitions API: Status changes are now securely processed through a dedicated backend callable function, ensuring robust validation of all lifecycle transitions.
- Algolia-Powered Engagements: The main Engagements list screen has been fully migrated to use Algolia natively instead of database queries, providing faster loading, typo-tolerant search, and improved filtering capabilities directly from the table.
- Secure Dashboard Metrics: Dashboard stat cards (Total Accounts, Active Engagements, Pending Quotes, Total Value) now automatically enforce Tag-Based Access Rules (ABAC). Users only see totals and counts for the records they have permission to access.
- Mapping Field Autocomplete: Complex mapping fields in Settings (like Auto Numbering and Tag Category Restrictions) now feature intelligent autocomplete dropdowns for selecting valid collections and tag categories.
- Tag Category Restrictions: Redesigned the Tag Category Restrictions interface to be a fully interactive, chip-based mapping tool instead of a static display.
Fixes & Improvements
- Document Loading States: Regenerating a document now displays a clear loading indicator and prevents duplicate submissions.
- Lifecycle Deletions: Automated backend cleanup now reliably deletes all associated transition paths when a lifecycle status is removed to maintain workflow integrity.
- Graph Constraints: Added proper screen bounds constraints to the lifecycle graph editor to prevent nodes from being dragged off-screen.
- Document Sorting: Added a new database composite index to optimize the loading and sorting of generated documents by last modified date and linked quote.
- User Claims Logging: Added local device logging for user authentication claims to assist administrators with access and permissions troubleshooting.
- Lifecycle Data Architecture: Flattened lifecycle statuses and transitions into root collections to optimize backend query performance and support scalable, cross-module workflows.
- ABAC Evaluation: Fixed an issue where Tag-Based Access Rules (ABAC) failed to correctly map user tag category IDs across collections, ensuring proper access restrictions across the application.
- Mapping Validation: Added robust inline error handling for complex mapping fields to prevent saving invalid or empty configurations.
- Secure Search Enhancements: Upgraded the Algolia key generator to properly evaluate multiple tag categories mapped to a single collection.
- Resource Planning Toolbar: Moved the Unassigned Roles button to the main planning grid toolbar for quicker access and improved visibility alongside sort and filter actions.
- Resource Planning: Added clear error messages and robust UI handling when loading resource plans, capacities, and lifecycles to prevent silent failures.
- Role Resolution: Optimized backend security rules to fall back to the user’s organization profile for role verification if authentication token claims are delayed.
- Integration Mapping: Fixed an issue on the integration mapping screen to ensure form fields populate correctly.
- System Read Access: Fixed an issue where users could be denied read access to global tag categories and roles, ensuring dropdowns and search filters load correctly.
- Security Rules: Optimized Firestore security rules for ABAC and RBAC to use early returns instead of complex conditionals, improving evaluation speed and reliability. Fixed an issue where rules could fail to identify the correct collection name for nested documents and subcollections.
- Security Bloc: Fixed an issue where the security bloc failed to resolve custom roles if they were provided as a full document path rather than a simple ID.
- Lifecycle Default Status: Fixed a boolean evaluation issue in the backend that occasionally prevented default lifecycle statuses from being applied.
- Algolia Table Filtering: Improved Algolia table filtering logic when viewing scoped engagement lists for specific accounts.
Need more help?
Our support team is available to assist you.
Contact Support