Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
23ad7f8
Release 8.3.2
May 7, 2026
b2d7719
fix(cli): copy plugin files in CocoaPods projects (#8467)
jcesarmobile May 8, 2026
76ff70e
Release 8.3.3
May 8, 2026
b7e167b
chore(cli): update telemetry endpoint (#8464)
alexgerardojacinto May 12, 2026
de1e506
Release 8.3.4
May 12, 2026
731a82e
chore: format java code (#8475)
jcesarmobile May 21, 2026
bc74536
chore: format java code (#8477)
jcesarmobile May 21, 2026
93c72de
feat: add method getDouble to plugin config (#7638)
robingenz May 21, 2026
e456de0
fix(SystemBars): make `safe-area-inset-x` available on API <= 34 (#8424)
theproducer May 22, 2026
258867b
feat(cli): add experimental packageOptions (#8471)
jcesarmobile May 26, 2026
b4b297a
feat(cli): capture ios_package_manager in telemetry (#8482)
alexgerardojacinto May 27, 2026
1d031a4
fix(cli): revert live reload config on failure (#8485)
jcesarmobile May 28, 2026
f1077ef
chore: fix typo in declarations.ts (#8488)
jcesarmobile May 29, 2026
d4ad7ff
fix(SystemBars): respect `insetsHandling` disable (#8481)
theproducer Jun 1, 2026
4c6c321
fix(android): show only the requested system bar (#8480)
fallintoplace Jun 1, 2026
36b729d
chore: Decrease timeout for CI jobs from 60 to 30 minutes (#8476)
markemer Jun 1, 2026
41fd9de
Release 8.4.0
Jun 2, 2026
28bb2c6
fix(cli): patch Capacitor SPM dependency version in plugins (#8492)
jcesarmobile Jun 2, 2026
6048e90
fix(cli): make SPM dependency patch work on prereleases (#8508)
jcesarmobile Jun 15, 2026
7217b52
Release 8.4.1
Jun 19, 2026
b789b68
chore: run `npm run fmt` to fix lint errors (#8516)
markemer Jun 22, 2026
6f2d328
fix(android): explicitly grant URI permissions for image capture inte…
alexgerardojacinto Jul 8, 2026
1834b97
Release 8.4.2
Jul 14, 2026
f368a1b
chore(android): fix lint issues (#8542)
OS-pedrogustavobilro Jul 27, 2026
4c1c870
fix(cli): support TypeScript 7 when loading capacitor.config.ts (#8534)
conbrad Jul 28, 2026
3fa04a3
feat(ios): UIScene Support (#8536)
theproducer Jul 29, 2026
984fa85
feat(cli): add migrator functionality for adopting UIScene (#8544)
theproducer Jul 31, 2026
3ab4139
Release 8.5.0
Jul 31, 2026
5e5bb3b
fix(cli): use POSIX paths in CapApp-SPM Package.swift (#8549)
omriwil Aug 6, 2026
5ac4dd6
fix(core): prevent removeListener from removing wrong listener (#8271)
maniktyagi04 Aug 10, 2026
eaf02a8
chore: sync plus with upstream main (upstream-preferred conflicts)
Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 142 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
name: CI

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The CI installs with npm install although AGENTS.md mandates Bun exclusively and the repo's lockfile is bun.lock (package-lock is disabled in .npmrc, so no lockfile drives the npm install). Replaced in place, npm install resolves dependency ranges without the lockfile, so installs can drift from bun.lock; and because the cache key only hashes package.json, it will never invalidate when bun.lock or resolved versions change, serving stale node_modules. Use bun install/bun run and hash bun.lock in the cache key.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 46:

<comment>The CI installs with `npm install` although AGENTS.md mandates Bun exclusively and the repo's lockfile is bun.lock (package-lock is disabled in .npmrc, so no lockfile drives the npm install). Replaced in place, `npm install` resolves dependency ranges without the lockfile, so installs can drift from bun.lock; and because the cache key only hashes package.json, it will never invalidate when bun.lock or resolved versions change, serving stale node_modules. Use `bun install`/`bun run` and hash bun.lock in the cache key.</comment>

<file context>
@@ -0,0 +1,142 @@
+        with:
+          path: ~/.npm
+          key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
+      - run: npm install
+      - run: brew install swiftlint
+      - run: npm run lint
</file context>


on:
push:
branches:
- main
pull_request:
types:
- 'synchronize'
- 'opened'
branches:
- '**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
setup:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: The setup job is a no-op: it only runs setup-node, checkout, and a cache restore of ~/.npm, but never runs npm install, so it neither produces an artifact nor populates/registers the ~/.npm cache for downstream jobs. Every test job (test-cli, test-core, test-ios, test-android) already runs its own setup-node, checkout, cache-restore, and npm install independently, and they already gate on lint. setup only delays job start and adds a needs dependency with no value; remove it and drop setup from each job's needs list.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 19:

<comment>The `setup` job is a no-op: it only runs setup-node, checkout, and a cache restore of `~/.npm`, but never runs `npm install`, so it neither produces an artifact nor populates/registers the `~/.npm` cache for downstream jobs. Every test job (`test-cli`, `test-core`, `test-ios`, `test-android`) already runs its own setup-node, checkout, cache-restore, and `npm install` independently, and they already gate on `lint`. `setup` only delays job start and adds a `needs` dependency with no value; remove it and drop `setup` from each job's `needs` list.</comment>

<file context>
@@ -0,0 +1,142 @@
+  cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
+
+jobs:
+  setup:
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
</file context>

runs-on: ubuntu-latest
timeout-minutes: 30

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Every job in this workflow sets timeout-minutes: 30, contradicting this repo's documented CI timeout policy. AGENTS.md states "Keep CI, script, and runtime timeouts at 10 minutes or less. Use timeout-minutes: 10 or lower in GitHub Actions", and the repo's other workflows (build.yml, test.yml) enforce it with # Keep this job capped at 10 minutes; never raise it unless explicitly asked. Apply timeout-minutes: 10 to all six jobs.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/ci.yml, line 21:

<comment>Every job in this workflow sets `timeout-minutes: 30`, contradicting this repo's documented CI timeout policy. AGENTS.md states "Keep CI, script, and runtime timeouts at 10 minutes or less. Use `timeout-minutes: 10` or lower in GitHub Actions", and the repo's other workflows (build.yml, test.yml) enforce it with `# Keep this job capped at 10 minutes; never raise it unless explicitly asked.` Apply `timeout-minutes: 10` to all six jobs.</comment>

<file context>
@@ -0,0 +1,142 @@
+jobs:
+  setup:
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    steps:
+      - name: Get Latest
</file context>

steps:
- name: Get Latest
uses: actions/setup-node@v6
with:
node-version: 22.x
- uses: actions/checkout@v5
- name: Restore Dependency Cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
lint:
runs-on: macos-15
timeout-minutes: 30
steps:
- uses: actions/setup-node@v6
with:
node-version: 22.x
- uses: actions/checkout@v5
- name: Restore Dependency Cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
- run: npm install
- run: brew install swiftlint
- run: npm run lint
test-cli:
runs-on: macos-15
timeout-minutes: 30
needs:
- setup
- lint
steps:
- uses: actions/setup-node@v6
with:
node-version: 22.x
- uses: actions/checkout@v5
- name: Restore Dependency Cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npm run build
working-directory: ./cli
- run: npm test
working-directory: ./cli
test-core:
runs-on: ubuntu-latest
timeout-minutes: 30
needs:
- setup
- lint
steps:
- uses: actions/setup-node@v6
with:
node-version: 22.x
- uses: actions/checkout@v5
- name: Restore Dependency Cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npm run build
working-directory: ./core
- run: npm test
working-directory: ./core
test-ios:
runs-on: macos-15
timeout-minutes: 30
needs:
- setup
- lint
strategy:
matrix:
xcode:
- /Applications/Xcode_26.0.app
steps:
- run: sudo xcode-select --switch ${{ matrix.xcode }}
- run: xcrun simctl list > /dev/null
- run: xcodebuild -downloadPlatform iOS
- uses: actions/setup-node@v6
with:
node-version: 22.x
- uses: actions/checkout@v5
- name: Restore Dependency Cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npm run verify
working-directory: ./ios
- name: Validate native podspec
run: sh ./scripts/native-podspec.sh lint
test-android:
runs-on: ubuntu-latest
timeout-minutes: 30
needs:
- setup
- lint
steps:
- uses: actions/setup-node@v6
with:
node-version: 22.x
- name: set up JDK 21
uses: actions/setup-java@v5
with:
java-version: '21'
distribution: 'zulu'
- uses: actions/checkout@v5
- name: Restore Dependency Cache
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
- run: npm install
- run: npm run verify
working-directory: ./android
64 changes: 63 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,70 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## [8.3.12](https://github.com/Cap-go/capacitor-plus/compare/8.3.11...8.3.12) (2026-08-13)
# [8.5.0](https://github.com/ionic-team/capacitor/compare/8.4.2...8.5.0) (2026-07-31)

### Bug Fixes

- **cli:** support TypeScript 7 when loading capacitor.config.ts ([#8534](https://github.com/ionic-team/capacitor/issues/8534)) ([4c1c870](https://github.com/ionic-team/capacitor/commit/4c1c8709413b9c19b008c99122ca330cc3c90e6f))

### Features

- **cli:** add migrator functionality for adopting UIScene ([#8544](https://github.com/ionic-team/capacitor/issues/8544)) ([984fa85](https://github.com/ionic-team/capacitor/commit/984fa85ba0adab0aacf895aed6323bf4b503dccb))
- **ios:** UIScene Support ([#8536](https://github.com/ionic-team/capacitor/issues/8536)) ([3fa04a3](https://github.com/ionic-team/capacitor/commit/3fa04a357c92af34cd6fccb8124791963804a9dc))

## [8.4.2](https://github.com/ionic-team/capacitor/compare/8.4.1...8.4.2) (2026-07-14)

### Bug Fixes

- **android:** explicitly grant URI permissions for image capture intent ([#8526](https://github.com/ionic-team/capacitor/issues/8526)) ([6f2d328](https://github.com/ionic-team/capacitor/commit/6f2d3283897a375d09ca9ec8784a9f0d65f0a530))

## [8.4.1](https://github.com/ionic-team/capacitor/compare/8.4.0...8.4.1) (2026-06-19)

### Bug Fixes

- **cli:** make SPM dependency patch work on prereleases ([#8508](https://github.com/ionic-team/capacitor/issues/8508)) ([6048e90](https://github.com/ionic-team/capacitor/commit/6048e90171afa0229a3c25b52a23c377c6bb804c))
- **cli:** patch Capacitor SPM dependency version in plugins ([#8492](https://github.com/ionic-team/capacitor/issues/8492)) ([28bb2c6](https://github.com/ionic-team/capacitor/commit/28bb2c687069dfdd6aa7abc866004a1c6388d103))

# [8.4.0](https://github.com/ionic-team/capacitor/compare/8.3.4...8.4.0) (2026-06-02)

### Bug Fixes

- **android:** show only the requested system bar ([#8480](https://github.com/ionic-team/capacitor/issues/8480)) ([4c6c321](https://github.com/ionic-team/capacitor/commit/4c6c3219afb5223211e857457e46283c37eb9424))
- **cli:** revert live reload config on failure ([#8485](https://github.com/ionic-team/capacitor/issues/8485)) ([1d031a4](https://github.com/ionic-team/capacitor/commit/1d031a4abec2c793079ba8897ad2e40c4cc6c7f9))
- **SystemBars:** make `safe-area-inset-x` available on API <= 34 ([#8424](https://github.com/ionic-team/capacitor/issues/8424)) ([e456de0](https://github.com/ionic-team/capacitor/commit/e456de083e19644f484bec5a5359cb67960ac8bc))
- **SystemBars:** respect `insetsHandling` disable ([#8481](https://github.com/ionic-team/capacitor/issues/8481)) ([d4ad7ff](https://github.com/ionic-team/capacitor/commit/d4ad7ffe39daf66e0cfc63af9028d5c05543bde7))

### Features

- add method getDouble to plugin config ([#7638](https://github.com/ionic-team/capacitor/issues/7638)) ([93c72de](https://github.com/ionic-team/capacitor/commit/93c72de40a2ec4c78b33659250cb08340083088e))
- **cli:** add experimental packageOptions ([#8471](https://github.com/ionic-team/capacitor/issues/8471)) ([258867b](https://github.com/ionic-team/capacitor/commit/258867b7bf37b1837b99b02ec9638e5a6df08d97))
- **cli:** capture ios_package_manager in telemetry ([#8482](https://github.com/ionic-team/capacitor/issues/8482)) ([b4b297a](https://github.com/ionic-team/capacitor/commit/b4b297a52f8732659662d5e5aaeff81c0f7d9835))

## [8.3.4](https://github.com/ionic-team/capacitor/compare/8.3.3...8.3.4) (2026-05-12)

**Note:** Version bump only for package capacitor

## [8.3.3](https://github.com/ionic-team/capacitor/compare/8.3.2...8.3.3) (2026-05-08)

### Bug Fixes

- **cli:** copy plugin files in CocoaPods projects ([#8467](https://github.com/ionic-team/capacitor/issues/8467)) ([b2d7719](https://github.com/ionic-team/capacitor/commit/b2d771926a180e60deea31992d7d4abcd5ca3bc7))

## [8.3.2](https://github.com/ionic-team/capacitor/compare/8.3.1...8.3.2) (2026-05-07)

### Bug Fixes

- **cli:** add cSettings support for compiler flags in generated Package.swift ([#8448](https://github.com/ionic-team/capacitor/issues/8448)) ([0bd0676](https://github.com/ionic-team/capacitor/commit/0bd0676315c5fd77e50312dd7b5bf4990dcbd7d0))
- **cli:** add system framework and weak framework support in SPM Package.swift ([#8447](https://github.com/ionic-team/capacitor/issues/8447)) ([3232f0f](https://github.com/ionic-team/capacitor/commit/3232f0fe1d9811b0b5c500e3dc05cb8a250177f8))
- **cli:** correct Capacitor plugin SPM compat check ([#8440](https://github.com/ionic-team/capacitor/issues/8440)) ([e5ccc45](https://github.com/ionic-team/capacitor/commit/e5ccc451dda27d56bca824ed644bd20fe4d988cb))
- **cli:** generate binaryTarget entries for custom xcframeworks in Package.swift ([#8445](https://github.com/ionic-team/capacitor/issues/8445)) ([1f7e33f](https://github.com/ionic-team/capacitor/commit/1f7e33fca43d183332ec19d22b0d75ef81d8cc6d))
- **cli:** generate resource entries in Package.swift ([#8455](https://github.com/ionic-team/capacitor/issues/8455)) ([790bd27](https://github.com/ionic-team/capacitor/commit/790bd27123497111984227010c3162cec94a108e))
- **cli:** handle Cordova plugins without iOS source files ([#8443](https://github.com/ionic-team/capacitor/issues/8443)) ([0da130e](https://github.com/ionic-team/capacitor/commit/0da130eb7a861bee4e2c35bc0aac53ba9c983fc3))
- **cli:** link plugin dependencies in Package.swift ([#8457](https://github.com/ionic-team/capacitor/issues/8457)) ([b3c769e](https://github.com/ionic-team/capacitor/commit/b3c769e856c826b1174518877cf86ac7ce73bf09))
- **ios:** support Cordova plugins with Package.swift ([#8438](https://github.com/ionic-team/capacitor/issues/8438)) ([139943b](https://github.com/ionic-team/capacitor/commit/139943b0c05fddb2d1ce2d6f468800fddf17b4cf))
- **SystemBars:** avoid extra view padding on API <= 34 ([#8439](https://github.com/ionic-team/capacitor/issues/8439)) ([5b135a7](https://github.com/ionic-team/capacitor/commit/5b135a70217be560e7176c8d5b514cc92ed3e4e4))

## [8.3.1](https://github.com/ionic-team/capacitor/compare/8.3.0...8.3.1) (2026-04-16)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The upstream-preferred merge mangled the plus changelog: it removed the plus ## [8.3.12] entry at the top (which carried the a63975d SystemBars fix) and the upstream ## [8.3.1] header now swallows that plus fix, misattributing it. The result also breaks version ordering — upstream goes 8.5.0→8.4.2→...→8.3.1, then jumps back up to plus 8.3.11→8.3.10→...→8.3.5, and the top-of-file version (8.5.0) no longer reflects the current plus release (8.3.x). Since this changelog is published to npm, the sync output misreports the current release, loses plus's 8.3.12 entry, and misattributes its fix. Re-run the sync keeping the plus-history top entries (8.3.x/8.3.12) intact and merging upstream content below them instead of replacing them.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CHANGELOG.md, line 69:

<comment>The upstream-preferred merge mangled the plus changelog: it removed the plus `## [8.3.12]` entry at the top (which carried the `a63975d` SystemBars fix) and the upstream `## [8.3.1]` header now swallows that plus fix, misattributing it. The result also breaks version ordering — upstream goes 8.5.0→8.4.2→...→8.3.1, then jumps back up to plus 8.3.11→8.3.10→...→8.3.5, and the top-of-file version (8.5.0) no longer reflects the current plus release (8.3.x). Since this changelog is published to npm, the sync output misreports the current release, loses plus's 8.3.12 entry, and misattributes its fix. Re-run the sync keeping the plus-history top entries (8.3.x/8.3.12) intact and merging upstream content below them instead of replacing them.</comment>

<file context>
@@ -3,8 +3,70 @@
+- **ios:** support Cordova plugins with Package.swift ([#8438](https://github.com/ionic-team/capacitor/issues/8438)) ([139943b](https://github.com/ionic-team/capacitor/commit/139943b0c05fddb2d1ce2d6f468800fddf17b4cf))
+- **SystemBars:** avoid extra view padding on API <= 34 ([#8439](https://github.com/ionic-team/capacitor/issues/8439)) ([5b135a7](https://github.com/ionic-team/capacitor/commit/5b135a70217be560e7176c8d5b514cc92ed3e4e4))
+
+## [8.3.1](https://github.com/ionic-team/capacitor/compare/8.3.0...8.3.1) (2026-04-16)
 
 ### Bug Fixes
</file context>


### Bug Fixes

Expand Down
Loading
Loading