Commit graph

543 commits

Author SHA1 Message Date
Johannes Millan
ad815af08a fix(ci): allow Claude code review to read PR files and diff
The review agent was denied all 7 attempts to access PR code because:
- Read/Glob/Grep tools were missing from allowedTools
- Shell pipes/redirects caused Bash(gh pr diff:*) to not match
- gh pr checkout and git diff were not in the allowed list
- Only the base branch was checked out (fetch-depth: 1)
2026-03-03 20:14:54 +01:00
Johannes Millan
04982a28da fix(ci): preserve original filenames when replacing with signed executables
SignPath renames files (spaces become dots), causing duplicate assets on
GitHub releases. Normalize filenames by stripping spaces, dots, and
hyphens to match signed files back to their originals, then overwrite
in-place to preserve the correct asset names for website download links.
2026-03-03 11:27:20 +01:00
Johannes Millan
fbec3c683a ci(e2e): increase SuperSync test shards from 2 to 4
Reduces per-shard test count to ~24 tests, giving more headroom
within the 40-minute job timeout when retries are needed.
2026-03-03 11:27:19 +01:00
dependabot[bot]
413b6a5fd0
chore(deps)(deps): bump the github-actions-minor group with 3 updates (#6687)
Bumps the github-actions-minor group with 3 updates: [step-security/harden-runner](https://github.com/step-security/harden-runner), [gradle/actions](https://github.com/gradle/actions) and [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action).


Updates `step-security/harden-runner` from 2.14.2 to 2.15.0
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](5ef0c079ce...a90bcbc653)

Updates `gradle/actions` from 5.0.1 to 5.0.2
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](f29f5a9d7b...0723195856)

Updates `anthropics/claude-code-action` from 1.0.55 to 1.0.65
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](edd85d6153...220272d388)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
- dependency-name: gradle/actions
  dependency-version: 5.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.65
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 11:44:51 +01:00
dependabot[bot]
7a2935a8e4
chore(deps)(deps): bump actions/download-artifact from 7.0.0 to 8.0.0 (#6688)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](37930b1c2a...70fc10c6e5)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 8.0.0
  dependency-type: direct:production
  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-02 11:44:33 +01:00
dependabot[bot]
778f81f1c5
chore(deps)(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 (#6689)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](b7c566a772...bbbca2ddaa)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  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-02 11:42:43 +01:00
Johannes Millan
ed7576a0f7 fix(ci): add discussions write permission to stale-discussions workflow
The stalesweeper action needs write access to close discussions and add
comments. Without explicit permissions, the GITHUB_TOKEN only has read
access, causing FORBIDDEN errors.
2026-03-01 11:33:47 +01:00
Johannes Millan
844cd0d95f build(ci): switch SignPath to release-signing policy 2026-02-28 21:41:00 +01:00
Johannes Millan
5552506180 ci(workflows): use node 22 for npm install jobs 2026-02-25 19:14:11 +01:00
Johannes Millan
2ebaebed45 fix(build): use snapcraft upload instead of deprecated push command 2026-02-25 15:27:57 +01:00
Johannes Millan
56b2d19759 ci(windows-store): remove redundant lint and test steps
Lint and unit tests are already covered by the main CI workflow.
Removing them from the Windows Store build avoids failures from
Windows-specific test issues and speeds up artifact creation.
2026-02-25 15:27:56 +01:00
dependabot[bot]
5c93bf1471
chore(deps)(deps): bump the github-actions-minor group with 5 updates (#6610)
Bumps the github-actions-minor group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [browser-actions/setup-chrome](https://github.com/browser-actions/setup-chrome) | `2.1.0` | `2.1.1` |
| [actions/dependency-review-action](https://github.com/actions/dependency-review-action) | `4.8.2` | `4.8.3` |
| [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) | `1.0.52` | `1.0.55` |
| [github/codeql-action](https://github.com/github/codeql-action) | `4.32.3` | `4.32.4` |
| [actions/stale](https://github.com/actions/stale) | `10.1.1` | `10.2.0` |


Updates `browser-actions/setup-chrome` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/browser-actions/setup-chrome/releases)
- [Changelog](https://github.com/browser-actions/setup-chrome/blob/master/CHANGELOG.md)
- [Commits](b94431e051...4f8e94349a)

Updates `actions/dependency-review-action` from 4.8.2 to 4.8.3
- [Release notes](https://github.com/actions/dependency-review-action/releases)
- [Commits](3c4e3dcb1a...05fe457637)

Updates `anthropics/claude-code-action` from 1.0.52 to 1.0.55
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](68cfeead18...edd85d6153)

Updates `github/codeql-action` from 4.32.3 to 4.32.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](9e907b5e64...89a39a4e59)

Updates `actions/stale` from 10.1.1 to 10.2.0
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](997185467f...b5d41d4e1d)

---
updated-dependencies:
- dependency-name: browser-actions/setup-chrome
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: actions/dependency-review-action
  dependency-version: 4.8.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: github/codeql-action
  dependency-version: 4.32.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: actions/stale
  dependency-version: 10.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 13:16:42 +01:00
dependabot[bot]
a96ad20fde
chore(deps)(deps): bump the github-actions-minor group with 3 updates (#6547)
Bumps the github-actions-minor group with 3 updates: [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action), [github/codeql-action](https://github.com/github/codeql-action) and [docker/build-push-action](https://github.com/docker/build-push-action).


Updates `anthropics/claude-code-action` from 1.0.46 to 1.0.52
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](6c61301d8e...68cfeead18)

Updates `github/codeql-action` from 4.32.2 to 4.32.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](45cbd0c69e...9e907b5e64)

Updates `docker/build-push-action` from 6.18.0 to 6.19.2
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](263435318d...10e90e3645)

---
updated-dependencies:
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.52
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: github/codeql-action
  dependency-version: 4.32.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: docker/build-push-action
  dependency-version: 6.19.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 10:44:56 +01:00
Corey Newton
d2a7d4936d
ci/discussion pruning (#6548)
* ci(community): initial discussion pruning workflow

This is the original workflow from steffen-karlsson/stalesweeper@v1.1.1
https://github.com/marketplace/actions/stalesweeper
The debug mode does not work which makes testing with dry-run impossible.
There is a re-worked action that probably won't get merged: https://github.com/thenick775/stalesweeper
I'm preserving the original workflow for posterity and potential troubleshooting. See next commit for details.

* ci(community): revised workflow for revised action

This is a new workflow that uses the modified thenick775/stalesweeper action.
https://github.com/LizardByte/community/blob/master/.github/workflows/discussions-stale.yml
Verbose mode appears to built-in now: b7f8c5e1c3
This workflow requires additional modifications as it uses environment variables and other settings that are not applicable to the SP repo.

* ci(community): add first valid workflow

Remove unnecessary permissions.
Remove unnecessary token placeholders.
Reduce frequency of workflow to reduce API calls.
Change defaults for manual runs to use safer options.
Use 180 days for the standard "expiry date" for regular discussions.
Create separate job and expiry for answered questions in "Q&A".
Make an exception for any discussions marked as "documentation gap".

* ci(community): switch action to controlled fork

There is really only a single action in GH Marketplace that does what is
needed and relying on a fork of *that* is a bit risky. I've separated
this commit out for easier `git revert` later on if needed.
2026-02-16 10:41:55 +01:00
Johannes Millan
fb1ba9e0a2 ci(e2e): shard SuperSync tests into 2 parallel jobs
Split the e2e-supersync job using Playwright's --shard flag with a
GitHub Actions matrix strategy to halve wall-clock time and reduce
timeout risk.
2026-02-15 11:19:22 +01:00
Johannes Millan
7afaa0dff1 fix(ci): prevent duplicate draft releases on tag push
Add a create-release job that pre-creates a single draft release
before mac-bin and windows-bin start. This eliminates the race
condition where parallel jobs each created their own draft release.
2026-02-13 17:54:06 +01:00
Johannes Millan
0b5d340861 fix(ci): replace buggy first-interaction action with custom first-time check
The actions/first-interaction@v3 action has a bug where isFirstPullRequest()
fetches all PRs without a creator filter, causing returning contributors to
receive "first PR" greetings on every PR. Replace with inline script using
GitHub Search API with proper author filtering.

Closes #6500
2026-02-13 14:06:43 +01:00
Johannes Millan
82baeab9cc
Consolidate Google Play release workflow into build-android (#6429)
* fix(build): fix Play Store always showing version 16.7.3

Two issues caused production releases to always show as 16.7.3:

1. APKs were uploaded to the internal track with status: draft.
   The promote action only sees active (non-draft) releases, so it
   kept promoting the last non-draft version (16.7.3).

2. The promote workflow triggered on release:published, which fires
   before the Android build finishes uploading. This race condition
   meant the promotion always ran against stale internal track state.

Fix: change upload status to completed and move the promotion step
into the build workflow (after the upload), eliminating the race
condition. Remove the now-redundant auto-publish workflow.

https://claude.ai/code/session_01N8ddANh4ejMn3kYLajkL5V

* Revert "fix(build): fix Play Store always showing version 16.7.3"

This reverts commit a99f43ec1a.

* fix(build): fix Play Store always showing version 16.7.3

APKs were uploaded to the internal track with status: draft. When the
promote action later ran (on manual release publish), the Google Play
API could not promote a draft release to production, so it kept the
last non-draft version (16.7.3) on the production track.

Change upload status from draft to completed so the release is
promotable when the separate auto-publish workflow runs.

https://claude.ai/code/session_01N8ddANh4ejMn3kYLajkL5V

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-09 12:03:34 +01:00
dependabot[bot]
105c32a300
chore(deps)(deps): bump the github-actions-minor group with 3 updates (#6440)
Bumps the github-actions-minor group with 3 updates: [step-security/harden-runner](https://github.com/step-security/harden-runner), [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `step-security/harden-runner` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](e3f713f2d8...5ef0c079ce)

Updates `anthropics/claude-code-action` from 1.0.41 to 1.0.46
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](70e16deb18...6c61301d8e)

Updates `github/codeql-action` from 4.32.0 to 4.32.2
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b20883b0cd...45cbd0c69e)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.46
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: github/codeql-action
  dependency-version: 4.32.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 11:15:49 +01:00
Johannes Millan
814d314c23 fix(build): keep GitHub release as draft so all platform jobs can upload
The Windows job was publishing the release immediately (draft: false),
causing Linux and Mac electron-builder uploads to skip because they
found an already-published release instead of the expected draft.
2026-02-08 16:25:25 +01:00
Johannes Millan
669f2d7874 feat(build): publish unsigned Windows binaries before signing
Publish unsigned artifacts to the release first so Windows binaries are
always available. Signing steps run as best-effort with continue-on-error
and overwrite the unsigned assets on success.
2026-02-06 18:47:06 +01:00
Johannes Millan
bf7badcb44 feat(build): integrate SignPath code signing into Windows build workflow
Integrate SignPath signing directly into the windows-bin job so build
and signing happen in the same workflow (required for origin verification).

- Add signing steps: upload artifact, sign with SignPath, verify signatures
- Regenerate blockmaps and update latest.yml sha512 after signing
- Scope id-token:write permission to windows-bin job only
- Pin SignPath action to SHA, update action-gh-release to v2.5.0
- Delete standalone signpath-code-signing.yml workflow
2026-02-06 18:46:04 +01:00
Johannes Millan
51daf67577 ci(release): switch macOS and iOS workflows to tag-based triggers
Change both Apple store release workflows to trigger on v* tag push
instead of GitHub release publication, matching the Microsoft Store
workflow pattern. This also removes prerelease checks so builds run
for all tags including prereleases.
2026-02-05 15:58:51 +01:00
Johannes Millan
be3f673588
fix(ci): use macos-15 runner for iOS build to fix Xcode compatibility (#6366)
macos-26 runner defaults to Xcode 26.2 (Swift 6.2.3) which is
incompatible with Capacitor 7. Capacitor 8 is required for Xcode 26
support. Switch to macos-15 as an interim fix until Capacitor 8
migration is completed.

https://claude.ai/code/session_01A9RKZFkpVxqWXTdoyH5sZA

Co-authored-by: Claude <noreply@anthropic.com>
2026-02-05 00:46:20 +01:00
dependabot[bot]
30e1ef065b
chore(deps)(deps): bump actions/upload-artifact from 4 to 6 (#6321)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...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>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 11:45:24 +01:00
dependabot[bot]
2698415afb
chore(deps)(deps): bump the github-actions-minor group with 5 updates (#6320)
Bumps the github-actions-minor group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [gradle/actions](https://github.com/gradle/actions) | `5.0.0` | `5.0.1` |
| [actions/cache](https://github.com/actions/cache) | `5.0.2` | `5.0.3` |
| [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) | `1.0.34` | `1.0.41` |
| [github/codeql-action](https://github.com/github/codeql-action) | `4.31.11` | `4.32.0` |
| [docker/login-action](https://github.com/docker/login-action) | `3.6.0` | `3.7.0` |


Updates `gradle/actions` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](4d9f0ba002...f29f5a9d7b)

Updates `actions/cache` from 5.0.2 to 5.0.3
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](8b402f58fb...cdf6c1fa76)

Updates `anthropics/claude-code-action` from 1.0.34 to 1.0.41
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](f64219702d...70e16deb18)

Updates `github/codeql-action` from 4.31.11 to 4.32.0
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](19b2f06db2...b20883b0cd)

Updates `docker/login-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](5e57cd1181...c94ce9fb46)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: actions/cache
  dependency-version: 5.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: github/codeql-action
  dependency-version: 4.32.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 11:44:01 +01:00
dependabot[bot]
f670c9c568
chore(deps)(deps): bump actions/download-artifact from 4.3.0 to 7.0.0 (#6322)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4.3.0 to 7.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](d3f86a106a...37930b1c2a)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 7.0.0
  dependency-type: direct:production
  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 11:43:47 +01:00
Johannes Millan
cdd29f7789 fix(ci): grant tool permissions for code-review plugin
The code-review plugin couldn't post reviews because Claude Code's
internal permission system blocked all Bash commands. Add claude_args
with --allowedTools to explicitly permit the gh and git commands the
plugin needs at runtime.
2026-01-30 16:59:40 +01:00
Johannes Millan
1094cb0807 build: fix e2e test runs 2026-01-28 22:41:50 +01:00
Johannes Millan
08cfa556bd fix(ci): remove redundant grep-invert args from e2e command
The npm script chain already includes --grep-invert in the e2e script.
Passing it again from CI caused argument duplication, making playwright
interpret the extra args as a file pattern and find no tests.
2026-01-28 22:15:19 +01:00
Corey Newton
943d564aca
docs(ci): prevent sync job from running on PR (#6240)
The workflow fails during the "sync" job on a pull request because of
repo-specific settings that are not set. These can be a security problem
to enable and are not needed for this workflow. Since accepting a PR
will cause a merge (and therefore a push by the author) this push will
then trigger the sync job with the correct authorization and will
therefore succeed as observed during my initial testing.

The only actions needed for the PR itself is linting.
2026-01-28 16:39:54 +01:00
Johannes Millan
2e8450812f build: sign path setup 7 2026-01-28 13:20:24 +01:00
Johannes Millan
0a0f8162c5 build: sign path setup 6 2026-01-28 13:13:10 +01:00
Johannes Millan
640fab22e4 build: sign path setup 5 2026-01-28 13:06:51 +01:00
Johannes Millan
9adf3a63d0 build: sign path setup 4 2026-01-28 12:51:50 +01:00
Johannes Millan
515dd9becc build: sign path setup 3 2026-01-28 12:21:41 +01:00
Johannes Millan
8eaf17f971 build: sign path setup 2 2026-01-28 11:59:44 +01:00
Johannes Millan
d0371971b3 build: sign path setup 2026-01-28 11:55:35 +01:00
Johannes Millan
c0387f12d2 perf(ci): optimize E2E workflow with shared build and Playwright caching
- Create composite action for shared E2E setup (Node, npm, Playwright)
- Add build job that builds frontend once and uploads artifact
- Test jobs now download artifact instead of rebuilding
- Cache Playwright browsers to avoid fresh install each run
- Reduces frontend builds from 3x to 1x per workflow run
2026-01-26 16:00:19 +01:00
Johannes Millan
e9b1b9c34c perf(e2e): split scheduled CI into parallel jobs and reduce wait times
Split e2e-scheduled.yml into 3 parallel jobs (regular, webdav, supersync)
for ~3x faster nightly runs. Each job only starts the Docker services it
needs. Also reduced fixed wait times in sync-helpers.ts and waits.ts to
improve test execution speed while maintaining reliability.
2026-01-26 15:40:22 +01:00
Johannes Millan
0383476927 fix(ci): disable no-inline-html rule in wiki markdown linter
Store badges in the wiki use intentional inline HTML for proper
sizing and linking. This fixes the failing Wiki Update workflow.
2026-01-26 13:48:10 +01:00
dependabot[bot]
ce6af3a2db
chore(deps)(deps): bump the github-actions-minor group with 5 updates (#6188)
Bumps the github-actions-minor group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [step-security/harden-runner](https://github.com/step-security/harden-runner) | `2.14.0` | `2.14.1` |
| [actions/setup-java](https://github.com/actions/setup-java) | `5.1.0` | `5.2.0` |
| [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) | `1.0.30` | `1.0.34` |
| [github/codeql-action](https://github.com/github/codeql-action) | `4.31.10` | `4.31.11` |
| [cloudflare/wrangler-action](https://github.com/cloudflare/wrangler-action) | `3.12.0` | `3.14.1` |


Updates `step-security/harden-runner` from 2.14.0 to 2.14.1
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](20cf305ff2...e3f713f2d8)

Updates `actions/setup-java` from 5.1.0 to 5.2.0
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](f2beeb24e1...be666c2fcd)

Updates `anthropics/claude-code-action` from 1.0.30 to 1.0.34
- [Release notes](https://github.com/anthropics/claude-code-action/releases)
- [Commits](a017b830c0...f64219702d)

Updates `github/codeql-action` from 4.31.10 to 4.31.11
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](cdefb33c0f...19b2f06db2)

Updates `cloudflare/wrangler-action` from 3.12.0 to 3.14.1
- [Release notes](https://github.com/cloudflare/wrangler-action/releases)
- [Changelog](https://github.com/cloudflare/wrangler-action/blob/main/CHANGELOG.md)
- [Commits](e998fe3d9a...da0e0dfe58)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-version: 2.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: actions/setup-java
  dependency-version: 5.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
- dependency-name: anthropics/claude-code-action
  dependency-version: 1.0.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: github/codeql-action
  dependency-version: 4.31.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-actions-minor
- dependency-name: cloudflare/wrangler-action
  dependency-version: 3.14.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 11:05:14 +01:00
dependabot[bot]
165cf9f60a
chore(deps)(deps): bump actions/setup-node from 4.0.3 to 6.2.0 (#6189)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.3 to 6.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.0.3...6044e13b5dc448c55e2357c09f80417699197238)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.2.0
  dependency-type: direct:production
  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-01-26 11:05:06 +01:00
dependabot[bot]
3d928e6ed9
chore(deps)(deps): bump actions/checkout from 4.1.7 to 6.0.2 (#6190)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4.1.7...v6.0.2)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  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-01-26 11:04:50 +01:00
Johannes Millan
1b32a81f76
fix(ci): only run dependency vulnerability review on pull requests (#6153)
The dependency-review-action requires base_ref and head_ref which are
only available in pull_request/pull_request_target/merge_group events.
When triggered by release events, this action fails.

Also update test job to run when vulnerability job is skipped (not just
when it succeeds) using !cancelled() && !failure() condition.

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-25 10:07:31 +01:00
Corey Newton
d252984d0f
docs(ci): expand permissions for CI (#6150)
This should minimize false warnings and allow for merges without
concern. Slight renaming of jobs should also help with review. Exclusion
of new GH Action for docs/wiki/** added too.
2026-01-24 21:13:58 +01:00
Johannes Millan
5635c6a047 fix(ci): exclude @webdav and @supersync tests from CI workflow
Aligns PR checks with release build configuration by excluding
tests that require external services (WebDAV server on port 2345
and SuperSync server on port 1901). These tests still run in the
nightly e2e-scheduled.yml workflow with Docker services.

This prevents connection refused errors in CI and reduces test
runtime by ~45 tests while maintaining full coverage via scheduled
runs.
2026-01-24 12:56:10 +01:00
Johannes Millan
76defad732
feat(sync): add confirmation dialog when disabling SuperSync encryption (#6129)
* feat(sync): add confirmation dialog when disabling SuperSync encryption

When users toggle off encryption for SuperSync, show a confirmation dialog
that explains the consequences:
- All encrypted sync data on the server will be deleted
- Current data will be re-uploaded without encryption
- Other devices will sync the unencrypted data

This ensures users understand that turning off encryption requires a fresh
snapshot to prevent mixing encrypted and unencrypted operations.

Changes:
- Add EncryptionDisableService to handle the disable encryption flow
- Add DialogDisableEncryptionComponent for user confirmation
- Add hook to encryption toggle in sync form to intercept disable action
- Add openDisableEncryptionDialog to dialog opener service
- Add translation keys for the new dialog

* fix(sync): initialize dialog opener and fix memory leak in encryption toggle

- Add EncryptionPasswordDialogOpenerInitService to initialize the module-level
  dialog opener instance during app bootstrap
- Register the init service in main.ts using APP_INITIALIZER
- Fix memory leak by properly cleaning up subscription in onDestroy hook
- Add guard to prevent multiple dialogs opening simultaneously
- Fix race condition with async dialog handling

* feat(sync): handle encryption state change during backup import

When importing a backup file that has different encryption settings than
the current SuperSync configuration, the system now properly handles the
transition:

1. Detects encryption state change (enabled -> disabled or vice versa)
2. Deletes all server data (encrypted ops can't mix with unencrypted)
3. Uploads a fresh snapshot with the correct encryption settings
4. Updates the sync provider config to match the imported settings

This ensures a "tabula rasa" for the sync state when encryption changes,
preventing corrupt state where encrypted and unencrypted operations coexist.

Changes:
- Add ImportEncryptionHandlerService to detect and handle encryption changes
- Integrate the handler into FileImexComponent import flow
- Add E2E test for import with encryption state change scenario

* feat(sync): add confirmation dialog for import with encryption state change

Show a warning dialog to users when importing a backup that has different
encryption settings than their current SuperSync configuration. The dialog
explains the consequences:
- All server data will be deleted
- Sync history will be lost
- All devices will need to resync

This ensures users are informed before any encryption state change action.

* refactor(sync): improve UX of encryption state change dialogs

- Add context-specific messaging (enabling vs disabling encryption)
- Use visual state comparison with arrow indicator for import dialog
- Improve button label: "Import and Change Encryption" (clearer action)
- Add disableClose: true to prevent accidental dialog dismissal
- Improve terminology: "Your current configuration" → "After import"
- Clarify "resync" instructions for other devices
- Add aria-labels for screen reader accessibility
- Remove redundant warning icon from dialog title

* fix(sync): correct translation key path in import encryption warning dialog

Fix path from T.F.SYNC.IMPORT_ENCRYPTION_WARNING to
T.F.SYNC.FORM.IMPORT_ENCRYPTION_WARNING to match t.const.ts structure.

* fix(sync): use DI for OperationEncryptionService and fix tests

- Inject OperationEncryptionService properly instead of using `new`
  which fails because the service uses Angular's inject() internally
- Add mock for ImportEncryptionHandlerService in FileImexComponent tests

* fix(ci): handle existing swap file in Lighthouse job

The Lighthouse job was failing with "fallocate: Text file busy" because
GitHub Actions runners may already have /swapfile in use. This fix:

- Disables existing swap file if present (swapoff)
- Removes the file before creating a new one
- Gracefully handles errors using || true

This resolves workflow failures while ensuring Lighthouse/Chrome still
get the required memory allocation.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-24 12:54:58 +01:00
Claude
588e912dec
revert: remove error message field from internal_error_report.yml 2026-01-24 10:47:53 +00:00
Claude
b9cefeb14b
fix(ci): correct cloudflare/wrangler-action SHA to match v3.12.0 tag
The previous SHA (122ee5c...) was a pre-release commit. Updated to the
correct SHA (e998fe3...) that corresponds to the v3.12.0 release tag.
2026-01-24 00:04:32 +00:00