Commit graph

1621 commits

Author SHA1 Message Date
Johannes Millan
1272d6e7bf chore: replace CHANGELOG.md with git-based release notes
Remove the 15k-line auto-generated CHANGELOG.md and its conventional-changelog
tooling. The bump-android-version script now derives Play Store fastlane
changelogs from git log between tags instead of parsing CHANGELOG.md.

- Use execFileSync with argv to avoid shell injection
- Filter merge commits with --no-merges
- Handle breaking-change prefix (feat!:) in regex
- Truncate at line boundaries for 500-char Play Store limit
- Remove conventional-changelog-cli and @conventional-changelog/git-client deps
- Remove release.changelog script from package.json
2026-03-04 19:38:37 +01:00
Johannes Millan
30cbb4d7a6
fix(build): ensure plugin-api is built before plugin builds (#6720)
* fix(build): ensure plugin-api is built before plugin builds

The github-issue-provider plugin build was failing in CI because
plugin-api/dist/ didn't exist when tsc --noEmit ran. The dist/ directory
is gitignored and only built during the prepare lifecycle, which may not
run reliably in all CI contexts. Adding plugin-api:build to the
plugins:build script ensures the type declarations are always available.

Also improved error logging in build-all.js to show stderr on failure.

https://claude.ai/code/session_01StB1pMk1g2k79AywyksoyZ

* fix(build): remove tsc --noEmit from github-issue-provider build

The github-issue-provider was the only plugin running tsc --noEmit as
part of its build command. In CI, TypeScript module resolution fails for
the file: dependency on plugin-api due to npm workspace hoisting
interference. All other plugins (ai-productivity-prompts,
procrastination-buster, sync-md) skip type-checking during build and
rely on esbuild to strip type-only imports.

Align with existing plugin pattern by separating build from typecheck.
Also improve error logging in build-all.js to capture stdout on failure.

https://claude.ai/code/session_01StB1pMk1g2k79AywyksoyZ

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-03-04 11:25:21 +01:00
Johannes Millan
05d86d6c6b chore(deps): upgrade Angular and Angular Material to 21.2.0 2026-03-03 20:14:54 +01:00
Johannes Millan
151a096b37 chore: add supersync:up and supersync:down npm scripts 2026-03-03 11:27:20 +01:00
dependabot[bot]
d83a70c49c
chore(deps): bump typia from 11.0.0 to 11.0.3 (#6679)
Bumps [typia](https://github.com/samchon/typia) from 11.0.0 to 11.0.3.
- [Release notes](https://github.com/samchon/typia/releases)
- [Commits](https://github.com/samchon/typia/compare/v11.0.0...v11.0.3)

---
updated-dependencies:
- dependency-name: typia
  dependency-version: 11.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 11:39:28 +01:00
dependabot[bot]
349c37b97a
chore(deps): bump @types/jasmine from 5.1.14 to 6.0.0 (#6680)
Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 5.1.14 to 6.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jasmine)

---
updated-dependencies:
- dependency-name: "@types/jasmine"
  dependency-version: 6.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-01 11:39:17 +01:00
Johannes Millan
ed92ea7933 17.2.4 2026-03-01 00:19:19 +01:00
Johannes Millan
a87bff8661 17.2.3 2026-02-28 21:52:29 +01:00
Johannes Millan
9372a14f4f 17.2.2 2026-02-28 21:41:25 +01:00
Johannes Millan
e465555ad3 fix(build): pin app-builder-lib minimatch to 10.1.1
The dependabot minimatch bump (3.1.2 → 3.1.4) cascaded into updating
app-builder-lib's nested minimatch from 10.1.1 to 10.2.3. In 10.2.3,
partial directory matching for glob patterns like `dir/**/*` against
bare directory names changed behavior, preventing electron-builder's
file walker from descending into the `electron/` directory. This caused
"electron/main.js" to be missing from the asar archive.

Pin app-builder-lib's minimatch to 10.1.1 via npm overrides until the
regression is resolved upstream.
2026-02-25 18:50:45 +01:00
Johannes Millan
526282d811 fix(build): generate env.generated.ts during npm install
Add `npm run env` to the prepare script so that
env.generated.ts is auto-generated on `npm install`,
preventing build failures in fresh worktrees.
2026-02-25 15:27:57 +01:00
Johannes Millan
f44e6b54cf 17.2.1 2026-02-21 15:15:34 +01:00
Johannes Millan
b79fa5ac29 17.2.0 2026-02-21 13:49:15 +01:00
Johannes Millan
b04477225b fix(build): limit cap sync to android in droid script
Prevents iOS sync attempt on non-Mac systems.
2026-02-21 11:29:44 +01:00
Johannes Millan
f9fff40402 17.1.8 2026-02-15 11:20:46 +01:00
Johannes Millan
f3eb92c617 17.1.7 2026-02-13 16:16:25 +01:00
dependabot[bot]
53154b742b
chore(deps): bump tar in the npm_and_yarn group across 1 directory (#6480)
Bumps the npm_and_yarn group with 1 update in the / directory: [tar](https://github.com/isaacs/node-tar).


Updates `tar` from 6.2.1 to 7.5.7
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.2.1...v7.5.7)

---
updated-dependencies:
- dependency-name: tar
  dependency-version: 7.5.7
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-12 12:46:57 +01:00
Johannes Millan
4c4a0a3afd fix(android): use native safe area insets for proper status bar padding
Install capacitor-plugin-safe-area to read native safe area insets and
inject them as CSS variables, working around Capacitor 7's broken
adjustMarginsForEdgeToEdge and Android WebView's unreliable
env(safe-area-inset-*) values.

- Add _initSafeAreaInsets() to GlobalThemeService
- Remove broken adjustMarginsForEdgeToEdge: 'auto' from capacitor config
- Clamp context menu trigger Y to safe area top
- Fix light mode status bar color to match theme (#f8f8f7)
2026-02-11 20:37:40 +01:00
Johannes Millan
ec7e6da161 17.1.6 2026-02-09 18:14:03 +01:00
Johannes Millan
6f85fb4ea6 17.1.5 2026-02-08 16:25:57 +01:00
Johannes Millan
8300eaa6a7 17.1.4 2026-02-08 15:49:17 +01:00
Johannes Millan
f5669b60c4 17.1.3 2026-02-06 20:11:32 +01:00
dependabot[bot]
84fcd9f4b9
chore(deps): bump @modelcontextprotocol/sdk (#6381)
Bumps the npm_and_yarn group with 1 update in the / directory: [@modelcontextprotocol/sdk](https://github.com/modelcontextprotocol/typescript-sdk).


Updates `@modelcontextprotocol/sdk` from 1.25.2 to 1.26.0
- [Release notes](https://github.com/modelcontextprotocol/typescript-sdk/releases)
- [Commits](https://github.com/modelcontextprotocol/typescript-sdk/compare/v1.25.2...v1.26.0)

---
updated-dependencies:
- dependency-name: "@modelcontextprotocol/sdk"
  dependency-version: 1.26.0
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 11:55:51 +01:00
Johannes Millan
cffbbcfe09 17.1.2 2026-02-05 16:01:03 +01:00
Johannes Millan
dba49e3722 17.1.1 2026-02-05 14:35:02 +01:00
Johannes Millan
197ec4d3a8 17.1.0 2026-02-04 20:55:51 +01:00
dependabot[bot]
36c7df6db5
chore(deps): bump @rollup/rollup-linux-x64-gnu from 4.55.3 to 4.57.1 (#6304)
Bumps [@rollup/rollup-linux-x64-gnu](https://github.com/rollup/rollup) from 4.55.3 to 4.57.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v4.55.3...v4.57.1)

---
updated-dependencies:
- dependency-name: "@rollup/rollup-linux-x64-gnu"
  dependency-version: 4.57.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 13:27:53 +01:00
dependabot[bot]
71435663d9
chore(deps): bump electron-builder from 26.4.0 to 26.7.0 (#6307)
Bumps [electron-builder](https://github.com/electron-userland/electron-builder/tree/HEAD/packages/electron-builder) from 26.4.0 to 26.7.0.
- [Release notes](https://github.com/electron-userland/electron-builder/releases)
- [Changelog](https://github.com/electron-userland/electron-builder/blob/master/packages/electron-builder/CHANGELOG.md)
- [Commits](https://github.com/electron-userland/electron-builder/commits/electron-builder@26.7.0/packages/electron-builder)

---
updated-dependencies:
- dependency-name: electron-builder
  dependency-version: 26.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 13:27:26 +01:00
dependabot[bot]
007eef2b18
chore(deps): bump @angular-eslint/builder from 21.1.0 to 21.2.0 (#6308)
Bumps [@angular-eslint/builder](https://github.com/angular-eslint/angular-eslint/tree/HEAD/packages/builder) from 21.1.0 to 21.2.0.
- [Release notes](https://github.com/angular-eslint/angular-eslint/releases)
- [Changelog](https://github.com/angular-eslint/angular-eslint/blob/main/packages/builder/CHANGELOG.md)
- [Commits](https://github.com/angular-eslint/angular-eslint/commits/v21.2.0/packages/builder)

---
updated-dependencies:
- dependency-name: "@angular-eslint/builder"
  dependency-version: 21.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 13:26:31 +01:00
dependabot[bot]
206487728a
chore(deps): bump glob from 9.3.5 to 13.0.0 (#6311)
Bumps [glob](https://github.com/isaacs/node-glob) from 9.3.5 to 13.0.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v9.3.5...v13.0.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-version: 13.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 13:26:14 +01:00
Johannes Millan
e97d530d2a 17.0.12 2026-01-30 21:13:40 +01:00
Johannes Millan
25d3cbe81e 17.0.11 2026-01-29 18:24:47 +01:00
Johannes Millan
2c004a445d 17.0.10 2026-01-29 18:24:15 +01:00
Johannes Millan
2d835f9e73 17.0.9 2026-01-28 22:42:29 +01:00
Johannes Millan
821d05d495 17.0.8 2026-01-28 22:16:05 +01:00
Johannes Millan
819671de6d 17.0.7 2026-01-28 22:01:01 +01:00
Johannes Millan
98f40093d6 fix(simple-counter): preserve order when reordering counters in settings
The updateAllSimpleCounters reducer was using adapter.upsertMany() which
doesn't preserve the order of items passed to it. Now explicitly sets
the ids array after upserting to maintain the desired order. Also marks
form as dirty when moving items for consistency with removeItem().

Fixes #6232
2026-01-28 21:55:04 +01:00
Johannes Millan
c0f4f8be6c 17.0.6 2026-01-27 22:22:24 +01:00
Johannes Millan
6dc00e442a fix(encryption): use @noble/ciphers fallback for AES-GCM on mobile
WebCrypto (crypto.subtle) is unavailable on Android/iOS Capacitor apps
due to insecure contexts. This adds @noble/ciphers as a pure JavaScript
fallback for AES-GCM encryption when WebCrypto is not available.

- Add @noble/ciphers dependency (Cure53 audited, ~4-6KB tree-shaken)
- Update DerivedKeyInfo to support both CryptoKey and raw bytes
- Add fallback encrypt/decrypt functions using gcm from @noble/ciphers
- Legacy PBKDF2 data still requires WebCrypto with clear error message
2026-01-27 14:49:00 +01:00
Johannes Millan
a1af9d5d59 17.0.5 2026-01-26 19:48:56 +01:00
Johannes Millan
0f68c35932 17.0.4 2026-01-26 18:14:43 +01:00
Johannes Millan
73b9bb580f 17.0.3 2026-01-26 16:50:58 +01:00
Johannes Millan
69f2907b14 chore(deps): upgrade ngx-markdown and marked to latest patch versions
- marked: ^17.0.0 → ^17.0.1
- ngx-markdown: ^21.0.0 → ^21.0.1
2026-01-26 13:48:10 +01:00
Johannes Millan
298c956518 17.0.2 2026-01-25 13:50:41 +01:00
Johannes Millan
a51b2c5106 17.0.1 2026-01-24 23:12:31 +01:00
Johannes Millan
044495999b 17.0.0 2026-01-23 22:19:10 +01:00
Johannes Millan
e5708236de fix(e2e): eliminate plugin 404 errors in CI
Root cause: ng serve doesn't reliably detect plugin assets copied to
src/assets/bundled-plugins/ during E2E setup, causing 404s in CI.

Solution: Implement dual-mode E2E testing:
- CI: Build Angular app first (includes plugins), serve with http-server
- Local: Continue using ng serve for fast iteration

Changes:
- Add buildFrontend:e2e script (builds plugins THEN Angular)
- Add serveFrontend:e2e:prod script (http-server with SPA proxy)
- CI workflows now build frontend before running E2E tests
- Global setup skips duplicate plugin builds (saves ~30s)
- Playwright config uses environment-specific server commands
- Added build output verification step

Benefits:
- 100% reliable plugin asset availability in CI
- Faster CI startup (90s vs 180s timeout)
- Better debugging (removed --silent flag)
- Local development unchanged
2026-01-23 21:28:41 +01:00
Johannes Millan
ded6594297 fix(e2e): eliminate race condition causing 404 errors for bundled plugin manifests
Move plugin build from pree2e hook to Playwright global setup to ensure
plugins are built before dev server starts. Previously, plugins:build and
ng serve ran concurrently, causing tests to start before manifests were
available and resulting in 404 errors during the retry window.
2026-01-23 20:39:16 +01:00
Johannes Millan
ab7b4dc91b refactor(e2e): simplify docker:all script with --workers=6
Replace two-phase execution (non-supersync then supersync with
--workers=3) with single-phase execution using --workers=6.

Benefits:
- Simpler script (one line vs. complex phase logic)
- No server overload (0 ECONNREFUSED errors)
- Better parallelism (2x faster than --workers=3)
- 98% test pass rate (355/362 passed)

Testing showed:
- Default 12 workers: 95 ECONNREFUSED errors (nginx overload)
- --workers=6: 0 connection errors, all tests passed
- Total duration: 18.8 minutes

The two-phase approach was designed to prevent ng serve from
crashing. With Docker nginx, --workers=6 provides optimal balance
between parallelism and server capacity.

Note: e2e:supersync script keeps --workers=3 (uses ng serve).
2026-01-23 18:15:33 +01:00
Johannes Millan
0775650e6e 17.0.0-RC.13 2026-01-21 22:12:01 +01:00