Skip to content

chore(git): sync with main - #31488

Open
ShaneK wants to merge 35 commits into
nextfrom
sync-next-with-main
Open

ShaneK wants to merge 35 commits into
nextfrom
sync-next-with-main

Conversation

@ShaneK

@ShaneK ShaneK commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Sync next with main.

renovate Bot and others added 30 commits September 4, 2026 13:38
> ℹ️ **Note**
> 
> This PR body was truncated due to platform limits.

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vitest](https://vitest.dev)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`^4.0.0` →
`^5.0.0`](https://renovatebot.com/diffs/npm/vitest/4.1.11/5.0.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/5.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/4.1.11/5.0.0?slim=true)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v5.0.0`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v5.0.0)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v4.1.11...v5.0.0)

#####    🚨 Breaking Changes

- Replace `loupe.inspect` with pretty-format  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Opus
5 (1M context)** and **OpenAI Codex** in
[#&#8203;9609](https://redirect.github.com/vitest-dev/vitest/issues/9609)
[<samp>(3f802)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3f802da4b)
- Remove quotes from string values in `test.for/each` title `$` variable
(take 2)  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa)
in
[#&#8203;10170](https://redirect.github.com/vitest-dev/vitest/issues/10170)
[<samp>(04d37)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/04d37e9d7)
- Default `attachmentsDir` from `.vitest-attachements/` to
`.vitest/attachments/`  -  by
[@&#8203;MdSadiqMd](https://redirect.github.com/MdSadiqMd) in
[#&#8203;10186](https://redirect.github.com/vitest-dev/vitest/issues/10186)
[<samp>(1ba73)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1ba7338c3)
- Remove `sequential` test/suite options in favor of `concurrent`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10198](https://redirect.github.com/vitest-dev/vitest/issues/10198)
[<samp>(9229f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9229f2edc)
- Represent locator as an object instead of a string  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10212](https://redirect.github.com/vitest-dev/vitest/issues/10212)
[<samp>(80f07)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/80f07edf6)
- Inline `expect` package  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10221](https://redirect.github.com/vitest-dev/vitest/issues/10221)
[<samp>(ad162)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ad16223e7)
- Remove deprecated entry points  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10222](https://redirect.github.com/vitest-dev/vitest/issues/10222)
[<samp>(994c6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/994c6ddb9)
- Require Node.js 22 and Vite 6.4  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10178](https://redirect.github.com/vitest-dev/vitest/issues/10178)
[<samp>(38762)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3876283e8)
- Fail `expect.poll` when function didn't resolve in time  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10233](https://redirect.github.com/vitest-dev/vitest/issues/10233)
[<samp>(4df04)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4df048c11)
- Throw an error if hoistable methods are outside the top level scope
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10460](https://redirect.github.com/vitest-dev/vitest/issues/10460)
[<samp>(d0b4f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d0b4fddcb)
- `toHaveTextContent` is strict, add `toMatchTextContent` as alternative
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10473](https://redirect.github.com/vitest-dev/vitest/issues/10473)
[<samp>(18f30)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/18f303079)
- Don't lookup config file from ancestor directories  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **OpenAI
Codex** and **Hiroshi Ogawa** in
[#&#8203;10428](https://redirect.github.com/vitest-dev/vitest/issues/10428)
[<samp>(945d9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/945d9090e)
- Inline `@vitest/runner` package, do not publish it anymore  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10511](https://redirect.github.com/vitest-dev/vitest/issues/10511)
[<samp>(6d6e4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6d6e46b1e)
- Allow mutating happy-dom/jsdom window object  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenAI Codex** in
[#&#8203;10373](https://redirect.github.com/vitest-dev/vitest/issues/10373)
[<samp>(206e8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/206e8cff8)
- Expose `concurrencyId`/`workerId` on TestModule's diagnostics, make id
1-based  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10516](https://redirect.github.com/vitest-dev/vitest/issues/10516)
[<samp>(bdd98)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bdd985433)
- Add `screenshotDirectory` config to `browser.expect.toMatchScreenshot`
 -  by [@&#8203;macarie](https://redirect.github.com/macarie) in
[#&#8203;10592](https://redirect.github.com/vitest-dev/vitest/issues/10592)
[<samp>(a60de)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a60ded0fb)
- Update `@sinonjs/fake-timers` and support mocking `Temporal`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10654](https://redirect.github.com/vitest-dev/vitest/issues/10654)
[<samp>(f8b15)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f8b1532fe)
- Remove webdriverio package  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10675](https://redirect.github.com/vitest-dev/vitest/issues/10675)
[<samp>(5fed6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5fed68f72)
- Clear mocks by default before each test  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10613](https://redirect.github.com/vitest-dev/vitest/issues/10613)
[<samp>(0f646)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0f6463bf2)
- Don't emit localStorage warnings on Node 26, fail gracefully when
worker fails to start  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10293](https://redirect.github.com/vitest-dev/vitest/issues/10293)
[<samp>(334ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/334edef92)
- Separate config resolution from the server creation  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10554](https://redirect.github.com/vitest-dev/vitest/issues/10554)
[<samp>(1c0ec)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1c0ec3444)
- Inline projects extend the root config by default  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10750](https://redirect.github.com/vitest-dev/vitest/issues/10750)
[<samp>(fec00)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fec001ad3)
- Enable mocking Temporal without fake timers  -  by
[@&#8203;fabon-f](https://redirect.github.com/fabon-f), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10757](https://redirect.github.com/vitest-dev/vitest/issues/10757)
[<samp>(ac2d4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ac2d46b42)
- Support nested projects  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10846](https://redirect.github.com/vitest-dev/vitest/issues/10846)
[<samp>(ec367)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ec367cf2a)
- Use `>` as separator in `-t`, calculate `only` once  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10686](https://redirect.github.com/vitest-dev/vitest/issues/10686)
[<samp>(a0b20)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a0b20bc86)
- Fail the test when an asynchronous assertion is not awaited  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10868](https://redirect.github.com/vitest-dev/vitest/issues/10868)
[<samp>(86d4a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/86d4a9da9)
- Share the Vite server between inline projects  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10848](https://redirect.github.com/vitest-dev/vitest/issues/10848)
[<samp>(d87c9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d87c96ee4)
- Parse files statically in vitest list by default  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11088](https://redirect.github.com/vitest-dev/vitest/issues/11088)
[<samp>(51e94)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/51e949416)
- **benchmark**:
- Rewrite the public API  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10113](https://redirect.github.com/vitest-dev/vitest/issues/10113)
[<samp>(19f6e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/19f6e8947)
- **browser**:
- Iframe scale  -  by
[@&#8203;macarie](https://redirect.github.com/macarie) in
[#&#8203;9745](https://redirect.github.com/vitest-dev/vitest/issues/9745)
[<samp>(b6398)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b639852cc)
- Enable `locators.exact` by default  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10430](https://redirect.github.com/vitest-dev/vitest/issues/10430)
[<samp>(e2032)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e203202f9)
- Require `sessionId` for orchestrator html request  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenAI Codex** in
[#&#8203;10522](https://redirect.github.com/vitest-dev/vitest/issues/10522)
[<samp>(79b7d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/79b7d8fcc)
- Save failure screenshots in `attachmentsDir`  -  by
[@&#8203;macarie](https://redirect.github.com/macarie) in
[#&#8203;10917](https://redirect.github.com/vitest-dev/vitest/issues/10917)
[<samp>(3b5bb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3b5bbd8b4)
- **coverage**:
- `include/exclude` globs too eager  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;9818](https://redirect.github.com/vitest-dev/vitest/issues/9818)
[<samp>(edacb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/edacb0fd4)
- Allow `thresholds.perFile` to accept an object  -  by
[@&#8203;vladlenskiy](https://redirect.github.com/vladlenskiy) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10190](https://redirect.github.com/vitest-dev/vitest/issues/10190)
[<samp>(13b78)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/13b78d98b)
- **expect**:
- Fix `toThrow("")` behavior by reverting
[#&#8203;6710](https://redirect.github.com/vitest-dev/vitest/issues/6710)
 -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;9643](https://redirect.github.com/vitest-dev/vitest/issues/9643)
and
[#&#8203;6710](https://redirect.github.com/vitest-dev/vitest/issues/6710)
[<samp>(6c3e4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6c3e4bdbf)
- **mocker**:
- Deserialize automock as automock  -  by
[@&#8203;nami8824](https://redirect.github.com/nami8824) in
[#&#8203;10192](https://redirect.github.com/vitest-dev/vitest/issues/10192)
[<samp>(2f892)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2f892712d)
- **reporters**:
- `blob` reporter and `--merge-reports` default to `.vitest/blob/`  - 
by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10232](https://redirect.github.com/vitest-dev/vitest/issues/10232)
[<samp>(d22b0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d22b029ae)
- Write json and junit reporter output files to `.vitest` by default  - 
by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa**, **OpenCode (gpt-5.6-sol)** and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10621](https://redirect.github.com/vitest-dev/vitest/issues/10621)
[<samp>(58577)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/58577290a)
- **spy**:
- Preserve class mock prototype methods on instances  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10910](https://redirect.github.com/vitest-dev/vitest/issues/10910)
[<samp>(6093d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6093d764a)
- **types**:
- Add better promise support in expects and matchers  -  by
[@&#8203;samchungy](https://redirect.github.com/samchungy) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;8266](https://redirect.github.com/vitest-dev/vitest/issues/8266)
[<samp>(41f55)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/41f551bce)
- **ui**:
- Harden UI API access  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenAI Codex** in
[#&#8203;10583](https://redirect.github.com/vitest-dev/vitest/issues/10583)
[<samp>(4c26d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4c26d7675)
- Change html reporter default output to `.vitest`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **Hiroshi
Ogawa** in
[#&#8203;10620](https://redirect.github.com/vitest-dev/vitest/issues/10620)
[<samp>(29c36)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/29c364d50)

#####    🚀 Features

- Add `createReport` and `.vitest` report directory convention  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;9993](https://redirect.github.com/vitest-dev/vitest/issues/9993)
[<samp>(72a6d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/72a6dc257)
- Expose default reporters through `configDefaults.reporters`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **Claude
Opus 5 (1M context)** in
[#&#8203;10219](https://redirect.github.com/vitest-dev/vitest/issues/10219)
[<samp>(083f6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/083f6bdd6)
- Support merge reports for non-sharded multi-environment runs (take 2)
 -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa),
**Claude Opus 5 (1M context)**, **OpenAI Codex** and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10031](https://redirect.github.com/vitest-dev/vitest/issues/10031)
[<samp>(e60b2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e60b2f49e)
- Add `logger.formatError`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10268](https://redirect.github.com/vitest-dev/vitest/issues/10268)
[<samp>(2c5f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2c5f3ee2f)
- Support typescript build mode  -  by
[@&#8203;lishaduck](https://redirect.github.com/lishaduck) in
[#&#8203;9870](https://redirect.github.com/vitest-dev/vitest/issues/9870)
[<samp>(106da)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/106da5896)
- Add toggable `injectCjsGlobals` option  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10709](https://redirect.github.com/vitest-dev/vitest/issues/10709)
[<samp>(82671)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/826714ece)
- Promote fsModuleCache to a top-level option  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10734](https://redirect.github.com/vitest-dev/vitest/issues/10734)
[<samp>(78ed7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/78ed73afd)
- Support non-ascii characters in `for/each` title placeholders  -  by
[@&#8203;k-yle](https://redirect.github.com/k-yle) in
[#&#8203;10773](https://redirect.github.com/vitest-dev/vitest/issues/10773)
[<samp>(15e0a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/15e0af953)
- Report the duration breakdown as percentages  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10820](https://redirect.github.com/vitest-dev/vitest/issues/10820)
[<samp>(c67d2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c67d296f4)
- Promote parseSpecifications out of experimental  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11087](https://redirect.github.com/vitest-dev/vitest/issues/11087)
[<samp>(b628c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b628cb680)
- Promote clearCache out of experimental  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11086](https://redirect.github.com/vitest-dev/vitest/issues/11086)
[<samp>(d4fe1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d4fe1986f)
- **api**:
- Expose logs recorded during the test  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10277](https://redirect.github.com/vitest-dev/vitest/issues/10277)
[<samp>(cba20)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cba2036a1)
- **benchmark**:
- Add pluggable benchmark provider API  -  by
[@&#8203;GuillaumeLagrange](https://redirect.github.com/GuillaumeLagrange)
and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10799](https://redirect.github.com/vitest-dev/vitest/issues/10799)
[<samp>(86c70)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/86c700ed8)
- **browser**:
- Export aria tree utils  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10171](https://redirect.github.com/vitest-dev/vitest/issues/10171)
[<samp>(c3423)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c3423014c)
- Support dom snapshot trace view  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Claude Opus
5 (1M context)** and **OpenAI Codex** in
[#&#8203;10102](https://redirect.github.com/vitest-dev/vitest/issues/10102)
[<samp>(7eddd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7eddd273d)
- Provide project reference in `ToMatchScreenshotResolvePath`  -  by
[@&#8203;macarie](https://redirect.github.com/macarie) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10138](https://redirect.github.com/vitest-dev/vitest/issues/10138)
[<samp>(16654)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/166544e39)
- Show aria tree on locator element error  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10257](https://redirect.github.com/vitest-dev/vitest/issues/10257)
[<samp>(04f04)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/04f04cdd1)
- Support custom `kind` in `page.mark`  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10302](https://redirect.github.com/vitest-dev/vitest/issues/10302)
[<samp>(053e8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/053e8b0d1)
- Live update trace view on watch UI  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10296](https://redirect.github.com/vitest-dev/vitest/issues/10296)
[<samp>(78c11)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/78c1169cf)
- Add `context.mark` for custom command tracing  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10329](https://redirect.github.com/vitest-dev/vitest/issues/10329)
[<samp>(aa514)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/aa5140e76)
- Show trace view steps in editor panel  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10404](https://redirect.github.com/vitest-dev/vitest/issues/10404)
[<samp>(8c4b6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8c4b6da02)
- Display nested mark trace in UI  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenAI Codex** in
[#&#8203;10437](https://redirect.github.com/vitest-dev/vitest/issues/10437)
[<samp>(86ffc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/86ffc8ac6)
- **cli**:
- Add `--repeats` CLI option  -  by
[@&#8203;todor-a](https://redirect.github.com/todor-a) in
[#&#8203;10504](https://redirect.github.com/vitest-dev/vitest/issues/10504)
[<samp>(ee48b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ee48b959e)
- Support -p shorthand for --project  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10826](https://redirect.github.com/vitest-dev/vitest/issues/10826)
[<samp>(1addd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1adddde12)
- **coverage**:
- V8 to track `node:child_process` and `node:worker_threads` contexts
 -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;9976](https://redirect.github.com/vitest-dev/vitest/issues/9976)
[<samp>(9baa5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9baa5faba)
- `thresholds.autoUpdate` to receive previous threshold as argument  - 
by [@&#8203;wouterkroes](https://redirect.github.com/wouterkroes) in
[#&#8203;10495](https://redirect.github.com/vitest-dev/vitest/issues/10495)
[<samp>(04f81)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/04f81854f)
- Switch to `@vitest/istanbuljs` packages  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11053](https://redirect.github.com/vitest-dev/vitest/issues/11053)
[<samp>(5f6a5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5f6a5e84a)
- **junit-reporter**:
- Add jest-junit-compatible naming options  -  by
[@&#8203;neumaennl](https://redirect.github.com/neumaennl),
**neumaennl**, **Martin Neumann** and **Copilot** in
[#&#8203;10189](https://redirect.github.com/vitest-dev/vitest/issues/10189)
[<samp>(27393)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/273933440)
- **reporter**:
- Support html reporter single file output  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **OpenAI
Codex** and **Claude Opus 5 (1M context)** in
[#&#8203;10235](https://redirect.github.com/vitest-dev/vitest/issues/10235)
[<samp>(f757e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f757ec5e6)
- Add custom GitHub Actions summary title  -  by
[@&#8203;heyJonBray](https://redirect.github.com/heyJonBray) and
[@&#8203;macarie](https://redirect.github.com/macarie) in
[#&#8203;10891](https://redirect.github.com/vitest-dev/vitest/issues/10891)
[<samp>(4363c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4363cdb49)
- **ui**:
- Highlight editor source locations  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va),
**Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;11004](https://redirect.github.com/vitest-dev/vitest/issues/11004)
[<samp>(bce2d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bce2d3c2f)
- Navigate trace steps with keyboard and remove indirect editor focus
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va),
**Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;11005](https://redirect.github.com/vitest-dev/vitest/issues/11005)
[<samp>(6816f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6816f3b17)
- Persist trace view selection in URL  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10981](https://redirect.github.com/vitest-dev/vitest/issues/10981)
[<samp>(3069e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3069e5927)
- Toggle trace target highlight  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;11049](https://redirect.github.com/vitest-dev/vitest/issues/11049)
[<samp>(cd63e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cd63e9e43)
- Add link to open playwright trace  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;11059](https://redirect.github.com/vitest-dev/vitest/issues/11059)
[<samp>(58f02)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/58f02ae36)
- **vitest**:
- Create `vi.when()`  -  by
[@&#8203;macarie](https://redirect.github.com/macarie) in
[#&#8203;10174](https://redirect.github.com/vitest-dev/vitest/issues/10174)
[<samp>(3900e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3900e6349)
- **vm**:
- Support `require(esm)` in vm pools  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10829](https://redirect.github.com/vitest-dev/vitest/issues/10829)
[<samp>(01298)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/01298e5b3)

#####    🐞 Bug Fixes

- Global `sequence.concurrent: true` with top-level `test(..., {
concurrent: false })` + depreacte `sequential` test API and options  - 
by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **OpenAI
Codex** and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10194](https://redirect.github.com/vitest-dev/vitest/issues/10194)
[<samp>(9387f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9387f57cf)
- Test `tags` options should overwrite inherited suite options + inherit
suite options in `task` API  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10216](https://redirect.github.com/vitest-dev/vitest/issues/10216)
[<samp>(457db)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/457db297b)
- Udpate optimize deps config  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10223](https://redirect.github.com/vitest-dev/vitest/issues/10223)
[<samp>(95dc6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/95dc6e3f1)
- Shell injection safety via github.ref\_name in publish workflow  -  by
[@&#8203;lloyd-c137](https://redirect.github.com/lloyd-c137) and
**lloyd-c137** in
[#&#8203;10327](https://redirect.github.com/vitest-dev/vitest/issues/10327)
[<samp>(dd020)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/dd0207f4d)
- Make `attachmentsDir` root only config  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10334](https://redirect.github.com/vitest-dev/vitest/issues/10334)
[<samp>(fab1b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fab1b6020)
- Apply cjs interop for truthy `__esModule`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10363](https://redirect.github.com/vitest-dev/vitest/issues/10363)
[<samp>(2b135)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2b13547a5)
- Preserve `vi.defineHelper` callsite for async error stack  -  by
[@&#8203;macayu17](https://redirect.github.com/macayu17) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10415](https://redirect.github.com/vitest-dev/vitest/issues/10415)
[<samp>(ac697)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ac6971ca2)
- Respect `disableConsoleIntercept` in browser mode  -  by
[@&#8203;Copilot](https://redirect.github.com/Copilot), **Hiroshi
Ogawa**, [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and
**OpenAI Codex** in
[#&#8203;10391](https://redirect.github.com/vitest-dev/vitest/issues/10391)
[<samp>(66110)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/66110d271)
- ForceRerunTriggers uses directory globs against files  -  by
[@&#8203;Patrick-Clausen](https://redirect.github.com/Patrick-Clausen)
and **Patrick Clausen** in
[#&#8203;10421](https://redirect.github.com/vitest-dev/vitest/issues/10421)
and
[#&#8203;10420](https://redirect.github.com/vitest-dev/vitest/issues/10420)
[<samp>(4fee2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4fee2e303)
- Unify typechecking and ast collection  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10449](https://redirect.github.com/vitest-dev/vitest/issues/10449)
[<samp>(af993)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/af993b66b)
- Don't print typecheck warning more than once  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10461](https://redirect.github.com/vitest-dev/vitest/issues/10461)
[<samp>(15275)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/152750ec0)
- Correct collumn when parsing tests  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10467](https://redirect.github.com/vitest-dev/vitest/issues/10467)
[<samp>(7c2fc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c2fc133e)
- Fix mixed stdout/stderr log timestamps in `onUserConsoleLog`  -  by
[@&#8203;Copilot](https://redirect.github.com/Copilot), **Hiroshi
Ogawa**, [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10308](https://redirect.github.com/vitest-dev/vitest/issues/10308)
[<samp>(62756)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/627565475)
- Fix `importOriginal` with optimizer and query import  -  by
[@&#8203;davidxharris](https://redirect.github.com/davidxharris),
**David Harris**,
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenAI Codex** in
[#&#8203;10469](https://redirect.github.com/vitest-dev/vitest/issues/10469)
[<samp>(6a3bb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6a3bb02e0)
- Correct transform time calculation in merged report  -  by
[@&#8203;potatomatoooo](https://redirect.github.com/potatomatoooo) and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10570](https://redirect.github.com/vitest-dev/vitest/issues/10570)
and
[#&#8203;10578](https://redirect.github.com/vitest-dev/vitest/issues/10578)
[<samp>(b7897)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b78972892)
- Fix `setImmediate` await in detect-async-leak  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **Hiroshi
Ogawa** in
[#&#8203;10608](https://redirect.github.com/vitest-dev/vitest/issues/10608)
[<samp>(dd62b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/dd62b84e0)
- Fix per-project `sequence` config  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10659](https://redirect.github.com/vitest-dev/vitest/issues/10659)
[<samp>(40cdc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/40cdc7fd6)
- Add handshake timeout to iframe communication  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10656](https://redirect.github.com/vitest-dev/vitest/issues/10656)
[<samp>(3545f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3545fe78f)
- Don't print column in test names when `includeTaskLocation` is enabled
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10681](https://redirect.github.com/vitest-dev/vitest/issues/10681)
[<samp>(bd9cc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bd9cc9d8d)
- Disable server HMR before plugins read it in their config hook  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10731](https://redirect.github.com/vitest-dev/vitest/issues/10731)
[<samp>(e060b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e060b8fa9)
- Close the pool before the Vite servers  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10725](https://redirect.github.com/vitest-dev/vitest/issues/10725)
[<samp>(96fa6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/96fa6d73d)
- Remove listeners in the typecheck worker's `off`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10741](https://redirect.github.com/vitest-dev/vitest/issues/10741)
[<samp>(d758b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d758b4755)
- Keep per-file isolation in vm pools when maxWorkers is 1  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10743](https://redirect.github.com/vitest-dev/vitest/issues/10743)
[<samp>(83ab9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/83ab9a44f)
- Node.js 20 deprecation warning for `ci.yml`  -  by
[@&#8203;hirehamir](https://redirect.github.com/hirehamir) in
[#&#8203;10759](https://redirect.github.com/vitest-dev/vitest/issues/10759)
[<samp>(2127f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2127fa6ce)
- Prevent node builtins double prefix  -  by
[@&#8203;malobre](https://redirect.github.com/malobre) in
[#&#8203;10630](https://redirect.github.com/vitest-dev/vitest/issues/10630)
and
[#&#8203;10767](https://redirect.github.com/vitest-dev/vitest/issues/10767)
[<samp>(22d35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/22d353a80)
- Set non-zero exit code when teardown throws during close  -  by
[@&#8203;zakcutner](https://redirect.github.com/zakcutner) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10794](https://redirect.github.com/vitest-dev/vitest/issues/10794)
[<samp>(22116)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/22116feb7)
- Don't race the typechecker spawn grace period on windows  -  by
[@&#8203;xevrion](https://redirect.github.com/xevrion) in
[#&#8203;10814](https://redirect.github.com/vitest-dev/vitest/issues/10814)
[<samp>(b19e5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b19e5ece9)
- Coalesce concurrent watch-mode restarts, deflake the pool stderr
fixture  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10822](https://redirect.github.com/vitest-dev/vitest/issues/10822)
[<samp>(a31f8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a31f86af7)
- Prevent `vitest --typecheck` from reporting a false success when the
`tsc` process crashes  -  by
[@&#8203;hitenkalda](https://redirect.github.com/hitenkalda) and **Hiten
Kalda** in
[#&#8203;10705](https://redirect.github.com/vitest-dev/vitest/issues/10705)
[<samp>(a1b05)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a1b0565c9)
- Collect in-source tests when the module is cached  -  by
[@&#8203;koutaro-masaki](https://redirect.github.com/koutaro-masaki) in
[#&#8203;10577](https://redirect.github.com/vitest-dev/vitest/issues/10577)
and
[#&#8203;10589](https://redirect.github.com/vitest-dev/vitest/issues/10589)
[<samp>(a7bf2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a7bf2b2c8)
- Swap replace() arguments so timeout error stack shows the real message
 -  by [@&#8203;lazerg](https://redirect.github.com/lazerg) in
[#&#8203;10875](https://redirect.github.com/vitest-dev/vitest/issues/10875)
[<samp>(aba0f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/aba0f9b7b)
- Stale mock metadata breaks automocking with isolate:false  -  by
[@&#8203;kade-robertson](https://redirect.github.com/kade-robertson) in
[#&#8203;10145](https://redirect.github.com/vitest-dev/vitest/issues/10145)
and
[#&#8203;10541](https://redirect.github.com/vitest-dev/vitest/issues/10541)
[<samp>(8e210)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8e2108dda)
- Don't lose worker output on teardown, deflake timing-sensitive tests
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10842](https://redirect.github.com/vitest-dev/vitest/issues/10842)
[<samp>(1216b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1216b5af9)
- Revive global concurrency limit for test lifecycle  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa**, **OpenCode (gpt-5.6-sol)** and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10928](https://redirect.github.com/vitest-dev/vitest/issues/10928)
[<samp>(cf917)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cf9176bfc)
- Own the post-restart rerun, keep `process.exit` disabled in workers
 -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10963](https://redirect.github.com/vitest-dev/vitest/issues/10963)
[<samp>(5e69a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5e69aba65)
- Preserve correct root during resolve config  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10909](https://redirect.github.com/vitest-dev/vitest/issues/10909)
[<samp>(210ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/210ba00cb)
- Combine multiple --project filters correctly  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10988](https://redirect.github.com/vitest-dev/vitest/issues/10988)
[<samp>(66c1c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/66c1cbb53)
- Fix `recordArtifact` location with `vi.defineHelper`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;11047](https://redirect.github.com/vitest-dev/vitest/issues/11047)
[<samp>(c2186)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c21865dfd)
- Invalidate resolved setup files  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11073](https://redirect.github.com/vitest-dev/vitest/issues/11073)
and
[#&#8203;11081](https://redirect.github.com/vitest-dev/vitest/issues/11081)
[<samp>(488c0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/488c04680)
- Accept awaited value in vi.when thenResolve  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11084](https://redirect.github.com/vitest-dev/vitest/issues/11084)
[<samp>(c10a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c10a12900)
- Ignore computed member calls in static collection  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11085](https://redirect.github.com/vitest-dev/vitest/issues/11085)
[<samp>(130f7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/130f79b8b)
- Don't duplicte `oxc.target` if user provides a custom array  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11095](https://redirect.github.com/vitest-dev/vitest/issues/11095)
[<samp>(848d7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/848d7243e)
- Propagate --maxWorkers to projects  -  by
[@&#8203;Gaurav1112](https://redirect.github.com/Gaurav1112) in
[#&#8203;11102](https://redirect.github.com/vitest-dev/vitest/issues/11102)
[<samp>(2122f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2122ffdfb)
- Apply queued mocks from doMock() in queue order  -  by
[@&#8203;juliandescottes](https://redirect.github.com/juliandescottes)
and **Claude Opus 5 (1M context)** in
[#&#8203;10706](https://redirect.github.com/vitest-dev/vitest/issues/10706)
and
[#&#8203;11127](https://redirect.github.com/vitest-dev/vitest/issues/11127)
[<samp>(f08ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f08ce4b71)
- Add a warning if inline project has duplicate plugins due to
unexpected `extends: true`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11120](https://redirect.github.com/vitest-dev/vitest/issues/11120)
[<samp>(584cf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/584cf3084)
- Treat test.describe as a suite during static collection  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11128](https://redirect.github.com/vitest-dev/vitest/issues/11128)
[<samp>(d46a7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d46a74722)
- **browser**:
- Fix trace highlight of shadow dom on webdriverio  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10227](https://redirect.github.com/vitest-dev/vitest/issues/10227)
[<samp>(b01af)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b01afd26c)
- Simplify orchestrator otel carrier  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10283](https://redirect.github.com/vitest-dev/vitest/issues/10283)
[<samp>(3514f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3514f9fa1)
- Remove orphaned Playwright route when same module is mocked via
multiple ids  -  by
[@&#8203;Zelys-DFKH](https://redirect.github.com/Zelys-DFKH) in
[#&#8203;9957](https://redirect.github.com/vitest-dev/vitest/issues/9957)
and
[#&#8203;10267](https://redirect.github.com/vitest-dev/vitest/issues/10267)
[<samp>(41db6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/41db6ce28)
- Skip `wrapDynamicImport` transform on ssr environment  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10355](https://redirect.github.com/vitest-dev/vitest/issues/10355)
[<samp>(d3c96)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d3c964bfc)
- Fix stale source map on watch mode  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10389](https://redirect.github.com/vitest-dev/vitest/issues/10389)
[<samp>(6d772)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6d772c800)
- Escape inline orchestrator scripts  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10412](https://redirect.github.com/vitest-dev/vitest/issues/10412)
[<samp>(c22cf)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c22cfb656)
- Disable client `cdp` API when `allowWrite/allowExec: false`  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10444](https://redirect.github.com/vitest-dev/vitest/issues/10444)
[<samp>(63e3b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/63e3b2eee)
- Wait for orchestrator readiness before resolving browser sessions  - 
by [@&#8203;soconnor-seeq](https://redirect.github.com/soconnor-seeq) in
[#&#8203;10397](https://redirect.github.com/vitest-dev/vitest/issues/10397)
[<samp>(fe5ed)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fe5ed6bc7)
- Wait for iframe tester readiness before preparing  -  by
[@&#8203;soconnor-seeq](https://redirect.github.com/soconnor-seeq) in
[#&#8203;10497](https://redirect.github.com/vitest-dev/vitest/issues/10497)
[<samp>(f2655)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f26552c63)
- Encode iframeId in tester iframe URL  -  by
[@&#8203;Pduhard](https://redirect.github.com/Pduhard), **Pduhard** and
**Claude Opus 5 (1M context)** in
[#&#8203;10520](https://redirect.github.com/vitest-dev/vitest/issues/10520)
and
[#&#8203;10521](https://redirect.github.com/vitest-dev/vitest/issues/10521)
[<samp>(c8bf1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c8bf19f66)
- Always derive a positive locator action timeout  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10626](https://redirect.github.com/vitest-dev/vitest/issues/10626)
[<samp>(5b864)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5b8642120)
- Resize the browser ui only if it's not headless  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10662](https://redirect.github.com/vitest-dev/vitest/issues/10662)
[<samp>(b5c61)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b5c613051)
- Check fs access in builtin commands  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10674](https://redirect.github.com/vitest-dev/vitest/issues/10674)
[<samp>(33f96)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/33f96a145)
- Preserve pre-transform request defaults  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10748](https://redirect.github.com/vitest-dev/vitest/issues/10748)
[<samp>(b6060)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b60605ca7)
- Fix error stacktrace location off-by-one  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10724](https://redirect.github.com/vitest-dev/vitest/issues/10724)
[<samp>(62b8d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/62b8d3b36)
- Inlined awaited import should not trigger syntax error after transform
 -  by [@&#8203;smeng9](https://redirect.github.com/smeng9), **Shaoyu
Meng** and **Claude Opus 5 (1M context)** in
[#&#8203;10784](https://redirect.github.com/vitest-dev/vitest/issues/10784)
[<samp>(51acd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/51acd5778)
- Mock window\.print to avoid hanging  -  by
[@&#8203;aaravjaichand](https://redirect.github.com/aaravjaichand) in
[#&#8203;7375](https://redirect.github.com/vitest-dev/vitest/issues/7375)
and
[#&#8203;10798](https://redirect.github.com/vitest-dev/vitest/issues/10798)
[<samp>(66d95)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/66d95af84)
- Ignore channel events in a tester opened as a top-level window  -  by
[@&#8203;simshanith](https://redirect.github.com/simshanith) in
[#&#8203;9379](https://redirect.github.com/vitest-dev/vitest/issues/9379)
and
[#&#8203;9381](https://redirect.github.com/vitest-dev/vitest/issues/9381)
[<samp>(46a3c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/46a3cf750)
- Resolve `connectTimeout` from the project config  -  by
[@&#8203;lazerg](https://redirect.github.com/lazerg) in
[#&#8203;10879](https://redirect.github.com/vitest-dev/vitest/issues/10879)
and
[#&#8203;10880](https://redirect.github.com/vitest-dev/vitest/issues/10880)
[<samp>(62c79)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/62c795d63)
- Prebundle vite module runner with vitest  -  by
[@&#8203;lebovvskii](https://redirect.github.com/lebovvskii) and
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10836](https://redirect.github.com/vitest-dev/vitest/issues/10836)
and
[#&#8203;10856](https://redirect.github.com/vitest-dev/vitest/issues/10856)
[<samp>(37c24)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/37c240158)
- Restore dependency reload warning  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10913](https://redirect.github.com/vitest-dev/vitest/issues/10913)
[<samp>(90d69)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/90d696d44)
- Configure internal optimizer dependencies  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10915](https://redirect.github.com/vitest-dev/vitest/issues/10915)
[<samp>(a72f4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a72f46eac)
- Trigger playwright/chromium gc on lower disk availability  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;10912](https://redirect.github.com/vitest-dev/vitest/issues/10912)
[<samp>(032d3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/032d31892)
- Disallow filter-only options in getBy\* locators  -  by **Arjun** in
[#&#8203;10295](https://redirect.github.com/vitest-dev/vitest/issues/10295)
and
[#&#8203;10933](https://redirect.github.com/vitest-dev/vitest/issues/10933)
[<samp>(9b4df)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9b4df4b05)
- Fail instead of hanging when the browser stops responding  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10956](https://redirect.github.com/vitest-dev/vitest/issues/10956)
[<samp>(c496c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c496c2e33)
- Exit gracefully when the browser disconnects during cancellation  - 
by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10962](https://redirect.github.com/vitest-dev/vitest/issues/10962)
[<samp>(67e84)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/67e848564)
- Don't redirect vitest in client environment  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10975](https://redirect.github.com/vitest-dev/vitest/issues/10975)
[<samp>(aeb67)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/aeb672095)
- Don't hang when `ui: true` in projects  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10994](https://redirect.github.com/vitest-dev/vitest/issues/10994)
[<samp>(9f710)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9f710d304)
- Preserve trace popover state  -  by
[@&#8203;liuluochen6-af](https://redirect.github.com/liuluochen6-af),
**Hiroshi Ogawa**, **OpenCode (gpt-5.6-sol)** and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10906](https://redirect.github.com/vitest-dev/vitest/issues/10906)
and
[#&#8203;11021](https://redirect.github.com/vitest-dev/vitest/issues/11021)
[<samp>(1bbc2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1bbc278c2)
- Report the action error when a task times out  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11101](https://redirect.github.com/vitest-dev/vitest/issues/11101)
[<samp>(dc10f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/dc10f5f8f)
- **cache**:
- Improve `fsModuleCache` resiliency during external modifications  - 
by [@&#8203;jszumski](https://redirect.github.com/jszumski) in
[#&#8203;10869](https://redirect.github.com/vitest-dev/vitest/issues/10869)
[<samp>(5eb35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5eb3570e8)
- **cli**:
- Respect `FORCE_COLOR` over agent detection  -  by
[@&#8203;dokson](https://redirect.github.com/dokson) in
[#&#8203;10272](https://redirect.github.com/vitest-dev/vitest/issues/10272)
[<samp>(7e66b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7e66bc726)
- Exit on `CTRL+c` even when `globalSetup` runs blocked code  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10863](https://redirect.github.com/vitest-dev/vitest/issues/10863)
[<samp>(d568f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d568f8ce3)
- **coverage**:
- `exclude` to not inherit negation globs from `test.include`  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10299](https://redirect.github.com/vitest-dev/vitest/issues/10299)
[<samp>(28685)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/286851ea2)
- Avoid matching sibling project roots  -  by
[@&#8203;innoprej](https://redirect.github.com/innoprej), **Shin
JaeHee** and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10311](https://redirect.github.com/vitest-dev/vitest/issues/10311)
[<samp>(e30dd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e30dd9cf6)
- Non-awaited module imports cause wrong offsets  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10643](https://redirect.github.com/vitest-dev/vitest/issues/10643)
[<samp>(c4090)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c40901479)
- Fail fast when `coverage.reportsDirectory` conflicts between
concurrent runs  -  by
[@&#8203;jgamaraalv](https://redirect.github.com/jgamaraalv) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10466](https://redirect.github.com/vitest-dev/vitest/issues/10466)
[<samp>(833f0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/833f0936c)
- V8 to ignore Vite SSR's generated import bindings  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11023](https://redirect.github.com/vitest-dev/vitest/issues/11023)
[<samp>(c6174)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c6174a6cf)
- Prevent crash on `/@fs/` prepended virtual files  -  by
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;11119](https://redirect.github.com/vitest-dev/vitest/issues/11119)
[<samp>(c4473)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c4473e48e)
- **deps**:
- Update ivya to fix empty aria tree snapshot  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;10218](https://redirect.github.com/vitest-dev/vitest/issues/10218)
[<samp>(f7822)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f7822ebf6)
- Update fake-timers to 15.3.2. support `toNotFake`  -  by
[@&#8203;BPScott](https://redirect.github.com/BPScott),
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10043](https://redirect.github.com/vitest-dev/vitest/issues/10043)
[<samp>(bbf2f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bbf2f0df3)
- Update all non-major dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;9958](https://redirect.github.com/vitest-dev/vitest/issues/9958)
[<samp>(7faa7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7faa7b04a)
- Update all non-major dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10861](https://redirect.github.com/vitest-dev/vitest/issues/10861)
[<samp>(0188c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0188c8135)
- Update all non-major dependencies  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10898](https://redirect.github.com/vitest-dev/vitest/issues/10898)
[<samp>(61c4b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/61c4b8024)
- Update all non-major dependencies  -  in
[#&#8203;10966](https://redirect.github.com/vitest-dev/vitest/issues/10966)
[<samp>(65263)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/65263d74e)
- Update all non-major dependencies  -  in
[#&#8203;11043](https://redirect.github.com/vitest-dev/vitest/issues/11043)
[<samp>(732df)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/732df2c2b)
- **expect**:
- Allow readonly arrays and sets in toBeOneOf  -  by
[@&#8203;YBJ0000](https://redirect.github.com/YBJ0000) in
[#&#8203;10264](https://redirect.github.com/vitest-dev/vitest/issues/10264)
and
[#&#8203;10374](https://redirect.github.com/vitest-dev/vitest/issues/10374)
[<samp>(fed11)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fed1125b0)
- Handle nullish toHaveProperty values  -  by
[@&#8203;liyimil](https://redirect.github.com/liyimil) in
[#&#8203;10735](https://redirect.github.com/vitest-dev/vitest/issues/10735)
and
[#&#8203;10811](https://redirect.github.com/vitest-dev/vitest/issues/10811)
[<samp>(99e59)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/99e596d33)
- **junit**:
- Include unhandled errors in JUnit XML report  -  by
[@&#8203;gbleu](https://redirect.github.com/gbleu) and **Claude Opus 5
(1M context)** in
[#&#8203;10244](https://redirect.github.com/vitest-dev/vitest/issues/10244)
[<samp>(6f74e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6f74e5e9d)
- **mocker**:
- Skip hoist transform without ast mock calls  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and **OpenAI
Codex** in
[#&#8203;10410](https://redirect.github.com/vitest-dev/vitest/issues/10410)
[<samp>(0468e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0468e1572)
- Hoist vi.mock() for vite-plus/test imports  -  by
[@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn) and
**Claude Opus 5 (1M context)** in
[#&#8203;10489](https://redirect.github.com/vitest-dev/vitest/issues/10489)
[<samp>(88376)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8837664a4)
- Restrict redirect mocks to the fs allowlist  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;10972](https://redirect.github.com/vitest-dev/vitest/issues/10972)
[<samp>(8ff9b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8ff9b9a9e)
- **pool**:
- Prevent test run hang on worker crash  -  by
[@&#8203;jaxalo](https://redirect.github.com/jaxalo) and
[@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in
[#&#8203;10543](https://redirect.github.com/vitest-dev/vitest/issues/10543)
[<samp>(40

> ✂ **Note**
> 
> PR body was truncated to here.


</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42MS4zIiwidXBkYXRlZEluVmVyIjoiNDQuNjEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: internal

---------

## What is the current behavior?

The `web-types.json` file provides autocomplete information for
Ionic-Vue component attributes to the JetBrains WebStorm IDE. The
autocomplete does work, but only when the component has not been
imported into the source `.vue` file. Once imported, the IDE replaces
types provided by `web-types.json` with types from
`@ionic/vue/dist/types/proxies.d.ts`, which it fails to understand, and
ceases providing attribute autocomplete.

## What is the new behavior?

Setting `priority: "highest"` on each component in `web-types.json`
tells WebStorm to keep these types over imported ones. Autocomplete
information persists after importing the Ionic-Vue component.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No
…#31364)

Issue number: resolves #29721

---------

## What is the current behavior?

A navigation guard that cancels a back navigation leaves Ionic's staged
navigation info behind. The next push reads that stale delta, gets
mistaken for history traversal, and the incoming route is never added to
the location history. The router outlet then destroys a page it should
have kept.

## What is the new behavior?

- `currentNavigationInfo` is cleared before `router.afterEach` returns
on a navigation failure.
- The clear is skipped for `cancelled` failures, matching vue-router,
which reverts the history entry for `aborted` and `duplicated`
navigations but leaves it in place when a navigation is superseded.
- Added a unit spec covering the reported steps.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

Dev build: `9.0.1-dev.11788285010.17561004`

---------

Co-authored-by: zhiqiang.guo <zguoby@gmail.com>
Co-authored-by: ShaneK <561207+ShaneK@users.noreply.github.com>
Co-authored-by: Shane <shane.king@outsystems.com>
Co-authored-by: ShaneK <shane@shanessite.net>
Issue number: internal 

---------

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

- New test project for validating Ionic components are split across
chunks with the new per-component exports.
- Script for testing schematics.
- More exports from the standalone barrel file in `package.json`.
- CI step for running `packages/angular` tests.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

---------

Co-authored-by: Shane <shane@shanessite.net>
Issue number: internal

---------

## What is the new behavior?

Spec tests in `packages/react` use `@types/jest@^29`.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`24.13.3` →
`24.13.4`](https://renovatebot.com/diffs/npm/@types%2fnode/24.13.3/24.13.4)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/24.13.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/24.13.3/24.13.4?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43MS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | minor | `v4.37.9` → `v4.38.0` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v4.38.0`](https://redirect.github.com/github/codeql-action/releases/tag/v4.38.0)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.37.9...v4.38.0)

- On GitHub-hosted runners, the CodeQL Action now deletes unused CodeQL
bundles from the toolcache before downloading a different bundle, which
frees up disk space for the analysis. We expect to roll this change out
to everyone in September.
[#&#8203;4124](https://redirect.github.com/github/codeql-action/pull/4124)
- The CodeQL Action now supports CodeQL releases that are compatible
with Linux Arm64 and downloads the native `linux-arm64` CodeQL bundle
when available.
[#&#8203;4072](https://redirect.github.com/github/codeql-action/pull/4072)
- Update default CodeQL bundle version to
[2.27.0](https://redirect.github.com/github/codeql-action/releases/tag/codeql-bundle-v2.27.0).
[#&#8203;4129](https://redirect.github.com/github/codeql-action/pull/4129)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43MS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…nt is clicked (#31423)

Issue number: resolves internal

---------

## What is the current behavior?

Clicking content in the `start` or `end` slot behaves differently in
each form control. `ion-input` and `ion-textarea` emit the click event
**twice**, while `ion-select` emits **once** but does not respond to the
click at all.

The duplicate comes from the browser rather than from Ionic emitting
twice. The wrapping `<label>` forwards the click to the native control,
and that forwarded click is re-emitted from the host. Browsers skip this
forwarding when the click lands on interactive content, which is why
slotted buttons were never affected.

`ion-select` separately cancels the default action on every slotted
click. A slotted link does not navigate and a slotted checkbox does not
toggle, while the same markup works in `ion-input`.

## What is the new behavior?

- Clicking slotted content emits a single click event from all three
components.
- Decorative slotted content now activates the control: `ion-input` and
`ion-textarea` focus, `ion-select` opens.
- Interactive slotted content, such as a button or a link, keeps its own
behavior and does not activate the control.
- Slotted links and form controls work inside `ion-select`.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

Previews:
-
[Input](https://ionic-framework-git-fw-7677-ionic1.vercel.app/src/components/input/test/slot)
-
[Textarea](https://ionic-framework-git-fw-7677-ionic1.vercel.app/src/components/textarea/test/slot)
-
[Select](https://ionic-framework-git-fw-7677-ionic1.vercel.app/src/components/select/test/slot)

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
…wide (#31435)

Issue number: resolves internal

---------

## What is the current behavior?

With a start-positioned label and a wide start or end slot, the editable
area of `ion-input` and `ion-textarea` collapses to **0px**. The value
is not merely cramped, it is gone, so the user cannot see what they are
typing.

`ion-select` looks like it already solves this, because `.select-text`
carries a `min-width`. It does not. `.native-wrapper` collapses to
**0px** and clips the text away, so the selected value is invisible too
and that floor has never had any effect.

## What is the new behavior?

- The editable area of `ion-input` and `ion-textarea` now keeps a
minimum width, so the value stays visible however wide the slotted
content is.
- The floor is `2ch` rather than a pixel value, so the same two
characters stay visible as text scales. A pixel floor degrades to
roughly **1.2 characters** at a 24px base font.
- `ion-textarea` also needed its `.native-wrapper` floored. The
`min-width: inherit` it carried computed to `0px`, so the textarea kept
its width but spilled outside the field border.
- `ion-select` reads the same variable so the three cannot drift. Its
only visible change is **2px** on the `fit-content` snapshot.

**`ion-select` still shows no selected text when slotted content is
wide, and this PR does not change that.** Sharing the variable is not
enough for select, because `.native-wrapper` gives up all of its width
to the label and hides its overflow, so any floor on `.select-text` is
clipped to nothing. Fixing it means changing how that wrapper trades
width with the label, which is FW-7682. The two select tests added here
are skipped with `TODO(FW-7682)` and are the ready-made coverage for it,
so once the wrapper keeps its width, select picks up the shared floor
and the tests can be unskipped.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

Material solves this differently, and its approach does not port. It
caps the leading and trailing slots so oversized content contributes no
width, then floors the *container* at `min-content` so the field
overflows outward instead of collapsing inward. `min-content` on our
input measures `0px`, so the floor has to sit on the editable element
instead. Capping the slots is FW-7650, and it is the change that
actually removes the pressure here: it takes the worst case budget from
**46px** to about **148px**.

Wide glyphs can still clip an unfocused leading character, since `ch`
measures the `0` glyph. Fitting them needs 24px out of a 46px budget
shared with the label, which costs the label its ellipsis, and typing
scrolls the caret into view regardless.

Previews:

- [Input:
Slot](https://ionic-framework-git-fw-7679-ionic1.vercel.app/src/components/input/test/slot)
- [Textarea:
Slot](https://ionic-framework-git-fw-7679-ionic1.vercel.app/src/components/textarea/test/slot)
- [Select:
Slot](https://ionic-framework-git-fw-7679-ionic1.vercel.app/src/components/select/test/slot)
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@stencil/core](https://stenciljs.com/)
([source](https://redirect.github.com/stenciljs/core)) | [`4.44.2` →
`4.45.0`](https://renovatebot.com/diffs/npm/@stencil%2fcore/4.44.2/4.45.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@stencil%2fcore/4.45.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@stencil%2fcore/4.44.2/4.45.0?slim=true)
|

---

### Release Notes

<details>
<summary>stenciljs/core (@&#8203;stencil/core)</summary>

###
[`v4.45.0`](https://redirect.github.com/stenciljs/core/blob/HEAD/CHANGELOG.md#-4450-2026-09-12)

[Compare
Source](https://redirect.github.com/stenciljs/core/compare/v4.44.2...v4.45.0)

##### Bug Fixes

- **compiler:** stop double `transformTag` wrap
([#&#8203;6884](https://redirect.github.com/stenciljs/core/issues/6884))
([6480675](https://redirect.github.com/stenciljs/core/commit/648067564221aa86778c8a8991dd28bba474949c))
- **runtime:** create new element for new child when keyed tag changes
([#&#8203;6885](https://redirect.github.com/stenciljs/core/issues/6885))
([3743c44](https://redirect.github.com/stenciljs/core/commit/3743c445f4451ae252fc152bf9192f9652c41963))
- **runtime:** lazy getter / setter queue last set value
([#&#8203;6883](https://redirect.github.com/stenciljs/core/issues/6883))
([36404ac](https://redirect.github.com/stenciljs/core/commit/36404acd3331271e4a531bc6d77eceeb510fcbdc))
- **compiler:** scope-css process layer selectors
([#&#8203;6858](https://redirect.github.com/stenciljs/core/issues/6858))
([635f1d4](https://redirect.github.com/stenciljs/core/commit/635f1d4b6ccf871ebc545b58c0a619f629475710)),
closes
[#&#8203;6857](https://redirect.github.com/stenciljs/core/issues/6857)
- **ssr:** abort stuck component and in-flight fetch() on hydrate
timeout
([#&#8203;6881](https://redirect.github.com/stenciljs/core/issues/6881))
([cf5982e](https://redirect.github.com/stenciljs/core/commit/cf5982e202a89a3b6aa848f71fc3e72dcc519842))
- **testing:** await puppeteer executablePath() for puppeteer >= 25
([#&#8203;6882](https://redirect.github.com/stenciljs/core/issues/6882))
([#&#8203;6886](https://redirect.github.com/stenciljs/core/issues/6886))
([67fa599](https://redirect.github.com/stenciljs/core/commit/67fa5990b2c7f92215d23ed58c19f0b0988af500))
- **types:** loosen greedy `aria${string}` type
([#&#8203;6880](https://redirect.github.com/stenciljs/core/issues/6880))
([3d0371e](https://redirect.github.com/stenciljs/core/commit/3d0371e7fd14f0b00dd49331fedd5def924d24e9))

#### 🌜
[4.44.2](https://redirect.github.com/stenciljs/core/compare/v4.44.1...v4.44.2)
(2026-08-26)

##### Bug Fixes

- **runtime:** reflected any-typed props
([#&#8203;6849](https://redirect.github.com/stenciljs/core/issues/6849))
([0ead28c](https://redirect.github.com/stenciljs/core/commit/0ead28ca9f3df241ab66dfcd4b2d880be14f2add))

#### 🐠
[4.44.1](https://redirect.github.com/stenciljs/core/compare/v4.44.0...v4.44.1)
(2026-08-21)

##### Bug Fixes

- **compiler:** track type query references
([#&#8203;6825](https://redirect.github.com/stenciljs/core/issues/6825))
([4c90b3b](https://redirect.github.com/stenciljs/core/commit/4c90b3b41c3f8b389e47749787fc6a7e0358b86a)),
closes
[#&#8203;2482](https://redirect.github.com/stenciljs/core/issues/2482)
- **runtime:** fix performance mark error in `dist-custom-elements`
output
([#&#8203;6840](https://redirect.github.com/stenciljs/core/issues/6840))
([b1f89b6](https://redirect.github.com/stenciljs/core/commit/b1f89b626bcc6c976016b37edbcdc1c1832ce93a))
- **runtime:** guard against null parent in insertBefore
([#&#8203;6836](https://redirect.github.com/stenciljs/core/issues/6836))
([170039a](https://redirect.github.com/stenciljs/core/commit/170039a28bfde8216b7268daac2934b76874e042))
- **runtime:** reflected boolean attributes
([#&#8203;6838](https://redirect.github.com/stenciljs/core/issues/6838))
([0a7e130](https://redirect.github.com/stenciljs/core/commit/0a7e1305ef046364e9a2670166960d7295bdc0da))
- **types:** defineCustomElements
([#&#8203;6839](https://redirect.github.com/stenciljs/core/issues/6839))
([8b06d1d](https://redirect.github.com/stenciljs/core/commit/8b06d1d0c9107af0e0387af9de01399b5a6645b2))

##### Features

- **types:** added `focusgroupstart` property
([#&#8203;6829](https://redirect.github.com/stenciljs/core/issues/6829))
([b583bf3](https://redirect.github.com/stenciljs/core/commit/b583bf3aaa52b5fb658701a9983cb16ff200b5fe))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@capacitor/core](https://capacitorjs.com)
([source](https://redirect.github.com/ionic-team/capacitor)) | [`8.5.1`
→
`8.5.2`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/8.5.1/8.5.2)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/8.5.2?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/8.5.1/8.5.2?slim=true)
|

---

### Release Notes

<details>
<summary>ionic-team/capacitor (@&#8203;capacitor/core)</summary>

###
[`v8.5.2`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#852-2026-09-11)

[Compare
Source](https://redirect.github.com/ionic-team/capacitor/compare/8.5.1...8.5.2)

##### Bug Fixes

- **android:** add null checks for plugin annotation when retrieving
permissions
([#&#8203;8400](https://redirect.github.com/ionic-team/capacitor/issues/8400))
([035b16a](https://redirect.github.com/ionic-team/capacitor/commit/035b16aca15eab136efc49eaec64b45987cfefeb))
- **ios:** do not forward scene lifecycle events to the page before it
has loaded
([#&#8203;8595](https://redirect.github.com/ionic-team/capacitor/issues/8595))
([c567328](https://redirect.github.com/ionic-team/capacitor/commit/c567328d0feb90c306ea824edc5a799bdfe26542))
- resolve issues with safe area / systembars plugin
([#&#8203;8535](https://redirect.github.com/ionic-team/capacitor/issues/8535))
([e37d9c6](https://redirect.github.com/ionic-team/capacitor/commit/e37d9c60785368acf2a83cfd4c20f47076672bdd))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…31413)

Issue number: resolves #31149

---------

## What is the current behavior?
Setting `--height` to any of the following on an `ion-modal` containing
an `ion-content` results in the `ion-content` collapsing to `0` height:
`auto`, `fit-content`, `min-content`, or `max-content`.

## What is the new behavior?
- Checks if modal `--height` is set to `auto`, `fit-content`,
`min-content,` or `max-content` and styles the `ion-content`, `ion-nav`
and `.ion-page` appropriately if so
- Watches for changes to `--height` on `ion-modal` to dynamically add
and remove the class that sizes the `ion-content` to its content
- Updates modal `--max-height` to `100%` which allows the content to
scroll instead of overflowing and being clipped
- Adds a preview test for different scenarios where `ion-modal` has
`--height` set
- Adds e2e tests for the various `--height` scenarios
- Updates `safe-area-utils` to account for the new content-sized modals
- Adds spec tests for all new functions

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

**Dev build**: `9.0.1-dev.11788212611.154b1596`

**Previews**: 
- [Modal: Content
Height](https://ionic-framework-git-fw-7731-ionic1.vercel.app/src/components/modal/test/content-height)
- [Modal: Safe
Area](https://ionic-framework-git-fw-7731-ionic1.vercel.app/src/components/modal/test/safe-area)

**Docs PR**: ionic-team/ionic-docs#4689

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [vitest](https://vitest.dev)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`5.0.0` →
`5.0.1`](https://renovatebot.com/diffs/npm/vitest/5.0.0/5.0.1) |
![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/5.0.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/5.0.0/5.0.1?slim=true)
|

---

### Release Notes

<details>
<summary>vitest-dev/vitest (vitest)</summary>

###
[`v5.0.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v5.0.1)

[Compare
Source](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.0...v5.0.1)

#####    🚀 Features

- **ui**:
- Move trace attempts selector to viewer header  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Codex** in
[#&#8203;11189](https://redirect.github.com/vitest-dev/vitest/issues/11189)
[<samp>(5dc4b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5dc4b5c92)
- Add focused trace view layout mode  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa**, **OpenCode (gpt-5.6-sol)** and **Codex** in
[#&#8203;11190](https://redirect.github.com/vitest-dev/vitest/issues/11190)
[<samp>(376dc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/376dc3bc1)

#####    🐞 Bug Fixes

- Exit 1 when vitest list fails collection  -  by
[@&#8203;hamed-bavar](https://redirect.github.com/hamed-bavar) in
[#&#8203;11145](https://redirect.github.com/vitest-dev/vitest/issues/11145)
and
[#&#8203;11146](https://redirect.github.com/vitest-dev/vitest/issues/11146)
[<samp>(6108b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6108b8197)
- Keep parse error details in static collection  -  by
[@&#8203;hamed-bavar](https://redirect.github.com/hamed-bavar) in
[#&#8203;11150](https://redirect.github.com/vitest-dev/vitest/issues/11150)
and
[#&#8203;11151](https://redirect.github.com/vitest-dev/vitest/issues/11151)
[<samp>(7c818)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c818153a)
- Avoid recursive prototype in automocking  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11195](https://redirect.github.com/vitest-dev/vitest/issues/11195)
[<samp>(99fc5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/99fc52591)
- Prevent false Vitest import resolution  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11196](https://redirect.github.com/vitest-dev/vitest/issues/11196)
[<samp>(b426c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b426c1976)
- Keep metadata file when clearing the cache  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11199](https://redirect.github.com/vitest-dev/vitest/issues/11199)
[<samp>(73614)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/73614654a)
- Correct typos in error message and comments  -  by
[@&#8203;shinji00222](https://redirect.github.com/shinji00222) and
**Shinji** in
[#&#8203;11187](https://redirect.github.com/vitest-dev/vitest/issues/11187)
[<samp>(115c3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/115c3f6d2)
- Resolve ResolvedConfig exactOptionalPropertyTypes errors  -  by
[@&#8203;LukeAbby](https://redirect.github.com/LukeAbby) in
[#&#8203;11175](https://redirect.github.com/vitest-dev/vitest/issues/11175)
[<samp>(498fb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/498fbe922)
- Share the server on self-referencing `extends`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11034](https://redirect.github.com/vitest-dev/vitest/issues/11034)
[<samp>(23dda)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/23dda738c)
- Warn when deprecated `deps.optimizer.web` is used  -  by
[@&#8203;im10furry](https://redirect.github.com/im10furry) in
[#&#8203;11214](https://redirect.github.com/vitest-dev/vitest/issues/11214)
[<samp>(2ce29)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2ce29d5fa)
- **browser**:
- Avoid double quotes in `config.define`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11198](https://redirect.github.com/vitest-dev/vitest/issues/11198)
[<samp>(972e2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/972e24bab)
- **doctor**:
- Measure vm pools for custom environments  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11212](https://redirect.github.com/vitest-dev/vitest/issues/11212)
[<samp>(91ab1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/91ab1588c)
- **expect**:
- Correct return value in `toMatchAriaSnapshot`  -  by
[@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in
[#&#8203;11208](https://redirect.github.com/vitest-dev/vitest/issues/11208)
[<samp>(c119b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c119be016)
- **fakeTimers**:
- Force `queueMicrotask` and `nextTick` in `toNotFake`  -  by
[@&#8203;kingmakeruix](https://redirect.github.com/kingmakeruix),
**kingmakeruix**, **Hiroshi Ogawa**, **Codex** and
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in
[#&#8203;11261](https://redirect.github.com/vitest-dev/vitest/issues/11261)
[<samp>(a47d7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a47d7908f)
- **snapshot**:
- Report obsolete keys next to skipped tests  -  by
[@&#8203;hamed-bavar](https://redirect.github.com/hamed-bavar),
**Hiroshi Ogawa** and **OpenCode (gpt-5.6-sol)** in
[#&#8203;11157](https://redirect.github.com/vitest-dev/vitest/issues/11157)
and
[#&#8203;11158](https://redirect.github.com/vitest-dev/vitest/issues/11158)
[<samp>(17e2b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/17e2b22dd)
- **types**:
- Make public declarations self-contained  -  by
[@&#8203;ZoeySigel](https://redirect.github.com/ZoeySigel) in
[#&#8203;11141](https://redirect.github.com/vitest-dev/vitest/issues/11141)
[<samp>(45546)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/455466c16)
- **ui**:
- Fix collapse/expand suite with file name search  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Codex** in
[#&#8203;11260](https://redirect.github.com/vitest-dev/vitest/issues/11260)
[<samp>(0a712)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0a7122daa)
- Fix explorer file summary count  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa**, **OpenCode (gpt-5.6-sol)** and **Codex** in
[#&#8203;11125](https://redirect.github.com/vitest-dev/vitest/issues/11125)
[<samp>(05982)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/05982297d)
- **utils**:
- Fix `deepMerge` to handle prototype  -  by
[@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), **Hiroshi
Ogawa** and **Codex** in
[#&#8203;11215](https://redirect.github.com/vitest-dev/vitest/issues/11215)
[<samp>(4944c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4944cf498)

#####     [View changes on
GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v5.0.0...v5.0.1)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC45My40IiwidXBkYXRlZEluVmVyIjoiNDQuOTMuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`24.13.4` →
`24.13.5`](https://renovatebot.com/diffs/npm/@types%2fnode/24.13.4/24.13.5)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/24.13.5?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/24.13.4/24.13.5?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC45My40IiwidXBkYXRlZEluVmVyIjoiNDQuOTMuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
)

Issue number: resolves #30626 

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->
The native `button` inside `ion-button` is not being updated with the
aria-attributes if it changes on `ion-button` after initial render,
including `aria-description`. Additionally, the same dynamic is
happening with other button like elements, including `ion-card` and
`ion-item`.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->
The native `button` inside `ion-button` updates with the aria attributes
if it changes on `ion-button`. Changes include:
- Add 2 helper functions to [helpers.ts](http://helpers.ts/)
    - A mutation observer watching for all attribute changes.
- One which watches only for aria attribute changes, which calls the
mutation observer.
- Add 4 tests to
[button.e2e.ts](https://github.com/ionic-team/ionic-framework/blob/main/core/src/components/button/test/a11y/button.e2e.ts)
in a11y:
- One which loops through each aria attribute (imported from the helper)
using `ariaAttributes`
- One which specifically tests `aria-disabled` since it is managed in
`render()` separately. Render forced with prop change.
   - One which looks at detaching and reattaching behavior
- One which tests the helper strips, sets, accepts empty strings, and
can process removeAttribute
- Update
[button.tsx](https://github.com/ionic-team/ionic-framework/blob/main/core/src/components/button/button.tsx)
to:
- Add import of new helpers watchForAriaAttributeChanges, type
AttributeWatcher from '@utils/helpers'
   - Add `private ariaWatcher?: AttributeWatcher;` to class Button
- Add `private didLoad = false;` for conditional use in
`connectedCallback`and use in added `componentDidLoad` for starting the
watcher after initial component load
- Remove previous [watch
block](https://github.com/ionic-team/ionic-framework/blob/b4b2603210b313fc2f2ee2c88b9112751e24b338/core/src/components/button/button.tsx#L161-L181)
since now handled by helper
- In `item.tsx`,
- Add `ariaWatcher` and `watchForAriaAttributeChanges`, replicating
functionality of the watch block, only applying to `aria-label`
currently
- Use existing`private didLoad = false;` for conditional use in
`connectedCallback`and use in existing `componentDidLoad` for starting
the watcher after initial component load
- In `item.e2e.test`, add tests to ensure:
  - native element updates aria-label when host attribute changes
  - aria-label sync survives detach and reattach
- helper strips host attribute and syncs native element through set,
empty, and remove
- In `card.tsx`,
- Add `ariaWatcher` and `watchForAriaAttributeChanges`, replicating
functionality of the watch block, only applying to `aria-label`
currently
- Add `private didLoad = false;` for conditional use in
`connectedCallback`and use in added `componentDidLoad` for starting the
watcher after initial component load
- In `card.e2e.test`, add tests to ensure:
  - native element updates aria-label when host attribute changes
  - aria-label sync survives detach and reattach
- helper strips host attribute and syncs native element through set,
empty, and remove

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

---------

Co-authored-by: ShaneK <shane@shanessite.net>
Issue number: internal

---------

## What is the current behavior?

Several dependencies throughout the repo have postcss as a dependency.
While it doesn't affect users, a vulnerability in postcss causes
dependabot to log high severity alerts.

## What is the new behavior?

- Bumped dependencies in vue and vue-router that were on the old
postcss.
- Added overrides for ng18, ng19, and ng20 test apps, which are stuck on
older versions.
- Ran `npm update` for all other packages that inherited postcss. This
has a few side effects:
- Bumps the `lockFileVersion` from 2 to 3, which accounts for most of
the diff in the package-lock files.
- Bumps the `react-router` from 5 to 6 in the React 18 test app
package-lock.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

Core uses old versions of stylelint and stylelint-order that cannot be
easily updated, and these use an old postcss with the vulnerability.

---------

Co-authored-by: @anupamme

---------

Co-authored-by: Maria Hutt <thetaPC@users.noreply.github.com>
Issue number: internal

---------

## What is the current behavior?

The Vue package has two warnings that are printed regardless of the
configured log level.

## What is the new behavior?

- Export `printIonWarning` and `printIonError` from core, enabling
packages to log messages with Ionic's configured log level.
- Use `printIonWarning` in the Vue package instead of `console.warn`
directly. This checks the log level before printing.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No
Issue number: resolves #30919

---------

Supersedes #31047, which this builds on. @KanhaiyaPandey is credited as
co-author on the commit.

## What is the current behavior?

When a CSS `zoom` other than `1` applies to the popover, `ion-popover`
renders incorrectly: it is positioned away from its trigger, and with
`size="cover"` it is given the wrong width. This affects a documented
workflow — adjusting the `html` zoom is the approach Ionic's
documentation recommends for dynamic font scaling on Chrome for Android.

The zoom factor is effectively applied twice. Geometry APIs
(`getBoundingClientRect()` on the trigger, content and arrow, plus
`clientX`/`clientY` for `reference="event"`) report values in the zoomed
coordinate space. Those values are written straight into the inline
`top`/`left`/`--width` styles on `.popover-content`, which are
interpreted in the unzoomed layout space and then re-scaled by the
browser.

## What is the new behavior?

- The effective zoom is read from the **popover's own context** via
`currentCSSZoom`, not from `document.documentElement`. This picks up a
zoom applied anywhere above the popover and accounts for zoom
accumulated across several ancestors. Where the property is unavailable,
it falls back to the ratio between the element's bounding rect and its
`offsetWidth`; differences below a small tolerance are treated as no
zoom, since `offsetWidth` is integer-rounded and would otherwise report
a phantom zoom.
- Every rect-derived measurement is normalized by that factor: trigger
and content rects, arrow dimensions, the `size="cover"` width, and the
pointer coordinates used by `reference="event"`.
- `innerWidth`/`innerHeight` are scaled into the same space. They are
not affected by CSS `zoom`, so leaving them alone made the offscreen
adjustment clamp against a viewport larger than the space actually
available, letting the popover render past the edge of the screen.
- Behavior is unchanged when no zoom is applied: the detected factor is
exactly `1` and every normalization is a division by `1`.

This mirrors how Floating UI addressed the same problem in
floating-ui/floating-ui#3492 — `Element.currentCSSZoom` as both the
value and the feature detector, with a default of `1` on engines that
lack it. Their fix also had to scale the overflow bounds inside
`detectOverflow()`, which is the same class of issue as the
`innerWidth`/`innerHeight` point above.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

The new `zoom` parameters on the popover positioning helpers are
optional and default to `1`. Those helpers are internal to the component
and are not part of the public API.

## Other information

**Tests**

Eight E2E tests in `core/src/components/popover/test/zoom/`, covering
the review points raised on #31047:

| Scenario | Covers |
|---|---|
| Zoom on `body`; accumulated zoom (`html` 1.2 × `body` 1.25) | zoom
applied at levels other than `documentElement` |
| `size="cover"` width matches the trigger | sizing, not just
positioning |
| `reference="event"` anchors to the pointer | pointer coordinates |
| Arrow centred on the trigger (ios) | arrow positioning |
| Popover stays within the viewport | offscreen adjustment |
| Zoomed out (`0.8`) and zoomed in (`1.5`) | factors either side of 1 |

All eight fail against `main` and pass with this change, so each one
covers the regression rather than merely passing.

These are functional assertions rather than screenshots: what is being
verified is the popover's geometry relative to its trigger, and both
boxes are read in the same coordinate space, so the relationship holds
at any zoom level. No screenshot baselines are added.

Unit tests in `core/src/components/popover/test/util.spec.ts` cover the
zoom detection itself — the `currentCSSZoom` path, the `offsetWidth`
fallback, the rounding tolerance — and the normalization of content,
trigger and arrow measurements.

**Verification**

The spec suite passes in full: 82 files, 714 tests, no failures.

The zoom tests are not skipped for any browser and pass on all three
browser projects — Chromium, Firefox and WebKit — in both `ios` and `md`
modes. Assertions use a 2px tolerance to absorb sub-pixel differences
between engines.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: KanhaiyaPandey <kanhaiyapandey2232@gmail.com>
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github/codeql-action](https://redirect.github.com/github/codeql-action)
| action | patch | `v4.38.0` → `v4.38.1` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

###
[`v4.38.1`](https://redirect.github.com/github/codeql-action/releases/tag/v4.38.1)

[Compare
Source](https://redirect.github.com/github/codeql-action/compare/v4.38.0...v4.38.1)

- The CodeQL Action now has experimental support for CodeQL releases for
which per-language bundles are available. Per-language bundles support
analysis for a single language and are therefore smaller than the
combined bundles that allow analysis for all supported languages. As a
result, per-language bundles take up less space on disk and are faster
to download. We expect to roll this change out to everyone in the coming
weeks.
[#&#8203;4146](https://redirect.github.com/github/codeql-action/pull/4146)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node)
([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node))
| [`24.13.5` →
`24.13.6`](https://renovatebot.com/diffs/npm/@types%2fnode/24.13.5/24.13.6)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/24.13.6?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/24.13.5/24.13.6?slim=true)
|

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…1460)

Issue number: resolves #30933

---------

## What is the current behavior?

Currently, an `ion-datetime` in a modal or popover sometimes opens with
a blank calendar on iOS 26. The host is missing `datetime-ready`, so
`.calendar-body` stays at `opacity: 0`. It doesn't happen every time,
and when it does the calendar stays blank until the overlay is reopened.

The `ion-datetime` component runs two IntersectionObservers on the same
root and target, one that adds `datetime-ready` and one that removes it.
WebKit reports an element that is still on screen as not intersecting,
and it doesn't deliver that entry to every observer, so the removing
observer tears the ready state down and the adding one never hears the
recovery.

## What is the new behavior?

The hidden-state observer now checks the host before tearing anything
down. An overlay hides its contents with `display: none`, which leaves
the host without a layout box, so a host that still has one is on screen
and the entry is wrong. The `hasBeenIntersecting` flag added in #31108
is gone, because the same check covers the synthetic "not intersecting"
entry that `observe()` fires when the host mounts offscreen. Both
callbacks also read the last entry instead of the first, since a batched
callback's first entry can be stale.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

I reproduced this on an iOS 26.2 simulator, opening and dismissing the
modal in a loop and checking `datetime-ready` after each open. Four
extra observers on the same root and target recorded 54, 52, 54, 52
events over 25 cycles, which is where the per-observer delivery claim
comes from.

Same machine and everything, 150 cycles each:

| build | blank calendar |
| --- | --- |
| main | 7 (4.7%) |
| this branch | 0 |

The e2e test stubs `IntersectionObserver` to report hidden while the
datetime is on screen, since the WebKit misbehavior can't be forced on
demand. It fails on all three browsers without the fix. The open/close
cycle test guards against regressions but won't reproduce the glitch on
its own.

[Relevant test screen -
iOS](https://ionic-framework-git-fix-30933-ionic1.vercel.app/src/components/datetime-button/test/overlays?ionic:mode=ios)
ZainnQureshii and others added 4 commits September 24, 2026 18:27
Issue number: N/A (docs-only link fix)

---------

## What is the current behavior?

`docs/component-guide.md` links to Angular source files that no longer
exist, so every link in the "Angular value accessors" and "Interface
Exports" steps returns a 404 on GitHub:

-
`/packages/angular/src/directives/control-value-accessors/{text,numeric,boolean,select}-value-accessor.ts`
(5 links)
- `/packages/angular/src/index.ts`

`packages/angular/src/` now only contains `common/`, `lazy/` and
`standalone/`.

## What is the new behavior?

- The value accessor links point at
`packages/angular/src/lazy/directives/control-value-accessors/`, where
the four directives live (their selectors match the ones the guide
quotes).
- The Angular interface-export step points at
`packages/angular/src/lazy/index.ts` and
`packages/angular/src/standalone/index.ts`, which are the two files that
export the `*CustomEvent` / `*EventDetail` types today.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

Docs only, no code changes. Found and prepared with AI assistance
(Claude Code); I checked every new path exists on `main`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Issue number: internal

---------

<!-- Please do not submit updates to dependencies unless it fixes an
issue. -->

<!-- Please try to limit your pull request to one type (bugfix, feature,
etc). Submit multiple pull requests if needed. -->

## What is the current behavior?
<!-- Please describe the current behavior that you are modifying. -->

Currently, the `update-package-lock` job fails the release with `ETARGET
No matching version found for @ionic/core@^9.0.x`. Since 9.0.4 npm
processes publishes asynchronously, so `npm publish` returns before the
version resolves. The registry recorded `@ionic/core` 4s after the
publish step on 9.0.3, but 5m11s on 9.0.4 and 5m10s on 9.0.5, against a
near constant 5m04s gap from publishing to that job, so the last two
releases each missed by about six seconds and needed the job re-run by
hand.

Separately, `purge-cdn-cache` has never done anything. A missing comma
before the `@next` CSS entry made the body invalid JSON, so jsDelivr
rejected every purge with `InvalidContent` while `curl` exited 0 and the
step stayed green. That has been true since #29121.

## What is the new behavior?
<!-- Please describe the behavior or changes that are being added by
this PR. -->

The `Bump Package Lock` step is split into `Resolve Package Locks`,
which retries `lerna exec "npm install --package-lock-only
--prefer-online"` every 15s against a 900s wall clock deadline, and
`Commit Package Locks`, which does the commit and the push. We retry the
install rather than probing with `npm view` first, because the two read
separately cached documents and a passing probe wouldn't mean the
install resolves. The `--prefer-online` flag is required because a
failed install caches the version-less packument locally for 300s, so
plain retries never reach the registry. The bound is wall clock rather
than an attempt count since one attempt costs about 45s and a fixed
count would overrun `timeout-minutes`.

The `purge-cdn-cache` job now runs after `update-package-lock` and gates
on a new `resolved` output rather than the job's result, so a failed
lockfile push still purges but an unresolved version doesn't. The comma
is fixed and the step checks the HTTP status, failing on a 4xx because a
bad payload is otherwise silent, and warning on anything else so a
jsDelivr outage doesn't fail a release.

## Does this introduce a breaking change?

- [ ] Yes
- [X] No

## Other information

<!-- Any other information that is important to this PR such as
screenshots of how the component looks before and after the change. -->

The `release.yml` workflow only runs on a real production release, so I
couldn't test this end to end. I ran each step's shell against stubs for
the failure paths, but the first real signal will be the next release.
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@stencil/core](https://stenciljs.com/)
([source](https://redirect.github.com/stenciljs/core)) | [`4.45.0` →
`4.45.1`](https://renovatebot.com/diffs/npm/@stencil%2fcore/4.45.0/4.45.1)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@stencil%2fcore/4.45.1?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@stencil%2fcore/4.45.0/4.45.1?slim=true)
|

---

### Release Notes

<details>
<summary>stenciljs/core (@&#8203;stencil/core)</summary>

###
[`v4.45.1`](https://redirect.github.com/stenciljs/core/blob/HEAD/CHANGELOG.md#-4451-2026-09-23)

[Compare
Source](https://redirect.github.com/stenciljs/core/compare/v4.45.0...v4.45.1)

##### Bug Fixes

- **compiler:** correct CSS minifier selector-list splitting
([#&#8203;6895](https://redirect.github.com/stenciljs/core/issues/6895))
([332a8fa](https://redirect.github.com/stenciljs/core/commit/332a8fad6358db92b21c8b69a669fd5e4b70d0a4))
- **docs:** derive CEM readonly from getter/setter instead of mutable
([#&#8203;6900](https://redirect.github.com/stenciljs/core/issues/6900))
([1c81131](https://redirect.github.com/stenciljs/core/commit/1c81131f659dd0beaf9bdadd59d5f2a5f895dd38))
- **runtime:** pre-hydrate getter / setter attribute
([#&#8203;6890](https://redirect.github.com/stenciljs/core/issues/6890))
([171d0ce](https://redirect.github.com/stenciljs/core/commit/171d0ce3f0b854cc848a324972c4371b6309743c))
- **ssr:** clear modeResolutionChain on `setMode`. Fixes memory leak
([#&#8203;6903](https://redirect.github.com/stenciljs/core/issues/6903))
([ca9273d](https://redirect.github.com/stenciljs/core/commit/ca9273dfddd60b398725de65559f6a2f355ffe72))

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - "every weekday before 11am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ionic-team/ionic-framework).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Issue number: N/A (docs-only link fix)

---------

## What is the current behavior?

Two links in the Vue contributor docs point at sections that don't
exist:

- `docs/vue/testing.md` step 1 links "Build" to `../README.md#building`.
`docs/README.md` has no Building section.
- `packages/vue/README.md` links "test-app directory" to
`test/README.md#syncing-local-changes`. `packages/vue/test/README.md` is
now a two-line pointer with no such section; the syncing steps live in
`docs/vue/testing.md`.

## What is the new behavior?

- "Build" points at the Building section of `packages/vue/README.md`,
which walks through building `core`, `packages/vue` and
`packages/vue-router`, the three projects step 1 names.
- The sync sentence links to `docs/vue/testing.md#syncing-local-changes`
with an absolute GitHub URL, following the Contributing Guide link in
the same README, so it also works on npmjs.com where this README is
published.

## Does this introduce a breaking change?

- [ ] Yes
- [x] No

## Other information

Docs only, no code changes. Found and prepared with AI assistance
(Claude Code); I checked both target headings exist on `main`, and ran a
GitHub Copilot review over the diff.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ShaneK
ShaneK requested a review from a team as a code owner September 25, 2026 16:34
@ShaneK
ShaneK requested a review from thetaPC September 25, 2026 16:34
@vercel

vercel Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
ionic-framework Ready Ready Preview Sep 25, 2026 5:05pm UTC

Request Review

This branch was successfully deployed

1 active deployment
Preview — 8eec8b73 Deployed Sep 25, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: angular @ionic/angular package package: core @ionic/core package package: react @ionic/react package package: vue @ionic/vue package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants