Created: November 13, 2025

Labor Costs' UX, SoW Planning, and Git Parser Improvements

Enhanced Labor Cost report with financial data privacy controls, manual Start Date planning for SoW, unified LLM model configuration for PM Agent, and resilient Git parsing with checkpoint recovery.

Release dates: 11/06/2025, 11/12/2025

Labor Costs improvements 

We've implemented enhancements and fixes to the Labor Cost report. Improved the Labor Cost user interface by adding the ability to hide financial values, including totals, by clicking the eye icon, with state persistence. We've also improved terminology ("Not in Epic" → "Tasks without assigned Epic," "Missed epic for board X / issue Y" → "Missing Epic for board X, issue #Y"), disabled filters and buttons during loading, deactivated the download button for empty reports, and removed auto-generated links to non-existent epics.
Impact: Users now have a more convenient and intuitive Labor Cost report; you can completely hide financial data for demonstrations or when working in public spaces. Additionally, improved terminology eliminates confusion when interpreting tasks without epics, disabling elements during loading prevents accidental actions, and overall improves the usability of this critical financial report.

SoW improvements

Added the ability to set the Start Date for SoW in projects manually. Implemented an editable Start Date field for Statement of Work. Now you can plan SoW by manually setting the effective start date instead of it automatically being set to the creation date. The field has been added to the user profile and project editing cards.
✔️ Impact: HR specialists and managers can now plan employee project participation. You can create a SoW today with a start date one month out (for example, for a new employee starting December 15), and the system will automatically activate it on the specified date. This simplifies preparation for project starts and onboarding new team members.

PM Agent improvements

Implemented a unified format for LLM model configuration. Introduced a parser for the specification format "provider:model_name:temperature:base_url" with validation, added a factory method get_llm_from_spec with logging and API key verification, and ensured backward compatibility with the old format (simple model_name), with support for OpenAI, Anthropic, and Gemini with custom base_url and temperature settings.
✔️ Impact: The PM Agent development team now has a flexible tool for managing LLM models. You can instantly switch between providers and models without code changes, quickly conduct A/B testing of different configurations, and use custom proxies through base_url. This accelerates experiments to improve agent response quality and optimize API request costs.

Other improvements

  • Restored SLACK_CLIENT_ID variable values for all environments. Fixed missing SLACK_CLIENT_ID variable values; now the "Connect Slack" button in project settings correctly opens the Slack OAuth dialog. Also restored Slack integration for all clients: teams can once again connect Slack channels to projects to receive notifications and work with PM Agent through the messenger, which is critical for clients using Slack as their primary communication channel.
  • Fixed frontend personal-dashboard crash on startup due to OOMKill. Optimized the placeholder substitution mechanism in entrypoint.sh, replaced the slow sed method with recursive processing of all JS files, which consumed critical amounts of memory and caused OOMKill (exit code 137) of the frontend container.
    ✔️ Impact: Restored frontend startup stability on all instances; the container now starts correctly without consuming all available resources, eliminating 502 errors and instance "freezing" during service restarts.
  • Implemented a checkpoint system for the Git verse parser with error recovery support. Developed a centralized checkpoint management system for Git version. The parser now saves progress at the repository level. It continues from the last stopping point when API rate limits are reached or errors occur, with support for GitHub, GitLab, Bitbucket, Azure DevOps, Gitea, and self-hosted versions, including parsing of commits, merge requests, and comments.
    ✔️ Impact: Users with large repositories now have reliable Git data parsing. When request limits are exhausted or technical failures occur, the system doesn't restart parsing from scratch but continues from where it stopped. This is especially important for large projects with thousands of commits, saves provider API quotas, and ensures predictable synchronization time for complete Git data.