7-day edition

Aug 29, 2026 – Sep 4, 2026

The edition exactly as it was published. Nothing here is re-selected on a later reading.

Sep 5, 20269 reads · 344 merged PRs screened

core implementation

huggingface/transformers · #47975

Files changed →View PR ↗

[generate] stop synchronizing the accelerator on every decode stepPython · 185 + / 3

Introduces 13 new declarations in src/transformers/generation/utils.py.

Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.

src/transformers/generation/utils.py · 5 files

@@ -356,6 +357,127 @@ class GenerateBeamEncoderDecoderOutput(ModelOutput): GenerateOutput = GenerateNonBeamOutput | GenerateBeamOutput  +def _undo_generation_steps(num_steps: int, input_ids: torch.LongTensor, *recorded: "tuple | None") -> tuple:+    """+    Undo the last `num_steps` decoding steps, so that they leave no trace in what `generate` returns.+    Note that the cache entries those steps wrote are dropped by `DeferredStopCheck.finish` instead.+    """+    # `[:-0]` is `[:0]`, which would empty everything rather than leave it alone+    if num_steps == 0:+        return (input_ids, *recorded)+    return (input_ids[..., :-num_steps], *(record[:-num_steps] if record else record for record in recorded))+++class StopCheck:+    """+    Decides when the decoding loop should stop, and hands each new token to a streamer.+    """++    def __init__(self, streamer: "BaseStreamer | None" = None):+        self.streamer = streamer++    def __call__(self, unfinished_sequences: torch.Tensor, tokens: torch.Tensor, length: int) -> bool:+        if self.streamer is not None:+            self.streamer.put(tokens.cpu())+        return bool(unfinished_sequences.max() == 0)++    def finish(self) -> int:+        """Flush whatever is still held back, and report how many decoding steps have to be undone."""+        return 0+++class DeferredStopCheck(StopCheck):

language design

denoland/deno · #36727

Files changed →View PR ↗

fix(npm): correct the pnpm lockfile import against real-world lockfilesRust · 848 + / 20

Introduces 19 new declarations in libs/resolver/pnpm_lockfile_import.rs.

Adds new language design rather than adjusting what was there. Read the linked PR for the surrounding test context.

libs/resolver/pnpm_lockfile_import.rs · 1 files

@@ -756,6 +972,618 @@ snapshots:     assert_eq!(v["npm"]["lodash@4.17.21"]["integrity"], "sha512-AAA");   } +  #[test]+  fn aliased_snapshot_dependency() {+    // `string-width-cjs: string-width@4.2.3` names a package, not a version,+    // so it must not collapse into `string-width-cjs@string-width@4.2.3`.+    let input = r#"+lockfileVersion: '9.0'++importers:+  .:+    dependencies:+      wrap-ansi:+        specifier: ^8.1.0+        version: 8.1.0++packages:+  wrap-ansi@8.1.0:+    resolution: {integrity: sha512-WRAP}+  ansi-styles@6.2.1:+    resolution: {integrity: sha512-ANSI}+  string-width@4.2.3:+    resolution: {integrity: sha512-WIDTH}+  '@scope/pkg@1.0.0':+    resolution: {integrity: sha512-SCOPED}++snapshots:+  wrap-ansi@8.1.0:+    dependencies:+      ansi-styles: 6.2.1+      string-width-cjs: string-width@4.2.3+      scoped-alias: '@scope/pkg@1.0.0'

core implementation

microsoft/vscode · #334554

Files changed →View PR ↗

sessions: move unified workspace picker settingTypeScript · 51 + / 20

Introduces 2 new declarations in src/vs/sessions/contrib/chat/browser/chat.contribution.ts.

Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.

src/vs/sessions/contrib/chat/browser/chat.contribution.ts · 11 files

@@ -368,6 +371,20 @@ AccessibleViewRegistry.register(new SessionsChatAccessibilityHelp()); // register configuration Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration).registerConfiguration({ 	properties: {+		[LEGACY_UNIFIED_WORKSPACE_PICKER_SETTING]: {+			type: 'boolean',+			default: product.quality !== 'stable',+			scope: ConfigurationScope.APPLICATION,+			deprecationMessage: localize('chat.agentSessions.consolidatedRemoteWorkspaces.deprecated', "Deprecated. Use the unified workspace picker setting instead."),+		},+		[UNIFIED_WORKSPACE_PICKER_SETTING]: {+			type: 'boolean',+			default: product.quality !== 'stable',+			scope: ConfigurationScope.APPLICATION,+			description: localize('sessions.chat.unifiedWorkspacePicker.enabled', "Controls whether the Agents Window uses the unified workspace picker, which combines GitHub and remote workspaces, provides search, and, when supported, allows creating sessions with no workspace."),+			tags: ['experimental'],+			experiment: { mode: 'auto' },+		}, 		[AGENT_HOST_RUN_WORKTREE_CREATED_TASKS_SETTING]: { 			type: 'boolean', 			default: true,

core implementation

microsoft/vscode · #334043

Files changed →View PR ↗

Show binary files in multi-diff editorsTypeScript · 157 + / 34

Introduces 2 new declarations in src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.ts.

Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.

src/vs/editor/browser/widget/multiDiffEditor/diffEditorItemTemplate.ts · 15 files

@@ -125,7 +138,28 @@ export class DiffEditorItemTemplate extends VirtualizedItemTemplate<DocumentDiff 		})); 		this.isModifedFocused = observableCodeEditor(this.editor.getModifiedEditor()).isFocused; 		this.isOriginalFocused = observableCodeEditor(this.editor.getOriginalEditor()).isFocused;-		this.isFocused = derived(this, reader => this.isModifedFocused.read(reader) || this.isOriginalFocused.read(reader));+		this.isBinaryFilePlaceholderFocused = observableValue(this, false);+		const binaryFilePlaceholderFocus = this._register(trackFocus(this._elements.binaryFilePlaceholder));+		this._register(binaryFilePlaceholderFocus.onDidFocus(() => this.isBinaryFilePlaceholderFocused.set(true, undefined)));+		this._register(binaryFilePlaceholderFocus.onDidBlur(() => this.isBinaryFilePlaceholderFocused.set(false, undefined)));+		this.isFocused = derived(this, reader =>+			this.isModifedFocused.read(reader)+			|| this.isOriginalFocused.read(reader)+			|| this.isBinaryFilePlaceholderFocused.read(reader)+		);+		this._elements.binaryFilePlaceholder.tabIndex = 0;+		if (this._workbenchUIElementFactory.openDiffEditor) {+			this._openBinaryDiffButton = this._register(new Button(this._elements.binaryFilePlaceholderActions, { ...defaultButtonStyles, secondary: true }));+			this._openBinaryDiffButton.label = localize('openBinaryDiff', "Open Diff");+			this._register(this._openBinaryDiffButton.onDidClick(() => {+				const item = this._viewModel.get();+				if (item?.originalUri && item.modifiedUri) {+					this._workbenchUIElementFactory.openDiffEditor?.(item.originalUri, item.modifiedUri);+				}+			}));+		} else {+			this._openBinaryDiffButton = undefined;+		} 		this._resourceLabel = this._workbenchUIElementFactory.createResourceLabel 			? this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath, MultiDiffEditorItemLabelKind.Primary)) 			: undefined;

language design

rust-lang/rust · #160564

Files changed →View PR ↗

volatile: allow accesses to non-AM memory to trapRust · 62 + / 46

Introduces 2 new declarations in compiler/rustc_codegen_llvm/src/intrinsic.rs.

Adds new language design rather than adjusting what was there. Read the linked PR for the surrounding test context.

compiler/rustc_codegen_llvm/src/intrinsic.rs · 7 files

@@ -138,6 +138,42 @@ fn call_simple_intrinsic<'ll, 'tcx>(     )) } +impl<'ll, 'tcx> Builder<'_, 'll, 'tcx> {+    fn black_box(&mut self, result: PlaceRef<'tcx, &'ll Value>, span: Span) {+        let result_val_span = [result.val.llval];+        // We need to "use" the argument in some way LLVM can't introspect, and on+        // targets that support it we can typically leverage inline assembly to do+        // this. LLVM's interpretation of inline assembly is that it's, well, a black+        // box. This isn't the greatest implementation since it probably deoptimizes+        // more than we want, but it's so far good enough.+        //+        // For zero-sized types, the location pointed to by the result may be+        // uninitialized. Do not "use" the result in this case; instead just clobber+        // the memory.+        let (constraint, inputs): (&str, &[_]) = if result.layout.is_zst() {+            ("~{memory}", &[])+        } else {+            ("r,~{memory}", &result_val_span)+        };+        crate::asm::inline_asm_call(+            self,+            "",+            constraint,+            inputs,+            self.type_void(),+            &[],+            true,+            false,+            llvm::AsmDialect::Att,+            &[span],+            false,+            None,

framework internals

vercel/next.js · #98255

Files changed →View PR ↗

fix: track dynamic accesses in final runtime prerendersTypeScript · 35 + / 19

Introduces 1 new declaration in packages/next/src/server/request/search-params.ts.

Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.

packages/next/src/server/request/search-params.ts · 6 files

@@ -255,20 +253,23 @@ function createRuntimePrerenderSearchParams(     if (workUnitStore.finalStage < searchParamsStage) {       return makeHangingSearchParams(workStore, workUnitStore)     } else {-      return result+      return makeUntrackedSearchParams(userspaceSearchParams)     }   } -  // Unlike `createRuntimePrerenderParams`, which uses `delayUntilStage`, we-  // resolve with `waitForStage(...).then(...)` here. Switching search params to-  // `delayUntilStage` drops the source code frame from the instant-validation-  // "URL data outside of Suspense" error when a page awaits `searchParams` at-  // the top level (params, read via a nested component, is unaffected). See the-  // `missing suspense around search params` cases in the instant-validation-  // `suspense-boundaries` tests. The underlying reason in React's async I/O-  // await tracking isn't understood yet. TODO: align search params with params-  // on `delayUntilStage` once resolved.-  return stagedRendering.waitForStage(searchParamsStage).then(() => result)+  // If search params don't resolve in this prerender, caches need to treat them as a hanging input.+  if (+    stagedRendering.finalStage &&+    stagedRendering.finalStage < searchParamsStage+  ) {+    return makeHangingSearchParams(workStore, workUnitStore)+  } else {+    return stagedRendering.delayUntilStage(+      searchParamsStage,+      'searchParams',+      userspaceSearchParams+    )+  } } 

language design

rust-lang/rust · #162226

Files changed →View PR ↗

Clean up the AST visitorRust · 189 + / 230

Introduces 14 new declarations in compiler/rustc_ast/src/visit.rs.

Adds new language design rather than adjusting what was there. Read the linked PR for the surrounding test context.

compiler/rustc_ast/src/visit.rs · 2 files

@@ -929,98 +916,110 @@ macro_rules! common_visitor_and_walkers {             ) -> V::Result {                 match self {                     ForeignItemKind::Static(item) =>-                        visit_visitable!($($mut)? vis, item),+                        visit_visitable!(vis, item),                     ForeignItemKind::Fn(func) => {-                        let kind = FnKind::Fn(FnCtxt::Foreign, visibility, &$($mut)?*func);+                        let kind = FnKind::Fn(FnCtxt::Foreign, visibility, &$($mut)? *func);                         try_visit!(vis.visit_fn(kind, attrs, span, id))                     }                     ForeignItemKind::TyAlias(alias) =>-                        visit_visitable!($($mut)? vis, alias),+                        visit_visitable!(vis, alias),                     ForeignItemKind::MacCall(mac) =>-                        visit_visitable!($($mut)? vis, mac),+                        visit_visitable!(vis, mac),                 }                 V::Result::output()             }         } -        pub fn walk_fn<$($lt,)? V: $Visitor$(<$lt>)?>(vis: &mut V, kind: FnKind<$($lt)? $(${ignore($mut)} '_)?>) -> V::Result {+        pub fn walk_fn<$($lt,)? V: $Visitor$(<$lt>)?>(+            vis: &mut V,+            kind: FnKind<$($lt)? $(${ignore($mut)} '_)?>,+        ) -> V::Result {             match kind {                 FnKind::Fn(                     _ctxt,                     // Visibility is visited as a part of the item.                     _vis,-                    Fn { defaultness, ident, sig, generics, contract, body, define_opaque, eii_impl },+                    Fn {

framework internals

microsoft/vscode · #334322

Files changed →View PR ↗

Add layout density options for modern UI in `Customize Layout` menuTypeScript · 28 + / 2

Introduces 1 new declaration in src/vs/workbench/browser/actions/layoutActions.ts.

Adds new framework internals rather than adjusting what was there. Read the linked PR for the surrounding test context.

src/vs/workbench/browser/actions/layoutActions.ts · 1 files

@@ -1385,18 +1388,28 @@ const QuickInputActions: CustomizeLayoutItem[] = [ 	CreateOptionLayoutItem('workbench.action.alignQuickInputCenter', QuickInputAlignmentContextKey.isEqualTo('center'), localize('center', "Center"), quickInputAlignmentCenterIcon), ]; +const ModernUIEnabledContext = ContextKeyExpr.equals(`config.${LayoutSettings.MODERN_UI}`, true);++const LayoutDensityActions: CustomizeLayoutItem[] = [+	CreateOptionLayoutItem(`workbench.action.setLayoutDensity.${ModernUIDensity.Default}`, ContextKeyExpr.equals(`config.${LayoutSettings.MODERN_UI_DENSITY}`, ModernUIDensity.Default), localize('layoutDensityDefault', "Default"), layoutDensityDefaultIcon),+	CreateOptionLayoutItem(`workbench.action.setLayoutDensity.${ModernUIDensity.Compact}`, ContextKeyExpr.equals(`config.${LayoutSettings.MODERN_UI_DENSITY}`, ModernUIDensity.Compact), localize('layoutDensityCompact', "Compact"), layoutDensityCompactIcon),+];+ const MiscLayoutOptions: CustomizeLayoutItem[] = [ 	CreateOptionLayoutItem('workbench.action.toggleFullScreen', IsMainWindowFullscreenContext, localize('fullscreen', "Full Screen"), fullscreenIcon), 	CreateOptionLayoutItem('workbench.action.toggleZenMode', InEditorZenModeContext, localize('zenMode', "Zen Mode"), zenModeIcon), 	CreateOptionLayoutItem('workbench.action.toggleCenteredLayout', IsMainEditorCenteredLayoutContext, localize('centeredLayout', "Centered Layout"), centerLayoutIcon), ];  const LayoutContextKeySet = new Set<string>();-for (const { active } of [...ToggleVisibilityActions, ...MoveSideBarActions, ...AlignPanelActions, ...QuickInputActions, ...MiscLayoutOptions]) {+for (const { active } of [...ToggleVisibilityActions, ...MoveSideBarActions, ...AlignPanelActions, ...QuickInputActions, ...LayoutDensityActions, ...MiscLayoutOptions]) { 	for (const key of active.keys()) { 		LayoutContextKeySet.add(key); 	} }+for (const key of ModernUIEnabledContext.keys()) {+	LayoutContextKeySet.add(key);+}  /**  * Matches the title bar's `editorActionsEnabled` getter: true when editor

language design

react/react · #37364

Files changed →View PR ↗

[rust-compiler] Propagate block lowering errorsRust · 38 + / 27

Introduces 1 new declaration in compiler/crates/react_compiler_lowering/src/build_hir.rs.

Adds new language design rather than adjusting what was there. Read the linked PR for the surrounding test context.

compiler/crates/react_compiler_lowering/src/build_hir.rs · 2 files

@@ -2589,17 +2588,25 @@ fn lower_block_statement(     block: &react_compiler_ast::statements::BlockStatement,     parent_scope: Option<react_compiler_ast::scope::ScopeId>, ) -> Result<(), CompilerError> {-    let _ = lower_block_statement_inner(builder, block, None, parent_scope);-    Ok(())+    Ok(lower_block_statement_inner(+        builder,+        block,+        None,+        parent_scope,+    )?) }  fn lower_block_statement_with_scope(     builder: &mut HirBuilder,     block: &react_compiler_ast::statements::BlockStatement,     scope_override: react_compiler_ast::scope::ScopeId, ) -> Result<(), CompilerError> {-    let _ = lower_block_statement_inner(builder, block, Some(scope_override), None);-    Ok(())+    Ok(lower_block_statement_inner(+        builder,+        block,+        Some(scope_override),+        None,+    )?) }  fn lower_block_statement_inner(

Read today’s edition →