Changed
- tududi Cloud is open: the marketing page links every Cloud call to action
to registration and announces the launch in the hero. The waitlist, its
"opening soon" copy and thecloudOpenpricing flag are gone; hosted
registration follows the admin toggle alone. The page's email signup is
now for release notes only.
Docker image: docker pull chrisvel/tududi:1.6.0
What's Changed
- fix: persist Inbox "Recently captured" expand state by @chrisvel in #1542
- fix: AI request quota resets monthly, not daily by @chrisvel in #1550
- Move AI settings to Profile, add hosted-mode AI Credits by @chrisvel in #1544
- Add sidebar section customization to Profile Settings by @chrisvel in #1554
- fix: improve Upcoming board layout and center task status control by @chrisvel in #1557
- Fix date-dependent recurring interval phase test by @chrisvel in #1559
- Mark email as required in the admin Add/Edit user modal by @chrisvel in #1555
- Fix task row recurrence UI parity, z-index, and status styling by @chrisvel in #1558
- feat: add user groups for sharing with several people at once by @chrisvel in #1560
- feat: let users hide the Assigned to me and Everyone sidebar links by @chrisvel in #1561
- Merge admin Users and Groups into one tabbed page by @chrisvel in #1566
- fix: accept the numeric id on task, project and area REST routes by @chrisvel in #1569
- fix: Upcoming recurring occurrences expand and open independently by @chrisvel in #1568
- fix: successful backup restores no longer reported as errors by @chrisvel in #1564
- Accept note and description interchangeably for tasks in REST and MCP by @chrisvel in #1563
- fix: new subtasks inherit the parent priority instead of defaulting to low by @chrisvel in #1567
- fix: MCP update_task sets and clears completed_at like REST by @chrisvel in #1565
- chore: remove obsolete env vars and the ENABLE_NOTE_COLOR flag by @chrisvel in #1570
- feat: per-user email verification switch and password generator in the Add user form by @chrisvel in #1571
- fix: assignee lists include area, goal and group access (#1574) by @chrisvel in #1575
- feat: add admin, user and guest roles with capabilities (#1576) by @chrisvel in #1577
- feat: allow accounts without an email (#1578) by @chrisvel in #1579
- docs: add People, Members and Roles and update the README (#1573) by @chrisvel in #1580
- feat: add members from the People page and one People list (#1581) by @chrisvel in #1582
- fix: close exploitable auth, upload, SSRF and logging gaps by @chrisvel in #1585
- feat: list a role's permissions in the user form instead of switches (#1583) by @chrisvel in #1584
- fix: harden user management against wrong ids, partial updates and races (#1586) by @chrisvel in #1587
- fix: record the creator of accounts made from a contact card (#1589) by @chrisvel in #1590
- fix: /api/waitlist only accepts signups while hosted Cloud is shut by @chrisvel in #1588
- fix: answer a missing or wrong CSRF token with 403 instead of 500 (#1591) by @chrisvel in #1592
- fix: refuse placeholder and mail-less addresses on the waitlist by @chrisvel in #1594
- feat: sign-in link for members without an email (#1593) by @chrisvel in #1595
- fix: give the sign-in link endpoints their own rate limit (#1596) by @chrisvel in #1597
- i18n: translate the groups, roles, People, members and sign-in link strings (#1598) by @chrisvel in #1599
- feat: all-entities launcher modal and per-section sidebar visibility by @chrisvel in #1600
- feat: share a note publicly with a revocable link by @chrisvel in #1602
- feat: render mermaid diagrams in markdown by @chrisvel in #1605
- feat: Live editor for notes by @chrisvel in #1606
- feat(notes): show a shared indicator in the sidebar notes tree by @chrisvel in #1608
- feat: task comments with @mentions and soft delete by @chrisvel in #1609
- feat: replies, reactions, and layout fixes for task comments by @chrisvel in #1611
- feat: Notion-style block editing for notes by @chrisvel in #1610
- style: more breathing room in task comments UI by @chrisvel in #1612
- fix: widen oidc_identities.picture to TEXT to avoid varchar(255) overflow by @chrisvel in #1614
- fix: restore account profile and project/avatar images on backup import by @chrisvel in #1615
- fix: point CalDAV private-address error at the setting to allow it by @chrisvel in #1616
- fix: show every note to pick from instead of a dead-end placeholder by @chrisvel in #1617
- Cleanup dead npm scripts, move Billing/AI Usage to admin dashboard by @chrisvel in #1613
- docs: bring docs back in sync with the app by @chrisvel in #1619
- fix: Tag search results ignore the view's tag-filter criteria by @chrisvel in #1627
- fix: default a view's search to Task-only when no entity-type filter is set by @chrisvel in #1628
- fix: unify active task status filtering across TaskList, GroupedTaskList, ViewDetail by @chrisvel in #1629
- fix: view/search task counts ignore status, keeping done/cancelled tasks counted forever by @chrisvel in #1630
- fix: refresh cached tag counts when task/note/project tags change by @chrisvel in #1631
- test(upgrade): add v1.5.0 and v1.6.0-rc.1 legacy SQLite fixtures by @chrisvel in #1618
- fix: project modal closes when clicking the due date calendar or priority menu by @chrisvel in #1621
- fix(inbox): preserve project assignment when creating a task by @emaori in #1572
- Enable backups, CalDAV and MCP by default, remove FF_ENABLE_* flags by @chrisvel in #1632
- feat: accept any file type for task attachments by @chrisvel in #1633
- fix: bump lodash-es to 4.18.1 (Dependabot alerts) by @chrisvel in #1634
- feat: task relations (blocks, related to, duplicates) by @chrisvel in #1635
- feat: plan my day, Today in two modes by @chrisvel in #1636
- feat: AI help for planning the day by @chrisvel in #1637
- feat: task relations in the expanded task row by @chrisvel in #1639
- fix: build the frontend on the host architecture in the Docker image by @chrisvel in #1640
- feat: drag and drop custom order for projects and tasks by @chrisvel in #1641
- feat: clickable tasks, calmer hover and a custom candidate order on Plan my day by @chrisvel in #1643
- feat: natural-language dates, recurrence and @person in the inbox by @chrisvel in #1642
- feat: one Add box for Inbox, Task, Note and Project by @chrisvel in #1655
- feat: manage and show or hide calendars on the Calendar page by @chrisvel in #1654
- chore: remove unused features and dead code by @chrisvel in #1657
- feat: attachments for Inbox items, tasks, projects and notes by @chrisvel in #1656
- feat: Plan my day: Add task, Planning order and day hours by @chrisvel in #1658
- feat(mcp): link projects to goals by @chrisvel in #1661
- feat(habits): quit and measurable habits, skips, strength, history grid, reminders and colors by @chrisvel in #1662
- feat(landing): terms, privacy and refund pages by @chrisvel in #1663
- fix(backup): WAL-safe startup backups and restore fixes by @chrisvel in #1671
- fix: keep missed recurring tasks listed as overdue by @xjohnyknox in #1649
- feat(ui): blank slates, mobile fixes and translations across the app by @chrisvel in #1679
- chore(deps): bump multer from 2.3.0 to 2.4.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1678
- feat(plan): choose which tasks Plan my day suggests by @chrisvel in #1676
- fix: keep the real name of recurring tasks in MCP task tools by @xjohnyknox in #1645
- chore(deps): bump nodemailer from 9.1.1 to 10.0.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #1680
- fix(plan): show the real name of recurring tasks in Plan my day by @chrisvel in #1682
- fix(plan): reload the planner's task list when it comes back into view by @chrisvel in #1683
- fix: clear the previous account's data on logout and login (#1675) by @chrisvel in #1684
- fix(plan): rank by priority before the project split in Plan my day by @chrisvel in #1685
- i18n(plan): translate the new Planning order rule by @chrisvel in #1688
- fix(oidc): unlinking an SSO account no longer fails (#1691) by @chrisvel in #1692
- fix(oidc): land on the OIDC/SSO tab after linking instead of a 404 (#1690) by @chrisvel in #1693
- fix(sharing): shared areas and goals are visible to the recipient (#1665) by @chrisvel in #1695
- fix(config): email links follow BASE_URL instead of pointing at localhost (#1672) by @chrisvel in #1697
- fix(oidc): use the profile claims for an SSO account's name (#1689) by @chrisvel in #1694
- test: fix flaky shared-attachment download test by @chrisvel in #1702
- i18n(profile): translate the profile settings page into all languages by @chrisvel in #1703
- fix(tasks): usable task rows on phones (#1669) by @chrisvel in #1701
- fix(tasks): expanded task rows show the task's note (#1668) by @chrisvel in #1700
- fix(sidebar): expandable sections work on touch and stay expanded (#1666) by @chrisvel in #1699
- fix(eisenhower): Korean axis labels no longer render upside down (#1686) by @chrisvel in #1696
- fix(notes): selecting text to copy no longer flips the note into source (#1667) by @chrisvel in #1698
- fix(mcp): pass estimated_minutes through create_task and update_task by @rome-xi in #1670
- docs: add example kubernetes manifests by @xjohnyknox in #1659
- feat: list and add task comments over MCP by @xjohnyknox in #1651
- test(auth): cover CSRF on the real app, OIDC unlink, and bearer issuer matching by @chrisvel in #1710
- feat: open tududi Cloud registration, with Google sign-up by @chrisvel in #1711
- fix(caldav): count only failed Basic auth toward CalDAV rate limit by @rome-xi in #1709
- fix(uploads): project images show for assignees and on every project using them (#1674) by @chrisvel in #1704
- fix(backup): an admin's backup restores every account on the instance (#1673, #1660) by @chrisvel in #1706
- fix(security): quote project ids in metrics SQL, pin outbound connections by @chrisvel in #1712
New Contributors
- @emaori made their first contribution in #1572
- @xjohnyknox made their first contribution in #1649
- @rome-xi made their first contribution in #1670
Full Changelog: v1.5.0...v1.6.0