Skip to content

Commit 5fbeed1

Browse files
digest: add issues for 2026-07-31
1 parent f19b296 commit 5fbeed1

12 files changed

Lines changed: 341 additions & 0 deletions
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
date: 2026-07-30
3+
repo: biomejs/biome
4+
size: L
5+
title: "Tailwind rule lands; CSS/YAML fixes"
6+
excerpt: "Biome adds a new Tailwind arbitrary-value lint rule and fixes crashes plus YAML/CSS parsing edge cases."
7+
commits: 3
8+
authors: [denbezrukov, dyc3, THEjacob1000]
9+
commit_authors: {"dd9158a": denbezrukov, "f399d3a": dyc3, "e007143": THEjacob1000}
10+
---
11+
12+
### **New Tailwind arbitrary-value lint rule** (e007143)
13+
Biome adds `noTailwindArbitraryValue`, a nursery rule that flags Tailwind CSS arbitrary values like `w-[400px]`. It applies across HTML/JSX class attributes, supported utility functions, and tagged templates, and also wires the rule into config, diagnostics, and ESLint migration support.
14+
15+
### **CSS analysis no longer crashes on incomplete property values** (dd9158a)
16+
Biome now handles incomplete CSS declarations during editing without panicking, fixing a crash in semantic analysis for partially typed property values. This is an important stability fix for live editor workflows where code is frequently invalid mid-edit.
17+
18+
### **YAML formatter/parser better attaches properties across lines** (f399d3a)
19+
The YAML parser and formatter were updated to correctly associate properties that span lines in block mappings, improving handling of anchors, tags, and comments in tricky multiline cases. This reduces formatting mismatches and parse errors on real-world YAML inputs.
20+
21+
### Other misc changes
22+
- Rule metadata/migration plumbing for the new Tailwind rule
23+
- YAML snapshot churn and test updates
24+
- Small AST pointer behavior refactor and roundtrip test
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
date: 2026-07-30
3+
repo: denoland/deno
4+
size: L
5+
title: "Deno tightens networking and package handling"
6+
excerpt: "Origin-scoped redirect header stripping, safer stream close cancellation, npmrc auth matching fixes, plus new add and CJS analysis behavior."
7+
commits: 8
8+
authors: [nathanwhit, piscisaureus, dsherret, cppcoffee]
9+
commit_authors: {"1635110": nathanwhit, "5558c9d": nathanwhit, "c026afe": nathanwhit, "786225a": nathanwhit, "131a727": nathanwhit, "39f402e": dsherret}
10+
---
11+
12+
### **Fix redirect-sensitive headers to follow origin boundaries** (131a727)
13+
Deno now strips authorization-class headers whenever a redirect crosses origins, instead of using a looser host/protocol check. This brings fetch behavior in line with the spec and closes cases where sensitive headers could leak across origin changes.
14+
15+
### **Cancel pending writes when network streams close** (1635110)
16+
TCP, Unix, vsock, and TLS streams now cancel blocked writes and shutdowns as well as reads when the resource closes. That prevents closed sockets from staying alive behind a pending write and fixes a subtle resource-lifetime bug.
17+
18+
### **Match npm auth config by full authority and path boundaries** (c026afe)
19+
The npmrc resolver now compares auth settings against the URL’s complete authority, including port, and only matches path prefixes at segment boundaries. This avoids selecting the wrong registry token for similarly named hosts, sibling paths, or non-default ports.
20+
21+
### **Add `deno add --unscoped` for aliasing scoped packages by name** (39f402e)
22+
A new `--unscoped` flag lets `deno add` store scoped packages under their unscoped alias, e.g. `jsr:@david/jsonc-morph` becomes `jsonc-morph`. That makes import-map entries and install commands shorter and more consistent when you want the package’s public name.
23+
24+
### **Preserve pre-quoted shell args without weakening escaping** (5558c9d)
25+
Node-compatible `spawn`/`spawnSync` now strip one caller-added quote layer before re-escaping shell arguments, so already-quoted values continue to work with `shell: true`. The added regression covers quote-breakout attempts to ensure the command-injection mitigation still holds.
26+
27+
### **CJS recursive analysis now uses loader-owned sources** (786225a)
28+
CommonJS export analysis was refactored to take source from the active module loader instead of reopening files independently. That makes recursive analysis consistent across graph, npm, standalone, and bundled loading paths, and avoids early parse failures and permission surprises.
29+
30+
### Other misc changes
31+
- Updated Node test viewer and contributor-guide links; removed crux.land/eszip viewer references
32+
- Docs path updates in contributor instructions
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
date: 2026-07-30
3+
repo: denoland/std
4+
size: L
5+
title: "API cleanup, deprecations, and perf fixes"
6+
excerpt: "Major XML API cleanup, YAML structured errors, a new HttpError, plus faster line streaming and tree cloning fixes."
7+
commits: 18
8+
authors: [tomas-zijdemans, bartlomieju, piscisaureus, denobot, iuioiua, LeSingh1]
9+
commit_authors: {"c09b948": iuioiua, "07a05eb": bartlomieju, "02e05a4": bartlomieju, "fbe3870": LeSingh1, "5e7c0b9": tomas-zijdemans, "7a0239f": tomas-zijdemans, "6861a2b": tomas-zijdemans, "0d820d1": tomas-zijdemans}
10+
---
11+
12+
**XML public API cleanup lands as breaking change** (7a0239f)
13+
The XML module tightens and reshapes its exported surface, including type changes around declarations and tokenizer callbacks. It also improves error reporting when position tracking is disabled, and the API cleanup is explicitly breaking.
14+
15+
**YAML parsing now exposes structured `YamlSyntaxError`** (6861a2b)
16+
YAML errors now carry line, column, and offset data in a dedicated error type instead of stringified `SyntaxError` messages, and the main module re-exports the new types. The parser also adds single-document enforcement support, making failures easier to inspect and downstream handling more precise.
17+
18+
**`HttpError` adds a typed unstable HTTP error API** (c09b948)
19+
A new unstable `HttpError` class gives HTTP handlers a standard way to represent status-coded failures, with optional response init and cause support. This is a meaningful addition for route/error handling patterns in `@std/http`.
20+
21+
**Text line streaming is fixed to avoid quadratic buffering** (5e7c0b9)
22+
`TextLineStream` now buffers chunks incrementally instead of repeatedly re-slicing accumulated text, eliminating quadratic behavior for long lines split across many chunks. That’s a real performance fix for streamed text processing.
23+
24+
**Tree cloning now deep-copies nodes correctly** (fbe3870)
25+
`BinarySearchTree.from()` and `RedBlackTree.from()` now copy node structure instead of reusing nodes from the source tree, so mutations on the clone no longer affect the original. This fixes correctness bugs when cloning and then mutating trees.
26+
27+
**Testing and dotenv deprecations broaden API cleanup** (07a05eb, 02e05a4, 0d820d1)
28+
The day also marks several APIs as deprecated, including snapshot helpers, BDD testing modules, and dotenv `load()`/`loadSync()` entry points. These signal upcoming removals and help steer users toward newer APIs.
29+
30+
### Other misc changes
31+
- Release 2026.07.30
32+
- CI/workflow dependency bumps and Node test matrix tweaks
33+
- Docs cleanup removing the deprecated coverage explorer link
34+
- Minor refactors and type annotation cleanup

src/posts/2026-07-30_jsr-io-jsr.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
date: 2026-07-30
3+
repo: jsr-io/jsr
4+
size: N
5+
title: "No changes"
6+
excerpt: ""
7+
commits: 0
8+
---
9+
10+
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
date: 2026-07-30
3+
repo: leanprover/lean4
4+
size: L
5+
title: "Lean4 tightens VCGen and kernel safety"
6+
excerpt: "New do-notation assertions, faster vcgen framing, and multiple soundness fixes land alongside module export and contract syntax updates."
7+
commits: 15
8+
authors: [sgraf812, leodemoura, algebraic-dev, tydeu, wkrozowski, TwoFX]
9+
commit_authors: {"d53dcb2": leodemoura, "41056da": leodemoura, "8be3650": tydeu, "fd1cec3": leodemoura, "a0acacb": sgraf812, "a97629d": sgraf812, "0a67f6b": sgraf812, "c7673e7": sgraf812, "103ef69": wkrozowski, "2d0879c": sgraf812, "d19a5e5": sgraf812, "f9541a7": algebraic-dev, "44d40a3": algebraic-dev, "55293f2": algebraic-dev, "5fe7f24": TwoFX}
10+
---
11+
12+
### **VCGen framing is reworked for footprint-based inference** (d19a5e5)
13+
`@[frameproc]` procedures can now discharge split verification conditions themselves, which lets frame inference handle operators like separating conjunction that the built-in lattice split could not decompose. This is a major vcgen overhaul that improves separation-logic support and makes framing more scalable.
14+
15+
### **`partial` export stubs are now marked unsafe** (d53dcb2)
16+
A module-system soundness bug let exported stubs of `partial` definitions lose their unsafe marking, making them usable from safe declarations downstream. The fix ensures any non-`safe` exported definition stays unsafe, closing a meta-programming exploit path.
17+
18+
### **Kernel now rejects mutual blocks with mismatched universe params** (41056da)
19+
Mutual definitions must now share the same universe level parameters, matching an invariant the elaborator already enforced. This plugs a kernel-level hole that meta-programming could bypass and avoids cache-related unsoundness.
20+
21+
### **Intrinsic verification gains `assert` in `do` blocks** (a0acacb)
22+
`do` notation can now contain `assert P` and binder forms like `assert s => P s`, which vcgen reads as proof obligations while erasing them at runtime. This adds a new public verification-syntax feature for programs using intrinsic verification.
23+
24+
### **`requires`/`invariant` clauses can bind their own arguments** (0a67f6b)
25+
Preconditions and loop invariants now accept binder forms such as `requires s => ...` and `invariant pref suff s => ...`, removing the need for extra `fun` wrappers. That makes contract and invariant syntax more expressive, especially for stateful specifications.
26+
27+
### **vcgen frame inference is optimized and decoupled from speculative applies** (a97629d)
28+
Frame inference inputs are computed on demand again, restoring performance lost in an earlier change. The refactor also reshapes the frame-proc machinery around explicit split proofs and residual preconditions, reducing unnecessary work during spec application.
29+
30+
### **`for` invariants are simplified to prefix/suffix semantics** (c7673e7)
31+
The loop-invariant representation for `Std.Internal.Do` was made non-dependent, with invariants now phrased directly over the consumed and remaining list segments. This is a broad internal refactor that simplifies the generated VCs and changes how `for ... invariant` is elaborated.
32+
33+
### **Code-quality benchmark frontend is added** (103ef69)
34+
A new runner frontend for the upcoming code-quality checking framework was introduced. It lays the groundwork for future linting/quality automation rather than changing existing compiler behavior.
35+
36+
### **HTTP server benchmark added** (f9541a7)
37+
New compile benchmarks exercise the HTTP server and TCP variants. This helps track performance regressions in the server stack over time.
38+
39+
### **HTTP `Builder.stream` overwrite bug fixed** (44d40a3)
40+
The stream body builder no longer risks overwriting a known size in time-sensitive scenarios. That fixes a subtle correctness issue in HTTP body handling.
41+
42+
### **`requires` replaces `require` for def contracts** (2d0879c)
43+
The contract precondition clause on `def` has been renamed from `require` to `requires`, aligning it with `ensures` and updating the parser/macro plumbing accordingly. This is a source-level syntax change for contract-bearing definitions.
44+
45+
### **Other misc changes**
46+
- Untraced internal build flags in the core build trace (8be3650)
47+
- Added a missing metavariable/free-variable check in inductive kernel code (fd1cec3)
48+
- Deflaked an HTTP unknown-size stream test (55293f2)
49+
- Simplified `bif`/`cond` handling and related lemmas/tests (5fe7f24)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
date: 2026-07-30
3+
repo: microsoft/typescript-go
4+
size: L
5+
title: "Checker speedups and LS memory fixes"
6+
excerpt: "TypeScript-Go got faster narrowing, safer symbol resolution, and a fix for config diagnostics after watched file edits."
7+
commits: 5
8+
authors: [johnfav03, ahejlsberg, connorshea]
9+
commit_authors: {"322fa1e": ahejlsberg, "98c4784": johnfav03, "0f29c77": johnfav03, "4443b20": johnfav03, "37357ae": connorshea}
10+
---
11+
12+
### **Optimize equality and switch narrowing** (322fa1e)
13+
The checker now uses a more targeted union/type removal path and adds new enum flags to support faster `narrowTypeByEquality` and `narrowTypeBySwitchOnDiscriminant`. This should reduce work in common control-flow narrowing cases and includes new coverage for non-uniform union narrowing.
14+
15+
### **Fix O(K²) memory blowup in go-to-implementation** (0f29c77)
16+
The language service now deduplicates references and implementation groups as it expands the worklist, preventing quadratic retention when many implementations are discovered repeatedly. This fixes a real OOM class in deeply-typed projects without changing the final response.
17+
18+
### **Refresh config diagnostics after watched file changes** (98c4784)
19+
`tsconfig.json`/`jsconfig.json` diagnostics are now republished when a watched config file changes on disk, even if the client does not issue another pull request. That closes a gap where config errors could go stale until the editor re-asked for diagnostics.
20+
21+
### **Prevent stack overflow in self-referential `for...of`** (4443b20)
22+
`getExplicitTypeOfSymbol()` now guards against recursive re-entry on the same symbol, avoiding infinite recursion on patterns like `for (const a of a)`. This turns a crash into the expected diagnostics for the self-referential loop.
23+
24+
### Other misc changes
25+
- Typo fix in declaration transformer variable naming (37357ae)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
date: 2026-07-30
3+
repo: nodejs/node
4+
size: M
5+
title: "FFI fixes, glob cache isolation, and HTTP hardening"
6+
excerpt: "Node.js tightens Fast API validation, preserves FFI buffer fast paths, fixes glob cache cross-platform bugs, and hardens HTTP timeouts."
7+
commits: 8
8+
authors: [trivikr, Archkon, IlyasShabi, bmuenzenmeyer, ganjanggejang, efekrskl]
9+
commit_authors: {"c8e2a82": trivikr, "f85fdab": trivikr, "f9e2fe0": Archkon, "111a62d": Archkon, "396aad0": IlyasShabi, "3f2f10a": bmuenzenmeyer, "cacd7a2": ganjanggejang, "0012a77": efekrskl}
10+
---
11+
12+
### **FFI fast path now validates 32-bit integers** (c8e2a82)
13+
Fast API calls now reject out-of-range or non-integer values for `i32`/`int32` and `u32`/`uint32` instead of letting V8 coerce or truncate them. This closes a correctness gap for optimized FFI calls and brings 32-bit behavior in line with the existing integer validation for other widths.
14+
15+
### **Optimized FFI buffer conversions stay on the native fast path** (f85fdab)
16+
Buffer- and ArrayBuffer-backed arguments were being routed through a slower or incorrect conversion path after Fast API optimization; this commit preserves the pointer-like handling for those signatures. It fixes a regression where memory-backed arguments could lose the specialized native path, which matters for both correctness and performance.
17+
18+
### **HTTP server now guards invalid timeout values** (0012a77)
19+
`checkConnections()` now sanitizes `headersTimeout` and `requestTimeout` before using them, treating invalid or negative values as `0`. That prevents bad timeout settings from crashing connection checks and makes the server more resilient to unexpected configuration.
20+
21+
### **FS glob matcher cache is keyed by platform** (111a62d)
22+
Glob matchers are now cached separately for `path.posix` and `path.win32`, matching the fact that compiled matchers capture platform-specific path semantics. This fixes cross-platform cache reuse that could return the wrong matcher for the same pattern.
23+
24+
### Other misc changes
25+
- Registered the missing `SetURL` wasm web API external reference (f9e2fe0)
26+
- Added permission enforcement for `v8.setHeapSnapshotNearHeapLimit()` (396aad0)
27+
- Corrected `url.format()` return type docs (3f2f10a)
28+
- Updated FFI docs to use `ffi.suffix` instead of hardcoded `.so` paths (cacd7a2)

0 commit comments

Comments
 (0)