Release Notes: Visual progress bars and project completion roll-ups · July 17, 2026

Project management progress tracking. View visual progress bars, attach files to notes, and automate lifecycles. Includes 131 fixes and platform improvements.

These changes are currently in testing and will be published in the next release.

New Features

  • Visual Progress Bars: Project plans and parent tasks now display visual progress bars in the UI to easily track completion percentages at a glance.
  • Project Note Attachments: You can now pick and attach files (PDFs, images, spreadsheets) directly to project notes. Attachments are securely uploaded and displayed as clickable chips within the note history.
  • Lifecycle Automation Rules UI: Administrators can now create and manage status automation rules directly from the Lifecycle detail screen. Define trigger fields, operators, target statuses, and prerequisites without writing code.
  • Project Plan Progress Roll-up: The overall Project Plan now automatically calculates and syncs its total percent completion based on the average progress of its top-level tasks.
  • Inline Task Statuses: You can now view and update a project task’s status directly from the project plan grid using the inline lifecycle status dropdown indicator.
  • Parent Task Dependencies: Dependencies applied to a parent task now automatically cascade to all nested sub-tasks, ensuring no child work begins before the parent’s prerequisites are met.
  • Top-Down Task Cascading: If a parent task’s start date is pushed forward by a dependency, all nested sub-tasks that start before the new date are automatically pushed forward to maintain schedule integrity.
  • Lifecycle Automations: Lifecycles can now include automated rules that dynamically transition a record’s status based on changes to specific fields, bypassing the need for manual transitions.
  • Automated Task Statuses: Project plan tasks now feature standard statuses (Not Started, In Progress, Completed, Cancelled) that automatically transition based on the task’s logged progress percentage.
  • Universal Entity Engine: Consolidated backend document creation and update triggers to optimize performance for auto-numbering and lifecycle automations.
  • Visual Task Hierarchies: Gantt chart task bars now dynamically scale based on their nesting depth. Sub-tasks become visually thinner and slightly more transparent, with darker borders to maintain visibility.
  • Automated Note Counts: A new backend trigger automatically calculates and tracks the number of notes on each project plan task, surfacing active discussions directly on the item.
  • Project Gantt Charts: Project plans now feature an interactive Gantt chart tab. You can visualize timelines, drag and drop to move or resize tasks, and dynamically draw dependencies between items.
  • Real-Time Project Tasks: Project plan task lists and Gantt charts now stream updates in real-time. Changes made by colleagues instantly appear on your screen without requiring a page refresh.
  • Gantt Chart Toolbar: Added a new expanding toolbar to the Gantt view, allowing you to easily switch between moving/resizing tasks and drawing new dependency links.
  • Fractional Task Durations: Project plan tasks now fully support fractional durations (e.g., 0.5 days or 1.5 weeks), allowing for precise scheduling of partial-day efforts.
  • Engagement Project Plans: Added a dedicated Project Plans tab to the engagement workspace to view and create delivery timelines directly.
  • Quote Project Plan Generation: You can now instantly create a new project plan directly from a quote’s top action menu. The new plan is automatically linked to the quote.
  • Quote to Project Plan Sync: When you link a project plan to a quote, the system automatically imports the quote’s sections as project plan tasks, preserving their names, hierarchy, and descriptions.
  • Project Tasks Terminology: Renamed “Items” to “Tasks” across the Project Management module to align with standard project management terminology.
  • Inline Assignees: You can now search and assign resources directly to project plan tasks using the new inline Assignee column.
  • Parent Task Constraints: Start dates and durations for parent project tasks are read-only, as they are strictly calculated from their nested sub-tasks.
  • Inline Task Navigation: You can now press Tab or Next on your keyboard to quickly jump between the Name, Duration, and Description fields when editing project tasks inline.
  • Task Reordering: You can now reorder project plan items using the new Move Up and Move Down actions in the row menu. Task order is preserved accurately within their parent hierarchy.
  • Inline Task Creation: Added dedicated icon buttons directly on task rows to quickly add siblings or child sub-tasks, replacing the global create button.
  • Business Day Auto-Scheduling: Task durations specified in days now automatically skip weekends to calculate business days only.
  • Project Plan Date Roll-ups: The overall Project Plan and its parent Engagement now automatically sync their start and end dates to match the earliest start and latest end dates of their underlying tasks.
  • Nested Project Tasks: The Project Plan Items screen now features a collapsible tree view, allowing you to easily manage complex hierarchies of parent and sub-tasks.
  • Inline Task Editing: You can now edit task names, durations, start dates, and descriptions directly inline on the project plan grid.
  • Inline Task Dependencies: Managing task dependencies is now done directly inline on the project plan row using a fast autocomplete search and visual chip list.
  • Global Plan Creation: Creating a project plan from the global Project Management screen now prompts you to select a parent Engagement using an Algolia search dialog.
  • Algolia Project Search: Global project plans and individual tasks are now natively indexed and searchable via Algolia for instant, typo-tolerant filtering.
  • Default Task Durations: New project tasks now default to a duration period of days instead of hours.
  • Global Project Management: A new Project Management section has been added to the main sidebar, allowing you to view and manage all project plans and individual tasks across your entire organization from a single, centralized screen.
  • Project Management: Added a new Project Management module to Engagements. You can now build Project Plans with start and end dates, and link them to quotes.
  • Flexible Task Durations: Project plan tasks and parent roll-ups now fully support durations in hours, days, weeks, months, or years. The auto-scheduling engine automatically converts and calculates dates based on your selected period.
  • Strict Auto-Scheduling: Project plan tasks now utilize strict forward-calculation. Defining a start date and duration automatically calculates and enforces the exact end date.
  • Dependency Cascading: When a project task’s end date changes, any dependent tasks automatically shift their start dates to match, creating a dynamic waterfall timeline.
  • Parent Task Roll-ups: Parent project tasks now automatically calculate their overall start and end dates based on the earliest start and latest end dates of their nested sub-tasks.
  • Project Tasks & Milestones: Within Project Plans, you can create hierarchical tasks (items) with specific durations, assignees, and dependencies, and mark key checkpoints as milestones.
  • Project Notes: Team members can now add task-specific notes directly to project plan items to capture execution updates and blockers.
  • Project Note Counts: A new background engine automatically tracks note counts on project plan tasks and rolls them up to the parent project plan for instant visibility into active discussions.
  • Collapsible Template Details: You can now easily expand and collapse the Template Details header section in the Document Template editor to maximize your screen space for code editing.
  • Dynamic AI Gemini Input: The floating ‘Ask Gemini’ box in the document template editor now expands automatically based on keyboard focus and active typing activity, alongside mouse hover.
  • HTML Preview Pausing: Live HTML previews are now automatically paused and grayed out with a clear message while the AI feedback input is active (focused/typing) or dialogs are open, significantly improving editor performance.
  • Selective AI Metadata Updates: The Document Templating AI feedback loop now precisely evaluates whether your request requires updates to quotes, engagements, snippets, or data dictionaries, and concurrently runs only the necessary expert agents instead of a single specific one.
  • Data Dictionary AI Feedback: You can now explicitly request the AI to modify repeatable custom properties (Data Dictionaries) via the document templating feedback loop.
  • Full Width Code Editor: The raw HTML code editor now maximizes available space and expands seamlessly within its container.
  • Manual HTML AI Editing: The interactive AI feedback loop now supports manually written HTML templates. You can use the floating ‘Ask Gemini’ box to request AI modifications for raw HTML code, bypassing the initial generation step.
  • Strict AI Feedback Verification: The Document Templating QA agents now explicitly cross-reference generated HTML against user feedback, rejecting updates if the developer agent fails to fully implement requested layout changes.
  • Optimized AI Feedback Routing: The interactive AI feedback loop now intentionally bypasses time-consuming visual QA when processing HTML layout fixes, and skips QA entirely for quote, engagement, or snippet updates. This significantly accelerates the feedback cycle while still enforcing HTML syntax verification.
  • Document Template Editor: The document template screen now features a responsive side-by-side (desktop) or tabbed (mobile) layout for the original document, HTML editor, and live HTML preview.
  • Responsive Code Editor: The HTML code editor now automatically expands to fill the available vertical space in the document template workspace, eliminating fixed line limits.
  • Targeted Section Regeneration: When requesting HTML fixes via the AI feedback loop, the agent now explicitly extracts the specific section name from the available document outline in your prompt, allowing the orchestrator to selectively regenerate only the targeted section instead of the entire document.
  • Selective Section Regeneration: When QA identifies errors in specific document sections, the orchestrator now selectively regenerate only the failed sections rather than the entire document, improving reliability and generation speed.
  • AI Hallucination Prevention: The document templating pipeline now automatically pre-fetches section blueprints, extracted assets, and global CSS before agent execution, injecting them directly into the context to eliminate LLM tool-calling hallucinations.
  • Visual Layout Analysis: The Document Templating Developer agent now actively analyzes the original document’s visual layout to create a structural blueprint before generating HTML.
  • Scoped CSS for Unique Sections: While the Stitcher agent handles global styling, Developer agents can now generate scoped CSS for highly unique layouts (like cover pages) to ensure precise formatting.
  • Automated Asset Insertion: Developer agents now automatically retrieve extracted assets (like logos and graphics) and insert them into the generated HTML.
  • Semantic HTML & Global CSS: AI document template generation now strictly separates structure from styling. Developer agents generate bare-bones semantic HTML with class names, while the Stitcher agent acts as the global CSS stylist to ensure consistent layouts across the final document.
  • Source Styling Extraction: The Document Templating Stitcher agent now analyzes the original PDF to extract a global CSS stylesheet matching its exact typography, colors, and layout, applying it directly to the generated template for a perfect visual match.
  • Semantic Quote Rendering: The AI Document Templating Developer agent now renders pricing tables and quotes using semantic div structures with clear class names instead of hardcoded heading tags.
  • Dynamic Theme Support: The interactive AI workflow graph now automatically respects your system’s light and dark mode preferences.
  • Strict Content Preservation: The Document Templating Developer agent is now strictly prohibited from generating raw text or narrative paragraphs, ensuring it only builds structural HTML/CSS around extracted Jinja tags.
  • Optimized Section Stitching: The Document Templating Stitcher agent now uses a highly efficient, automated injection tag (__INJECT_SECTIONS_HERE__) to compile final HTML documents, removing the need for manual HTML block retrieval and preventing content corruption.
  • Interactive AI Workflow Graph: The Document Templating AI now features an interactive, zoomable directed graph widget to visually track generation progress and active agents.
  • Agent Tracking UI: The Document Templating AI workflow graph now intelligently groups complex sub-agents (like QuoteTemplateAgent or SnippetAgent) into unified parent steps (e.g., Metadata Workflow) for cleaner visual tracking.
  • Explicit QA Corrections: When the QA agent rejected generated HTML, the exact rejection feedback is now explicitly fed back into the generation prompt to strictly enforce exact corrections.
  • Inline AI Summaries: AI generation summaries and error messages now display inline seamlessly alongside the workflow graph rather than in separate pop-up dialogs.
  • Refined QA Routing: The Document Templating QA sub-workflow routing has been optimized to ensure visual and HTML QA agents cleanly terminate upon rejection.
  • Data Dictionary Generation: When generating document templates, you can instruct the AI to automatically create or modify Custom Properties (Data Dictionaries) to match your new template.
  • Selectable AI Text: Summaries and error messages in the Document Templating AI workflow are now rendered as selectable text, making it easy to copy diagnostic output.
  • Strict AI Quality Assurance: The Document Templating QA agents (HTML and Visual) no longer attempt to fix formatting or syntax errors themselves. Instead, they strictly evaluate the generated output and route detailed rejection feedback back to the Developer agent for accurate corrections.
  • Resilient Section Orchestration: The AI Document Templating orchestrator now automatically reruns upon session resumption and extracts raw HTML blocks more reliably by processing sub-agents tasks in parallel.
  • Parallel HTML Generation: The Document Templating AI now builds template sections concurrently to ensure complete reliability and significantly faster extraction. An orchestrator splits the document outline into parallel generation and QA tasks, and an upgraded Stitcher agent compiles the output. The Stitcher can now automatically route requests for missing metadata or assets during final compilation.
  • Live Template Context: You can now link an Example Engagement and Example Quote to your Document Templates. The AI generator uses these to test data rendering against your actual records instead of generic mock data.
  • Forced AI Restarts: You can now explicitly force a complete pipeline restart for the Document Templating AI, ensuring generation begins from a completely clean state.
  • AI Compilation Testing: Users can now explicitly request the Document Templating AI to run data rendering and compilation QA tests via the interactive feedback loop without modifying the underlying template structure.
  • Clean AI Sessions: Initiating AI document template generation now prompts you to “Start Fresh,” automatically clearing any stale active AI sessions to ensure a clean state. The manual “Clear Session” button has been removed.
  • Template Evaluation Errors: When generating a document, the system now surfaces a detailed error dialog if the template contains invalid variables or broken logic, allowing you to fix the template before proceeding.
  • Jinja Syntax Verification: The Document Templating Developer and QA agents now use advanced AST parsing with a custom variable visitor to extract deeply nested variables from Jinja2 templates, proactively validating schema references to catch errors before final evaluation.
  • AI Template Data Rendering Tests: The Document Templating QA agent now performs a full data rendering test of the generated HTML against actual engagement mock data. This ensures the template compiles successfully and proactively catches Jinja evaluation errors before finalizing.
  • AI Schema Validation: Extracted Jinja variables are now strictly cross-referenced against the live data schema by Developer and QA agents. This eliminates hallucinated properties (like referencing non-existent fields) before finalizing templates.
  • Strict Template Validation: The Document Templating AI now strictly enforces allowed root objects (engagement, account, contact, org, profile, quote, snippet) and prevents invalid deep chaining of customData properties to eliminate payload errors.
  • Interactive Template Feedback: The Document Templating AI now features a Feedback Agent. After the initial generation summary, the workflow pauses to await user feedback. The agent intelligently analyzes change requests and routes them to specialized expert sub-agents for quotes (pricing and rates), engagements (form fields), snippets (reusable text), visual layout (HTML), or schemas.
  • Strict AI Snippet Formatting: The Document Templating AI now strictly enforces the aiHtml snippet type for large structural sections like Deliverables and Assumptions to guarantee complex formatting preservation.
  • AI Snippet Mapping Rules: The AI document templating workflow now strictly maps any HTML content and long text to AI snippets. It enforces full content coverage by mapping every major section without summarizing or omitting content. Short static wording (like header labels) is explicitly not mapped to snippets.
  • Fixed Fee Quote Items: Pricing tables, financial calculations, fixed fees, and total project costs are mapped directly into Quote Templates as explicit line items, never into snippets or custom data. Developer agents are strictly instructed to iterate over structured quote.sections when rendering these tables.
  • Dedicated QA Agents: The Document Templating QA process has been split into dedicated HTML QA and Visual QA agents for improved evaluation and visual verification.
  • Snippet Root Objects: The snippet and snippets objects are now supported as allowed root objects in document merge payloads.
  • AI Generation Tracking: The Document Templating AI dialog now displays real-time execution steps and progress statuses (e.g., “Executing tools and analyzing document…”). The UI features constrained, responsive sizing that adapts to smaller screens.
  • Manual Integration Syncs: Administrators can now manually trigger inbound integration runs directly from the mappings screen. Use “Run Now” to process recent changes without clearing the history, or “Refresh & Run” to force a full re-sync of all external records from the beginning.
  • AI Workflow Summary: The Document Templating AI workflow now concludes with a dedicated Summary Agent that provides a comprehensive conversational overview of all database modifications made during the session, including new templates, snippets, and data dictionaries.
  • AI Sub-Agents: The metadata extraction phase of the Document Templating AI has been rebuilt to run in parallel using specialized sub-agents (Engagement Templates, Quote Templates, Snippets, and Data Dictionaries), drastically improving speed and accuracy.
  • Advanced Quote Formulas: The quote template formula engine now supports dynamic item names (prefix with =), tiered lookups via tier(), and catalog ID lookups via product() and get_bitmask().
  • Quote Editor Navigation: Added a “Close Quote” button to the quote editor’s sidebar to quickly return to the parent engagement workspace.
  • Resource Plan Search: You can now search for specific resources or plans by name directly within the resource planning grid using the new expanding search bar in the toolbar.
  • Snippet Search: The Snippets screen now natively supports fast, full-text Algolia search directly from the list.
  • Mobile Table Headers: On mobile devices, the search bar and filter controls are now integrated directly into the list screen headers for a cleaner layout and easier access.
  • Mobile Search Clear: Added a quick-clear (X) button to search bars on mobile list screens to easily reset your search results.
  • Quote Template Recurring Fields: You can now define an optional “Repeat” value (e.g., “monthly”, “annually”) on both sections and individual line items within Quote Templates.
  • Quote Table Scrolling: Quote tables (including templates) now support horizontal scrolling for large pricing structures, preventing layout constraints on smaller screens.
  • Optimistic Quote UI: Newly created quote sections and items now remain visible instantly, preventing them from temporarily flickering or disappearing while syncing with the backend.
  • Session Management CLI: A new delete_session.py management script allows administrators to cancel or delete stuck ADK AI agent sessions from Google Cloud Vertex AI directly via the command line.
  • Global Saving Indicators: All major list and table screens (Users, Roles, Data Dictionaries, Snippets, Quotes, Items, Discounts, Resource Plans) now feature a “Last Modified” column. This indicator displays a real-time spinning progress circle whenever a background save is actively processing for that record.
  • HTML Code Editor: The HTML content field in Document Templates has been upgraded to a dedicated code editor, providing an improved developer experience for configuring template markup.
  • Code Editor Search: Pressing Cmd+F (Mac) or Ctrl+F (Windows) while text is highlighted inside the document template HTML code editor now automatically populates the search field with your selection.
  • Example Document Uploads: You can now upload reference Word or PDF documents directly to your document templates. The system automatically stores the file and provides the link to the AI generator, streamlining the template creation process.
  • Snippet Reordering: You can now easily reorder both engagement and quote snippets using the up and down arrows on each card. The system automatically manages their sequence.
  • Quote Snippet Protections: Quote snippets now feature a safety confirmation dialog to prevent accidental deletions, and display a visual loading indicator while saving edits.
  • Quote Snippet UI: Quote snippet cards now display a last modified timestamp and feature a refined design to match the rest of the application.
  • Multi-Snippet Selection: You can now link multiple snippets to an engagement simultaneously. The new multi-selection dialog includes visual checkmarks, a selected count indicator, and a search filter that activates when you have more than four items.
  • Document Template Redirects: Creating a new document template now instantly redirects you to its configuration workspace, streamlining the setup process.
  • Engagement Snippet States: Snippet cards now track and display distinct AI generation statuses independently of the document’s main lifecycle status. If a snippet fails to build, a clear error message is shown, allowing you to easily retry generation.
  • Inline Note Editing: You can now edit existing notes directly on their card in the Notes tab. Simply click into the text and type, changes auto-save in the background, indicated by a small loading spinner.
  • Secure Status Updates: Resource plan status changes are now securely processed through a dedicated backend callable function (updateStatusCallable), displaying a loading spinner in the UI and safely reverting if an error occurs.
  • On-Demand Actuals Reconciliation: Added a new backend callable function (reconcile_actuals_callable) to allow triggering actual hours reconciliation on-demand directly from the client.
  • Resilient Secret Management: The core Salesforce integration and reconcile_actuals.py CLI script now securely fetch authentication credentials dynamically from Google Cloud Secret Manager with fallback environments, ensuring reliable API syncs.
  • GenAI Infrastructure: Upgraded core AI dependencies, integrating Google GenAI 2.9 and the Google Agent Development Kit (ADK) powered by FastAPI for improved AI processing.
  • Agent Engine Migration & Deployments: Migrated backend ADK multi-agent workflows to Google Cloud Agent Engine. Frontend applications now communicate via Server-Sent Events (SSE) streaming for real-time responses. Additionally, CI/CD deployment scripts now automatically detect existing Agent Engines to update them and prevent duplicate instances.
  • Backend Observability: Integrated OpenTelemetry for distributed tracing and enhanced performance monitoring across all serverless functions.
  • Python Dependency Management: Firebase Functions deployment pipelines now use pyproject.toml via uv instead of requirements.txt, streamlining local development and automated builds.
  • Cloud Infrastructure: Consolidated deployment regions for backend functions and AI agents to the us-central1 region to align with infrastructure requirements.
  • AI Workflow Visualization: Added an internal developer script to generate static Mermaid.js HTML visualizations of the Document Templating AI agent pipelines.
  • AI Template Configuration: When generating engagement and quote templates via AI, the system can now automatically assign an appropriate template name, description, and configure the slideshow toggle directly from your natural language prompt.
  • Session Analyzer Agent: Added a specialized internal ADK agent for diagnosing raw Vertex AI Reasoning Engine event streams to track down silent failures, infinite loops, and validation crashes. It also identifies workflow inefficiencies, redundant steps, and map-reduce optimization opportunities using pre-existing transcript tools.
  • Collection CSV Export: A new export_collection_to_csv.py management script allows administrators to export selected properties from any Firestore collection group to a CSV file.
  • Task Progress Tracking: Added a new % Done column to the project plan grid. Entering a value from 0 to 100 automatically drives task lifecycle statuses.
  • Automated Parent Progress: Parent project tasks automatically calculate and display their overall progress percentage based on nested sub-task completion.
  • Speech-to-Text Task Notes: The project task notes dialog now includes built-in speech-to-text dictation, allowing team members to record updates hands-free.
  • Task Note Indicators: The Gantt chart and item list now display a visual comment icon with a numeric badge next to tasks that have active notes.
  • Quick Snippet Creation: Added a “Create Snippet” action directly to the engagement header buttons for faster template and snippet generation.

Fixes & Improvements

  • Project Plan Progress Roll-up: Refactored the backend trigger to accurately calculate and assign percent completion across all nested items.
  • Generic Notes Engine: Upgraded the core notes components to support generic parent document references, paving the way for notes to be attached to entities beyond engagements.
  • Project Plan State: Replaced the future-based loading mechanism for project plan items with a real-time data stream, resolving manual refresh requirements and ensuring local patch synchronization.
  • Project Task Loading States: Improved state management and error handling on the project plan tasks screen, ensuring tasks load reliably and display clear error messages if a database fetch fails.
  • Project Plan Count Tracking: Added a backend trigger to automatically update the total count of project plans on the parent engagement document.
  • Project Plan UI Stability: Upgraded the project plan task screen to use future-based data fetching and manual refresh keys, eliminating UI flickering and sync issues when adding nested sub-tasks.
  • Task Creation Defaults: New project plan elements now correctly default to “New Task” and “New Sub-task” upon creation, replacing legacy item labels.
  • Task Auto-Scheduling: Refactored backend duration calculations to strictly enforce weekend skipping when calculating end dates for daily task durations.
  • Business Day Scheduling: Fixed an issue where project task duration calculations did not always skip weekends accurately when calculating end dates.
  • Project Table UI: Removed a duplicate Description column from the project plan items list for a cleaner view.
  • Task Dependencies: Fixed a backend mapping issue that prevented parent task start and end dates from correctly aligning when sub-tasks were modified.
  • Project Plan Queries: Added a new composite database index for project plan items to optimize global cross-engagement task queries.
  • UI Code Quality: Cleaned up unused legacy application labels.
  • Task Dependencies: Fixed an internal backend mapping error that prevented dependent project tasks from properly detecting their dependencies and triggering automated timeline shifts.
  • Project Table Layouts: Project plan and item tables now use responsive flex scaling instead of fixed widths, and default sorting has been removed for a cleaner initial view.
  • AI Prompt Stability: Fixed an issue where the document templating AI could fail to identify suitable existing snippets by updating the expected null-value response format for unmapped elements.
  • AI Feedback Snippet Refinements: Short, static wording changes (like fixing typos in headers) are now explicitly routed to the HTML Developer agent rather than triggering structural snippet updates. Snippets are reserved for dynamic narrative text.
  • Template Context Generation: The system now safely returns an empty string instead of null when semantic lookups fail to find existing variables, preventing parsing exceptions.
  • Keyboard Accessibility: Interactive expanding plus buttons now natively support keyboard focus, hover, and tab traversal, ensuring creation actions are fully accessible.
  • Tooltip Optimization: Tooltips on expanding buttons are now tightly scoped to the trigger icon and automatically disable when expanded to prevent visual clutter.
  • Search Query Fallbacks: When using semantic lookups for templates or mapping objects, the system now safely returns an empty string instead of null if an existing item isn’t found, preventing unhandled parsing exceptions.
  • AI Feedback Routing: The Ask Gemini interactive feedback loop now intelligently handles requests to convert custom data variables into text snippets, ensuring these are routed correctly without triggering massive structural schema overhauls.
  • AI Engine Startup: The system now explicitly detects and reports an error if the AI Reasoning Engine crashes on startup with an empty event stream, preventing silent hanging states.
  • QA Agent State Routing: Split internal and external QA routing paths in the document templating pipeline to ensure reliable workflow termination and retry evaluations.
  • HTML Editor Stability: The HTML code editor now uses an isolated form builder, ensuring real-time code changes are accurately saved and synchronized with the template state.
  • AI Engine Interruptions: The AI document templating stream now seamlessly handles reasoning engine connection interruptions (503 errors) by automatically falling back to background event polling, ensuring generation continues without requiring users to retry.
  • AI Streaming Connections: Adjusted backend gRPC keepalive ping frequency to 60 seconds to balance connection stability and prevent Cloud Load Balancers from terminating long-running AI streams.
  • AI Workflow Graph UI: The interactive document generation graph now automatically calculates its bounding box and scales down to fit the screen, ensuring complex multi-agent pipelines remain fully visible without overflowing the layout.
  • AI Section Exclusion: Document Templating Developer agents now correctly return empty content instead of HTML comments for excluded sections, preventing invalid rendering artifacts.
  • Visual QA Reliability: The Document Templating Visual QA agent now intelligently handles partial document images, preventing false rejection loops for valid HTML sections outside the provided image subset.
  • Document QA Routing: Refined the Document Templating QA sub-workflow routing. When a document section fails QA, the workflow routes back to the prepare section node to regenerate the structural blueprint. If the global QA retry limit is reached, it routes back to the section orchestrator instead of the stitcher preparation node.
  • AI Agent Orchestration: Fixed an internal state collision issue during document section generation by processing tasks concurrently and assigning unique isolation scopes to each section.
  • AI QA Error Handling: The Document Templating QA agent now immediately rejects and routes detailed feedback if the visual QA tool encounters an execution error, preventing infinite retry loops.
  • Secure Search Stability: List screens powered by Algolia now fetch batched search results individually rather than relying on standard where-in queries. This eliminates permission-denied crashes caused by recently deleted or restricted documents and ensures the table always loads reliably.
  • Feedback Agent Routing: The Document Templating AI Feedback Agent now correctly routes back to the Summary Agent after processing user revisions to provide an updated summary of the final changes.
  • Workflow Tracking Mapping: Improved the real-time AI workflow tracking UI to accurately map deep internal sub-agents (like HtmlQaAgent and AssetAgent) to their high-level logical UI steps using comprehensive event string inspection and centralized dictionary mapping.
  • AI Generation UI: Enhanced the ListenableBuilder state management in the Document Templating AI dialog to reliably display generation summaries, statuses, and error messages without UI flickering or layout overflow.
  • AI Dialog UI Polish: Improved the text styling, contrast, and layout of error messages and the “No Example Document” warning within the Document Templating AI generation dialog.
  • AI Parser Stability: The Document Templating Developer agent is now strictly instructed to exclusively use tool calls for HTML updates and return a simple success confirmation, preventing raw HTML from crashing the JSON parser.
  • AI Agent Thread Safety: Upgraded backend Firestore and Vertex AI client initializations to use thread-local storage, preventing cross-request data collisions in parallel AI workflows.
  • AI Workflow Tracking: Improved Document Templating AI real-time tracking by accurately mapping complex backend sub-agents (like HtmlQaAgent and AssetAgent) to their parent UI workflow nodes. The tracking logic now evaluates event paths, authors, and steps simultaneously to guarantee the active executing agent is correctly identified.
  • AI State Management: Refactored frontend UI state listeners for the AI generation dialog to use a unified ListenableBuilder, preventing asynchronous UI flickering and layout issues during rapid agent updates.
  • AI Agent Output Reliability: Document templating Developer and QA agents are strictly instructed to provide complete, exact HTML without truncating output or relying on placeholders. Output validators now explicitly reject any HTML containing [truncated] or ... placeholders to enforce this rule and avoid generating massive boilerplate fallback content.
  • AI Workflow Termination: The AI Document Templating workflow now uses explicit end nodes to cleanly terminate QA and section sub-workflows, preventing hanging execution states.
  • Engagement Template Routing: Opening an engagement template now navigates via a direct URL, allowing you to easily bookmark or share links to specific configurations.
  • Template Errors UI: The Template Evaluation Errors dialog is now constrained to a maximum width to improve readability, and explicitly lists each broken tag and its specific evaluation error to streamline debugging. Long error snackbars are cleanly truncated to a two-line maximum.
  • UI Polish: Upgraded instruction text inputs with filled backgrounds and extracted the interactive AI workflow graph into a reusable frontend widget.
  • Code Quality: Alphabetized and expanded the central application labels dictionary to support missing operational strings like templateDetails, and cleaned up unused global variables.
  • Document Asset Extraction: Fixed an issue in the Document Templating AI where asset extraction could fail due to page index mismatches when processing reference documents.
  • AI Summary Parsing: Enhanced the parsing logic for Document Templating AI results to reliably extract summaries from raw content blocks if standard summary fields are missing.
  • Visual QA Routing: Refined the backend Visual QA agent’s state routing logic by adding explicit success and reject endpoints to reliably process termination conditions.
  • Selectable AI Summaries: Ensure AI document template generation summaries and error messages always use selectable text to allow easy copying of diagnostic output.
  • Cross-Organization Security: Lifecycle and resource plan status updates now strictly enforce organizational isolation, verifying document ownership against the authenticated user’s active organization to prevent unauthorized modifications.
  • Parallel Generation State Management: Fixed an internal state management issue during document section generation to ensure all generated blocks are reliably retrieved from the request context and stitched together by the orchestrator.
  • UI Localization: Migrated remaining Document Templating AI dialog strings, workflow prompts, and document template creation statuses into the centralized AppLabels dictionary.
  • Code Editor Scrolling: Upgraded the HTML code editor’s search functionality so that scrolling to an active text match now accurately centers on the matched text instead of jumping to the line number gutter.
  • Responsive Code Editor Search: The search bar inside the document template HTML code editor now intelligently wraps on smaller screens, preventing layout overflow, and matches styling perfectly with a compact icon button.
  • Strict Document Replication: The Document Templating AI is now explicitly mandated to include every single section, appendix, table, and narrative block mapped by the schema agent, creating structural HTML for every snippet to ensure the generated template matches the full length of the original document.
  • Workflow Summarization: The AI document templating summary agent now properly finalizes the document template status prior to generating the conversational summary.
  • Template Error Context: When a document template fails to generate due to invalid Jinja syntax, the error message now extracts the exact line number and surrounding code context from the HTML to help you pinpoint the issue immediately.
  • Template Dialog Stability: Improved handling of popup dialogs during document generation to prevent crashes when closing error or summary windows.
  • AI State Recovery: Improved the Document Templating AI’s session recovery by querying the database directly as a hard fallback, ensuring it reliably routes to the interactive feedback loop if existing HTML is found.
  • Document Generation: The system now ensures customData is always safely populated as an empty object on base records (engagements, accounts, quotes, items) prior to merging, preventing template evaluation errors on records without custom fields.
  • AI Summary Dialog: Fixed an issue where the AI document templating workflow would fail to close the progress dialog properly and improved the capture of conversational summaries from the agent stream during execution. The UI now reliably accumulates summaries from intermediate streaming state deltas.
  • Progress Dialog Stability: Fixed an issue where canceling the AI document generation progress dialog or encountering a background error could occasionally cause the application to crash due to lost UI context. The cancel button now reliably dismisses the dialog across all screens by popping from the root navigator.
  • Jinja Syntax Validation: Enhanced Jinja tag resolution to accurately surface evaluation errors to users and gracefully handle JSON serialization of complex data types.
  • Vertex AI Reliability: The backend AI agent engine now explicitly configures gRPC keepalive pings to prevent Google Cloud Load Balancers from severing connections during long, silent periods like heavy OCR processing.
  • Agent Pipeline Guardrails: The Document Templating Analyzer agent is now strictly restricted from attempting to generate HTML or fulfill final requests, ensuring it acts exclusively as the initial analysis step.
  • AI Agent Timeouts: Increased the backend AI streaming timeout limit from 9 minutes to 60 minutes to reliably support the generation of massive, highly complex document templates.
  • Integration Sync UI: Manual inbound integration actions (“Run Now” and “Refresh & Run”) now feature safety confirmation dialogs to prevent accidental executions and display a visual loading state while processing.
  • Integration UI Layout: Long mapping names on the integrations screen are now cleanly truncated with an ellipsis to prevent layout overflow.
  • AI Template Formatting: Fixed an issue where the document templating agents would output literal escaped newline characters instead of rendering actual newlines in the generated HTML markup.
  • File Dialog Context: Improved the stability of the file details dialog on the Files screen by securely wrapping it in a global state provider, ensuring organizational context is maintained when editing descriptions.
  • HTML Previews: Rebuilt the web iframe component to support live, real-time updates when previewing or editing HTML document templates.
  • Dialog Stability: Standardized global state injection for nested popup dialogs (like File Details and AI Generation Summaries) to prevent them from losing organizational context or crashing.
  • AI Summary Dialog Text: The AI document generation summary now displays as clean, selectable text rather than an embedded rich-text editor, and features proper scroll constraints to prevent layout overflow.
  • Code Quality: Applied widespread formatting improvements to UI label declarations across the frontend codebase.
  • AI Agent Stability: Further refined instructions for the Document Templating AI to prevent ADK parser crashes caused by raw Jinja syntax output. Agents now use conversational summaries instead of raw code snippets for feedback routing.
  • ADK Parser Stability: Fixed a critical issue where the Document Templating AI could crash the underlying ADK framework by outputting raw Jinja template variables in conversational responses.
  • AI Agent Anti-Looping: Added strict safeguards to the Document Templating AI to prevent infinite loops. Agents now proceed with best-effort placeholders if metadata is missing, and the QA agent utilizes a new direct HTML retrieval tool to verify structures without hallucinating code.
  • Agent Session Reliability: Upgraded Vertex AI session checkpointing with robust exponential backoff to prevent API connection crashes (503 errors) under heavy load.
  • Agent Deployments: CI/CD deployment scripts now automatically copy shared dependencies (shared.py, template_tools.py, data_dictionary.py, documents.py) into ADK agent directories and convert absolute imports to relative imports (including Jinja dependencies) to prevent ModuleNotFoundError during runtime. Furthermore, pipelines now intelligently deploy all agents if any shared dependencies are modified.
  • Python Runtime: Adjusted the backend Python runtime requirement from >=3.13 to >=3.11 to improve compatibility with Firebase Cloud Functions deployment environments.
  • Visual Polish: Updated the quote editor and homepage layouts with cleaner white backgrounds and improved border contrast. Additionally, the quote total bar label has been updated to “TOTAL QUOTE”.
  • Dialog Accessibility: Confirmation dialogs for deleting quote sections now use selectable text, making it easier to copy information.
  • Quote Name Editing: Fixed an issue where typing into the quote name field could cause the text cursor to jump or lose focus during background saves.
  • Quote UI Layout: Long quote names and section titles in the sidebar are now cleanly truncated with an ellipsis to prevent layout overflow.
  • Quote Templates: The system now displays a clear error dialog if creating a template from an active quote fails, preventing silent errors.
  • Backend Optimization: Removed unused AI platform dependencies from the document templating agent to streamline deployment pipelines.
  • Responsive Filters: Improved the responsive layout of collapsible filter sections to prevent them from overflowing the screen width on smaller devices.
  • AI Models: Upgraded the backend document templating AI agents to Gemini 3.5 Flash to optimize reasoning, schema mapping, and asset extraction stability.
  • Vertex AI Reliability: Integrated advanced HTTP retry options with exponential backoff for the GlobalGemini client, ensuring robust AI agent execution even during transient API timeouts.
  • Search Error Handling: If a list search fails, the system now displays a clear, readable error dialog instead of failing silently.
  • Table Rendering Stability: Refreshing data or performing Algolia searches in list screens no longer clears the existing table content unnecessarily, eliminating visual flickering.
  • AI Agent Routing: Refined the backend routing callbacks for the Document Templating agents, explicitly mapping state actions to ensure reliable state transitions between the Architect, Developer, and QA steps.
  • UI Layout Stability: Fixed an issue where resizing screens or viewing certain horizontal layouts could crash the interface due to unbounded width constraints.
  • Quote Table Overflow: Fixed layout overflow issues in the quote table headers by cleanly truncating long numerical values with an ellipsis instead of forcing line breaks.
  • Snippet Table Formatting: Long snippet names and types are now cleanly truncated with an ellipsis to prevent table overflow on list screens.
  • Form Stability: Date and time pickers now reliably parse saved date formats and instantly save new selections in the background without causing interface errors.
  • UI Polish: Added smooth loading indicators to dynamic custom property forms to clearly indicate when data schemas are being fetched.
  • Visual Consistency: Standardized form inputs across the application to natively use Material 3 dynamic color schemes instead of hardcoded colors.
  • Data Serialization: Improved backend database saving mechanisms to automatically sanitize and format complex date and time inputs before syncing to the server.
  • UI Layout: Long text in tables and cards (Engagements, Snippets, Lifcycles, Integration Errors) is now cleanly truncated with an ellipsis, and text selection has been disabled to prevent intercepting row clicks.
  • Table Performance: Optimized the rendering of calculated table columns (like Engagement Values and Lifecycle Statuses) to improve scrolling performance and reduce database reads.
  • User Management Iconography: Updated the Add User button icon on the Users screen to a more descriptive person-add icon for clearer visual context.
  • Agent Environment Resolution: Improved storage bucket resolution for the document templating AI agent by adding explicit fallback mapping for numeric Google Cloud project IDs, preventing bucket initialization errors.
  • User Management Dialogs: Fixed an issue where the Add User and Remove User dialogs would occasionally lose organizational context by wrapping them in a secure global state provider.
  • Document Generation: Fixed an issue where Adobe Document Generation Services could fail to merge templates due to incorrect payload keys, and resolved HTML-to-PDF generation failures by updating the Gotenberg payload structure and removing unsupported margin configurations.
  • Global Actions: Fixed an issue where the note creation dialog accessed via the global plus menu would fail to close properly after successfully saving a note.
  • AI Agent Environment: Updated project ID mappings for the backend document templating agents to properly target the development and QA databases, and explicitly configured the agents to target the global Vertex AI location for improved reliability.
  • ADK Tool Context Injection: Backend AI templating agents now natively inject ADK tool context across all utility functions (extract_document_text, run_visual_qa, perform_ocr, etc.), ensuring reliable state management for dynamic UI suggestions and multimodal processing.
  • Secure File Storage: The document upload field now directly returns internal Google Cloud Storage (gs://) URIs rather than public download URLs, enhancing the security of stored template assets.
  • Workflow Agent Stability: Removed a stray syntax artifact (kflow) at the end of the document templating backend agent script to prevent execution failures.
  • AI Template Warnings: Added a helpful UI warning in the template generation dialog if no Example Document Link is provided, preventing poor AI results.
  • AI State Context: Built a new backend state context wrapper to handle AI metadata securely, specifically isolating large document payloads (like pdf_bytes and images) from standard execution state to prevent memory bloat.
  • Agent Engine Deployments: Deployment scripts now explicitly fail the CI/CD pipeline if Vertex AI queries encounter permission or transient errors, preventing the accidental creation of duplicate Agent Engine instances.
  • Cold Start Optimization: Re-architected heavy imports in backend AI streaming functions to comply with strict Firebase lazy loading rules, significantly reducing cold-start latency for agent interactions.
  • Error Obfuscation: AI streaming error payloads no longer expose raw Python stack traces to the client, improving system security.
  • Snippet Tab Navigation: Switching between tabs in the workspace no longer resets your scroll position or state on the Snippet screens.
  • Batch Snippet Processing: Linking multiple snippets now processes asynchronously in parallel, preventing UI sluggishness, and features robust error boundary handling to display clear diagnostics if a link fails.
  • Snippet Data Isolation: Refactored snippet statuses on the backend (generation_status) to ensure they do not collide with or trigger primary document lifecycle engine transitions.
  • Resource Planning Filters: Fixed an issue where the “Show only underutilized” resource planning toggle would sometimes fail to calculate the correct planned totals for resources across the view.
  • CLI Usability & Reliability: The reconcile_actuals.py script now correctly resolves module imports when loading core integration functions, and provides clear error messaging if required Python environment dependencies are missing.
  • CLI Storage Config: The reconcile_actuals.py management script now correctly initializes Firebase Admin with the required storage bucket configuration, preventing potential file access errors.
  • Document Templating Agent Refinements: Fixed a relative module import error in the backend document templating agent, instructed the agent to politely request a document if missing rather than attempting OCR, and improved example document download reliability. Removed local testing fallbacks and enforced strict response routing keywords to prevent critical system failures. The schema mapping agent now explicitly outputs its analysis as a structured Markdown list, accurately categorizes extracted text into three snippet types (AI, Text, and AI HTML), and mandates that large structural sections (like ‘Deliverables’, ‘Assumptions’, lists, and tables) are mapped to aiHtml snippets to preserve structural HTML formatting. The agent strictly enforces allowed root objects and prevents deep chaining of custom properties.
  • Agent Storage Config: The document templating backend agent now correctly initializes Firebase Admin before accessing internal Google Cloud Storage files, preventing file download failures.
  • Internal AI Agents: Updated internal developer agent instructions to enforce strict Firestore security constraints, added a Context Updater agent to maintain guidelines, and updated architecture rules for SSE streaming endpoints.
  • Firebase Context Initialization: Backend document templating agents now explicitly inject the active Project ID when initializing Firebase Admin, preventing authentication and storage access failures.
  • AI Agent Reliability: Improved the document templating AI workflow by ensuring state transitions correctly parse historical event outputs to determine the next routing step.
  • Performance: Eliminated redundant database reads and potential memory leaks by optimizing how internal data streams and futures are initialized during UI rebuilds.
  • Smart Asset Deduplication: The AI document templating workflow now uses exact cryptographic hashing (SHA-256) to instantly deduplicate extracted images (like logos), bypassing slower AI matching and improving processing speed.
  • Agent State Routing: Simplified the backend AI agent state machine for document templating to enforce strict routing transitions and correctly terminate upon successful QA passes.
  • Quote Template Form Stability: Fixed an issue where typing into quote template line items could cause the text cursor to jump or lose focus during real-time data syncs.
  • Code Quality: Cleaned up unused imports, added proper scoping braces, and modernized string interpolations across the frontend codebase.
  • Integration Syncing: The outbound integration dispatcher now uses transactional locking for unpivot mappings, preventing duplicate sync executions and safely handling rapid or concurrent data updates.
  • AI Agent Code Generation: The Document Templating AI is now strictly instructed to write clean, simple Jinja variable access and avoid massive inline chained conditionals or hallucinated fallbacks, moving complex evaluation to the template data layer.
  • Python Module Imports: Updated backend AI agent utility functions to strictly use the servantium_core.* namespace instead of relative imports, preventing module resolution crashes in production.
  • AI Stream Initialization: Fixed a blocking issue during AI document template generation by moving the ADK agent stream query initialization entirely into the background worker thread.
  • AI Template QA Tests: Fixed an issue where the document templating QA agent omitted quote data during rendering tests, ensuring templates with quote-specific merge fields are validated accurately.
  • Dialog Stability: Fixed an issue where the document template deletion confirmation dialog could fail to close properly due to context variable shadowing.
  • Document Template UI: Updated the document template deletion confirmation dialog to use standard application labels, selectable text, and proper error theming.
  • AI Tool Execution: Optimized backend document templating tools to return results directly instead of yielding intermediate streaming logs, improving execution stability.
  • AI Session Restarts: The frontend now explicitly sends a force_restart flag when initializing AI document template generation to guarantee a clean pipeline.
  • Jinja Template Syntax: The Document Templating AI is now strictly mandated to use proper closing tags (e.g., {% endif %} and {% else %}) and bracket notation (e.g., engagement['customData']['variable']) instead of dot notation. This prevents fatal rendering crashes where Jinja2 resolves dot notation to built-in Python methods.
  • Strict Snippet Generation: The Document Templating AI must now create every snippet requested by the SchemaAgent and is instructed to avoid adding conversational meta-commentary.
  • Missing Snippet Placeholders: If the AI cannot find a requested snippet, it now safely inserts a logical Jinja tag placeholder (e.g., {{ snippet['deliverables'] }}) instead of hardcoding the text.
  • Theming Stability: Updated the Document Templating AI workflow graph and generation error dialogs to natively use dynamic Material theme colors (primary and error schemes) instead of hardcoded colors, ensuring proper contrast across light and dark modes.
  • Deployment Automation: CI/CD deployment pipelines now automatically detect and execute database migration scripts (run_scripts.py) against target QA and PROD environments.
  • AI Workflow Graph: Extracted the visual AI workflow graph into a reusable component and updated the Document Templating nodes to accurately reflect the latest Orchestrator, Stitcher, and QA sub-workflows.
  • Template Generation UI: Polished the AI template generation dialog with improved input field styling and clearer primary action buttons.
  • QA Agent Routing: Simplified the backend state routing for the Document Templating QA sub-workflow, ensuring reliable termination when QA passes are completed or rejected.
  • Backend Infrastructure: Explicitly instantiated the Google Cloud Firestore client to bypass a numeric project ID validation bug within the Vertex AI Reasoning Engine.
  • Document Template QA Failures: If the AI QA agents fail to fix a template section after 3 retries, the system now safely injects a visible diagnostic error block into the markup rather than failing the entire compilation, allowing generation to proceed for manual review.
  • AI Template Outlining: The Document Templating AI Architect now explicitly extracts a structured outline array to orchestrate parallel section generation more reliably.
  • QA Context Initialization: Fixed an issue where the Document Templating QA routing could crash by explicitly ensuring the request context is initialized before the Developer agent executes.
  • AI Prompt Accuracy: Refined the Document Templating Developer agent prompt to enforce the correct usage of engagement.customData.variable in Jinja tags, preventing data hallucination and compilation errors.
  • Asset Extraction Stability: Fixed an issue where the Document Templating asset agent could fail to save processed assets into the generation state.
  • Layout Analysis Handling: The Document Templating AI now gracefully handles layout analysis errors by returning plain text instructions instead of JSON, preventing parsing crashes.
  • CSS Formatting: The Document Templating Stitcher agent now automatically strips trailing whitespace from scoped CSS blocks for cleaner HTML generation.
  • Backend Architecture: Refactored shared backend libraries into a centralized servantium_core Python package to standardize dependencies across Cloud Functions and Agent Engines.
  • Quota Tracking: Added organizational quota configurations for Google Cloud AI Platform and custom model serving to monitor infrastructure limits.
  • AI Rate Limiting: Reduced parallel AI section generation concurrency from 5 to 3 to reliably prevent Google Cloud Vertex AI rate limiting and gRPC timeouts during massive document builds.
  • Iterative Styling Consistency: Fixed an issue where the document templating Stitcher agent would overwrite global CSS on subsequent feedback loops by permanently caching the base stylesheet in the pipeline state, ensuring visual consistency during AI revisions.
  • Template Compilation Validation: Added explicit output validation to ensure the AI Stitcher agent correctly places the __INJECT_SECTIONS_HERE__ tag within the document body before saving templates, immediately raising a pipeline error if omitted.
  • AI Streaming Thread Safety: Implemented thread-safe gRPC keepalive configurations using module-level locks to further prevent 503 idle timeouts on Google Cloud Load Balancers during parallel Vertex AI operations.
  • Search Table Pagination: Improved client-side filtering on Algolia-powered data tables to automatically fetch the next batch of records if local tag logic empties the current view, preventing stuck loading states.
  • AI Template Rendering Tests: QA rendering tests now explicitly return a skipped status when executing without an active engagement context.
  • AI State Routing: Upgraded the Document Templating AI feedback loop to securely pass user feedback flags through agent state rather than relying on global request contexts, ensuring reliable visual QA skipping.
  • Backend Initialization: Optimized backend Cloud Functions by lazy-loading the Firestore client and HTTP libraries inside template tools, improving cold-start performance and preventing circular dependency errors.
  • Merge Payload Syntax: Standardized the document merge payload root object for snippets to strictly use snippets to ensure consistent dictionary retrieval in Jinja templates.
  • Task Roll-ups: Fixed an issue where parent project plan items failed to correctly calculate their overall start and end dates from nested sub-tasks due to a mismatched field reference.
  • UI Code Quality: Removed additional unused legacy UI application labels to streamline frontend code.
  • Universal Entity Engine: Consolidated backend document creation and update triggers into a unified engine to optimize performance for auto-numbering and lifecycle automations.
  • Expanding Buttons: Expanding plus buttons now automatically hide themselves if there are no available actions to display based on the context.
  • Lifecycle Automations: Fixed an issue where automated status transitions failed to trigger correctly for percent completion due to mismatched numeric scales.
  • Notes Engine: Upgraded the internal notes architecture to support dynamic parent references across different object types.

Need more help?

Our support team is available to assist you.

Contact Support