Commit graph

16711 commits

Author SHA1 Message Date
Johannes Millan
a7bc0c20e9 Merge remote-tracking branch 'origin/master'
* origin/master: (21 commits)
  docs: add archived tasks viewer to community plugins
  chore(deps): bump aws-sdk-s3 in the bundler group across 1 directory
  Update zh.json
  Update es.json
  Update es.json
  fix(linear): show status name property
  fix: add retry for rate limiting
  feat: update ClickUp issue content comments
  feat: refactor ClickUp error logging to use IssueLog
  Tweaked visual display
  feat: Add generic subtask support for issue providers, implement for ClickUp
  Added parent task title to focus mode
  fix: remove deprecated toPromise calls
  chore: organize imports
  test: refactor to use typia.random
  Update it.json
  feat: Introduce typia for ClickUp API runtime type validation, refactor ClickUp models, and simplify task title display.
  Full translation and corrections pl.json
  test: add clickup api service unit tests
  fix: update workspace selection api key
  ...
2025-12-19 21:12:32 +01:00
Johannes Millan
592eb3ba39 16.7.0 2025-12-19 21:10:21 +01:00
Johannes Millan
97eb781c9c fix(focus-mode): show start button when break time is up in banner mode
When break time is up and the banner shows "Break is done", pressing
the play button now starts the next session instead of trying to
resume the completed break.
2025-12-19 21:02:50 +01:00
Johannes Millan
4c38486eb6 fix(focus-mode): hide dismiss button in banner-only mode (#5737)
When using banner-only mode (isStartInBackground), hide the Dismiss
button to prevent users from accidentally dismissing the focus mode
banner, especially after session completion.
2025-12-19 21:01:11 +01:00
Johannes Millan
fa46aa5c36 fix(focus-mode): add start button in banner after session completes (#5737)
When a session is manually completed in banner mode, show a "Start"
button to begin the next session instead of hiding the play button.
Also hide the "End Session" button when session is already completed.
2025-12-19 20:54:28 +01:00
Johannes Millan
78fd85fdaa refactor(focus-mode): remove isAlwaysUseFocusMode setting (#5737)
- Remove isAlwaysUseFocusMode from config model, defaults, and form
- Use isSyncSessionWithTracking instead for auto-opening focus mode
- Reorder form fields: isSyncSessionWithTracking first, then isStartInBackground
- Update all tests to reflect the changes
2025-12-19 20:54:01 +01:00
Johannes Millan
7c21b3bf5c feat(focus-mode): add task existence check before resuming tracking (#5737)
Add validation in sync effects to check if the paused task still
exists before attempting to resume tracking. This prevents errors
when a task is deleted during a focus session pause.
2025-12-19 20:53:31 +01:00
Johannes Millan
4f9c5146e1 feat(focus-mode): add icon buttons for banner and sync session with tracking (#5753)
- Add icon buttons (play/pause, stop, open overlay) to focus mode banner
  when "start in background" mode is enabled
- Replace isAutoStartSession with isSyncSessionWithTracking for
  bidirectional sync between focus session and time tracking:
  - Pause session → stop tracking (stores task ID for resume)
  - Resume session → resume tracking on stored task
  - Stop tracking → pause session
  - Start tracking → start/resume session
- Fix session auto-completing on resume by using distinctUntilChanged
  on isRunning state
- Fix pause/resume to work for both work sessions and breaks
- Add pausedTaskId prop to pauseFocusSession action for sync feature
- Add comprehensive tests for all sync effects (26 new tests)
2025-12-19 19:21:28 +01:00
Johannes Millan
9e3159dbb2 fix(repeat): schedule tasks for correct day and remove from Today when needed (#5594)
- Use getFirstRepeatOccurrence to calculate the correct first occurrence date
  when making a task repeatable
- Remove tasks from Today tag when first occurrence is not today, even when
  startTime/remindAt are not set
- Make isSkipAutoRemoveFromToday dynamic based on isToday(dateTime) in both
  effects and service
- Add comprehensive tests for the new behavior
2025-12-19 18:48:10 +01:00
Johannes Millan
2bcd4b911f feat(focus-mode): sync duration when Pomodoro settings change (#5753)
When Pomodoro session duration is changed in settings, the displayed
duration for an unstarted session now updates automatically. Only syncs
if divisible by 1000 (whole seconds) and session hasn't started.
2025-12-19 18:26:37 +01:00
Johannes Millan
7b099af796 feat(focus-mode): add new settings and fix pomodoro dialog (#5753)
- Add pause task tracking during breaks setting
- Add auto-start session when task selected setting
- Add background/banner-only mode setting
- Fix pomodoro settings dialog not saving changes
- Fix auto-start session triggering on SessionDone screen
- Add comprehensive unit tests for focus-mode effects
2025-12-19 18:12:45 +01:00
Johannes Millan
88405eaecb fix(focus-mode): fix pomodoro long break timing and add ticking sound option (#5753)
- Fix long break triggering after 3rd session instead of 4th
- Rename "Skip preparation screen" setting to clarify rocket animation
- Add ticking sound option to Focus Mode settings (disabled by default)
2025-12-19 16:50:27 +01:00
Johannes Millan
31dc6cbf9d
Merge pull request #5756 from baiyina/feat/add-plugin
docs: add archived tasks viewer to community plugins
2025-12-19 16:09:47 +01:00
Johannes Millan
f7901ba47f feat(android): add better notifications and permanent notification for focus mode 2025-12-19 15:52:11 +01:00
Johannes Millan
ffa7122aea feat(android): add background time tracking via foreground service
When a task is being tracked and the app goes to the background on Android,
JavaScript execution is paused/throttled, causing time tracking to stop.

This adds a native Foreground Service that:
- Shows a persistent notification with task title and elapsed time
- Tracks time independently using timestamps (not JS ticks)
- Provides Pause and Done action buttons on the notification
- Syncs elapsed time back to Angular when the app resumes or task changes

Architecture:
- Native service stores startTimestamp + accumulatedMs
- Calculates elapsed = (now - startTimestamp) + accumulated
- Angular effects sync time on resume, task switch, and notification actions
2025-12-19 13:38:52 +01:00
Johannes Millan
afa6bb85ea build(ci): add i18n JSON validation step to lint-and-test workflow 2025-12-19 13:34:45 +01:00
baiyina
00e1c765fc docs: add archived tasks viewer to community plugins 2025-12-19 20:26:10 +08:00
Johannes Millan
b6a7660645 fix(android): make schedule dialog scrollable on small screens (#5741)
Wrap dialog content in mat-dialog-content to enable scrolling when
the "Remind at" field appears, ensuring action buttons remain
accessible on small phone screens (5" and similar).
2025-12-19 12:56:41 +01:00
Johannes Millan
2aebc2c216 fix(focus-mode): preserve existing notes when opening notes panel (#5752)
Add isDefaultText binding to inline-markdown in focus overlay to properly
distinguish between user notes and default template, preventing note
overwrite when clicking the notes button.
2025-12-19 12:14:13 +01:00
Johannes Millan
495abcb4cf fix(sync): show user-friendly error for Flatpak/Snap permission issues
Detect filesystem permission errors (EROFS, EACCES, EPERM) during local
file sync and display a helpful message guiding users to grant permissions
via Flatseal or use ~/.var/app/ path.

Fixes #4078
2025-12-19 12:13:08 +01:00
Johannes Millan
682684b65e
Merge pull request #5754 from johannesjo/dependabot/bundler/bundler-d22f08ed5d
chore(deps): bump aws-sdk-s3 from 1.169.0 to 1.208.0 in the bundler group across 1 directory
2025-12-19 11:51:43 +01:00
Johannes Millan
ac41d394d7
Merge pull request #5751 from dXrayb/patch-10
Update zh.json
2025-12-19 11:45:27 +01:00
Johannes Millan
68f3c6a5d9 fix(i18n): use correct variable in TASK_CREATED translation (#5743)
The code passes `taskTitle` but 23 translation files used `{{title}}`,
causing the notification to display the literal text instead of the
task name.
2025-12-19 11:13:52 +01:00
Johannes Millan
ae9911b7f9
Merge pull request #5718 from theBenForce/feat/2356/add-clickup-support
feat: ClickUp support
2025-12-19 11:12:43 +01:00
Johannes Millan
f42a74830f
Merge pull request #5746 from calvin-fisher/show-parent-task-name-in-focus-mode
Show parent task name in focus mode
2025-12-19 11:12:19 +01:00
Johannes Millan
4914934bb4
Merge pull request #5740 from krystiankwole-lang/patch-1
Full translation and corrections pl.json
2025-12-19 11:11:27 +01:00
Johannes Millan
99bff03a5a
Merge pull request #5750 from consultorseovalencia/master
Updated es.json (spanish translation)
2025-12-19 11:07:20 +01:00
Johannes Millan
afc8f98311
Merge pull request #5748 from theBenForce/fix/show-linear-ticket-status
fix(linear): show status name property
2025-12-19 11:03:55 +01:00
Johannes Millan
36e99cddf9
Merge pull request #5744 from FromColleWithLove/patch-1
Update it.json
2025-12-19 10:57:28 +01:00
dependabot[bot]
50fa3b7b76
chore(deps): bump aws-sdk-s3 in the bundler group across 1 directory
Bumps the bundler group with 1 update in the / directory: [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby).


Updates `aws-sdk-s3` from 1.169.0 to 1.208.0
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)

---
updated-dependencies:
- dependency-name: aws-sdk-s3
  dependency-version: 1.208.0
  dependency-type: indirect
  dependency-group: bundler
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-18 19:23:29 +00:00
John
9fa893ff94
Update zh.json
Remove blank row from 1883
2025-12-18 11:28:34 +08:00
José Manuel Sánchez
804590aaf8 Update es.json 2025-12-17 13:28:42 +01:00
José Manuel Sánchez
7714eafe00
Merge branch 'master' into master 2025-12-17 07:36:06 +01:00
José Manuel Sánchez
e7afa5f6a2 Update es.json 2025-12-17 07:28:32 +01:00
Ben Force
f306adb6b7 fix(linear): show status name property 2025-12-16 13:56:41 -06:00
Ben Force
f9653010f5 fix: add retry for rate limiting 2025-12-16 12:38:55 -06:00
Ben Force
e77fdbc0e8 feat: update ClickUp issue content comments 2025-12-16 11:16:53 -06:00
Ben Force
3ff45cb708 feat: refactor ClickUp error logging to use IssueLog 2025-12-16 10:57:06 -06:00
Calvin Fisher
a4d4772639 Tweaked visual display 2025-12-16 10:53:09 -06:00
Ben Force
4c113cdeb5 feat: Add generic subtask support for issue providers, implement for ClickUp 2025-12-16 10:37:22 -06:00
Calvin Fisher
52000495f3 Added parent task title to focus mode 2025-12-16 10:24:47 -06:00
Ben Force
de06693bf6 fix: remove deprecated toPromise calls 2025-12-16 10:22:02 -06:00
Ben Force
a1e44ead1a chore: organize imports 2025-12-16 10:17:52 -06:00
Ben Force
bc2dce9b91 test: refactor to use typia.random 2025-12-16 10:10:22 -06:00
Davide Alimonti
d4450ace92
Update it.json
Fixed task title substitution
2025-12-16 14:53:14 +01:00
Ben Force
cb6edd3deb feat: Introduce typia for ClickUp API runtime type validation, refactor ClickUp models, and simplify task title display. 2025-12-16 07:36:23 -06:00
krystiankwole-lang
3ab7c27476
Full translation and corrections pl.json
This is a full translation (100%) and corrections for translation and stylistic.
2025-12-15 21:03:32 +01:00
Johannes Millan
52fd0dfc75 fix(electron): use includes() instead of in operator for hostname check
The `in` operator checks for array indices, not values, so the condition
was always false. This prevented User-Agent header removal for GitHub,
Office365, and Outlook requests.
2025-12-15 10:02:13 +01:00
Johannes Millan
5ca64347ef fix(docker): use Debian-based nginx for ARM64 QEMU compatibility
Alpine's apk triggers fail under QEMU emulation on ARM64 builds.
Switch to nginx:1 (Debian-based) which works reliably with QEMU.
2025-12-14 13:15:03 +01:00
Johannes Millan
0e17203d0a 16.6.1 2025-12-14 12:33:38 +01:00