Skip to content

Build(deps-dev): Bump eslint from 9.24.0 to 9.26.0#51

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/eslint-9.26.0
Closed

Build(deps-dev): Bump eslint from 9.24.0 to 9.26.0#51
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/eslint-9.26.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 5, 2025

Bumps eslint from 9.24.0 to 9.26.0.

Release notes

Sourced from eslint's releases.

v9.26.0

Features

  • e9754e7 feat: add reportGlobalThis to no-shadow-restricted-names (#19670) (sethamus)
  • 0fa2b7a feat: add suggestions for eqeqeq rule (#19640) (Nitin Kumar)
  • dcbdcc9 feat: Add MCP server (#19592) (Nicholas C. Zakas)
  • 2dfd83e feat: add ignoreDirectives option in no-unused-expressions (#19645) (sethamus)

Bug Fixes

  • 96e84de fix: check cache file existence before deletion (#19648) (sethamus)
  • d683aeb fix: don't crash on tests with circular references in RuleTester (#19664) (Milos Djermanovic)
  • 9736d5d fix: add namespace to Plugin.meta type (#19661) (Milos Djermanovic)
  • 17bae69 fix: update RuleTester.run() type (#19634) (Nitin Kumar)

Documentation

  • dd98d63 docs: Update README (GitHub Actions Bot)
  • c25e858 docs: Update README (GitHub Actions Bot)
  • b2397e9 docs: Update README (GitHub Actions Bot)
  • addd0a6 docs: fix formatting of unordered lists in Markdown (#19660) (Milos Djermanovic)
  • a21b38d docs: Update README (GitHub Actions Bot)
  • c0721a7 docs: fix double space in command (#19657) (CamWass)

Chores

  • 5b247c8 chore: upgrade to @eslint/js@9.26.0 (#19681) (Francesco Trotta)
  • d6fa4ac chore: package.json update for @​eslint/js release (Jenkins)
  • 0958690 chore: disambiguate internal types LanguageOptions and Rule (#19669) (Francesco Trotta)
  • f1c858e chore: fix internal type references to Plugin and Rule (#19665) (Francesco Trotta)
  • 40dd299 refactor: One-shot ESQuery selector analysis (#19652) (Nicholas C. Zakas)
  • 1cfd702 chore: update dependency @​eslint/json to ^0.12.0 (#19656) (renovate[bot])

v9.25.1

Bug Fixes

  • cdc8e8c fix: revert directive detection in no-unused-expressions (#19639) (sethamus)

Chores

  • 1f2b057 chore: upgrade @​eslint/js@​9.25.1 (#19642) (Milos Djermanovic)
  • 771317f chore: package.json update for @​eslint/js release (Jenkins)

v9.25.0

Features

  • dcd95aa feat: support TypeScript syntax in no-empty-function rule (#19551) (sethamus)
  • 77d6d5b feat: support TS syntax in no-unused-expressions (#19564) (Sweta Tanwar)
  • 90228e5 feat: support JSRuleDefinition type (#19604) (루밀LuMir)
  • 59ba6b7 feat: add allowObjects option to no-restricted-properties (#19607) (sethamus)
  • db650a0 feat: support TypeScript syntax in no-invalid-this rule (#19532) (Tanuj Kanti)
  • 9535cff feat: support TS syntax in no-loop-func (#19559) (Nitin Kumar)

Bug Fixes

  • 910bd13 fix: nodeTypeKey not being used in NodeEventGenerator (#19631) (StyleShit)

Documentation

... (truncated)

Changelog

Sourced from eslint's changelog.

v9.26.0 - May 2, 2025

  • 5b247c8 chore: upgrade to @eslint/js@9.26.0 (#19681) (Francesco Trotta)
  • d6fa4ac chore: package.json update for @​eslint/js release (Jenkins)
  • e9754e7 feat: add reportGlobalThis to no-shadow-restricted-names (#19670) (sethamus)
  • 0fa2b7a feat: add suggestions for eqeqeq rule (#19640) (Nitin Kumar)
  • dd98d63 docs: Update README (GitHub Actions Bot)
  • 96e84de fix: check cache file existence before deletion (#19648) (sethamus)
  • c25e858 docs: Update README (GitHub Actions Bot)
  • 0958690 chore: disambiguate internal types LanguageOptions and Rule (#19669) (Francesco Trotta)
  • dcbdcc9 feat: Add MCP server (#19592) (Nicholas C. Zakas)
  • b2397e9 docs: Update README (GitHub Actions Bot)
  • d683aeb fix: don't crash on tests with circular references in RuleTester (#19664) (Milos Djermanovic)
  • f1c858e chore: fix internal type references to Plugin and Rule (#19665) (Francesco Trotta)
  • 9736d5d fix: add namespace to Plugin.meta type (#19661) (Milos Djermanovic)
  • 40dd299 refactor: One-shot ESQuery selector analysis (#19652) (Nicholas C. Zakas)
  • addd0a6 docs: fix formatting of unordered lists in Markdown (#19660) (Milos Djermanovic)
  • a21b38d docs: Update README (GitHub Actions Bot)
  • c0721a7 docs: fix double space in command (#19657) (CamWass)
  • 1cfd702 chore: update dependency @​eslint/json to ^0.12.0 (#19656) (renovate[bot])
  • 2dfd83e feat: add ignoreDirectives option in no-unused-expressions (#19645) (sethamus)
  • 17bae69 fix: update RuleTester.run() type (#19634) (Nitin Kumar)

v9.25.1 - April 21, 2025

  • 1f2b057 chore: upgrade @​eslint/js@​9.25.1 (#19642) (Milos Djermanovic)
  • 771317f chore: package.json update for @​eslint/js release (Jenkins)
  • cdc8e8c fix: revert directive detection in no-unused-expressions (#19639) (sethamus)

v9.25.0 - April 18, 2025

  • 88dc196 chore: upgrade @​eslint/js@​9.25.0 (#19636) (Milos Djermanovic)
  • 345288d chore: package.json update for @​eslint/js release (Jenkins)
  • 910bd13 fix: nodeTypeKey not being used in NodeEventGenerator (#19631) (StyleShit)
  • ca7a735 docs: update no-undef-init when not to use section (#19624) (Tanuj Kanti)
  • affe6be chore: upgrade trunk (#19628) (sethamus)
  • 1b870c9 docs: use eslint-config-xo in the getting started guide (#19629) (Nitin Kumar)
  • 5d4af16 docs: add types for multiple rule options (#19616) (Tanuj Kanti)
  • e8f8d57 docs: Update README (GitHub Actions Bot)
  • a40348f docs: no-use-before-define tweaks (#19622) (Kirk Waiblinger)
  • 0ba3ae3 docs: Update README (GitHub Actions Bot)
  • 865dbfe docs: ensure "learn more" deprecation links point to useful resource (#19590) (Kirk Waiblinger)
  • dcd95aa feat: support TypeScript syntax in no-empty-function rule (#19551) (sethamus)
  • 77d6d5b feat: support TS syntax in no-unused-expressions (#19564) (Sweta Tanwar)
  • 90228e5 feat: support JSRuleDefinition type (#19604) (루밀LuMir)
  • f80b746 docs: add known limitations for no-self-compare (#19612) (Nitin Kumar)
  • 59ba6b7 feat: add allowObjects option to no-restricted-properties (#19607) (sethamus)
  • db650a0 feat: support TypeScript syntax in no-invalid-this rule (#19532) (Tanuj Kanti)
  • dd20cf2 test: fix no-loop-func test with duplicate variable reports (#19610) (Milos Djermanovic)
  • 9535cff feat: support TS syntax in no-loop-func (#19559) (Nitin Kumar)

... (truncated)

Commits

Dependabot compatibility score

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 merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [eslint](https://github.com/eslint/eslint) from 9.24.0 to 9.26.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](eslint/eslint@v9.24.0...v9.26.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot requested a review from joelteply May 5, 2025 22:40
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels May 5, 2025
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 5, 2025

The reviewers field in the dependabot.yml file will be removed soon. Please use the code owners file to specify reviewers for Dependabot PRs. For more information, see this blog post.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 5, 2025

This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size.

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 19, 2025

Superseded by #59.

@dependabot dependabot Bot closed this May 19, 2025
@dependabot dependabot Bot deleted the dependabot/npm_and_yarn/eslint-9.26.0 branch May 19, 2025 22:16
joelteply added a commit that referenced this pull request May 30, 2026
…ayers=0

Closes the runtime end of the Mac Intel chain. Prior commits shipped
the classifier (60d440029), the install-time tier policy (7b3b8e086),
and the hyper-efficiency pass (334f699c1) — but LlamaCppAdapter::load
still hardcoded n_gpu_layers=-1, so even with mac_intel_discrete set
in the env the runtime would route the load into the broken Metal-AMD
shader path.

This commit reads CONTINUUM_TIER and forces n_gpu_layers=0 when the
tier is mac_intel_discrete. install.sh's hardware probe sets the
env at install time; the runtime trusts that contract and avoids
the broken Metal path.

The 2026-05-30 evidence on MacBookPro15,1 / AMD Radeon Pro 560X:
  Metal-AMD path (n_gpu_layers=-1) → 0.8 tok/s + multilingual
    garbage + hundreds of nil tensor buffer errors per generation.
  CPU path (n_gpu_layers=0)        → 1.1 tok/s + COHERENT English.
  Net: CPU is FASTER and CORRECT than the broken Metal-AMD path
    on this hardware. With qwen3.5-0.8b on the same CPU we'd
    expect ~5-6 tok/s = usable interactive chat.

Follow-up: native Rust probe at adapter construction so the
runtime doesn't depend on the install-time env-var trust chain
(currently CONTINUUM_TIER is the cross-boundary signal between
install.sh and the Rust runtime). Tracked as task #51 in the
session task list; ties into resolving the parallel
governor::classify_silicon bug (task #52) where the same
"has_metal=true → Apple Silicon" misclassification still lives.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
joelteply added a commit that referenced this pull request May 30, 2026
* fix(registry): qwen3.5-4b-code-forged GGUF filename case (Q4_K_M)

The published HF GGUF sibling uses the canonical-uppercase suffix
Q4_K_M; the registry was carrying lowercase q4_k_m which 404s on
HuggingFace's case-sensitive resolve path. Caught during a model
download on 2026-05-30 — every host that pulled this entry was
silently failing the pre-pull and falling back to a missing-model
runtime error.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(cognition): MacIntelMetalDiscrete tier — Mac Intel + Metal classifier branch

Adds HwCapabilityTier::MacIntelMetalDiscrete for hosts whose Metal
device is a discrete AMD or integrated Intel UHD card on a Mac Intel
CPU — physically distinct from Apple Silicon (separate VRAM, Metal 2
only, no neural engine, llama.cpp Metal shaders unreliable on this
path).

Splits the metal branch of host_capability_probe::detect_host_capability
into metal_tier(cpu_brand, device_name, total_mem_mb, platform) which:
  - routes Apple-Silicon-brand CPUs to the existing UMA buckets with
    TargetSilicon::UnifiedMemory (unchanged),
  - routes Intel-brand CPUs to MacIntelMetalDiscrete with
    TargetSilicon::Gpu (separate VRAM, not unified),
  - loud-fails with ProbeError::UnknownGpuDevice on any other CPU
    brand so the operator adds a tier rather than getting silent
    M1Uma16Gb routing.

Background: 2026-05-30 inference experiment on MacBookPro15,1 (Intel
i7-8850H + AMD Radeon Pro 560X 4GB + 32GB RAM) showed the previous
classifier silently buckets this host as M1Uma16Gb purely because
total_mem_mb >= 14000 — the cpu_brand check only branched on M2 vs
the M3/M4/M5 family. That mis-tier led the resolver to pick the 4B
forged model which then ran on the Metal-AMD shader path and emitted
multilingual gibberish at 0.8 tok/s with hundreds of nil tensor
buffer errors per generation. The classifier patch is the precondition
for fixing the resolver: the resolver now has a tier name to refuse
4B routing on, and a downstream registry/tier-policy change can map
MacIntelMetalDiscrete to a smaller GGUF (or CPU-only inference, or
grid-share to a peer).

Test override knob (QWEN35_4B_GPU_LAYERS in the throughput test) lets
operators isolate Metal-AMD breakage from CPU-baseline behavior
without editing source — n_gpu_layers=0 forces llama.cpp's CPU path
for parity comparison.

Adds 4 unit tests pinning the new classifier behavior:
  - metal_tier_routes_apple_silicon_to_uma_branch
  - metal_tier_routes_mac_intel_amd_to_new_tier_not_silent_m1
  - metal_tier_routes_mac_intel_uhd_to_same_tier
  - metal_tier_loud_fails_on_unknown_cpu_brand

ts-rs regenerated HwCapabilityTier.ts with the new "mac_intel_metal_discrete"
variant. Adding the variant is purely additive — no exhaustive match
sites need updating.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(registry): mac_intel_discrete tier — runtime + install-time policy

Wires the Rust HwCapabilityTier::MacIntelMetalDiscrete classifier (shipped
in 60d440029) through to the model-selection path that actually picks a
default chat model.

src/shared/ModelRegistry.ts:
  - Widens Tier from 'mba'|'mid'|'full' to also include 'mac_intel_discrete'.
  - Adds tierFromHost(ramGB, hwTier?) which overrides RAM-based bucketing
    when hwTier === 'mac_intel_metal_discrete'. tierFromRamGB stays as a
    pure-RAM fallback (existing CandleAdapter + seed callers unchanged).

src/shared/models.json:
  - Adds tiers.mac_intel_discrete with default_chat=qwen3.5-0.8b-general.
  - Adds auto_download.by_tier.mac_intel_discrete=[qwen3.5-0.8b-general]
    so model-init pulls the right GGUF.

install.sh:
  - After the RAM-based tier block, probes machdep.cpu.brand_string via
    sysctl. Intel brand → CONTINUUM_TIER=mac_intel_discrete + smaller
    NATIVE_RESERVE_MIB (5GB instead of 12GB primary).
  - Adds the matching case branch in PERSONA_MODEL selection so docker
    model pull / model-init fetch the 0.8b forged GGUF.

The 0.8b forged GGUF at continuum-ai/qwen3.5-0.8b-general-forged is
already the destination for MBA tier — same registry entry, no new
HF artifact required. (Note: 2026-05-30 the actual HF GGUF siblings
for the 0.8b/2b forge repos were missing — that's task #49 in the
broader thread, not blocking this tier-policy commit.)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* perf(persona): single-pass service_cycle hot path

The per-persona service_cycle runs every 3-10s and is called once per
active persona. Three small wins, no semantic change, 9/9 existing
tests pass.

1. ChannelRegistry::service_cycle — collapsed get + get_mut to single
   get_mut in both the urgent and non-urgent loops. NLL handles the
   borrow reuse without the old double-lookup workaround. Saves one
   HashMap probe per checked domain per tick (8 lookups → 4 in the
   urgent loop, 6 → 3 in non-urgent).

2. ChannelRegistry::status — folded the per-channel Vec build and the
   total_size / has_urgent_work / has_work rollups into a single
   walk over DOMAIN_PRIORITY_ORDER. Previously: 1 unsized-collect Vec
   walk to build the channel list + 3 more iter().sum() / iter().any()
   passes over the result. Now: 1 walk with pre-sized
   Vec::with_capacity(DOMAIN_PRIORITY_ORDER.len()), no Vec growth, no
   extra passes. status() is called every tick (urgent and non-urgent
   branches alike), so the per-tick savings compound across the
   active persona fleet.

3. host_capability_probe::metal_tier — dropped cpu_brand.to_lowercase()
   alloc on the Intel-detection branch. Intel CPU brand strings
   reliably ship with capital "Intel" (e.g. "Intel(R) Core(TM) i7-8850H
   CPU @ 2.60GHz"); literal substring match avoids the String
   allocation on every boot probe. Boot path, not hot — done for code
   hygiene + worked example of the discipline.

The discipline this lands: per Joel 2026-05-30, Rust is the work; Node
is the shell; the LCD machine (Mac Intel today, phones eventually) is
the forcing function that prevents the codebase from quietly consuming
the M-series headroom. Same code runs on both; cycles you don't burn
on the slow path become perceived snappiness on the fast one.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* feat(inference): honor CONTINUUM_TIER=mac_intel_discrete with n_gpu_layers=0

Closes the runtime end of the Mac Intel chain. Prior commits shipped
the classifier (60d440029), the install-time tier policy (7b3b8e086),
and the hyper-efficiency pass (334f699c1) — but LlamaCppAdapter::load
still hardcoded n_gpu_layers=-1, so even with mac_intel_discrete set
in the env the runtime would route the load into the broken Metal-AMD
shader path.

This commit reads CONTINUUM_TIER and forces n_gpu_layers=0 when the
tier is mac_intel_discrete. install.sh's hardware probe sets the
env at install time; the runtime trusts that contract and avoids
the broken Metal path.

The 2026-05-30 evidence on MacBookPro15,1 / AMD Radeon Pro 560X:
  Metal-AMD path (n_gpu_layers=-1) → 0.8 tok/s + multilingual
    garbage + hundreds of nil tensor buffer errors per generation.
  CPU path (n_gpu_layers=0)        → 1.1 tok/s + COHERENT English.
  Net: CPU is FASTER and CORRECT than the broken Metal-AMD path
    on this hardware. With qwen3.5-0.8b on the same CPU we'd
    expect ~5-6 tok/s = usable interactive chat.

Follow-up: native Rust probe at adapter construction so the
runtime doesn't depend on the install-time env-var trust chain
(currently CONTINUUM_TIER is the cross-boundary signal between
install.sh and the Rust runtime). Tracked as task #51 in the
session task list; ties into resolving the parallel
governor::classify_silicon bug (task #52) where the same
"has_metal=true → Apple Silicon" misclassification still lives.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* perf(persona): O(N) heapify in drain_frame instead of O(N log N) extend

PersonaInbox::drain_frame drains the heap into messages + retained,
then re-loads retained into the heap so out-of-window items survive
the drain. The previous heap.extend(retained) pushed N items at
O(log N) each = O(N log N) total. Since the heap is empty at that
point (the while loop drained it), BinaryHeap::from(Vec) does
in-place heapify in O(N) (sift-down construction per std docs).

Real cost on a busy persona: anchor matches few cross-room messages,
retained = nearly the full N. The old path paid log N per item to
rebuild; the new path pays one O(N) heapify pass.

23/23 existing inbox + admission tests pass — pure perf change, no
semantic shift (heap-from-Vec produces a valid max-heap regardless of
input Vec order, identical to repeated push).

Discipline: same code runs on Mac Intel and M5 per Joel 2026-05-30
"optimizing for a low quality computer is HOW you get a fast machine
on m5." A 500-message inbox drains in O(500) instead of O(500*9) =
~9× less heap work per drain. The savings on Mac Intel are invisible
to the user; on M5 they compound into the perceived snappiness ceiling.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants