What's Changed
- feat: move boards between workspaces by @nickmeinhold in #458
- fix: correct template creation condition in BoardDropdown by @hjball in #529
- feat: allow submitting comments via keyboard shortcut by @hjball in #533
- fix(editor): don't throw in suggestion onExit when no popup was created by @arsteyn in #543
- fix(mcp): map comment content field for Kan API compatibility by @aeroluxx in #540
- fix: prevent maximum update depth exceeded error by @hjball in #549
- perf: improvements to build time by @nahSystemu in #555
- Add Danish translation 🇩🇰 by @HrCalmar in #553
- fix: accept empty slug in workspace.create by @HeinrichNebula in #545
- feat(card): attach files directly when creating a card by @HeinrichNebula in #548
- fix: create empty boards through MCP by @mikkelvalentinsorensen in #561
- Fix: boards page heading and tabs are not translated by @serhiihordiichuk in #564
- perf: add indexes for card relation queries by @bionicman in #566
- feat(e2e): setup test harness by @hjball in #557
- test(e2e): extend self-hosted test coverage by @hjball in #571
- feat(cloud): deprecate pro plan by @hjball in #573
- docs: add migration container to self hosting docs by @hjball in #578
- fix: preserve custom label colours when editing by @bionicman in #577
- fix: scope card member assignments to the workspace by @bionicman in #576
- fix: deduplicate mention emails per content change by @bionicman in #574
- fix: use public base URL for login redirects by @bionicman in #567
- feat: normalise empty card descriptions by @hjball in #582
- chore(tests): run unit tests on pull request by @hjball in #583
- test: update card member mock for description normalization by @bionicman in #585
- perf: deduplicate avatar URL generation in API responses by @bionicman in #570
- fix(db): enable pg_trgm in PGlite by @bionicman in #587
- fix: preserve Trello label colours during import by @bionicman in #579
- fix(card): normalise descriptions on update by @bionicman in #592
- fix(trello): protect stored access tokens by @bionicman in #591
- fix(board): prevent actions on optimistic lists by @bionicman in #597
- feat: clarify active board filters by @bionicman in #581
- perf: split trpc context from router builder by @hjball in #600
- fix: stop checklist item editor remounting after creation by @hjball in #601
- feat: add hosted mcp server by @hjball in #607
- fix(editor): restore monospace code font by @bionicman in #613
- test(editor): cover markdown behavior and unsafe input by @bionicman in #614
- fix(mcp): fix broken tools and false unauthorized errors on hosted server by @hjball in #615
- fix(ci): run pinned MinIO image for E2E by @bionicman in #626
- fix(mcp): return 404 for oauth discovery paths by @hjball in #627
- fix: restore list scroll after closing a card by @bionicman in #625
- fix(s3): default empty region to us-east-1 by @bionicman in #621
- fix: clear attachment upload spinner after successful upload by @anandghegde in #623
- Require board:create permission for GitHub project import (fixes #628) by @carfeii in #629
- fix: preserve board filters after closing a card by @bionicman in #624
- feat: add calendar view by @hjball in #630
- feat: migrate from react-beautiful-dnd to dnd-kit by @hjball in #633
- chore: remove changelog by @hjball in #634
- fix: keep dead-key and IME composition intact in new checklist items by @matthieu403 in #658
- fix(ci): install MinIO from archived release by @bionicman in #646
- fix(api): redact secrets from request logs by @jkugsiya in #651
- fix: enable credentials by default in .env.example by @jayala in #602
- fix(cards): keep card labels within the card's own board by @nickmeinhold in #569
- fix(i18n): detect pt-BR browser language by @TenSoja in #652
- Fix: side navigation labels do not update on locale change by @serhiihordiichuk in #563
- fix: buffer avatar upload body before sending to S3 by @ryzenixx in #616
- fix(web): show the open board's workspace in the sidebar by @jkugsiya in #653
- fix(api): return valid tRPC rate limit errors by @bionicman in #610
- fix(storage): avoid optional checksums in presigned uploads by @bionicman in #620
- fix(auth): explain how to fix the empty auth form when self hosting by @jayala in #603
- feat: allow users to choose card activity order by @bionicman in #608
- fix(board): allow short board URL slugs by @bionicman in #661
- fix(i18n): localize permission and menu labels by @bionicman in #663
- chore(mcp): publish MCP server as @kan.bn/mcp by @hjball in #664
- feat: add board invitations by @hjball in #662
- feat(board): add copy board link option to dropdown by @hjball in #672
New Contributors
- @arsteyn made their first contribution in #543
- @aeroluxx made their first contribution in #540
- @HrCalmar made their first contribution in #553
- @HeinrichNebula made their first contribution in #545
- @mikkelvalentinsorensen made their first contribution in #561
- @serhiihordiichuk made their first contribution in #564
- @bionicman made their first contribution in #566
- @anandghegde made their first contribution in #623
- @carfeii made their first contribution in #629
- @matthieu403 made their first contribution in #658
- @jkugsiya made their first contribution in #651
- @jayala made their first contribution in #602
- @TenSoja made their first contribution in #652
- @ryzenixx made their first contribution in #616
Full Changelog: v0.6.0...v0.7.0