1 hours ago
opensheetmusicdisplay

1.9.7

See Changelog:

1.9.7 (2026-02-19)

Bug Fixes

  • 8va/OctaveShift: Fix 8xa start and end timestamp and visual display shifted when backup nodes or multiple voices involved (#1645, PR #1647) (33d6b40)
  • 8va/OctaveShift: Fix octave shift that goes over multiple systems/lines not always going to the end of the staffline in systems in-between (PR #1646) (15c07e5)
  • Beams: Enable secondary beam breaks (#1071). E.g. break between 16ths and triplet 16ths if given in MusicXML (73a88c5)
  • BPM: <metronome><per-minute> is now parsed correctly if the value contains text in addition to numbers (e.g. "c. 108" instead of just "108") (#1175) (be8fc24)
  • Layout: For multiple rest measures, fix crowded notes: Correctly calculate space required by multirest measures (#1329) (cc6ed00)
  • Layout: Respect system label length. Fix crowded notes when instrument name label very long (#1329) (e94876e)
  • Multiple Rest Measures: Fix multiple rest element / line too close to ending barline for end repeat barline etc (#1329) (1e2710e)
  • MusicXML/direction-type: Multiple <direction-type> nodes within a single <direction> node can now be read (#1175) (1f9b9a8)
2 hours ago
xyflow

@xyflow/system@0.0.75

Patch Changes

  • #5703 ce6c869df Thanks @peterkogo! - Improve return type of useNodesData. Now you can narrow down the data type by checking the node type.
2 hours ago
react-flow

@xyflow/system@0.0.75

Patch Changes

  • #5703 ce6c869df Thanks @peterkogo! - Improve return type of useNodesData. Now you can narrow down the data type by checking the node type.
2 hours ago
xyflow

@xyflow/svelte@1.5.1

Patch Changes

  • #5704 c91d3d022 Thanks @peterkogo! - Keep onConnectEnd and isValidConnection up to date in an ongoing connection

  • #5703 ce6c869df Thanks @peterkogo! - Improve return type of useNodesData. Now you can narrow down the data type by checking the node type.

  • #5698 7eeebc9c0 Thanks @peterkogo! - Fix child nodes not updating on the Minimap when parent is dragged

  • Updated dependencies [ce6c869df]:

    • @xyflow/system@0.0.75
2 hours ago
xyflow

@xyflow/react@12.10.1

Patch Changes

2 hours ago
react-flow

@xyflow/svelte@1.5.1

Patch Changes

  • #5704 c91d3d022 Thanks @peterkogo! - Keep onConnectEnd and isValidConnection up to date in an ongoing connection

  • #5703 ce6c869df Thanks @peterkogo! - Improve return type of useNodesData. Now you can narrow down the data type by checking the node type.

  • #5698 7eeebc9c0 Thanks @peterkogo! - Fix child nodes not updating on the Minimap when parent is dragged

  • Updated dependencies [ce6c869df]:

    • @xyflow/system@0.0.75
2 hours ago
react-flow

@xyflow/react@12.10.1

Patch Changes

2 hours ago
hono

v4.12.0

Release Notes

Hono v4.12.0 is now available!

This release includes new features for the Hono client, middleware improvements, adapter enhancements, and significant performance improvements to the router and context.

$path for Hono Client

The Hono client now has a $path() method that returns the path string instead of a full URL. This is useful when you need just the path portion for routing or key-based operations:

const client = hc<typeof app>('http://localhost:8787')

// Get the path string
const path = client.api.posts.$path()
// => '/api/posts'

// With path parameters
const postPath = client.api.posts[':id'].$path({
  param: { id: '123' },
})
// => '/api/posts/123'

// With query parameters
const searchPath = client.api.posts.$path({
  query: { filter: 'test' },
})
// => '/api/posts?filter=test'

Unlike $url() which returns a URL object, $path() returns a plain path string, making it convenient for use with routers or as cache keys.

Thanks @ShaMan123!

ApplyGlobalResponse Type Helper for RPC Client

The new ApplyGlobalResponse type helper allows you to add global error response types to all routes in the RPC client. This is useful for typing common error responses from app.onError() or global middlewares:

const app = new Hono()
  .get('/api/users', (c) => c.json({ users: ['alice', 'bob'] }, 200))
  .onError((err, c) => c.json({ error: err.message }, 500))

type AppWithErrors = ApplyGlobalResponse<
  typeof app,
  {
    401: { json: { error: string; message: string } }
    500: { json: { error: string; message: string } }
  }
>

const client = hc<AppWithErrors>('http://api.example.com')
// Now client knows about both success and error responses
const res = await client.api.users.$get()
// InferResponseType includes { users: string[] } | { error: string; message: string }

Thanks @mohankumarelec!

SSG Redirect Plugin

A new redirectPlugin for SSG generates static HTML redirect pages for HTTP redirect responses (301, 302, 303, 307, 308):

import { toSSG } from 'hono/ssg'
import { defaultPlugin, redirectPlugin } from 'hono/ssg'

const app = new Hono()
app.get('/old', (c) => c.redirect('/new'))
app.get('/new', (c) => c.html('New Page'))

// redirectPlugin must be placed before defaultPlugin
await toSSG(app, fs, {
  plugins: [redirectPlugin(), defaultPlugin()],
})

The generated redirect pages include a <meta http-equiv="refresh"> tag, a canonical link, and a robots noindex meta tag.

Thanks @3w36zj6!

onAuthSuccess Callback for Basic Auth

The Basic Auth middleware now supports an onAuthSuccess callback that is invoked after successful authentication. This allows you to set context variables or perform logging without re-parsing the Authorization header:

app.use(
  '/auth/*',
  basicAuth({
    username: 'hono',
    password: 'ahotproject',
    onAuthSuccess: (c, username) => {
      c.set('user', { name: username, role: 'admin' })
      console.log(`User ${username} authenticated`)
    },
  })
)

The callback also works with async functions and the verifyUser mode.

Thanks @AprilNEA!

getConnInfo for AWS Lambda, Cloudflare Pages, and Netlify

getConnInfo() is now available for three additional adapters:

// AWS Lambda (supports API Gateway v1, v2, and ALB)
import { handle, getConnInfo } from 'hono/aws-lambda'

// Cloudflare Pages
import { handle, getConnInfo } from 'hono/cloudflare-pages'

// Netlify
import { handle, getConnInfo } from 'hono/netlify'

app.get('/', (c) => {
  const info = getConnInfo(c)
  return c.text(`Your IP: ${info.remote.address}`)
})

Thanks @rokasta12!

alwaysRedirect Option for Trailing Slash Middleware

The trailing slash middleware now supports an alwaysRedirect option. When enabled, the middleware redirects before executing handlers, which fixes the issue where trailing slash handling doesn't work with wildcard routes:

app.use(trimTrailingSlash({ alwaysRedirect: true }))

app.get('/my-path/*', async (c) => {
  return c.text('wildcard')
})

// /my-path/something/ will be redirected to /my-path/something
// before the wildcard handler is executed

Progressive Locale Code Truncation

The normalizeLanguage function in the language middleware now supports RFC 4647 Lookup-based progressive truncation. Locale codes like ja-JP will match ja when only the base language is in supportedLanguages:

app.use(
  '/*',
  languageDetector({
    supportedLanguages: ['en', 'ja'],
    fallbackLanguage: 'en',
    order: ['cookie', 'header'],
  })
)

// Accept-Language: ja-JP → matches 'ja'
// Accept-Language: ko-KR → falls back to 'en'

Thanks @sorafujitani!

exports Field for ExecutionContext

The ExecutionContext type now includes an exports property for Cloudflare Workers. You can use module augmentation to type it with Wrangler's generated types:

import 'hono'

declare module 'hono' {
  interface ExecutionContext {
    readonly exports: Cloudflare.Exports
  }
}

Thanks @toreis-up!

Performance Improvements

TrieRouter 1.5x ~ 2.0x Faster

The TrieRouter has been significantly optimized with reduced spread syntax usage, O(1) hasChildren checks, lazy regular expression generation, and removal of redundant processes:

Route Node.js Deno Bun
short static GET /user 1.70x 1.40x 1.34x
dynamic GET /user/lookup/username/hey 1.38x 1.69x 1.51x
wildcard GET /static/index.html 1.51x 1.72x 1.43x
all together 1.58x 1.60x 1.82x

Thanks @EdamAme-x!

Fast Path for c.json()

c.json() now has the same fast path optimization as c.text(). When no custom status, headers, or finalized state exists, the Response is created directly without allocating a Headers object:

// This common pattern is now faster
return c.json({ message: 'Hello' })

Benchmark results:

Metric Before After Change
Reqs/sec 92,268 95,244 +3.2%
Latency 5.42ms 5.25ms -3.1%
Throughput 17.24MB/s 19.07MB/s +10.6%

Thanks @mgcrea!

New features

Performance

All changes

New Contributors

Full Changelog: https://github.com/honojs/hono/compare/v4.11.10...v4.12.0

6 hours ago
Babylon.js

8.52.0

Changes:

  • #17921: [InspectorV2] Fix spinbutton regression and precision bug
  • #17924: Fix code simplification agent
  • #17915: Textures: Fix parsing of texture
  • #17916: [InspectorV2] Fix various ACE bugs
  • #17917: [InspectorV2] Fix errors in console
  • #17920: [NPE] Changing overflow to wrap
  • #17914: [NPE] Using Lerp instead of Random for initial color
  • #17912: Inspector v2: Entity as object (instead of unknown)
  • #17913: Add agentic workflow code-simplifier
  • #17911: Bump ajv from 8.12.0 to 8.18.0
See More
  • #2482: hack for ios
  • #2444: nightly
  • #2217: Add slider support to GUI
  • #2507: 3.0.0
  • #2508: Enables to display all render target texture properly in inspector
  • #2487: PBR UV Optim
  • #2472: Nightly
  • #2457: Fix Refraction Matrix
  • #2467: NPM build for RC
  • #2449: Add new paramter to createDefaultSkybox
  • #17909: Fix focus mode for framge in node graphs
  • #17907: Mesh: Optimize instance data access in WebGL
  • #17864: fix (xr): Avoid tainting the mono scene UBO with stereo and vice versa
  • #17906: [Fix] Update gaussianSplattingMaterial
  • #17908: Inspector v2: Fix child window on Firefox (and other non-chromium browsers)

This list of changes was auto generated.

6 hours ago
router

v1.161.2

Version 1.161.2 - 2/19/26, 7:40 AM

Changes

Fix

  • eslint-plugin-router: support ESLint v10 (#6696) (6d465bc) by @Sheraff

Chore

  • disable Nx cloud cache for vite ecosystem ci (#6695) (923fe9c) by Birk Skyum

Packages

  • @tanstack/eslint-plugin-router@1.161.2