Dosu Changelog - Week of March 17-24, 2026#
User-Facing Changes#
Features#
- Added Homebrew installation support for the MCP CLI alongside existing npm installation methods, making setup easier for macOS users (merged Mar 19, PR #9593)
- Redesigned MCP CLI setup section with AI agents showcase, displaying compatibility with Claude, OpenAI, Cursor, GitHub Copilot, and 11 other clients with animated visual enhancements (merged Mar 19, PR #9591)
- Enhanced backend support for MCP CLI setup flow with new API endpoints to list organizations and deployments, plus deployment-scoped API key creation (merged Mar 19, PR #9507)
- Added chat dock pinning feature for Documents with persistent cookie-backed state, allowing users to pin the chat interface for quick access (merged Mar 20, PR #9605)
- Improved review mode UX by automatically highlighting and scrolling to the first unposted assistant message, with smooth navigation to subsequent unposted messages after actions (merged Mar 21, PR #9617)
Bug Fixes#
- Fixed sitemap generation compatibility with Next.js 16 by properly awaiting the Promise-based props.id, preventing empty sitemaps that caused Google indexing failures for public document URLs (merged Mar 21, PR #9619)
- Aligned sitemap and bot-content page visibility with user-facing page lists to ensure crawlers see the same published content as users, eliminating 404 errors from non-published versions (merged Mar 21, PR #9627)
- Fixed Rich Text editor formatting toolbar overlaying the page header when scrolling by adjusting z-index and sticky positioning (merged Mar 18, PR #9557)
- Fixed HTML validation error in ThreadItem component caused by nested button elements by replacing outer button with accessible div element (merged Mar 19, PR #9579)
- Corrected MCP CLI client compatibility count from 14+ to 11 other clients in user-facing messaging (merged Mar 19, PR #9595)
- Fixed Slack reaction sync failures due to missing jsonb reactions key (merged Mar 18, PR #9529)
- Fixed public space external URL transformation in application routing (merged Mar 17, PR #9478)
- Improved API key placeholder clarity in settings UI (merged Mar 18, PR #9547)
- Fixed session expiration handling to return 401 instead of 500 in callBackend (merged Mar 18, PR #9556)
- Fixed filter name in review tab UI (merged Mar 18, PR #9569)
- Fixed markdown source editor theme to properly reflect light and dark modes with correct background colors (merged Mar 20, PR #9604)
- Fixed tree view selector behavior by removing hasActiveSelection flag, ensuring consistent click-to-select interactions (merged Mar 19, PR #9599)
UI Improvements#
- Renamed "Dosu Answered" filter to "Dosu Activity" for clearer terminology (merged Mar 19, PR #9574)
- Fixed integration files navigation to properly navigate to documents and resolved bulk action bar layout shift (merged Mar 19, PR #9572)
- Replaced custom markdown source editor with CodeMirror for improved editing experience (merged Mar 18, PR #9552)
Background Enhancements#
Performance Improvements#
- Dramatically improved Notion and Confluence publish dialog performance for large organizations (7.8s to 119ms query time) by using materialized CTEs to deduplicate workspace/data source pairs, reducing RLS evaluations from 51k+ to 1-3 per query (merged Mar 19, PR #9576)
- Optimized Confluence RPC by adding confluence_space_id field to eliminate redundant queries for large page lists that previously caused URL length limit issues (merged Mar 19, PR #9583)
- Improved frontend polling efficiency for publish workflows by changing from unconditional 8-second intervals to conditional 15-second intervals only during INDEXING state (merged Mar 19, PR #9576)
- Filtered out PRs/MRs via database query during thread diffing to improve indexing performance (merged Mar 17, PR #9506)
- Optimized GitHub repository syncing to reduce issue/PR count syncing to once per day with DataDog bot blacklisting (merged Mar 18, PR #9562)
- Made MCP request logging asynchronous to reduce request handling latency (merged Mar 20, PR #9590)
Infrastructure & Internal Tooling#
- Added MCP request logging middleware with asynchronous background task processing and flush mechanism on shutdown (merged Mar 20, PR #9590)
- Added comprehensive lint-fe and lint-be skill packages with deterministic shell scripts for consistent frontend and backend linting workflows (merged Mar 21, PR #9620)
- Added conductor archive script to clean heavy dependencies during workspace archiving, saving ~2.6 GB per workspace (merged Mar 21, PR #9623)
- Updated conductor scripts to use CONDUCTOR_WORKSPACE_PATH for improved workspace isolation (merged Mar 21, PR #9625)
- Enhanced MCP error messages to be more actionable with guidance on obtaining credentials and accessing settings (merged Mar 20, PR #9512)
- Changed sync validation failures from warnings to errors for improved observability (merged Mar 20, PR #9609)
- Added automatic GitHub rate limit logging for improved monitoring (merged Mar 17, PR #9517)
- Added more logging for GitHub PR data syncing (merged Mar 17, PR #9502)
- Skipped thread resolution for PR, PR review, MR, and doc threads (merged Mar 17, PR #9501)
- Dropped unused activity and activity_read_mark database tables (merged Mar 17, PR #9505)
- Updated to FastMCP 3 (merged Mar 18, PR #9510)
- Added fetch_url tool for universal URL resolution (merged Mar 17, PR #9343)
- Hidden GitLab deployment integration behind feature flag (merged Mar 20, PR #9616)
Refactoring#
- Upgraded Next.js from 15.5.9 to 16.2.0 with Turbopack as default tooling for improved build performance (merged Mar 19, PR #9578)
- Migrated is_similar_solution task to pydantic AI for improved reliability and observability (merged Mar 19, PR #9330)
- Migrated describe_image task to pydantic AI with Claude Haiku 4.5, adding structured output types and improved error handling (merged Mar 19, PR #9195)
- Switched knowledge agent to Sonnet 4.6 with stricter prompt guidelines for factual accuracy and inline citations (merged Mar 19, PR #9584)
- Migrated suggested_tag_page to pydantic AI with validation constraints and normalization (merged Mar 19, PR #9568)
- Migrated continuous_eval to pydantic AI with improved retry logic and structured outputs (merged Mar 20, PR #9262)
- Migrated is_message_for_assistant to pydantic AI for stronger typing and validation (merged Mar 20, PR #9306)
- Migrated thread_as_question to pydantic AI with traceable agent wrapper (merged Mar 20, PR #9346)
- Removed dead code for stale_doc_check workflow and pr_to_doc_diff task (merged Mar 19, PR #9342)
- Removed suggested tags feature end-to-end, including workflows, API endpoints, and UI components (merged Mar 21, PR #9633)
- Renamed triggered_from to triggered_by for clarity (merged Mar 18, PR #9520)
- Clarified should_publish duplicate issue guidance (merged Mar 18, PR #9521)
- Clarified agent branch naming guidance (merged Mar 18, PR #9550)
- Added team review knowledge base with sync pipeline for code review workflows (merged Mar 18, PR #9511)
- Skipped evaluate auto reply gate for low confidence decisions (merged Mar 17, PR #9516)
- Cleaned up all git ref locks during sync_repo retry to prevent lock file issues (merged Mar 17, PR #9497)
- Eliminated asyncio.run() from DBOS workflows to fix memory leak (merged Mar 17, PR #9487)
- Removed Skip Cache Read from SDC (merged Mar 17, PR #9504)
- Excluded tool calls by tool name from MCP logging middleware (merged Mar 17, PR #9509)
- Added TDD instruction to AGENTS.md (merged Mar 18, PR #9525)
- Only sync GitHub PR file and commit data when it changes (merged Mar 18, PR #9527)
- Added missing GitHub PR webhook actions to GhWhPRAction enum (merged Mar 18, PR #9534)
- Skipped label event API calls for bot senders to reduce GitHub rate limit usage (merged Mar 18, PR #9546)
- Added Microsoft Teams schema and data models for future integration support (merged Mar 21, PR #9351)
- Added Teams data source migration to support Teams channel associations (merged Mar 21, PR #9355)
- Added recent thread titles to Slack channel prompts for improved context awareness (merged Mar 21, PR #9607)
Dependencies Updated#
- Bumped
deepdifffrom 8.6.1 to 8.6.2 in/backend(merged Mar 18, PR #9559) - Bumped
google.golang.org/grpcfrom 1.71.1 to 1.79.3 in/deploy- security fix for authorization bypass (merged Mar 18, PR #9560) - Bumped
geekyeggo/delete-artifactfrom 5 to 6 in CI workflow (merged Mar 20, PR #9490) - Bumped
nltkfrom 3.9.1 to 3.9.3 in/backenddev dependencies (merged Mar 19, PR #9596)