Version: 3.9.8
Bug Fixes
- Milestones - Fixed reports showing 0% completion and the timeline "Show Tasks" view displaying nothing (#3624, #3625, #3628)
- Milestone Modal - Resolved focus loss, restored save-and-close, and fixed a 500 error when saving goals (#3605)
- To-Dos - Kept To-Dos from closed projects browsable once the project is reopened (#3626, #3627)
- Post-3.9.7 Regressions - Fixed a file browser out-of-memory issue, strategy grouping, and 403 errors for legacy roles (#3621)
- MCP Endpoint - The /mcp endpoint now accepts Leantime API keys, and a shim for the removed php-mcp provider lets in-place upgrades boot (#3601, #3602, #3607)
- Program Board - Moved the card status dropdown below the field row (#3599)
Improvements
- Sessions - Isolated sessions into their own Redis database to avoid clashes with other cached data (#3604)
Dependency Updates
- Bumped the McpServer submodule to include the bulkAddTasks fix (#3620, #3622)
- Synced composer.lock content hash with composer.json (#3603)
What's Changed
🐞 Bug Fixes
- fix: three post-3.9.7 regressions — files/browse OOM, strategy grouping, legacy-role 403s by @marcelfolaron in #3621
- fix(mcp): bulkAddTasks 500 — bump McpServer submodule (#3620) by @marcelfolaron in #3622
Other Changes
- feat(domains): move MCP tool classes into domain modules by @marcelfolaron in #3581
- fix(mcp): repair runtime bugs in domain tools found in live e2e testing by @marcelfolaron in #3586
- feat(tickets,sprints): cross-project (program) task views + inherited sprints by @marcelfolaron in #3587
- chore(ratelimit): raise the default API limit from 10 to 120 req/min by @marcelfolaron in #3591
- fix: program board follow-ups — milestones, kanban render, status rollup clarity by @marcelfolaron in #3592
- fix: batch of open bug fixes (#3540, #3331, #3310, #3589, #3330, #3546) by @marcelfolaron in #3593
- fix(auth): complete PAT move to core — add TokenNew controller and language keys by @marcelfolaron in #3597
- Release v3.9.7 by @marcelfolaron in #3596
- ci: remove redundant Docker publish job from release workflow by @marcelfolaron in #3600
- fix(tickets): move program-board card status dropdown below the field row by @marcelfolaron in #3599
- chore(deps): sync composer.lock content-hash with composer.json by @marcelfolaron in #3603
- fix(mcp): shim removed php-mcp provider so in-place upgrades boot (#3601) by @marcelfolaron in #3602
- fix(sessions): isolate sessions into their own redis database by @marcelfolaron in #3604
- fix: milestone modal focus loss + save-and-close, goal save 500 by @marcelfolaron in #3605
- fix(mcp): accept Leantime API keys on the /mcp endpoint by @marcelfolaron in #3607
- fix(tickets): keep closed-project To-Dos browsable when the project is opened (#3626) by @marcelfolaron in #3627
- fix(milestones): report shows 0% completion (#3624) + Timeline 'Show Tasks' shows nothing (#3625) by @marcelfolaron in #3628
- Release v3.9.8 by @marcelfolaron in #3606
Full Changelog: v3.9.6...v3.9.8