Johannes Millan
0dd33fe4b6
17.0.0-RC.11
2026-01-18 12:29:38 +01:00
Johannes Millan
d9e27a0da7
17.0.0-RC.10
2026-01-18 02:20:51 +01:00
Johannes Millan
7d5bb1a709
17.0.0-RC.9
2026-01-17 16:08:01 +01:00
Johannes Millan
0a7e0c317e
17.0.0-RC.8
2026-01-17 15:47:15 +01:00
Johannes Millan
53324bac08
17.0.0-RC.7
2026-01-17 13:33:56 +01:00
Johannes Millan
ce595ba212
17.0.0-RC.6
2026-01-17 13:32:33 +01:00
Johannes Millan
3c5b441046
17.0.0-RC.5
2026-01-16 22:35:17 +01:00
Johannes Millan
0cd6dfaf43
17.0.0-RC.4
2026-01-16 22:34:50 +01:00
Johannes Millan
7aee741c1d
Merge branch 'feat/ios' into master
...
Resolves merge conflicts in:
- src/app/core/startup/startup.service.ts: Keep both _store and _platformService injections
- src/app/features/android/store/android.effects.ts: Refactor to use platform-agnostic CapacitorReminderService
The feat/ios branch adds iOS support via Capacitor, introducing platform-agnostic
services for notifications, reminders, and platform detection that work across
web, Android, and iOS.
2026-01-16 13:45:31 +01:00
Johannes Millan
23c6691daa
17.0.0-RC.3
2026-01-14 16:26:13 +01:00
Johannes Millan
aee3b656df
17.0.0-RC.2
2026-01-14 14:26:09 +01:00
Johannes Millan
a046c347d4
feat(ios): add safe area, keyboard, and status bar handling
...
Add iOS-specific UX improvements:
Safe Areas:
- Add CSS variables for safe area insets (notch, home indicator)
- Add body classes: isNativeMobile, isIOS, isKeyboardVisible
- Apply safe area padding on native mobile platforms
Keyboard Handling:
- Install @capacitor/keyboard plugin
- Track keyboard visibility via keyboardWillShow/Hide events
- Set --keyboard-height CSS variable for layout adjustments
- Remove bottom safe area padding when keyboard is visible
Status Bar:
- Install @capacitor/status-bar plugin
- Sync status bar style with app dark/light theme
- Configure overlaysWebView: false in capacitor.config.ts
These changes ensure proper display on iPhone devices with
notch/Dynamic Island and home indicator.
2026-01-14 13:45:42 +01:00
Johannes Millan
590e1592da
feat(ios): add iOS platform support via Capacitor
...
Add iOS MVP with core functionality using Capacitor-first approach:
Platform Abstraction Layer:
- Add CapacitorPlatformService for unified platform detection
- Add PlatformCapabilities model with per-platform feature flags
- Add CapacitorNotificationService wrapping LocalNotifications plugin
- Add CapacitorReminderService for cross-platform reminder scheduling
iOS Support:
- Add Capacitor iOS project with proper configuration
- Configure Info.plist for notifications and background modes
- Add app icon and splash screen assets
- Enable CapacitorHttp for WebDAV sync (avoids CORS issues)
Refactoring:
- Update android.effects.ts to use CapacitorReminderService
- Update notify.service.ts to support iOS notifications
- Update startup.service.ts with platform-aware initialization
- Update sync-form.const.ts to hide CORS info on native platforms
- Update webdav-http-adapter.ts to use CapacitorHttp on iOS
MVP includes: task management, scheduled notifications, Dropbox sync,
WebDAV sync, share-out, dark mode. Excludes: background tracking,
widgets, local file sync, share-in (post-MVP features).
2026-01-14 13:45:42 +01:00
dependabot[bot]
c0db559e5c
build(deps): bump the npm_and_yarn group across 1 directory with 2 updates
...
Bumps the npm_and_yarn group with 2 updates in the / directory: [qs](https://github.com/ljharb/qs ) and [hono](https://github.com/honojs/hono ).
Updates `qs` from 6.13.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/ljharb/qs/compare/v6.13.0...v6.14.1 )
Updates `hono` from 4.11.3 to 4.11.4
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.11.3...v4.11.4 )
---
updated-dependencies:
- dependency-name: qs
dependency-version: 6.14.1
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: hono
dependency-version: 4.11.4
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 22:09:08 +00:00
Johannes Millan
c33f0c496f
17.0.0-RC.1
2026-01-11 16:17:29 +01:00
Johannes Millan
0e92baeb8b
17.0.0-RC.0
2026-01-11 15:29:33 +01:00
Johannes Millan
23579a448a
fix(shared-schema): use tsup for dual ESM/CJS build
...
The previous commit changed module resolution to bundler mode which
fixed Angular tests but broke Node.js ESM imports in super-sync-server.
Switch to tsup bundler that outputs both ESM (.mjs) and CJS (.js) formats,
with proper exports field to support both environments:
- CJS for super-sync-server (Node.js commonjs)
- ESM for Angular/webpack bundler imports
2026-01-11 14:05:23 +01:00
Johannes Millan
73ee21fd6e
build: update package lock
2026-01-10 17:12:11 +01:00
Johannes Millan
ce91c8b1dc
Merge branch 'master' into feat/operation-logs
...
Resolve merge conflicts:
- package.json: use @types/node@^22.19.5
- sync-form.const.ts: keep eslint-disable for naming convention
- global-config.effects.ts: remove extra blank line
- unlink-all-tasks-on-provider-deletion.effects.ts: keep deprecation notice
- auto-fix-typia-errors.ts: keep better-typed getValueByPath
- undo-task-delete.meta-reducer.spec.ts: keep getLastDeletePayload import
- Accept deletions for files refactored into operation-logs architecture
2026-01-10 17:08:09 +01:00
Johannes Millan
b69dded9f1
chore(deps): update minor/patch dependencies
...
- prettier: 3.5.1 → 3.7.4
- pretty-quick: 4.1.1 → 4.2.2
- stylelint: 16.18.0 → 16.26.1
- @playwright/test: 1.56.1 → 1.57.0
- jasmine-core: 5.10.0 → 5.13.0
- eslint-plugin-prettier: 5.2.1 → 5.5.4
- chrono-node: 2.8.3 → 2.9.0
- ical.js: 2.1.0 → 2.2.1
- electron-builder: 26.3.3 → 26.4.0
- core-js: 3.39.0 → 3.47.0
- And other minor updates
Applied prettier formatting changes from v3.7.4.
2026-01-10 16:16:47 +01:00
Johannes Millan
dd57c5d6eb
chore(deps): update @types/jasmine to v5
...
Update from v3.10.2 to v5.1.14 to match jasmine-core v5.10.0.
All tests pass with the new type definitions.
2026-01-10 16:10:26 +01:00
Johannes Millan
e6da7ced37
chore(deps): upgrade ESLint to v9 with flat config
...
- Upgrade eslint from v8 to v9.39.2
- Upgrade typescript-eslint to v8.52.0 (unified package)
- Add angular-eslint package for flat config support
- Migrate from .eslintrc.json to eslint.config.js (flat config)
- Update package configs for sync-md, automations, boilerplate-solid-js
- Remove unused eslint-disable directives
- Fix lint errors (empty interface, template eqeqeq)
BREAKING: Requires Node.js 18.18+ (ESLint 9 requirement)
2026-01-10 16:08:11 +01:00
Johannes Millan
132947a69b
feat(deps): upgrade Angular to v21
...
- Update @angular/* packages to v21.0.8
- Update @angular/material and @angular/cdk to v21.0.6
- Update @angular-eslint/* to v21.1.0
- Update @ngrx/* to v21.0.1
- Update TypeScript to 5.9.3
- Update ngx-markdown to v21 and marked to v17
- Update typia to v11 for TypeScript 5.9 support
- Update @types/node to v22, chart.js to v4.5.1
Breaking changes addressed:
- Replace deep imports with public API imports (idb, formly, ngrx)
- Update marked-options-factory for marked v17 API changes
- Add custom FormlySliderComponent (formly slider incompatible with Mat v21)
- Update ngx-markdown SANITIZE configuration
- Fix HostListener decorators with unused $event args
- Fix crypto.subtle type compatibility
- Add skipLibCheck for dependency type conflicts
- Update tsconfig module settings for Angular 21
Removed:
- @angular-builders/custom-webpack (unused)
2026-01-10 15:27:20 +01:00
Johannes Millan
3f86044147
chore(deps): update NgRx packages to v21
2026-01-10 14:58:30 +01:00
Johannes Millan
5bed090756
chore(deps): update angular-eslint to v21
2026-01-10 14:57:25 +01:00
Johannes Millan
5c7df8a2a8
chore(deps): update Angular Material and CDK to v21
2026-01-10 14:56:37 +01:00
Johannes Millan
1ce8c0d0c8
chore(deps): update Angular to v21 and TypeScript to 5.9
2026-01-10 14:55:45 +01:00
Johannes Millan
560b691a41
chore(deps): update typia to v11 for TypeScript 5.9 support
2026-01-10 14:54:14 +01:00
Johannes Millan
74fe0c01a0
Merge branch 'master' into feat/operation-logs
...
* master:
16.9.4
docs: add Angular commit message guidelines to CLAUDE.md
fix(ci): update references for repo migration to super-productivity org
build(ci): improve android build release upload reliability
16.9.3
fix(calendar): display proper error messages instead of [object Object]
fix(e2e): fix keyboard shortcut delete test and reduce sync test flakiness
fix(tasks): add subscription cleanup to delete confirmation dialog
fix(schedule): maintain visibility during task overlap on schedule (#5887 )
16.9.2
# Conflicts:
# e2e/pages/sync.page.ts
2026-01-10 13:06:20 +01:00
Johannes Millan
f9656ceb70
16.9.4
2026-01-10 12:58:17 +01:00
Johannes Millan
6dcede853f
16.9.3
2026-01-10 12:23:21 +01:00
Johannes Millan
7fcec38476
16.9.2
2026-01-09 18:28:21 +01:00
Johannes Millan
cabe73177a
Merge branch 'master' into feat/operation-logs
...
* master:
16.9.1
fix(e2e): handle task deletion confirmation dialog in WebDAV sync test
fix: resolve build failures from missing translations and unused imports
16.9.0
Added Scoop installation instructions
2026-01-09 18:00:51 +01:00
Johannes Millan
79276f3fc7
16.9.1
2026-01-09 17:59:07 +01:00
Johannes Millan
4919ab188b
16.9.0
2026-01-09 16:41:59 +01:00
Johannes Millan
3f3f0685eb
Merge branch 'master' into feat/operation-logs
...
* master: (21 commits)
test: increase timeout for encryption
16.8.3
fix(e2e): use pressSequentially for time input in task-detail tests
fix(sync): resolve 25-second initial sync timeout race condition
feat(e2e): add Docker-based E2E test isolation
fix(schedule): start tracking selected task when pressing Y in schedule view
fix(tasks): clear reminder when clicking "today" button on already-today tasks
fix(e2e): use format-agnostic time change in task-detail tests
16.8.2
fix(test): reset selector overrides to prevent test pollution
build: update CLAUDE.md
fix(calendar): add periodic refresh for planner and scheduler views
feat(effects): consolidate task update actions in PluginHooksEffects
fix(sync): show skip button immediately when offline
fix(db): add missing _afterReady guard to loadAll method
feat(android): add alarm sound and vibration to task reminders
feat(sync): add skip button to loading screen when waiting for sync
fix(pomodoro): allow manual session end to start break early
fix(i18n): add missing translate pipe to play button tooltip
fix(tasks): handle undefined tasks in reminder effect
...
# Conflicts:
# CLAUDE.md
# docker-compose.e2e.yaml
# e2e/tests/task-detail/task-detail.spec.ts
# package.json
# src/app/features/tasks/store/task-reminder.effects.spec.ts
# src/app/features/tasks/store/task-reminder.effects.ts
# src/app/plugins/plugin-hooks.effects.ts
2026-01-04 18:20:10 +01:00
Johannes Millan
2cc06178e5
16.8.3
2026-01-04 17:27:04 +01:00
Johannes Millan
70f1e4ba73
16.8.2
2026-01-04 14:57:50 +01:00
Johannes Millan
85fa50974b
Merge branch 'master' into feat/operation-logs
...
* master:
refactor(e2e): improve test infrastructure for easier expansion
chore(e2e): remove broken/empty skipped tests
test(e2e): fix flaky plugin and WebDAV sync tests
refactor(e2e): replace waitForTimeout with condition-based waits
perf(e2e): remove ineffective waits to speed up test runs
docs(e2e): add CLAUDE.md reference and barrel export for easier test creation
build: update dep
refactor(e2e): simplify waits and fix flaky tests
feat(e2e): streamline e2e test development with improved infrastructure
perf(e2e): optimize wait utilities and addTask method for faster test execution
16.8.1
# Conflicts:
# e2e/pages/base.page.ts
# e2e/pages/project.page.ts
# e2e/tests/reminders/reminders-schedule-page.spec.ts
# e2e/tests/sync/webdav-sync-advanced.spec.ts
# e2e/tests/sync/webdav-sync-expansion.spec.ts
# e2e/tests/sync/webdav-sync-full.spec.ts
# e2e/utils/waits.ts
2026-01-03 18:51:51 +01:00
Johannes Millan
9c84de94ee
build: update dep
2026-01-03 12:57:47 +01:00
Johannes Millan
4cee57db14
fix(sync-server): fix SimpleWebAuthn v13 type imports
...
Import types from @simplewebauthn/server instead of deprecated
@simplewebauthn/types package which is no longer supported in v13.
2026-01-02 22:00:10 +01:00
Johannes Millan
f143210cd9
fix(sync-server): update SimpleWebAuthn to v13 and add debug logging
...
- Update @simplewebauthn/server from v11 to v13.2.2 for compatibility
- Add debug logging for WebAuthn config and authentication options
- Browser library also needs to be updated to v13.2.2 (manual step)
The version mismatch between server and browser libraries may have been
causing passkey registration/login issues.
2026-01-02 21:58:49 +01:00
Johannes Millan
ac31531ca6
16.8.1
2026-01-02 20:12:41 +01:00
Johannes Millan
e6ea0d74f0
Merge branch 'master' into feat/operation-logs
...
* master: (37 commits)
16.8.0
feat(i18n): add new translations
fix: address code review issues from today's changes
fix: address code review issues from today's changes
fix(data-repair): change quickSetting to CUSTOM when startDate is missing
fix(test): fix fetch spy setup in audio tests
fix(android): sync time tracking from notification correctly on resume
fix(database): prevent repeated error dialogs when disk is full
fix(reminder): prevent dismissed reminders from reappearing
fix(task-repeat): prevent race condition when saving repeat config
fix(android): add error handling for native service calls
fix(reminder): cancel native Android reminders immediately on task deletion
fix(error-handler): use getErrorTxt to prevent [object Object] in error titles
fix(planner): use task startDate for weekly repeat weekday calculation
fix(focus-mode): use independent 1s timer for Pomodoro countdown
feat(focus-mode): add Skip Break button to banner during active breaks
feat(notes): add auto-save to fullscreen markdown editor
fix(reflection-note): prevent trailing spaces from being deleted while typing
fix(sync): add error handling for JSON parse failures in sync data
fix(error-handling): prevent [object Object] from appearing in error messages
...
# Conflicts:
# src/app/core/persistence/database.service.ts
# src/app/features/android/store/android-focus-mode.effects.ts
# src/app/features/android/store/android-foreground-tracking.effects.ts
# src/app/features/reminder/reminder.service.spec.ts
# src/app/features/reminder/reminder.service.ts
# src/app/features/tasks/dialog-view-task-reminders/dialog-view-task-reminders.component.ts
# src/app/features/tasks/store/task-reminder.effects.spec.ts
# src/app/features/tasks/store/task-reminder.effects.ts
# src/app/features/work-context/store/work-context.effects.spec.ts
# src/app/features/work-context/store/work-context.effects.ts
# src/app/t.const.ts
# src/assets/i18n/en.json
2026-01-02 19:56:30 +01:00
Johannes Millan
092d32a39e
16.8.0
2026-01-02 19:26:41 +01:00
Johannes Millan
9c0a728ef4
feat(sync-server): replace password auth with passkey + magic link
...
Authentication changes:
- Add passkey (WebAuthn) as primary login method
- Add email magic link as fallback for devices without passkey support
- Remove password-based authentication entirely
New features:
- Passkey registration and login via @simplewebauthn/server
- Magic link login with 15-minute expiry tokens
- Passkey recovery via email link
- Self-hosted simplewebauthn-browser.min.js for reliability
Database changes:
- Add Passkey model for WebAuthn credentials
- Add PasskeyChallenge model for registration/auth challenges
- Add loginToken and loginTokenExpiresAt fields for magic links
- Add passkeyRecoveryToken fields for passkey recovery
UI changes:
- Login form: email + "Login with Passkey" + "Send Login Link"
- Register form: email + terms checkbox + "Register with Passkey"
- Consistent token display UI for both passkey and magic link login
- Remove password fields and forgot password flow
Security:
- CSP-compliant magic link redirect using external script
- Rate limiting on all auth endpoints
- Single-use magic link tokens
2026-01-02 16:52:48 +01: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
ac43881d2d
build: update types
2025-12-31 12:45:42 +01:00
Johannes Millan
d7cc365885
build: update package-lock.json
2025-12-31 11:35:59 +01:00
Johannes Millan
c7d37ab773
Merge branch 'refs/heads/master' into feat/operation-logs
...
* refs/heads/master:
perf: lazy load ical.js to reduce initial bundle size
2025-12-30 20:24:46 +01:00