46 Commits
Author SHA1 Message Date
James Elliott 847afd67db test(suites): oidc conformance (#13097)
This adds the official OpenID Connect 1.0 Conformance Suites used by the
OpenID Foundation to assert conformance for certification to our test
suites. This allows us to offer the quality guarantee that every single
commit of Authelia conforms to the OpenID Connect 1.0 and related
specifications.

The tests allow the following results to indicate success automatically:
`PASSED`, `REVIEW` (result that manual review must occur), `SKIPPED`
(result that indicates the conformance test is not needed due to
reasonable criteria). In addition only the `FINISHED` status is
accepted.

If the result is `WARNING` which is just an informative result which
does not indicate lack of conformance it can be manually allowed on a
per module basis with an explanation. This allows both detecting new
`WARNING` results and necessitates documenting them for future
improvements.

All of the result and status checks align entirely with the standard
conformance certification process, ensuring that each commit would be
certifiable. The storage for the suites is able to be configured for
persistence, and every plan created carries the commit sha or tag;
allowing for historical evidence of conformance.
2026-09-12 11:56:33 +00:00
James Elliott b3af55d156 docs: add license headers to remaining files (#13064) 2026-09-09 06:56:57 +00:00
renovate[bot]andJames Elliott 88e7a91e25 build(deps): update vitest monorepo to v5 (#12978)
> ℹ️ **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/coverage-istanbul](https://vitest.dev/guide/coverage)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul))
| [`4.1.11` →
`5.0.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/4.1.11/5.0.0)
|
![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/5.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/4.1.11/5.0.0?slim=true)
|
| [@vitest/ui](https://vitest.dev/guide/ui)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui))
| [`4.1.11` →
`5.0.0`](https://renovatebot.com/diffs/npm/@vitest%2fui/4.1.11/5.0.0) |
![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/5.0.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/4.1.11/5.0.0?slim=true)
|
| [vitest](https://vitest.dev)
([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest))
| [`4.1.11` →
`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 (@&#8203;vitest/coverage-istanbul)</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/vite

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


</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

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

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates 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/authelia/authelia).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42MS4zIiwidXBkYXRlZEluVmVyIjoiNDQuNjEuMyIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJqYXZhc2NyaXB0Il19-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: James Elliott <james-d-elliott@users.noreply.github.com>
2026-09-07 00:20:27 +00:00
Amir Zarrinkafsh 4455238630 ci(lefthook): exclude nested worktrees from tree wide scanners (#12813)
`typos`, `yamllint` and `trufflehog` are run against the whole tree
rather than the staged files, and `ignore-hidden = false` means `typos`
descends into dot directories. A worktree created under
`.claude/worktrees/` is a checkout of this repository nested inside it,
and every exclude these three configure is a path from the root, so none
of them match the same file one level down. The nested checkout is
therefore scanned as though it had no excludes at all: 22 findings from
`typos`, 4275 from `yamllint`, and a private key under
`internal/configuration/test_resources/` tripping `trufflehog`, none of
which are about the change being committed.

`typos` runs with `-w`, so this is not only noise. It rewrote seven
third-party files in a nested checkout, `LDAP_ORGANISATION` to
`LDAP_ORGANIZATION` among them, which would have broken the `LDAP` suite
in a tree nobody had edited.

Ignoring `.claude/worktrees/` keeps those checkouts out of `git status`,
and covers `typos` on its own because it honours the ignore file.
`yamllint` and `trufflehog` do not, so both keep an explicit exclude,
and `typos` keeps one as well so that all three say the same thing
rather than one of them depending on a default. Only the worktrees are
ignored, since anything else a project keeps under `.claude/` is worth
both committing and linting.

The Go linters need nothing: a nested checkout carries its own `go.mod`,
so `./...` never reaches it.
2026-08-21 08:57:35 +00:00
Amir Zarrinkafsh bcaaf6882d test(suites): improve reliability and failure diagnostics (#12724)
Suite failures were absorbed by a blanket automatic retry, which meant
flakiness had no measurement and no record of what failed. Pulling 300
builds from the Buildkite API showed the scale of it: 3,666 suite jobs
carried 3,237 automatic retries, only 52% passed on the first attempt,
and the retry rate scaled with host contention from 10.5 per build when
nothing else was running to 67 when a dozen builds overlapped.

Emit `go test -json` and upload it so the flake rate can be measured,
bound the retries, and capture a screenshot, the page markup, the
resource timing and every container's logs whenever a test fails,
echoing the container logs through the test so they reach the failure
body rather than a separate process the log cannot be attributed from.
Fix the races this surfaced: an element helper that never waited, a
one-time password secret read before it was populated, a notification
asserted after the redirect that destroys it, and a navigation with no
load gate.

Address the contention the measurements pointed at. The containers
declared no limits, so every containerised Go runtime sized itself for
the whole host, and the six second default read timeout turned a
scheduling stall into a 408 and a blank login page. Gate the environment
on healthchecks under CI and declare the dependencies the backend needs,
since a failed startup check is fatal and a backend started before its
directory or database is ready crash loops until that dependency
appears.

Scope the remaining log based waits to entries produced after the action
being waited on, because `docker compose logs` is cumulative and a wait
could otherwise be satisfied by an entry from a previous test. Doing so
exposed a high availability test that had been passing for the wrong
reason, which now resolves the redis role from the sentinel rather than
assuming the order tests happen to run in.

The last three builds completed with no retries at all across all 28
suite jobs.

Closes #12720

---------

Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
2026-08-13 09:45:24 +00:00
Amir Zarrinkafsh 64515db568 test(suites): add pam_authelia integration suite (#11771)
Add a new end-to-end suite that exercises the external pam_authelia
module (github.com/authelia/pam) against a real Authelia stack. The
suite container clones pam_authelia inside its Dockerfile and builds
both the Go binary and the PAM C shim, then runs sshd with
pam_authelia.so wired into pre-seeded /etc/pam.d entries so tests switch
modes per-case by `cp`-ing a config over /etc/pam.d/sshd.

Tests cover the four flows the module supports: 1FA only, 1FA+2FA with
TOTP, 2FA only (password sourced from pam_unix via PAM_AUTHTOK), and the
RFC 8628 OAuth2 Device Authorization grant backed by a pre-provisioned
confidential OIDC client. SSH logins use golang.org/x/crypto/ssh
keyboard-interactive so no external test tooling is required, and each
test asserts both the ssh exit code and the shim's debug log output.

Closes #497

---------

Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
2026-05-11 11:08:43 +00:00
Amir Zarrinkafsh 104cd26e5a test(suites): add external browser suites for docs and templates (#11748)
Replaces the `pkgvalidate.sh` build-only check with a new `suites
external` namespace that spins up a project-local dev server (Hugo for
docs, react-email for templates) and drives a headless rod browser
against it to assert the rendered output is correct.

Before, CI only confirmed that `pnpm -C docs build` and `pnpm -C
internal/templates/src render` exited cleanly — a regression in a
shortcode, a broken image path, a missing search initialiser, a Tailwind
class, or a template PreviewProps drift would pass silently.

Suites are gated behind a `//go:build externalsuites` tag and registered
in their own `ExternalGlobalRegistry`, so `go test ./internal/suites`
and `authelia-scripts suites list` remain unaffected. A new
`authelia-scripts suites external [list|test]` sub-namespace runs them
via a shared `DevServer` lifecycle helper that spawns `pnpm dev` in its
own process group, polls for HTTP readiness, and tears the whole tree
down on exit.

In Buildkite, `.buildkite/steps/pkgvalidate.sh` is deleted, and the two
old package-validation steps are replaced with a single `External Tests`
step that runs `e2epackages.sh | buildkite-agent pipeline upload`,
mirroring the `e2etests.sh` dynamic pattern so new external suites
register without pipeline edits.

---------

Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
2026-04-12 01:41:11 +00:00
James ElliottandAmir Zarrinkafsh a45b5f1478 refactor: adjust gitignore for web build (#11646)
This ignores files and directories that are intended to be built and not
stored in the repository.

Co-authored-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
2026-04-08 01:33:32 +00:00
Amir Zarrinkafsh d0bb9e1155 test(web): add missing tests for untested components (#11398)
This change adds tests for a number of missing components.

Closes #10279.

---------

Signed-off-by: Amir Zarrinkafsh <3339418+nightah@users.noreply.github.com>
Signed-off-by: Amir Zarrinkafsh <nightah@me.com>
2026-03-08 02:32:09 +00:00
Amir Zarrinkafsh eadff46eff ci(lefthook): replace husky with lefthook (#9963)
* ci(lefthook): replace husky with lefthook

This change removes husky in favour of [LeftHook](https://lefthook.dev/) along with the following:
* Remove unused pre-commit configuration
* Included trufflehog as a standard linter locally

* ci(lefthook): adjust gitleaks to use detect
* ci(lefthook): adjust lefthook for yamllint
* ci(lefthook): skip pnpm prepare for dockerfile.coverage
* ci(lefthook): add yamllint to lefthook
* ci(lefthook): posix compliant check tools job
* ci(lefthook): yamllint success feedback like golangci-lint
* ci(lefthook): remove gitleaks
* ci(lefthook): ignore lefthook-local
* ci(lefthook): add trufflehog
* ci(lefthook): eslint success feedback like golangci-lint

Signed-off-by: Amir Zarrinkafsh <nightah@me.com>
2025-07-25 18:11:01 +10:00
James Elliott 55e19f85ca test: fix cert testing (#5982)
Signed-off-by: James Elliott <james-d-elliott@users.noreply.github.com>
2023-09-10 16:09:48 +10:00
James Elliott a0758bb4ba refactor(suites): use pki for oidc (#4913) 2023-02-11 15:37:54 +11:00
Amir Zarrinkafsh 505a7e90b3 refactor(suites): replace kind with k3d (#4553)
This change replaces Kind with a might lighter K8s variation K3D.
Many of our manifests have also been consolidated.
Other key changes have been highlighted below:
* Utilise K3D Traefik Ingress
* Automatically provision all manifests, removing the abundance of shell scripts
* Expose Traefik and K8s dashboards through the Ingress
2022-12-13 10:15:32 +11:00
Amir Zarrinkafsh 8bab8d47ef [MISC] Add CLI suite (#1597)
This change adds a new integration testing suite "CLI".

The intent of this suite is to test, validate and capture coverage for Authelia's commands via the CLI.
2021-01-16 21:25:02 +11:00
Amir Zarrinkafsh d123fe4785 [CI] Add Codecov support (#1065)
* [CI] Add Codecov support

* [CI] Capture backend coverage from integration tests

* [CI] Remove unnecessary artifacts for coverage build

* [CI] Only run coverage elements where necessary

* [CI] Simplify post-command hook

* Fix yarn dependencies and collect coverage

* [CI] Include cmd/authelia/ path in coverage

* [CI] Exclude internal/suites/ in coverage

Closes #1061.
2020-06-05 10:43:19 +10:00
Clément MichaudandAmir Zarrinkafsh eec6424bc9 [DEV] Debug authelia when running a suite. (#1060)
* [DEV] Debug authelia when running a suite.

This runs dlv debugger within authelia backend container so that an IDE can remote
debug the application using port 2345.

* Apply suggestions from code review

Co-authored-by: Amir Zarrinkafsh <nightah@me.com>
2020-06-01 16:50:55 +10:00
Amir Zarrinkafsh f8bd506326 [FEATURE] Embed static assets in Go binary (#916)
* [FEATURE] Embed static assets in Go binary

* Refactor/consolidate code and specify public_html via configuration

* Update docs and config template for assets

* Update AUR package pre-requisites and systemd unit

* Include static assets as Buildkite and GitHub artifacts

* Remove references to PUBLIC_DIR

* Only serve assets via embedded filesystem and remove configuration references

* Update authelia-scripts helper to build the embedded filesystem

* Mock the embedded filesystem for unit tests
Add to gitignore to ensure this isn't overwritten.

* Move go:generate to satisfy linter
2020-04-29 00:07:20 +10:00
Amir Zarrinkafsh f1a89de2e7 [MISC] Restructure repo folder layout (#628) 2020-02-09 18:04:27 +01:00
Amir Zarrinkafsh fabb76754e Rename org from clems4ever to authelia
Also fix references from config.yml to configuration.yml
2019-12-24 13:14:52 +11:00
Clement Michaud c78a732c6a Rewrite and fix remaining suites in Go. 2019-12-05 11:05:24 +01:00
Clement Michaud a991379a74 Declare suites as Go structs and bootstrap e2e test framework in Go.
Some tests are not fully rewritten in Go, a typescript wrapper is called
instead until we remove the remaining TS tests and dependencies.

Also, dockerize every components (mainly Authelia backend, frontend and kind)
so that the project does not interfere with user host anymore (open ports for instance).
The only remaining intrusive change is the one done during bootstrap to add entries in /etc/hosts.
It will soon be avoided using authelia.com domain that I own.
2019-11-15 20:23:06 +01:00
Amir Zarrinkafsh 6380bd32d7 Enable Multiarch docker builds 2019-11-07 07:51:14 +01:00
Clement Michaud 391bd6c576 Move authelia entrypoint to cmd/authelia directory. 2019-11-02 11:09:18 +01:00
Clement Michaud 828f565290 Bootstrap Go implementation of Authelia.
This is going to be the v4.

Expected improvements:
- More reliable due to static typing.
- Bump of performance.
- Improvement of logging.
- Authelia can be shipped as a single binary.
- Will likely work on ARM architecture.
2019-10-28 23:28:59 +01:00
Max Planck cb4eb710fb Added ldap password environment variable. 2019-06-07 17:39:04 +02:00
Clement Michaud 76fa325f08 [BREAKING] Create a suite for kubernetes tests.
Authelia client uses hash router instead of browser router in order to work
with Kubernetes nginx-ingress-controller. This is also better for users having
old browsers.

This commit is breaking because it requires to change the configuration of the
proxy to include the # in the URL of the login portal.
2019-03-16 00:13:27 +01:00
Clement Michaud c579355c5b Migrate more Cucumber tests into Mocha. 2019-03-03 11:39:40 +01:00
Clément Michaud 9dab40c2ce Add support for users database on disk. (#262)
In order to simplify the deployment of Authelia for
testing, LDAP is now optional made optional thanks
to users database stored in a file. One can update
the file manually even while Authelia is running.

With this feature the minimal configuration requires
only two components: Authelia and nginx.

The users database is obviously made for development
environments only as it prevents Authelia to be scaled
to more than one instance.

Note: Configuration has been updated. Key `ldap` has
been nested in `authentication_backend`.
2018-08-26 10:30:43 +02:00
Clement Michaud 87056c14e2 Fix npm package versions with package-lock.json 2017-10-31 07:37:15 +01:00
Clement Michaud dacdce6c50 Implement session inactivity timeout
This timeout will prevent an attacker from using a session that has been
inactive for too long.
This inactivity timeout combined with the timeout before expiration makes a
good combination of security mechanisms to prevent session theft.

If no activity timeout is provided, then the feature is disabled and only
session expiration remains as a protection.
2017-10-31 07:27:23 +01:00
Clement Michaud e8a1e7c52c Remove configuration schema from source since it is generated 2017-10-15 22:17:36 +02:00
Clement Michaud ae720c5230 Fix missing images in notification messages 2017-10-07 21:58:41 +02:00
Clement Michaud d8ff186303 Split client and server
Client and server now have their own tsconfig so that the transpilation is only
done on the part that is being modified.

It also allows faster transpilation since tests are now excluded from tsconfig.
They are compiled by ts-node during unit tests execution.
2017-10-07 00:49:42 +02:00
Clement Michaud 4cd78f3f83 Add SMTP notifier as an available option in configuration
One can now plug its own SMTP server to send notifications
for identity validation and password reset requests.

Filesystem has been removed from the template configuration file
since even tests now use mail catcher (the fake webmail) to
retrieve the email and the confirmation link.
2017-09-24 23:20:45 +02:00
Clement Michaud 64c06fd6b8 Parameterize authentication regulation via configuration file. Both for flexibility and for testing purposes. 2017-09-03 12:48:35 +02:00
Clement Michaud 8f152d2328 Fix example environment 2017-07-14 19:05:42 +02:00
Clement Michaud e56c2492ed Fix integration test and package Travis scripts 2017-06-29 13:09:08 +02:00
Clement Michaud a84efdb8be Test npm deployment in CI 2017-06-16 21:11:54 +02:00
Clement Michaud ddf1e48535 Refactor client to make it responsive and testable 2017-06-16 18:16:38 +02:00
Clement Michaud 4356cfe7c1 First step to typescript transformation 2017-05-20 16:00:47 +02:00
Clement Michaud 32ff6cb387 Remove qrcode dependency as an npm package and replace it with a client side cross-browser library that generates qrcodes 2017-05-14 13:37:05 +02:00
Clement Michaud 8d662c1591 Install libgif-dev in travisci environment 2017-01-28 22:54:27 +01:00
Clement Michaud d3db94105e Registration process sends an email to allow user to register its U2F device 2017-01-22 17:54:45 +01:00
Clement Michaud ccbcb758f0 Reconnect to LDAP when connection is closed (or not open at the beginning) 2016-12-18 01:49:09 +01:00
Clement Michaud e13315eb92 Move files from app to src and tests in root directory + adding more tests 2016-12-17 02:06:40 +01:00
Clement Michaud d7d743bdfa First commit with tests 2016-12-10 01:47:58 +01:00