Commit graph

16711 commits

Author SHA1 Message Date
Michael Kiausch
1c532c6e5f use Log.warn instead of console.warn
added more warning output if board reference is not found
2026-01-01 17:17:05 +01:00
Michael Kiausch
cc6a9871e8 adjusted css so that right click on the whole tab label works to open the context menu
removed import of no longer required ContextMenuComponent
2026-01-01 17:10:20 +01:00
dependabot[bot]
25225a7609
chore(deps): bump actions/upload-artifact from 5 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 13:01:51 +00:00
dependabot[bot]
d0f521c22f
chore(deps): bump actions/cache from 4 to 5
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 13:01:39 +00:00
dependabot[bot]
4738955b04
chore(deps-dev): bump @typescript-eslint/utils from 8.41.0 to 8.51.0
Bumps [@typescript-eslint/utils](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/utils) from 8.41.0 to 8.51.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/utils/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.51.0/packages/utils)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/utils"
  dependency-version: 8.51.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-01 13:01:10 +00:00
Johannes Millan
00fdb29db9 fix(android): resolve race condition and improve widget reliability
- Add @Synchronized to WidgetTaskQueue methods to prevent task loss
- Use apply() instead of commit() in addTask() to avoid UI blocking
- Change QuickAddActivity to extend AppCompatActivity for consistency
- Add unit tests for setCounter() plugin API method
2026-01-01 12:34:39 +01:00
timhuynhwork@gmail.com
4eafe2086a Disable play button and show tooltip when no tasks available 2025-12-31 20:02:22 -08:00
Michael Kiausch
d0c8dabd1f use translations for board actions 2025-12-31 19:08:25 +01:00
Michael Kiausch
8beb4cb2f0 updated boards context menu to include delete and edit actions 2025-12-31 18:43:15 +01:00
Johannes Millan
29ffa0f5d8 Merge remote-tracking branch 'origin/master'
* origin/master:
  Merge branch 'master' into master
2025-12-31 14:16:44 +01:00
Johannes Millan
6dea85c083 fix(test): use dynamic date in year boundary test to avoid today collision
The test was failing on Dec 31 because the hardcoded date '2025-12-31'
matched as "today", causing dateDisplay() to return just the time.
2025-12-31 14:04:22 +01:00
Johannes Millan
62d449a82f fix(electron): reduce idle detection log verbosity
Change frequent idle check logs from info to debug level to prevent
polluting system logs (e.g., /var/log/syslog) every 5 seconds.

Closes #5794
2025-12-31 13:42:18 +01:00
Johannes Millan
1529920c37 fix(plugins): ensure setCounter creates valid SimpleCounter records
The setCounter() method was using upsertSimpleCounter without providing
mandatory fields (title, type), causing DataValidationFailedError on
app reload when plugins created counters.

Now checks if counter exists first:
- Existing counters: only update countOnDay value
- New counters: create complete record with all required fields

Fixes #5812
2025-12-31 13:38:05 +01:00
Johannes Millan
4a89c05d32 feat(android): add quick add widget 2025-12-31 12:45:17 +01:00
Johannes Millan
25edb4ff1e perf(android): prewarm WebView during idle time to speed up startup
Load WebView native libraries during main thread idle time using
IdleHandler and WebSettings.getDefaultUserAgent(). This reduces
the 200-300ms freeze on first WebView creation.
2025-12-31 11:45:52 +01:00
Johannes Millan
6d82c1982d fix(ical): prevent race condition in lazy loader
Use Promise-based singleton pattern to ensure concurrent calls share
the same loading promise instead of triggering multiple imports.

Also fix pre-existing test bug using await in sync function.
2025-12-31 11:28:09 +01:00
Johannes Millan
1cb1e1c742 perf: lazy load ical.js to reduce initial bundle size
Move ical.js (~76KB) to a lazy-loaded chunk via dynamic import.
The library is only loaded when calendar integration features are used.

- Create ical-lazy-loader.ts for on-demand loading
- Make getRelevantEventsForCalendarIntegrationFromIcal async
- Update calendar-integration.service.ts to use switchMap
2025-12-30 20:20:07 +01:00
Johannes Millan
a97a881e27
Merge pull request #5791 from dXrayb/patch-12
Merge branch 'master' into master
2025-12-30 18:46:12 +01:00
Johannes Millan
cc593a324a test(webdav): improve stability of sync e2e tests
- Add retry loop for deletion sync to handle eventual consistency
- Fix done state sync test to handle Done Tasks section
- Add task order sync test
- Add time tracking sync test (skipped - complex persistence)
2025-12-29 20:38:06 +01:00
Johannes Millan
26735c7f74 build: update gitignore 2025-12-29 13:02:36 +01:00
Johannes Millan
c4f536471a test(webdav): add e2e tests 2025-12-29 12:48:36 +01:00
ryziopl
166f8e5b16
Update pl.json
Translate lines from 61 to 130.
Add mising lines.
2025-12-27 21:35:31 +01:00
ryziopl
cb12372728
Update pl.json
Fix Polish translation to line 60.
Add missing Lines fron oryginal EN file.
2025-12-27 12:54:15 +01:00
NoobFullStack
e2bf969397
feat: add markdown formatting toolbar to notes editor
Add comprehensive markdown formatting toolbar with 15 actions to improve note-taking UX.
Users can now format text without typing markdown syntax manually.

Features:
- Headings (H1/H2/H3) with toggle behavior
- Text formatting (bold, italic, strikethrough)
- Lists (bullet, numbered, task) with per-line application
- Block elements (quote, inline code, code block)
- Insertions (link, image, table template)

Implementation:
- Created markdown-toolbar.util.ts with pure transformation functions
- Added comprehensive unit tests in markdown-toolbar.util.spec.ts
- Added toolbar UI to inline-markdown component (task notes, focus mode, daily summary)
- Added toolbar UI to fullscreen markdown dialog (project notes editing)
- Ensured focus preservation via mousedown.preventDefault() to prevent blur on click
- Supports empty selection (inserts templates), text selection (wraps/toggles), and multi-line selection

All transformations:
- Maintain cursor position and restore focus
- Follow toggle logic (apply → remove → apply)
- Handle edge cases (existing formatting, empty lines, etc.)
- Work consistently across all note editing contexts

Technical details:
- Pure utility functions use arrow functions per ESLint rules
- Focus management prevents textarea blur when clicking toolbar buttons
- Compact styling matches existing component design patterns
- All ESLint/Prettier checks pass
2025-12-25 16:51:56 +00:00
Johannes Millan
b2332c4fb6 fix(security): update axios and brace-expansion dependencies
Run npm audit fix to address:
- axios DoS vulnerability (GHSA-4hjh-wcwx-xvwj)
- brace-expansion ReDoS vulnerability (GHSA-v6h2-p8h4-qcjw)
2025-12-23 14:10:54 +01:00
Johannes Millan
efb164c1fe fix(security): update Angular packages to address CVEs
- CVE-2025-66035: XSRF token leakage via protocol-relative URLs
- CVE-2025-66412: Stored XSS via SVG animation and MathML attributes
- CVE-2025-66414: DNS rebinding in @modelcontextprotocol/sdk

Updated @angular/* packages to 20.3.15 and @angular/cli to 20.3.13.
2025-12-23 14:10:16 +01:00
Johannes Millan
c4023b4f45 fix(security): address CodeQL security alerts
- Fix incomplete HTML sanitization in errors.ts (alerts #50-52)
  Apply regex repeatedly to handle nested inputs like <scri<script>pt>
- Add lgtm comment for intentional cert bypass in jira.ts (alert #40)
- Fix incomplete string escaping in load-env.js (alert #39)
  Escape backslashes before quotes
- Fix shell command injection in check-file.js (alerts #37-38)
  Use execFileSync with args array instead of string interpolation
2025-12-23 13:42:57 +01:00
John
f7d087e30a
Merge branch 'master' into master 2025-12-23 06:54:58 +08:00
Johannes Millan
50de4c1fd7 fix(build): remove deprecated win32metadata from electron-builder config
The win32metadata property is no longer valid in electron-builder 26.x.
Windows executable metadata is now automatically derived from productName.
2025-12-22 19:30:34 +01:00
Johannes Millan
d11435808e fix(focus-mode): address critical focus mode and Android notification issues
- Fix pausedTaskId race condition: pass pausedTaskId in action payload
  instead of reading from state (reducer clears before effect reads)
- Fix Android focus notification: update title/isBreak on transitions,
  restart timer runnable on resume from paused state
- Fix Android reminder cancellation: track scheduled IDs and cancel
  alarms when reminders are removed
- Fix banner Start button: dispatch skipBreak first when isBreakTimeUp
  to properly resume task tracking
- Fix WebDAV validation: use translation key instead of hardcoded string

Addresses code review feedback for sync issues identified in focus mode,
Android notifications, and reminder scheduling.
2025-12-22 19:00:02 +01:00
Johannes Millan
9309c8aee5 test(task-repeat): fix flaky tests and add Mon/Wed/Fri coverage (#5594)
- Fix 2 flaky tests that failed when run on Mondays by using dynamic
  weekday 3 days from today instead of hardcoded monday: true
- Add test for exact issue #5594 scenario: Mon/Wed/Fri pattern with
  dueDay update verification
- Add test for Mon/Wed/Fri scheduling in addRepeatCfgToTaskUpdateTask$
2025-12-22 15:32:19 +01:00
Johannes Millan
29be5929ea fix(electron): delay window focus after notification to prevent accidental input
Add 1.5s delay before focusing app window when triggered by tracking reminder,
idle detection, or take-a-break notifications. Also blur any focused element
after focus to prevent keystrokes from affecting tasks.

Fixes #5762
2025-12-22 15:28:01 +01:00
Johannes Millan
b37065a84c feat(task): add Go to Task button for all newly created tasks
Always show a "Go to Task" action button in the snack bar when a task
is created. The button behavior is context-aware:
- If task is visible on current page: opens the task detail panel
- If task is in a different project/context: navigates to that context

Closes #5759
2025-12-22 15:25:27 +01:00
Johannes Millan
18a0e78f12 fix(sync): show context-aware permission error for Flatpak/Snap
Add isFlatpak() detection to Electron API and show environment-specific
error messages when file permission errors occur during sync:
- Flatpak users see Flatseal and ~/.var/app/ guidance
- Snap users see 'snap connect' and ~/snap/... guidance
- Other users see generic permission error

Addresses #4078
2025-12-22 15:11:50 +01:00
Johannes Millan
ed2dbfbc27 fix(android): skip reminder dialog on Android to fix snooze button
On Android, native notifications handle reminders with their own snooze
button. The in-app dialog was still appearing because it wasn't aware
of the native snooze. Skip the dialog on Android so users only interact
with native notifications.

Fixes #5775
2025-12-22 14:56:21 +01:00
Johannes Millan
47a989710d fix(focus-mode): respect isFocusModeEnabled setting in App Features
Focus mode effects now check the isFocusModeEnabled flag before
triggering focus mode actions. Previously, disabling Focus Mode in
App Features didn't actually disable it if Productivity Helper
sub-settings like isSyncSessionWithTracking were enabled.

Fixes #5776
2025-12-22 14:42:41 +01:00
Johannes Millan
2c910f6753 fix(android): sync notification timer when time spent is manually changed
Add updateTrackingService method to reset the notification timer when
the user manually edits time spent on a task. Previously, the Android
foreground service maintained its own timer that was only set at
tracking start, causing desync when users manually reset time.

Fixes #5772
2025-12-22 14:40:40 +01:00
Johannes Millan
660adf76bc feat(sync): add WebDAV Test Connection button and improve UX
Add "Test Connection" button to WebDAV settings that validates
configuration before sync. Shows computed URL in success/error
messages to help users debug path issues.

Also adds description text explaining syncFolderPath semantics
to prevent misconfiguration (addresses #5508).

Closes #5508
2025-12-22 14:37:27 +01:00
Johannes Millan
fff8596d50 fix(build): ensure consistent Windows EXE metadata for installer and portable
Add explicit win32metadata configuration to electron-builder.yaml to ensure
FileDescription and InternalName are identical between NSIS installer and
portable builds.

Fixes #4625
2025-12-22 14:21:00 +01:00
Johannes Millan
d55e37b80d
Merge pull request #5780 from Cyber-Syntax/feat/update-turkish-language
feat(i18n): update Turkish language
2025-12-22 14:01:38 +01:00
Johannes Millan
45f80c5335
Merge pull request #5784 from consultorseovalencia/master
Completed spanish translation
2025-12-22 13:55:32 +01:00
José Manuel Sánchez
9efc246de6
Merge branch 'master' into master 2025-12-22 07:59:13 +01:00
José Manuel Sánchez
5b08723e95 Update es.json 2025-12-22 07:49:35 +01:00
José Manuel Sánchez
981fa07dd5 Update es.json 2025-12-22 07:39:19 +01:00
José Manuel Sánchez
b106d6e745 Update es.json 2025-12-22 07:17:20 +01:00
Cyber-Syntax
66121a1131 feat(i18n): update Turkish language 2025-12-21 16:29:23 +03:00
Johannes Millan
77b991c75c 16.7.3 2025-12-20 11:43:20 +01:00
Johannes Millan
75e0e7e86c fix: es.json 2025-12-20 11:42:46 +01:00
Johannes Millan
1d52bb91be 16.7.2 2025-12-19 21:17:46 +01:00
Johannes Millan
4a40af6f14 16.7.1 2025-12-19 21:15:45 +01:00