Commit graph

69 commits

Author SHA1 Message Date
Chris
dcb711c515
fix(inbox): Fix tag/project autocomplete selection (#1043)
* fix(mcp): Include subtasks in get_task API response

Add Subtasks association to the findTaskByIdentifier function
so that the get_task MCP API endpoint returns subtasks along
with the main task. This enables clients to access the full
task hierarchy in a single API call.

The serializeTask function already supported subtasks
serialization, so this change only required updating the
query includes to load the Subtasks relation with proper
ordering and Tag associations.

Fixes #1029

* fix(inbox): Fix tag/project autocomplete selection

Fixes #996

Previously, when creating a task from inbox with autocomplete suggestions,
the tag/project replacement would fail if there was regular text before
the hashtag or plus sign. This caused two issues:

1. When typing "#technical_writing" and creating a task, the tag wouldn't
   be created or applied because the autocomplete wasn't replacing the input
2. When typing "#tech_" and selecting "technical_writing" from autocomplete,
   a new tag "tech_" would be created instead of applying the existing tag

This was caused by an overly restrictive condition in handleTagSelect and
handleProjectSelect that prevented replacement when there was regular text
before the tag/project marker.

Changes:
- Removed the allowReplacement condition that blocked autocomplete when
  regular text preceded the tag/project marker
- Simplified handleTagSelect and handleProjectSelect to always replace
  partial input when a suggestion is selected
- Added a space after the selected tag/project for better UX
2026-04-18 10:04:57 +03:00
Chris
6c9902b584
fix: add CSRF token support to frontend requests (#1025)
This commit implements CSRF token support for all session-based API
requests to fix the "CSRF token missing" and "CSRF token mismatch" errors
introduced after CSRF protection was added in commit 62c4cc84.

Changes:
- Created csrfService.ts utility for fetching and caching CSRF tokens
- Added getPostHeadersWithCsrf() helper to authUtils for async token injection
- Updated all service files (*Service.ts) to include CSRF tokens in POST/PUT/PATCH/DELETE requests
- Updated components with inline fetch calls to use getCsrfToken()
- Fixed CSRF middleware to use single lusca instance instead of creating new instances per request
- Improved generateToken() to use req.csrfToken() when available
- Added CalDAV path exemption to CSRF protection

Technical details:
- CSRF tokens are fetched from /api/csrf-token endpoint
- Tokens are cached and reused across requests to avoid unnecessary fetches
- Tokens are included in x-csrf-token header for state-changing requests
- Public endpoints (login, register) remain exempt from CSRF protection
- Bearer token authentication remains exempt from CSRF protection

Files modified:
- Backend: app.js, middleware/csrf.js
- Frontend: 13 service files, 8 component files
- New file: frontend/utils/csrfService.ts

This ensures all session-based requests properly include CSRF tokens while
maintaining support for API token authentication.
2026-04-14 15:06:56 +03:00
Chris
e2d0b4d228
fix: resolve inbox project creation bugs (#1018)
- Fix button text showing "Update Project" instead of "Create Project"
  by checking for project.uid/id instead of just project existence
- Remove duplicate success toast (ProjectModal already shows one)
- Update both local and global projects store after creation
  so new project appears in Projects view without refresh

Fixes #980
2026-04-13 20:32:57 +03:00
Chris
a80e9b5aba
Fix redirect after task deletion to return to originating view (#887) 2026-03-01 16:07:02 +02:00
Chris
3ee54dbdc7
Fix an issue with breaking inbox input on long strings (#823) 2026-02-07 09:03:13 +02:00
Chris
438b08720c
Fix long timeout in bookmark note creation (#767) 2026-01-07 19:08:28 +02:00
Chris
eee1bbc013
Fix bug 722 (#737)
* Fix project statuses

* Refactor project states

* Add translations
2025-12-28 07:51:15 +02:00
Chris
ad8ab3ec72
Fix refactor pt2 (#734)
* Cleanup task routes

* Cleanup frontend tasks

* Clean tasks

* Cleanup project uid

* Cleanup quick capture old modal

* Cleanup taskmodal

* Move all icons to shared components

* Test inbox flow

* fixup! Test inbox flow
2025-12-27 17:46:34 +02:00
Chris Veleris
595252820e Move +Add to inbox top 2025-12-08 18:11:25 +02:00
Chris Veleris
6466f6ae00 Fix an issue with attachment permissions 2025-12-08 16:33:49 +02:00
Chris
3649e24448
Fix bug 677 (#679)
* Add lint-staged

* fixup! Add lint-staged
2025-12-08 12:06:27 +02:00
Chris
3796324675
Feat add inbox flow (#676)
* Replace quick capture

* Transfer to inbox

* Fix inbox edit

* fixup! Fix inbox edit

* fixup! fixup! Fix inbox edit

* fixup! fixup! fixup! Fix inbox edit

* fixup! fixup! fixup! fixup! Fix inbox edit

* fixup! fixup! fixup! fixup! fixup! Fix inbox edit

* Add long text

* fixup! Add long text

* fixup! fixup! Add long text

* fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Add long text

* fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! Add long text
2025-12-08 09:21:35 +02:00
Chris
75a1e68730
Tc refactor pt1 (#589)
* Refactor ProfileSettings

* Cleanup comments

* Refactor TaskDetails

* Refactor InboxModal

* fixup! Refactor InboxModal

* Fix project layout

* Add visuals to project details

* Refactor projectdetails

* Remake project metrics

* Complete project details refactor

* Fix note issues and enhance view

* Add filters

* Fix project tasks filters

* Add filters to task lists

* Add filters to task lists

* fixup! Add filters to task lists
2025-11-23 21:48:49 +02:00
Chris
0213f79b0a
Feat main content revamp (#584)
* Move width of certain pages

* fixup! Move width of certain pages
2025-11-20 09:15:55 +02:00
Chris
cadb3fc6ee
Set priority to low when creating task from inbox (#562) 2025-11-17 22:46:33 +02:00
Chris
673a6a56ee
Fix static base path (#549) 2025-11-16 22:43:06 +02:00
Chris
02b493d61f
Universal search (#412)
* Global search scaffold

* Add search preview text

* Add generic fallback for preview text in search

* fixup! Add generic fallback for preview text in search

* Add more tweaks

* fixup! Add more tweaks

* Fix an issue with criteria

* fixup! Fix an issue with criteria

* fixup! fixup! Fix an issue with criteria

* fixup! fixup! fixup! Fix an issue with criteria

* Fix an issue with priority filter

* fixup! Fix an issue with priority filter

* Add sortable pins

* fixup! Add sortable pins

* Make options collapsed by default

* Tweak UI

* Add tests

* Add translations

* Add more translations

* fixup! Add more translations

* Add minor tweaks
2025-10-22 22:00:45 +03:00
Chris
119b04acff
Fix inbox items refresh (#398)
* Fix inbox items refresh

* fixup! Fix inbox items refresh
2025-10-07 17:10:33 +03:00
Antonis
4fa2aa91bf
Fix E2E test breakage (#380)
* Add logging placeholder functions, fix notes.js uids

* Add UIDs to inbox items. Includes migration.

* Add UID to users.

* Add project UIDs usage.

* Add script that runs specific E2E test(s)

* Only run Chromium E2E tests by default.

* Fix breaking E2E tests

* fixup! Fix breaking E2E tests

---------

Co-authored-by: antanst <>
Co-authored-by: Chris Veleris <chrisveleris@gmail.com>
2025-10-05 16:04:46 +03:00
Chris Veleris
aa67d1008d Fix typescript issues 2025-09-30 12:35:55 +03:00
Chris
9d2b1895af
Feat/add project states (#354)
* Scaffold project states

* fixup! Scaffold project states

* Fix blinking project modal

* fixup! Fix blinking project modal

* fixup! fixup! Fix blinking project modal

* Fix an issue with the tag input autosuggest

* fixup! Fix an issue with the tag input autosuggest

* fixup! fixup! Fix an issue with the tag input autosuggest

* Add state to project details

* fixup! Add state to project details

* Add state indicator on project cards

* fixup! Add state indicator on project cards
2025-09-29 16:04:25 +03:00
Antonis
c9f7fbb522
Fix notes.js & areas.js UID usage and remove IDs. (#355)
* Add logging placeholder functions, fix notes.js uids

* Fix areas.js uids and remove ids

* Add UIDs to inbox items. Includes migration.

* id -> uid for task-events.js

---------

Co-authored-by: antanst <>
2025-09-29 16:03:46 +03:00
Chris
11568e6f3c
Move icons in mobile to list (#358) 2025-09-23 22:45:07 +03:00
Antonis
70956f9ecd
Change tags to use uids instead of ids. (#351)
* Small cleanups

* Change tags to use uid instead of id.

---------

Co-authored-by: antanst <>
2025-09-22 17:10:29 +03:00
Chris
c237d71ccb
Add inbox pagination (#340)
* Bump version

* Bump version

* Scaffold inbox pagination

* fixup! Scaffold inbox pagination
2025-09-19 16:07:50 +03:00
Chris Veleris
27d41aaeed Setup slugify and fix nanoid issues 2025-08-08 23:14:40 +03:00
antanst
6cf79c322d Update frontend to use UID-based routing
- Update all entities to include UID field
- Convert components to use UID for navigation and links
- Update services to support UID-based API calls
- Add slug utilities for UID extraction
- Update store to handle UID fields
- Fix routing throughout all components
2025-08-06 15:54:45 +03:00
Chris Veleris
3599bc2b60 Add nanoid 2025-08-04 23:50:53 +03:00
Chris Veleris
9d8542aa1e Fix an issue with taskmodal refreshing the page 2025-08-04 23:50:53 +03:00
Chris Veleris
31719a8c13 Fix taskmodal issues with saving and closing 2025-08-01 18:06:50 +03:00
Chris Veleris
4055fde8e1 When task with no priority, set low default 2025-08-01 18:06:50 +03:00
Chris Veleris
c65ea55a01 Improve modals rounded corners 2025-07-23 18:03:06 +03:00
Chris Veleris
753aaba18d Remove duplicate toaster messages on task create 2025-07-23 14:42:54 +03:00
Chris Veleris
3fdc31fb65 Fix an issue with check to done task not moving to completed 2025-07-23 12:22:06 +03:00
Chris Veleris
8ce3993468 Fix lint issues
Fix lint issues

Fix TS issues
2025-07-23 12:22:06 +03:00
Chris Veleris
9956352ff9 Move subtasks loading to global state 2025-07-23 12:22:06 +03:00
Chris Veleris
cf8b1c9709 Fix an issue with create-from buttons in inbox 2025-07-22 11:44:49 +03:00
Chris
bd6d176666
Add sorting projects (#175)
* Add sorting dropdown to projects list

* Fix lint issues

* fixup! Fix lint issues

* Fix new task space and completed expose

* Fix completed switch and filters

* Fix an issue with projects not appearing as links

* Fix an issue with modal appearing relative to task list

* Remove obsolete loads

* Fix list issues

* Fix mobile/desktop settings dropdown functionality

* Update project modal layout

* Realign project options

* Fix tags dropdown in Project modal

* Fix inbox amount sidebar layout

* Fix project banner tags listing

* Remove icons from titles

* Fix lint errors

* fixup! Fix lint errors

* fixup! fixup! Fix lint errors

* Beautify notes and areas

* Experiment with new notes layout

* fixup! Experiment with new notes layout

* fixup! fixup! Experiment with new notes layout

* Fix note layout

* fixup! Fix note layout

* Fix an issue with adding an area and refreshing
the area list

* Fix an issue with project edit delete menu

* fixup! Fix an issue with project edit delete menu

* Fix an issue with projects create

* Update interaction with Notes

* Update interaction with tags

* fixup! Update interaction with tags

* Fix lint issues

* Extract shared filter

* Add sorting dropdown translations

* fixup! Add sorting dropdown translations

* fixup! fixup! Add sorting dropdown translations
2025-07-21 18:41:11 +03:00
Chris
10d96397c3
Sorting fixes (#174)
* Update version

* Order Inbox items by creation timestamp, desc

* Fix input keyboard tab and enter handling

* Fix lint issues

* Move in progress items to the top of today list

* Make tags and projects clickable

* fixup! Make tags and projects clickable

* fixup! fixup! Make tags and projects clickable
2025-07-17 17:43:56 +03:00
Antonis Anastasiadis
4878c71618 Lint & format (#159)
Co-authored-by: antanst <>
2025-07-15 10:44:02 +03:00
Chris Veleris
6e9dd9e6f0 Add missing translations and fix an issue with duplicate toasters 2025-07-15 10:44:02 +03:00
Chris Veleris
f2f8c5cde0 Improve Telegram integration 2025-07-12 21:07:46 +03:00
Chris Veleris
5d122f397f Scaffold intelligent suggestions 2025-07-11 20:34:48 +03:00
Chris Veleris
8a7a2afabf Process inbox tags and project 2025-07-11 17:20:20 +03:00
Chris Veleris
04d39b07e9 Transfer tags and project to modals 2025-07-11 16:14:12 +03:00
Chris Veleris
3375322bea Fix light mode blank slate style 2025-07-11 11:40:39 +03:00
Chris Veleris
89439b67db Improve blank slate and add favicon, translation 2025-07-10 17:34:09 +03:00
Chris Veleris
749d30610a Cleanup page info and search areas 2025-07-10 13:50:18 +03:00
Chris Veleris
90603b730d Improve Telegram interface and process 2025-07-10 11:13:59 +03:00
Chris Veleris
0cf194ea21 Fix an issue in Inbox that causes a glitch on reload 2025-07-09 23:44:09 +03:00