Selected changesmerged Oct 6, 2026
kubectl: separate `attach` flags from runtime optionsGo · 75 + / 48 −
Introduces 5 new declarations in staging/src/k8s.io/kubectl/pkg/cmd/attach/attach.go.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
staging/src/k8s.io/kubectl/pkg/cmd/attach/attach.go ↗ · 2 files
@@ -94,20 +113,62 @@ type AttachOptions struct { Config *restclient.Config } -// NewAttachOptions creates the options for attach-func NewAttachOptions(streams genericiooptions.IOStreams) *AttachOptions {- return &AttachOptions{- StreamOptions: exec.StreamOptions{- IOStreams: streams,- },- Attach: &DefaultRemoteAttach{},- AttachFunc: DefaultAttachFunc,+// ToOptions converts from CLI inputs to runtime inputs.+func (flags *AttachFlags) ToOptions(f cmdutil.Factory, cmd *cobra.Command, args []string) (*AttachOptions, error) {+ namespace, _, err := f.ToRawKubeConfigLoader().Namespace()+ if err != nil {+ return nil, err+ }++ getPodTimeout, err := cmdutil.GetPodRunningTimeoutFlag(cmd)+ if err != nil {+ return nil, err }++ config, err := f.ToRESTConfig()+ if err != nil {+ return nil, err+ }++ o := &AttachOptions{+ Namespace: namespace,+ ContainerName: flags.ContainerName,+ Stdin: flags.Stdin,+ TTY: flags.TTY,
test_runner: add mock call assertions to t.assertJavaScript · 106 + / 0 −
Introduces 6 new declarations in lib/internal/test_runner/assert.js.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
lib/internal/test_runner/assert.js ↗ · 4 files
@@ -28,13 +36,110 @@ const methodsToCopy = [ ]; let assertMap; +function getMockContext(fn) {+ const { MockFunctionContext } = require('internal/test_runner/mock/mock');+ const ctx = fn?.mock;++ if (!(ctx instanceof MockFunctionContext)) {+ throw new ERR_INVALID_ARG_TYPE('fn', 'mock function', fn);+ }++ return ctx;+}++function called(fn, message) {+ const count = getMockContext(fn).callCount();++ if (count === 0) {+ throw new AssertionError({+ __proto__: null,+ message: message ?? 'Expected mock function to have been called',+ actual: count,+ operator: 'called',+ stackStartFn: called,+ });+ }+}++function callCount(fn, times, message) {+ validateInteger(times, 'times', 0);+ const count = getMockContext(fn).callCount();++ if (count !== times) {
[ai-upgrade] discover upgrade models and reasoning efforts from agent CLIsTypeScript · 477 + / 220 −
Introduces 11 new declarations in packages/next/src/lib/upgrade/harness.ts.
Adds new framework internals rather than adjusting what was there. Tests changed with it, with code of their own.
packages/next/src/lib/upgrade/harness.ts ↗ · 3 files
@@ -386,177 +325,200 @@ export async function handoffUpgrade( return 'handed_off' } - let stage: 'harness' | 'model' | 'effort' | 'permission' | 'worktree' =- 'harness'- let harness: UpgradeHarness | undefined- let model: { id: string; efforts: readonly string[] } | undefined- let effort: string | undefined- let autoPermissionArgs: string[] | null = null- let approvalPermissionArgs: string[] = []- let permissionArgs: string[] = []- let useAuto = true- let useWorktree = true- let codexModels: ReturnType<typeof getCodexModels> | undefined- let codexAutoReview: boolean | undefined- let claudePermissionSupport:- | ReturnType<typeof getClaudePermissionSupport>- | undefined-- while (true) {- if (stage === 'harness') {- const choice = await chooseHarness(installed, harness?.name)- if (choice === 'copy') {- const method = copyUpgradePrompt(resolvePrompt(prompt, null), false)- onHandoff?.(method, null)- return 'handed_off'- }- if (!choice) {- break- }- harness = choice- stage = 'model'- } else if (stage === 'model') {
Allow registering new processing backendsPython · 329 + / 270 −
Introduces 12 new declarations in src/transformers/video_processing_utils.py.
Adds new core implementation rather than adjusting what was there. Tests changed with it, with code of their own.
src/transformers/video_processing_utils.py ↗ · 12 files
@@ -758,8 +583,173 @@ def fetch_videos(self, video_url_or_urls: str | list[str] | list[list[str]], sam return load_video(video_url_or_urls, backend=backend, sample_indices_fn=sample_indices_fn) -BaseVideoProcessor.push_to_hub = copy_func(BaseVideoProcessor.push_to_hub)-if BaseVideoProcessor.push_to_hub.__doc__ is not None:- BaseVideoProcessor.push_to_hub.__doc__ = BaseVideoProcessor.push_to_hub.__doc__.format(+@requires(backends=("vision", "torchvision"))+class BaseVideoProcessor(VideoProcessorMixin, TorchvisionBackend):+ def convert_to_rgb(+ self,+ video: "torch.Tensor",+ ) -> VideoInput:+ """+ Converts a video to RGB format.++ Args:+ video (`"torch.Tensor"`):+ The video to convert.++ Returns:+ `torch.Tensor`: The converted video.+ """+ video = tvF.grayscale_to_rgb(video)+ return convert_to_rgb(video, input_data_format=ChannelDimension.FIRST)++ def sample_frames(+ self,+ metadata: VideoMetadata,+ num_frames: int | None = None,+ fps: int | float | None = None,+ **kwargs,+ ) -> np.ndarray:+ """
model : add K2 Horizon dense and MoVA supportC++ · 825 + / 30 −
Introduces 5 new declarations in src/models/k2-horizon.cpp.
Adds new runtime rather than adjusting what was there. Tests changed with it, with code of their own.
src/models/k2-horizon.cpp ↗ · 27 files
@@ -0,0 +1,362 @@+#include "models.h"++void llama_model_k2_horizon::load_arch_hparams(llama_model_loader & ml) {+ ml.get_key(LLM_KV_ROPE_SCALING_YARN_BETA_FAST, hparams.yarn_beta_fast, false);+ ml.get_key(LLM_KV_ROPE_SCALING_YARN_BETA_SLOW, hparams.yarn_beta_slow, false);+ ml.get_key(LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, hparams.f_norm_rms_eps);+ ml.get_key(LLM_KV_ATTENTION_GROUPNORM_GROUPS, hparams.n_norm_groups, false);+ if (hparams.n_norm_groups == 0) {+ hparams.n_norm_groups = 1;+ }++ if (hparams.n_expert > 0) {+ ml.get_key_or_arr(LLM_KV_EXPERT_FEED_FORWARD_LENGTH, hparams.n_ff_exp_arr, hparams.n_layer_all);+ ml.get_key(LLM_KV_LEADING_DENSE_BLOCK_COUNT, hparams.n_layer_dense_lead, false);+ ml.get_key(LLM_KV_MOE_EVERY_N_LAYERS, hparams.moe_every_n_layers, false);+ ml.get_key(LLM_KV_EXPERT_SHARED_COUNT, hparams.n_expert_shared, false);+ ml.get_key(LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, hparams.n_ff_shexp, false);+ ml.get_key(LLM_KV_EXPERT_WEIGHTS_SCALE, hparams.expert_weights_scale, false);+ ml.get_key(LLM_KV_EXPERT_WEIGHTS_NORM, hparams.expert_weights_norm, false);+ ml.get_key(LLM_KV_EXPERT_GATING_FUNC, hparams.expert_gating_func, false);+ if (hparams.expert_gating_func == LLAMA_EXPERT_GATING_FUNC_TYPE_NONE) {+ hparams.expert_gating_func = LLAMA_EXPERT_GATING_FUNC_TYPE_SIGMOID;+ }+ }++ // MoVA+ ml.get_key(LLM_KV_ATTENTION_VALUE_EXPERT_COUNT, hparams.n_value_expert, false);+ ml.get_key(LLM_KV_ATTENTION_VALUE_EXPERT_USED_COUNT, hparams.n_value_expert_used, false);+ if (hparams.n_value_expert > 0) {+ GGML_ASSERT(hparams.n_value_expert <= LLAMA_MAX_EXPERTS);+ GGML_ASSERT(hparams.n_value_expert_used > 0);+ GGML_ASSERT(hparams.n_value_expert_used <= hparams.n_value_expert);+ } else {