Skip to content

chore(deps-dev): bump the linting group across 1 directory with 3 updates - #582

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/linting-b4b50ab682
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/linting-b4b50ab682

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 21, 2026

Copy link
Copy Markdown
Contributor

Bumps the linting group with 3 updates in the / directory: @typescript-eslint/eslint-plugin, @typescript-eslint/parser and prettier.

Updates @typescript-eslint/eslint-plugin from 8.67.0 to 8.70.0

Release notes

Sourced from @​typescript-eslint/eslint-plugin's releases.

v8.70.0

8.70.0 (2026-09-07)

🚀 Features

  • eslint-plugin: [no-generated-empty-object-type] add rule (#12730)
  • website: generate per-page social preview cards (#12734)

🩹 Fixes

  • use stable release of pnpm 12 (#12808)
  • update pnpm to 12.3.4 and dedupe Docusaurus packages (#12829)
  • eslint-plugin: [member-ordering] don't report fields that read fields declared before them (#12729)
  • eslint-plugin: [no-unnecessary-condition] no false positive on RHS of a nested logical expression (#12728)
  • eslint-plugin: [no-deprecated] report deprecated imported values used in object shorthand properties (#12780)
  • project-service: avoid discarded tsserver logs (#12748)
  • typescript-estree: clarify the parserOptions.project error message (#12817)

❤️ Thank You

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

v8.69.0

8.69.0 (2026-08-31)

🚀 Features

  • eslint-plugin: [no-misused-promises] add flagUnions option for checkConditionals (#12603)

🩹 Fixes

  • eslint-plugin: [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (#12731)
  • eslint-plugin: [unified-signatures] compare type parameters by constraint instead of name (#12741)
  • eslint-plugin: [no-meaningless-void-operator] report void on non-call expressions (#12727)
  • website: respect allowJs playground config (#12744)

❤️ Thank You

... (truncated)

Changelog

Sourced from @​typescript-eslint/eslint-plugin's changelog.

8.70.0 (2026-09-07)

🚀 Features

  • eslint-plugin: [no-generated-empty-object-type] add rule (#12730)

🩹 Fixes

  • eslint-plugin: [no-deprecated] report deprecated imported values used in object shorthand properties (#12780)
  • eslint-plugin: [no-unnecessary-condition] no false positive on RHS of a nested logical expression (#12728)
  • eslint-plugin: [member-ordering] don't report fields that read fields declared before them (#12729)

❤️ Thank You

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

8.69.0 (2026-08-31)

🚀 Features

  • eslint-plugin: [no-misused-promises] add flagUnions option for checkConditionals (#12603)

🩹 Fixes

  • eslint-plugin: [no-meaningless-void-operator] report void on non-call expressions (#12727)
  • eslint-plugin: [unified-signatures] compare type parameters by constraint instead of name (#12741)
  • eslint-plugin: [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (#12731)

❤️ Thank You

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

8.68.0 (2026-08-24)

🚀 Features

  • eslint-plugin: [strict-void-return] add fix suggestions (#12086)

... (truncated)

Commits
  • 7ee7608 chore(release): publish 8.70.0
  • f66bdca test(eslint-plugin): [member-ordering] use RuleTester directly in `optional...
  • 4586535 fix(eslint-plugin): [no-deprecated] report deprecated imported values used in...
  • f8e1e4e fix(eslint-plugin): [no-unnecessary-condition] no false positive on RHS of a ...
  • 889cece fix(eslint-plugin): [member-ordering] don't report fields that read fields de...
  • 1a5a8b1 feat(eslint-plugin): [no-generated-empty-object-type] add rule (#12730)
  • 9a6e546 chore(release): publish 8.69.0
  • 513638e fix(eslint-plugin): [no-meaningless-void-operator] report void on non-call ex...
  • 1dba4c5 chore(eslint-plugin): fix eslint-plugin/require-test-error-positions report...
  • a2fccae fix(eslint-plugin): [unified-signatures] compare type parameters by constrain...
  • Additional commits viewable in compare view

Updates @typescript-eslint/parser from 8.67.0 to 8.70.0

Release notes

Sourced from @​typescript-eslint/parser's releases.

v8.70.0

8.70.0 (2026-09-07)

🚀 Features

  • eslint-plugin: [no-generated-empty-object-type] add rule (#12730)
  • website: generate per-page social preview cards (#12734)

🩹 Fixes

  • use stable release of pnpm 12 (#12808)
  • update pnpm to 12.3.4 and dedupe Docusaurus packages (#12829)
  • eslint-plugin: [member-ordering] don't report fields that read fields declared before them (#12729)
  • eslint-plugin: [no-unnecessary-condition] no false positive on RHS of a nested logical expression (#12728)
  • eslint-plugin: [no-deprecated] report deprecated imported values used in object shorthand properties (#12780)
  • project-service: avoid discarded tsserver logs (#12748)
  • typescript-estree: clarify the parserOptions.project error message (#12817)

❤️ Thank You

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

v8.69.0

8.69.0 (2026-08-31)

🚀 Features

  • eslint-plugin: [no-misused-promises] add flagUnions option for checkConditionals (#12603)

🩹 Fixes

  • eslint-plugin: [no-mixed-enums] use scope analysis instead of type checking for merged namespaces (#12731)
  • eslint-plugin: [unified-signatures] compare type parameters by constraint instead of name (#12741)
  • eslint-plugin: [no-meaningless-void-operator] report void on non-call expressions (#12727)
  • website: respect allowJs playground config (#12744)

❤️ Thank You

... (truncated)

Changelog

Sourced from @​typescript-eslint/parser's changelog.

8.70.0 (2026-09-07)

This was a version bump only for parser to align it with other projects, there were no code changes.

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

8.69.0 (2026-08-31)

This was a version bump only for parser to align it with other projects, there were no code changes.

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

8.68.0 (2026-08-24)

This was a version bump only for parser to align it with other projects, there were no code changes.

See GitHub Releases for more information.

You can read about our versioning strategy and releases on our website.

Commits

Updates prettier from 3.9.6 to 3.9.8

Release notes

Sourced from prettier's releases.

3.9.8

  • Markdown: Don't let Liquid objects interrupt paragraphs (#20087 by @​seiyab)

🔗 Changelog

3.9.7

  • Support Angular 22.2
  • Fix regressions in v3.9

🔗 Changelog

Changelog

Sourced from prettier's changelog.

3.9.8

diff

Markdown: Don't let Liquid objects interrupt paragraphs (#20087 by @​seiyab)

<!-- Input -->
If `module` is not a [`WebAssembly.Module`](https://github.com/prettier/prettier/blob/main/en-US/docs/WebAssembly/Reference/JavaScript_interface/Module) object instance, a
{{jsxref("TypeError")}} is thrown.
<!-- Prettier 3.9.7 -->
If module is not a WebAssembly.Module object instance, a
{{jsxref("TypeError")}} is thrown.
<!-- Prettier 3.9.8 -->
If module is not a WebAssembly.Module object instance, a
{{jsxref("TypeError")}} is thrown.

3.9.7

diff

Markdown: Prevent indentation drift in list-item code blocks (#19647, #19990 by @​Austin1serb, @​giaBaoJS)

<!-- Input -->
- [x] short first line.
  second paragraph at six spaces that wraps
  onto another line here.

<!-- Prettier 3.9.6 -->

 
short first line.
second paragraph at six spaces that wraps
    onto another line here.



<!-- Prettier 3.9.7 -->

 
short first line.
second paragraph at six spaces that wraps
onto another line here.


JavaScript: Fix embedded template literal idempotency (#19725 by @​fisker)

... (truncated)

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

…ates

Bumps the linting group with 3 updates in the / directory: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin), [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) and [prettier](https://github.com/prettier/prettier).


Updates `@typescript-eslint/eslint-plugin` from 8.67.0 to 8.70.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.67.0 to 8.70.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.0/packages/parser)

Updates `prettier` from 3.9.6 to 3.9.8
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](prettier/prettier@3.9.6...3.9.8)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.70.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: linting
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.70.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: linting
- dependency-name: prettier
  dependency-version: 3.9.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: linting
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added automated Opened by a bot, not a human dependencies Pull requests that update a dependency file labels Sep 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

File Coverage Lines Branches
All files 94% 96% 92%

Minimum allowed coverage is 75%

Generated by 🐒 cobertura-action against d05d53d

@github-actions

Copy link
Copy Markdown
Contributor

Reassure — 🔴 1 regressions · 🟢 1 improvements · 0 added · 0 removed

🔴 Regressions (1)

Test Baseline Current Δ%
BulkImportValidation Performance initial render with many recipes (10) to validate 1.3 ms 1.4 ms 🔴 +7.5%

🟢 Improvements (1 tests across 1 components)

Component Tests Avg Δ% Worst Best
RecipeDatabase decode and cache mutation performance editTag propagates to every recipe using it 1 -7.2% -7.2% -7.2%
Full improvement list (1)
Test Baseline Current Δ%
RecipeDatabase decode and cache mutation performance editTag propagates to every recipe using it 0.2 ms 0.2 ms 🟢 -7.2%
Meaningless changes (129 tests across 18 components)
Test Baseline Current Δ%
BulkImportDiscovery Performance initial render during discovery with progress 23.7 ms 24.0 ms 🔴 +1.3%
BulkImportDiscovery Performance initial render in discovering phase 2.8 ms 2.8 ms 🔴 +1.9%
BulkImportDiscovery Performance initial render in parsing phase with progress 1.5 ms 1.6 ms 🔴 +3.8%
BulkImportDiscovery Performance initial render with all recipes selected 23.9 ms 23.9 ms 🔴 +0.1%
BulkImportDiscovery Performance initial render with discovery error 14.8 ms 15.1 ms 🔴 +2.2%
BulkImportDiscovery Performance initial render with large mixed list (70 fresh + 30 seen) 23.6 ms 24.2 ms 🔴 +2.4%
BulkImportDiscovery Performance initial render with large recipe list (50 fresh recipes) 23.5 ms 23.9 ms 🔴 +1.5%
BulkImportDiscovery Performance initial render with medium recipe list (30 fresh recipes) 23.6 ms 23.9 ms 🔴 +1.5%
BulkImportDiscovery Performance initial render with mixed fresh and seen recipes (30 fresh + 20 seen) 23.6 ms 24.1 ms 🔴 +2.3%
BulkImportDiscovery Performance initial render with only seen recipes (50 seen) 24.5 ms 25.0 ms 🔴 +1.9%
BulkImportDiscovery Performance initial render with small recipe list (10 fresh recipes) 23.6 ms 24.2 ms 🔴 +2.4%
BulkImportDiscovery Performance initial render with very large recipe list (100 fresh recipes) 23.6 ms 24.2 ms 🔴 +2.8%
BulkImportSettings Performance initial render with provider list 4.1 ms 4.2 ms 🔴 +2.9%
BulkImportValidation Performance initial render with large batch (15 recipes, many items) 1.3 ms 1.3 ms 🔴 +0.6%
BulkImportValidation Performance initial render with many unknown ingredients (25+) 1.3 ms 1.3 ms 🔴 +0.0%
BulkImportValidation Performance initial render with many unknown tags (15+) 1.3 ms 1.3 ms 🔴 +2.7%
BulkImportValidation Performance initial render with mixed known and unknown items 1.3 ms 1.3 ms 🔴 +1.0%
BulkImportValidation Performance initial render with multiple recipes (5) to validate 1.3 ms 1.3 ms 🔴 +1.2%
BulkImportValidation Performance initial render with recipes containing nutrition data 1.3 ms 1.3 ms 🟢 -1.2%
BulkImportValidation Performance initial render with recipes having similar ingredient names 1.3 ms 1.3 ms 🔴 +1.4%
BulkImportValidation Performance initial render with recipes having similar tag names 1.3 ms 1.4 ms 🔴 +3.1%
BulkImportValidation Performance initial render with single recipe to validate 1.4 ms 1.4 ms 🔴 +1.4%
Home Screen Performance - Large Dataset initial render with 1000 recipes 3.4 ms 3.4 ms 🟢 -2.1%
Home Screen Performance - Large Dataset re-render after adding recipe with 1000 recipes 3.3 ms 3.4 ms 🔴 +1.3%
Home Screen Performance - Large Dataset re-render after toggling season filter with 1000 recipes 3.4 ms 3.4 ms 🔴 +1.8%
Home Screen Performance initial render with 1200 recipes 3.6 ms 3.6 ms 🔴 +0.5%
Home Screen Performance re-render after adding multiple recipes rapidly 3.3 ms 3.4 ms 🔴 +2.7%
Home Screen Performance re-render after adding recipe via hook 3.4 ms 3.4 ms 🔴 +1.6%
Home Screen Performance re-render after deleting recipe via hook 3.3 ms 3.4 ms 🔴 +3.0%
Home Screen Performance re-render after pull-to-refresh 77.4 ms 72.5 ms 🟢 -6.3%
Home Screen Performance re-render after toggling season filter off 3.4 ms 3.5 ms 🔴 +2.8%
Home Screen Performance re-render after toggling season filter on 3.3 ms 3.4 ms 🔴 +1.4%
Home Screen Performance re-render with seasonal recipes in carousel 3.3 ms 3.4 ms 🔴 +0.6%
IngredientsSettings Screen Performance - Large Dataset initial render with 1200 ingredients 25.0 ms 24.9 ms 🟢 -0.3%
IngredientsSettings Screen Performance - Large Dataset re-render after adding ingredient with 1200 ingredients 25.0 ms 25.1 ms 🔴 +0.6%
IngredientsSettings Screen Performance - Large Dataset re-render after deleting ingredient with 1200 ingredients 24.9 ms 25.0 ms 🔴 +0.8%
IngredientsSettings Screen Performance initial render 41.6 ms 42.2 ms 🔴 +1.5%
IngredientsSettings Screen Performance re-render after adding ingredient 41.5 ms 41.9 ms 🔴 +1.1%
IngredientsSettings Screen Performance re-render after adding multiple ingredients rapidly 41.4 ms 42.0 ms 🔴 +1.5%
IngredientsSettings Screen Performance re-render after deleting ingredient 41.8 ms 41.9 ms 🔴 +0.1%
IngredientsSettings Screen Performance re-render after editing ingredient 41.5 ms 42.0 ms 🔴 +1.1%
Menu Screen Performance initial render with empty menu 1.0 ms 1.0 ms 🔴 +4.3%
Menu Screen Performance initial render with populated menu 7.0 ms 7.1 ms 🔴 +0.8%
Menu Screen Performance re-render after adding recipe to menu 3.3 ms 3.4 ms 🔴 +4.0%
Menu Screen Performance re-render after clearing menu 1.0 ms 1.0 ms 🔴 +0.9%
Menu Screen Performance re-render after removing item from menu 1.0 ms 1.0 ms 🟢 -0.3%
Menu Screen Performance re-render after toggling cooked status 3.3 ms 3.3 ms 🔴 +0.6%
Menu Screen Performance re-render with many menu items 19.3 ms 19.4 ms 🔴 +0.8%
Menu Screen Performance re-render with mixed cooked and uncooked items 8.4 ms 8.5 ms 🔴 +1.0%
Parameters Screen Performance initial render 8.3 ms 8.3 ms 🔴 +0.1%
Parameters Screen Performance re-render after dark mode toggle via UI 14.5 ms 14.6 ms 🔴 +0.7%
Parameters Screen Performance re-render after default persons change via hook 7.9 ms 8.0 ms 🔴 +1.4%
Parameters Screen Performance re-render after scaling all recipes via hook 8.1 ms 8.1 ms 🔴 +0.1%
Parameters Screen Performance re-render after season filter toggle via UI 14.2 ms 14.2 ms 🔴 +0.0%
Recipe Screen Performance initial render in add manually mode 16.7 ms 16.7 ms 🟢 -0.0%
Recipe Screen Performance initial render in addFromPic (OCR) mode 21.0 ms 21.2 ms 🔴 +1.1%
Recipe Screen Performance initial render in addFromScrape mode with large scraped data 124.2 ms 125.8 ms 🔴 +1.3%
Recipe Screen Performance initial render in edit mode 38.6 ms 38.7 ms 🔴 +0.4%
Recipe Screen Performance initial render in read-only mode 6.9 ms 7.0 ms 🔴 +1.4%
Recipe Screen Performance re-render after adding recipe to menu 6.5 ms 6.5 ms 🔴 +0.0%
Recipe Screen Performance re-render with full nutrition data 9.7 ms 9.9 ms 🔴 +1.6%
Recipe Screen Performance re-render with recipe containing all optional fields 15.4 ms 15.7 ms 🔴 +1.9%
Recipe Screen Performance re-render with recipe having many ingredients 9.5 ms 9.6 ms 🔴 +1.4%
Recipe Screen Performance re-render with recipe having many preparation steps 8.4 ms 8.6 ms 🔴 +1.8%
RecipeDatabase decode and cache mutation performance decode every recipe from the database 40.3 ms 39.3 ms 🟢 -2.5%
RecipeDatabase decode and cache mutation performance deleteIngredient removes it from every recipe using it 6.5 ms 6.6 ms 🔴 +1.2%
RecipeDatabase decode and cache mutation performance editIngredient propagates to every recipe using it 0.7 ms 0.7 ms 🟢 -0.6%
RecipeSelectionCard Performance Batch Rendering (List Simulation) 10 fresh cards initial render 18.4 ms 18.4 ms 🔴 +0.4%
RecipeSelectionCard Performance Batch Rendering (List Simulation) 10 seen cards initial render 19.3 ms 19.4 ms 🔴 +0.4%
RecipeSelectionCard Performance Batch Rendering (List Simulation) 100 cards with multiple selections 667.2 ms 662.8 ms 🟢 -0.7%
RecipeSelectionCard Performance Batch Rendering (List Simulation) 100 fresh cards initial render 179.7 ms 179.6 ms 🟢 -0.0%
RecipeSelectionCard Performance Batch Rendering (List Simulation) 50 cards with selection toggle 168.8 ms 168.2 ms 🟢 -0.3%
RecipeSelectionCard Performance Batch Rendering (List Simulation) 50 fresh cards initial render 89.6 ms 90.1 ms 🔴 +0.6%
RecipeSelectionCard Performance Initial Render selected fresh recipe 2.4 ms 2.4 ms 🟢 -0.4%
RecipeSelectionCard Performance Initial Render selected seen recipe (with badge) 2.5 ms 2.5 ms 🔴 +1.8%
RecipeSelectionCard Performance Initial Render unselected fresh recipe 2.4 ms 2.5 ms 🔴 +4.2%
RecipeSelectionCard Performance Initial Render unselected seen recipe (with badge) 2.5 ms 2.5 ms 🔴 +1.0%
RecipeSelectionCard Performance Re-render on Selection Toggle toggle selection on seen recipe 4.2 ms 4.2 ms 🔴 +0.6%
RecipeSelectionCard Performance Re-render on Selection Toggle toggle selection via card press 4.0 ms 4.0 ms 🔴 +0.7%
RecipeSelectionCard Performance Re-render on Selection Toggle toggle selection via checkbox press 4.0 ms 4.0 ms 🟢 -0.5%
Search Screen Performance - Large Dataset initial render with 1000 recipes 5.9 ms 5.9 ms 🔴 +0.0%
Search Screen Performance - Large Dataset re-render after adding recipe with 1000 recipes 9.1 ms 9.0 ms 🟢 -1.4%
Search Screen Performance - Large Dataset re-render after search text change with 1000 recipes 10.6 ms 10.6 ms 🔴 +0.1%
Search Screen Performance initial render with 1200 recipes 28.2 ms 28.7 ms 🔴 +1.7%
Search Screen Performance re-render after adding recipe via hook 27.5 ms 27.7 ms 🔴 +0.5%
Search Screen Performance re-render after clearing search 66.5 ms 67.1 ms 🔴 +1.0%
Search Screen Performance re-render after deleting recipe via hook 27.6 ms 28.0 ms 🔴 +1.5%
Search Screen Performance re-render after editing recipe via hook 27.6 ms 28.0 ms 🔴 +1.5%
Search Screen Performance re-render after opening filter mode via UI 88.6 ms 90.0 ms 🔴 +1.7%
Search Screen Performance re-render after rapid search text changes 89.9 ms 89.0 ms 🟢 -0.9%
Search Screen Performance re-render after removing filter via UI 314.3 ms 319.0 ms 🔴 +1.5%
Search Screen Performance re-render after search text change 33.7 ms 33.8 ms 🔴 +0.3%
Search Screen Performance re-render after selecting filter via UI 255.1 ms 257.4 ms 🔴 +0.9%
Search Screen Performance re-render with combined search and filter 62.4 ms 63.1 ms 🔴 +1.0%
Search Screen Performance re-render with long fuzzy search query 43.0 ms 43.5 ms 🔴 +1.2%
Search Screen Performance re-render with multiple filters from different categories 296.9 ms 300.2 ms 🔴 +1.1%
Shopping Screen Performance initial render with empty shopping list 2.4 ms 2.4 ms 🟢 -0.3%
Shopping Screen Performance initial render with populated shopping list 9.1 ms 9.2 ms 🔴 +1.5%
Shopping Screen Performance re-render after adding recipe to menu 8.9 ms 9.2 ms 🔴 +3.0%
Shopping Screen Performance re-render after clearing purchased states 8.9 ms 8.9 ms 🔴 +0.9%
Shopping Screen Performance re-render after deleting recipe that was in shopping list 2.3 ms 2.3 ms 🔴 +0.2%
Shopping Screen Performance re-render after opening recipe usage dialog via long press 16.4 ms 16.6 ms 🔴 +1.1%
Shopping Screen Performance re-render after toggling purchase status 9.6 ms 9.8 ms 🔴 +1.9%
Shopping Screen Performance re-render with many items from multiple recipes 11.5 ms 11.7 ms 🔴 +1.3%
TagsSettings Screen Performance initial render 20.5 ms 20.6 ms 🔴 +0.5%
TagsSettings Screen Performance re-render after adding multiple tags rapidly 20.5 ms 20.7 ms 🔴 +1.1%
TagsSettings Screen Performance re-render after adding tag 20.4 ms 20.6 ms 🔴 +0.7%
TagsSettings Screen Performance re-render after deleting tag 20.4 ms 20.6 ms 🔴 +1.2%
TagsSettings Screen Performance re-render after editing tag 20.5 ms 20.6 ms 🔴 +0.6%
ValidationQueue Performance initial render with ingredients similar to existing 2.9 ms 3.0 ms 🔴 +1.0%
ValidationQueue Performance initial render with large ingredient queue from scraping 2.9 ms 2.9 ms 🟢 -0.5%
ValidationQueue Performance initial render with multiple ingredients to validate 3.0 ms 2.9 ms 🟢 -0.4%
ValidationQueue Performance initial render with multiple tags to validate 2.3 ms 2.3 ms 🟢 -2.4%
ValidationQueue Performance initial render with single ingredient to validate 3.0 ms 2.9 ms 🟢 -0.8%
ValidationQueue Performance initial render with single tag to validate 2.4 ms 2.4 ms 🟢 -0.2%
ValidationQueue Performance initial render with tags similar to existing 2.3 ms 2.3 ms 🟢 -0.6%
ValidationReviewList Performance initial render with ingredients only (20 ingredients) 78.0 ms 78.9 ms 🔴 +1.1%
ValidationReviewList Performance initial render with items having similar matches (10 tags, 10 ingredients) 40.9 ms 41.2 ms 🔴 +0.9%
ValidationReviewList Performance initial render with large list (30 tags, 20 ingredients) 93.5 ms 94.4 ms 🔴 +1.0%
ValidationReviewList Performance initial render with medium list (15 tags, 10 ingredients) 57.9 ms 58.6 ms 🔴 +1.3%
ValidationReviewList Performance initial render with mixed known and unknown items (10 similar + 10 unknown tags) 65.5 ms 65.5 ms 🔴 +0.1%
ValidationReviewList Performance initial render with small list (5 tags, 5 ingredients) 37.5 ms 38.1 ms 🔴 +1.6%
ValidationReviewList Performance initial render with tags only (20 tags) 32.6 ms 32.8 ms 🔴 +0.5%
ValidationReviewList Performance re-render after skip + undo on a large list (100 tags) 127.0 ms 127.1 ms 🔴 +0.1%
ValidationReviewList Performance re-render after skipping every pending tag on a large list (100 tags) 350.0 ms 356.3 ms 🔴 +1.8%
ValidationReviewList Performance re-render after skipping first tag on a large list (100 tags, 100 ingredients) 383.6 ms 384.7 ms 🔴 +0.3%
ValidationReviewList Performance re-render after use-suggested resolves a similar ingredient (50 similar ingredients) 71.6 ms 72.0 ms 🔴 +0.6%
ValidationReviewList Performance re-render after use-suggested resolves a similar tag (50 similar tags) 55.0 ms 55.6 ms 🔴 +1.1%
Warm search index performance - 1200 ingredients buildItemIndex is the cost the idle warm defers off the first keystroke 7.2 ms 7.3 ms 🔴 +1.0%

@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI Test Results Summary

🧩 Unit Tests

4389 passed

#### 📱 E2E Tests (Android + iOS)

110 passed, 2 failed

Test failures:
  1 - Recipe Read-Only From Search Flow: 1 - Recipe Read-Only From Search Flow

maestro.android.DeviceServerDiedException: Device server died during 'deviceInfo' on emulator-5554 (2632ms since last byte, connection age 5411ms): StatusRuntimeException: UNAVAILABLE
	at maestro.android.AndroidDeviceConnection.onGrpcDeath(AndroidDeviceConnection.kt:309)
	at maestro.android.AndroidDeviceConnection.mapTransport(AndroidDeviceConnection.kt:296)
	at maestro.android.AndroidDeviceConnection.execute(AndroidDeviceConnection.kt:121)
	at maestro.drivers.AndroidDriver.deviceInfo(AndroidDriver.kt:199)
	at maestro.Maestro.cachedDeviceInfo_delegate$lambda$0(Maestro.kt:56)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
	at maestro.Maestro.getCachedDeviceInfo(Maestro.kt:54)
	at maestro.orchestra.Orchestra._init_$lambda$12(Orchestra.kt:160)
	at maestro.orchestra.Orchestra.initJsEngine(Orchestra.kt:372)
	at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:201)
	at maestro.cli.runner.TestSuiteInteractor.runFlow(TestSuiteInteractor.kt:208)
	at maestro.cli.runner.TestSuiteInteractor.runTestSuite(TestSuiteInteractor.kt:78)
	at maestro.cli.command.TestCommand.runMultipleFlows(TestCommand.kt:623)
	at maestro.cli.command.TestCommand.access$runMultipleFlows(TestCommand.kt:81)
	at maestro.cli.command.TestCommand$runShardSuite$1$1.invokeSuspend(TestCommand.kt:503)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at maestro.cli.command.TestCommand.runShardSuite$lambda$10(TestCommand.kt:502)
	at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:135)
	at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:66)
	at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:477)
	at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:81)
	at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:438)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE
	at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:275)
	at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:256)
	at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:169)
	at maestro_android.MaestroDriverGrpc$MaestroDriverBlockingStub.deviceInfo(MaestroDriverGrpc.java:740)
	at maestro.drivers.AndroidDriver.deviceInfo$lambda$4(AndroidDriver.kt:199)
	at maestro.android.AndroidDeviceConnection.execute(AndroidDeviceConnection.kt:119)
	... 34 more
Caused by: java.io.IOException: Command failed (tcp:45409): closed
	at dadb.adbserver.AdbServer.send$dadb(AdbServer.kt:103)
	at dadb.adbserver.AdbServerDadb.open(AdbServer.kt:149)
	at maestro.android.AndroidDeviceConnection.buildChannel$lambda$2(AndroidDeviceConnection.kt:97)
	at maestro.android.AdbSocket.connect(AdbSocketFactory.kt:40)
	at maestro.android.AdbSocket.connect(AdbSocketFactory.kt:44)
	at maestro.android.AdbSocketFactory.createSocket(AdbSocketFactory.kt:19)
	at maestro.android.AdbSocketFactory.createSocket(AdbSocketFactory.kt:25)
	at io.grpc.okhttp.OkHttpClientTransport$3.run(OkHttpClientTransport.java:535)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
  2 - Recipe Read-Only From Home Flow: 2 - Recipe Read-Only From Home Flow
maestro.android.DeviceServerDiedException: Device server died during 'deviceInfo' on emulator-5554 (2716ms since last byte, connection age 5495ms): StatusRuntimeException: UNAVAILABLE
	at maestro.android.AndroidDeviceConnection.onGrpcDeath(AndroidDeviceConnection.kt:309)
	at maestro.android.AndroidDeviceConnection.mapTransport(AndroidDeviceConnection.kt:296)
	at maestro.android.AndroidDeviceConnection.execute(AndroidDeviceConnection.kt:121)
	at maestro.drivers.AndroidDriver.deviceInfo(AndroidDriver.kt:199)
	at maestro.Maestro.cachedDeviceInfo_delegate$lambda$0(Maestro.kt:56)
	at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
	at maestro.Maestro.getCachedDeviceInfo(Maestro.kt:54)
	at maestro.orchestra.Orchestra._init_$lambda$12(Orchestra.kt:160)
	at maestro.orchestra.Orchestra.initJsEngine(Orchestra.kt:372)
	at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:201)
	at maestro.cli.runner.TestSuiteInteractor.runFlow(TestSuiteInteractor.kt:208)
	at maestro.cli.runner.TestSuiteInteractor.runTestSuite(TestSuiteInteractor.kt:78)
	at maestro.cli.command.TestCommand.runMultipleFlows(TestCommand.kt:623)
	at maestro.cli.command.TestCommand.access$runMultipleFlows(TestCommand.kt:81)
	at maestro.cli.command.TestCommand$runShardSuite$1$1.invokeSuspend(TestCommand.kt:503)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at maestro.cli.command.TestCommand.runShardSuite$lambda$10(TestCommand.kt:502)
	at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:135)
	at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:66)
	at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:477)
	at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:81)
	at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:438)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
	at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:124)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
Caused by: io.grpc.StatusRuntimeException: UNAVAILABLE
	at io.grpc.stub.ClientCalls.toStatusRuntimeException(ClientCalls.java:275)
	at io.grpc.stub.ClientCalls.getUnchecked(ClientCalls.java:256)
	at io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:169)
	at maestro_android.MaestroDriverGrpc$MaestroDriverBlockingStub.deviceInfo(MaestroDriverGrpc.java:740)
	at maestro.drivers.AndroidDriver.deviceInfo$lambda$4(AndroidDriver.kt:199)
	at maestro.android.AndroidDeviceConnection.execute(AndroidDeviceConnection.kt:119)
	... 34 more
Caused by: java.io.IOException: Command failed (tcp:45409): closed
	at dadb.adbserver.AdbServer.send$dadb(AdbServer.kt:103)
	at dadb.adbserver.AdbServerDadb.open(AdbServer.kt:149)
	at maestro.android.AndroidDeviceConnection.buildChannel$lambda$2(AndroidDeviceConnection.kt:97)
	at maestro.android.AdbSocket.connect(AdbSocketFactory.kt:40)
	at maestro.android.AdbSocket.connect(AdbSocketFactory.kt:44)
	at maestro.android.AdbSocketFactory.createSocket(AdbSocketFactory.kt:19)
	at maestro.android.AdbSocketFactory.createSocket(AdbSocketFactory.kt:25)
	at io.grpc.okhttp.OkHttpClientTransport$3.run(OkHttpClientTransport.java:535)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:840)
This test report was produced by the test-summary action.  Made with ❤️ in Cambridge.
_📊 Coverage for changed files is posted in a separate comment. View merged logs in the Actions tab._

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated Opened by a bot, not a human dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants