Skip to main content

Release 2.10.0 — Knowledge Base docs, automatic branch–issue attribution, safer integration disconnects, demo hardening

Release date: 2026-08-11

Components included:

PanDev Metrics Core

Version: 5.10.0

PanDev Metrics Web (backoffice)

Version: 2.10.0

Highlights

  • Knowledge Base. A new documentation module (backend, MCP and frontend): tenant-wide wiki-style pages in a drag-and-drop tree, full-text search, version history, favorites, and public share links, plus ten MCP tools so models can read and write pages the same way people do. A markdown adapter round-trips headings, lists, quotes, code, links, tables, autolinks and inline HTML between models and the editor. Entity-mention chips (typed with @, a slash menu, or by pasting a URL) resolve to tasks, employees and sections with a hover card, and are shared by every editor and by Datavisor's answers.
    (PDM-3963, PDM-4232, PDM-4235, PDM-4236)
  • Automatic branch → issue attribution. A new reconciliation engine infers task links from branch names across Azure Boards, ClickUp and Bitrix24, with ambiguous-branch detection and webhook-driven backfill; the legacy branch-linking code paths it replaces were retired, including real-time Linear branch registration from the IDE heartbeat.
    (PDM-4197, QA-256)
  • Task scoring, continued. The create-task flow gained scoring inputs, the scoring-settings modal now localizes criterion names and descriptions, and backlog/scoring table layout and width issues were fixed.
    (PDM-4125, PDM-4126, PDM-4095)
  • Design-system migration across the Web app. Account, API Keys, auth, sidebar, dashboard footer/leaderboard, department drawers, the DORA widget and employee-metrics widgets were rebuilt on shared design-system tokens and hooks; the activity heatmap and hour-level activity Gantt were rebuilt as modular widgets along the way.
    (PDM-4130)
  • Safer integration disconnects. Disconnecting YouTrack, ClickUp, Linear, Bitbucket, GitHub or GitLab now asks for confirmation first (Linear and YouTrack also require a passing connection test before saving); the top-level Jira switch now drives the real disconnect flow; YouTrack setup was redesigned around a generated workflow script instead of manual webhooks.
    (QA-216, QA-399, QA-407, QA-419, QA-420, QA-422, PDM-4207, QA-411, QA-415, QA-416)
  • Demo environment hardened. The demo backend was secured and its legacy API removed, demo-mode UI changes are now strictly gated behind IS_DEMO, a maintainable demo-dashboards layer was added, and hardcoded secrets in the Web build were replaced with environment-based configuration.
    (PDM-4113, PDM-4115, PDM-4172, PDM-4192, PDM-4114, PDM-4078)
  • AI provider settings redesigned. The AI-provider settings page got a card-based grid layout with active-state and hover styling, a searchable provider/model select, standardized inputs, a default provider/model, disconnect actions moved into the shared connection-testing component, and Beta badges for the new Notion and Yandex Tracker integrations.
    (PDM-4268)

Other fixes and improvements

Core / backend

  • Critical fix: Azure Boards synchronization repaired — a webhook-reconciliation cronjob and plan, a backfill coordinator, malformed-hook repair, canonical branch IDs in issue relations, and fixed finish-date/general-branch handling. (PDM-4204, PDM-4205, PDM-4233, QA-435, PDM-4266)
  • Datavisor: table columns and tenant_id scope now render in the system prompt, gated to the builtin connection, with a disambiguated column-list label. (PDM-4120)
  • Datavisor: answers now reply in the user's language instead of always Russian; built-in skills' descriptions were made visible and their factual errors fixed; a new skill covers AI token-economy questions; task skills now understand updated_at freshness semantics; the synchronous ask endpoint no longer runs inside a transaction. (PDM-4251, PDM-4252, PDM-4253, PDM-4262, QA-394)
  • New AI coding-tool telemetry source — KILO CLI. (PDM-4131)
  • Zoom: transcripts without a recording are now supported, DTO access was minimized, and the connection check refreshes the Zoom token. (PDM-4156)
  • Meeting-duration snapshots reconciled. (QA-338)
  • Fixed scoped employee department transfer; fixed role summary by directory tab. (QA-401, QA-387)
  • commits.timestamp normalized across mixed seconds/milliseconds. (PDM-4211)
  • YouTrack webhook synchronization hardened: backfill scheduling isolated, legacy webhook compatibility restored, work-item failures surfaced, and setup unified around the new workflow script. (QA-402)
  • ClickUp workspace ID validated on connect; ClickUp webhook routing fixed across departments; ClickUp actual completion date corrected. (QA-414, PDM-4237, PDM-4260)
  • Team Analytics sort given a deterministic tiebreaker; LLM-provider connection probed before saving on create; a wrong Bitbucket API URL is now distinguished from a real 403; Linear ping now checks the saved token (app-mode developer-token fallback preserved). (QA-392, QA-397, QA-403, QA-424)
  • Partner-cloud/white-label email branding completed: DevOptify branding, native-runtime validation, dark-theme and partner-locale fixes. (PDM-1234)
  • License user count now derived from activity events. (PDM-4167)
  • Owners can now manage ROLE_FINANCE for themselves. (PDM-4250)
  • CLI v3: empty command names filtered out. (PDM-4000)

Web / backoffice

  • Sidebar & navigation: drill-down no longer resets on redundant pathname updates or reopens after a manual close; navigation alignment, typography and padding-transition fixes; tooltip/popover z-index standardized and status labels no longer wrap or shrink. (PDM-4117, PDM-4141, PDM-4142, PDM-4157)
  • Routing & access control: route/redirect definitions consolidated, with loading-state and redirect validation on the team-metrics page; route matching fixed for employee/team and department context (new useIsDepartmentMember hook); dashboard access tightened by role (employee-metrics nav state, finance-role redirects, non-owner calendar action, department-scoped Task Flow permissions, department-assigned Team Analytics roles); the task-metrics module renamed from issue-key with a legacy redirect; task-detail prev/next navigation is now context-aware across board and gantt views. (PDM-4086, QA-335, QA-417, QA-355, QA-365, QA-373)
  • Role-specific metrics page reworked: role selection migrated to LabeledSelect, obsolete RoleDescription/MainMetrics widgets removed, chart grid restyled with reference lines, and donut-chart rendering covered for single-100%-value data. (QA-330, QA-329, QA-327, QA-326, QA-332)
  • Dashboard charts and legends: a reusable "others" modal now groups small slices/items consistently across mosaics, IDE-usage, project-activity and workload widgets, with clickable legends, auto-scroll-to-active-bar on legend hover, and a percent-label/typo cleanup; stacked bar charts can hide percentages and take custom titles; the coding-time widget shows issue details; the tech-stack chart got expanded icon mapping and an "others" category. (QA-325, QA-323, QA-321, QA-315, QA-317, QA-309, QA-308, QA-322, QA-336)
  • Activity heatmap & timeline: row-based hover highlighting on the heatmap, a fixed isOpen state on the heatmap-tooltip event, thinner scrollbar borders on the activity timeline, and corrected horizontal scroll sync in the Gantt pane; usernames in the Gantt user-stats panel are clickable, and branch labels in member rows gained navigation and tooltips. (QA-331, QA-310, QA-372, QA-303, QA-302)
  • Issue duration fields switched from hours/minutes to seconds internally, with formatted display. (PDM-4191)
  • Employees & departments: team-lead assignment from the employees board, optimistic UI for role/team-lead/member-movement changes with toasts, role removal with a confirmation modal and refined self-management permissions, an archive-employee action moved into the drawer (dropped the "my metrics" sidebar link), work-schedule formats unified behind one utility, client-side department sorting, truncation-aware department-name tooltips, better pagination (fetch-state indicator, a dedicated DepartmentRow component, defensive InfiniteData validation) and refined activity-widget spacing; the employee-update DTO now carries sourceDepartmentId, and the generated API client picked up the new Azure branch-task-marker endpoints. (QA-374, QA-42, QA-352, QA-400, QA-362, QA-301, QA-318, QA-319, QA-324, QA-391, QA-386)
  • Task Flow & backlog: the create-task modal submits on Enter and returns to the originating view afterwards, the backlog board shows a total task count and now infinite-scrolls, board-column titles are capped at 100 characters with wrapping, task-description rendering and its update mutation were simplified, task titles gained a tooltip, dependency cards support archived tasks and show comment counts (with a loading state during unlink), task import got pluralized copy and a fixed board-id fallback after a successful import, and a network-status banner with task/document persistence adds basic offline support. Task Flow also gained a comment section on task details. (QA-304, QA-378, QA-307, QA-342, QA-376, QA-375, QA-356, QA-364, QA-344, PDM-4147, PDM-4208, PDM-4209, QA-346, PDM-4138)
  • The task-import wizard's container list is now searchable. (QA-433)
  • Integrations: GitHub now requires re-entering an access token once cleared and its comments toggle reads the correct setting key; ClickUp gained ping-logic tests; INTEGRATION_ADMIN_ROLES unified access checks across integration routes; llm-providers requests are gated behind IS_ONPREM on cloud; wrong YouTrack token-scope docs and a false permissions warning were fixed; missing translations added for ClickUp and Linear error codes and for an empty Bitrix24 webhook URL. (QA-404, QA-405, QA-410, QA-382, PDM-4203, PDM-4204, QA-239, QA-426, QA-428)
  • Datavisor / AI: chat answers stream incrementally via ANSWER_DELTA instead of arriving all at once, duplicate sends are guarded while a session is being created, the database-connections sidebar is collapsible, the skills page shares SwitchTabs/SearchInput and gained the connection wizard inline, and the AI-provider picker's menu z-index/tab styling was fixed. (QA-333, QA-334, QA-383, QA-431)
  • Finance & payouts: finance widgets got proper loading/empty states and employee navigation from task rows, formatCost supports configurable units, payout precalculation now shows explicit 0 values instead of hiding them, and a payout race condition was fixed. (QA-379, PDM-4118, QA-396, PDM-4085)
  • Auth & session handling: refresh tokens now persist with request queueing during concurrent refreshes, and 403 responses get centralized, debounced-toast handling instead of ad hoc checks. (QA-388, QA-347)
  • Critical fix: task and issue-description content sanitized against XSS — Jira markup and rendered issue-description HTML now pass through a dompurify-based sanitizer, and insecure URLs are blocked in Task Flow embed views. (QA-357)
  • Miscellaneous: the achievements page is disabled on on-premise deployments, profile display-name styling and readability improved, the meeting-analysis drawer's role select migrated to LabeledSelect, inbox unread-dot positioning and query-key invalidation cleaned up, dev-only plugins (React Query Devtools) restricted to serve mode, breadcrumbs added for employee-activity pages, generic cache updates unified across paginated task queries, localization files expanded, and dead code removed from the Web build. (QA-293, QA-311, QA-312, QA-353, QA-343, QA-436, QA-359, QA-348, PDM-4077)

Download Release:

  • PanDev Metrics Core 5.10.0: docker pull pandevofficial/pandev-metrics:5.10.0
  • PanDev Metrics Web 2.10.0: docker pull pandevofficial/pandev-metrics-backoffice:2.10.0