test: pin the srt-macos probe PATH and scale the BYOK serial timeout budget - #397
Merged
Merged
Conversation
The real sandbox-exec probes resolve their command through PATH, so inheriting the caller's let any wrapper ahead of /bin decide what `rm` means. On a machine that has run the agent, that is the recoverable-delete shim MCode installs into agent shells: `rm` resolves to the shim, the shim execs mavis-trash, the sandbox denies that trash move as a write outside the policy under test, and a correct allow-probe exits 1. The suite then reports a sandbox regression where the sandbox behaved correctly. Pin all three probe environments to the system binaries the probes actually use, matching the wrapper-argument test above them. This also drops the unguarded `process.env.PATH` in wrapProfile, which had no fallback and could hand a real sandbox spawn an undefined PATH. Fixes #394.
The first case is 30+ serial CLI spawns, each booting the whole runtime, so its wall-clock cost tracks machine speed rather than the transport it asserts. The flat 90s budget only held with roughly 1.5x headroom on an idle machine, so a parallel build, a laptop under load, or a shared CI runner turned a passing transport into a `testTimeoutFailure` that named a product failure no assertion had actually observed. Budget it the way smoke.test.mjs already budgets runtime startup: a base allowance plus a Windows multiplier for slower process spawn. The test is not slowed down by a larger ceiling; it only stops failing for reasons unrelated to what it checks. Fixes #395.
tournierjc
added a commit
to tournierjc/kinetick-code
that referenced
this pull request
Sep 29, 2026
…indows, cascade stop) (#96) * fix: remove forced branching from bash guidance (MiniMax-AI#358) Co-authored-by: minimax <adhere@minimaxi.com> * feat: sync reviewed 0.5.5 runtime improvements (MiniMax-AI#367) Preserve public privacy defaults and distribution boundaries while porting compaction, Bash timeout, memory output and update-proxy improvements. Record selective provenance without advancing the full source baseline. Assisted-by: codex-cli reason:public-source-sync-0.5.5 * docs: publish feedback and private security contact channels (MiniMax-AI#360) * docs: publish feedback and private security contact channels * docs: correct MiniMax Agent X contact link * fix(tui): distinguish Bash recaps and import models during onboarding (MiniMax-AI#369) * fix: measure token speed over model generation time (MiniMax-AI#373) * chore: bump version to 0.5.6 (MiniMax-AI#374) * feat(config): add M3.1 Flash Preview to the fallback catalog (MiniMax-AI#375) Include context window and effort controls in the first-run catalog while preserving existing managed snapshots. Docs-Impact: Existing model selection workflow is unchanged. Assisted-by: codex-cli reason:m31-flash-fallback-sync * chore: bump version to 0.5.7 (MiniMax-AI#377) * chore: bump version to 0.5.7 * test: drain stderr before nonzero Bash fixture exit * fix(tui): display hook system messages without adding model context (MiniMax-AI#376) * fix(tui): anchor restored sessions above inherited terminal history (MiniMax-AI#378) * fix(tui): keep slow terminal output off the input loop (MiniMax-AI#379) * chore: bump version to 0.5.8 (MiniMax-AI#380) * feat: cascade explicit session stops to owned background work (MiniMax-AI#381) Port the reviewed shared runtime behavior while retaining standalone composition. Keep conversation leave separate from explicit stop, suppress canceled task delivery, and track append activations through teardown. Assisted-by: codex-cli reason:selective-runtime-port Docs-Impact: document stop and session-leave behavior in docs/tui-capabilities.md Co-authored-by: chenhao <chenhao@minimaxi.com> * fix: query structured Windows source volume properties (MiniMax-AI#383) * feat(examples): add Pocket Pet demo and refresh README onboarding (MiniMax-AI#385) * feat(examples): add reproducible Pocket Pet demo and refresh onboarding * feat(examples): polish Pocket Pet interaction and demo * fix(tui): dismiss stale terminal errors when a new turn starts (MiniMax-AI#388) * fix(tui): preserve native scrollback during automatic updates (MiniMax-AI#389) * fix(tui): preserve native scrollback during projection updates * fix(tui): isolate transient overlays from native scrollback * fix(tui): stabilize native history and diff overlay frames (MiniMax-AI#390) * fix(tui): prevent idle transcript replay and diff overlay frames * fix(tui): retain prompt identity and deferred main-buffer geometry * test: pin the srt-macos probe PATH and scale the BYOK serial timeout budget (MiniMax-AI#397) * test(sandbox): pin the probe PATH instead of inheriting the ambient one The real sandbox-exec probes resolve their command through PATH, so inheriting the caller's let any wrapper ahead of /bin decide what `rm` means. On a machine that has run the agent, that is the recoverable-delete shim MCode installs into agent shells: `rm` resolves to the shim, the shim execs mavis-trash, the sandbox denies that trash move as a write outside the policy under test, and a correct allow-probe exits 1. The suite then reports a sandbox regression where the sandbox behaved correctly. Pin all three probe environments to the system binaries the probes actually use, matching the wrapper-argument test above them. This also drops the unguarded `process.env.PATH` in wrapProfile, which had no fallback and could hand a real sandbox spawn an undefined PATH. Fixes MiniMax-AI#394. * test(byok): scale the serial BYOK budget by platform The first case is 30+ serial CLI spawns, each booting the whole runtime, so its wall-clock cost tracks machine speed rather than the transport it asserts. The flat 90s budget only held with roughly 1.5x headroom on an idle machine, so a parallel build, a laptop under load, or a shared CI runner turned a passing transport into a `testTimeoutFailure` that named a product failure no assertion had actually observed. Budget it the way smoke.test.mjs already budgets runtime startup: a base allowance plus a Windows multiplier for slower process spawn. The test is not slowed down by a larger ceiling; it only stops failing for reasons unrelated to what it checks. Fixes MiniMax-AI#395. * fix(tests): keep fork-adapted provider/onboarding/transcript tests - provider-application.test.ts and tui-transcript-view.test.ts: take fork-main versions (Kcode* exports + PR #79 onboarding sequences) — upstream 5f3240b versions referenced removed Mcode* symbols and the pre-fe24b27 key flow. - onboarding + scrollback suites pass with fork flow (111 + 56 tests green). * fix(tests): restore fork-main test/ suite set (source-sync, windows-contract, byok timeouts, vitest registry, public-source) The merge had kept upstream@5f3240b versions of test/source-sync.test.mjs and test/windows-contract.test.mjs, which contradicted the fork's release tooling: releaseManifest emits bin.kcode + private npm manifests + kcode-only onboarding (tests expected bin.mcode / upstream update-proxy service) and the Windows contract no longer imports the removed update service. Fork-main versions are a strict superset. source-sync now 56/56 locally; full verify profile rerun next. --------- Co-authored-by: AdhereZ <85055734+AdhereZ@users.noreply.github.com> Co-authored-by: minimax <adhere@minimaxi.com> Co-authored-by: DanielWalnut <45447813+hetaoBackend@users.noreply.github.com> Co-authored-by: AmsZuidas <254873068+amszuidas@users.noreply.github.com> Co-authored-by: chenhao <chenhao@minimaxi.com> Co-authored-by: hermes-agent <hermes-agent@users.noreply.github.com>
tournierjc
added a commit
to tournierjc/kinetick-code
that referenced
this pull request
Sep 30, 2026
…t, run recovery) (#105) * fix: remove forced branching from bash guidance (MiniMax-AI#358) Co-authored-by: minimax <adhere@minimaxi.com> * feat: sync reviewed 0.5.5 runtime improvements (MiniMax-AI#367) Preserve public privacy defaults and distribution boundaries while porting compaction, Bash timeout, memory output and update-proxy improvements. Record selective provenance without advancing the full source baseline. Assisted-by: codex-cli reason:public-source-sync-0.5.5 * docs: publish feedback and private security contact channels (MiniMax-AI#360) * docs: publish feedback and private security contact channels * docs: correct MiniMax Agent X contact link * fix(tui): distinguish Bash recaps and import models during onboarding (MiniMax-AI#369) * fix: measure token speed over model generation time (MiniMax-AI#373) * chore: bump version to 0.5.6 (MiniMax-AI#374) * feat(config): add M3.1 Flash Preview to the fallback catalog (MiniMax-AI#375) Include context window and effort controls in the first-run catalog while preserving existing managed snapshots. Docs-Impact: Existing model selection workflow is unchanged. Assisted-by: codex-cli reason:m31-flash-fallback-sync * chore: bump version to 0.5.7 (MiniMax-AI#377) * chore: bump version to 0.5.7 * test: drain stderr before nonzero Bash fixture exit * fix(tui): display hook system messages without adding model context (MiniMax-AI#376) * fix(tui): anchor restored sessions above inherited terminal history (MiniMax-AI#378) * fix(tui): keep slow terminal output off the input loop (MiniMax-AI#379) * chore: bump version to 0.5.8 (MiniMax-AI#380) * feat: cascade explicit session stops to owned background work (MiniMax-AI#381) Port the reviewed shared runtime behavior while retaining standalone composition. Keep conversation leave separate from explicit stop, suppress canceled task delivery, and track append activations through teardown. Assisted-by: codex-cli reason:selective-runtime-port Docs-Impact: document stop and session-leave behavior in docs/tui-capabilities.md Co-authored-by: chenhao <chenhao@minimaxi.com> * fix: query structured Windows source volume properties (MiniMax-AI#383) * feat(examples): add Pocket Pet demo and refresh README onboarding (MiniMax-AI#385) * feat(examples): add reproducible Pocket Pet demo and refresh onboarding * feat(examples): polish Pocket Pet interaction and demo * fix(tui): dismiss stale terminal errors when a new turn starts (MiniMax-AI#388) * fix(tui): preserve native scrollback during automatic updates (MiniMax-AI#389) * fix(tui): preserve native scrollback during projection updates * fix(tui): isolate transient overlays from native scrollback * fix(tui): stabilize native history and diff overlay frames (MiniMax-AI#390) * fix(tui): prevent idle transcript replay and diff overlay frames * fix(tui): retain prompt identity and deferred main-buffer geometry * test: pin the srt-macos probe PATH and scale the BYOK serial timeout budget (MiniMax-AI#397) * test(sandbox): pin the probe PATH instead of inheriting the ambient one The real sandbox-exec probes resolve their command through PATH, so inheriting the caller's let any wrapper ahead of /bin decide what `rm` means. On a machine that has run the agent, that is the recoverable-delete shim MCode installs into agent shells: `rm` resolves to the shim, the shim execs mavis-trash, the sandbox denies that trash move as a write outside the policy under test, and a correct allow-probe exits 1. The suite then reports a sandbox regression where the sandbox behaved correctly. Pin all three probe environments to the system binaries the probes actually use, matching the wrapper-argument test above them. This also drops the unguarded `process.env.PATH` in wrapProfile, which had no fallback and could hand a real sandbox spawn an undefined PATH. Fixes MiniMax-AI#394. * test(byok): scale the serial BYOK budget by platform The first case is 30+ serial CLI spawns, each booting the whole runtime, so its wall-clock cost tracks machine speed rather than the transport it asserts. The flat 90s budget only held with roughly 1.5x headroom on an idle machine, so a parallel build, a laptop under load, or a shared CI runner turned a passing transport into a `testTimeoutFailure` that named a product failure no assertion had actually observed. Budget it the way smoke.test.mjs already budgets runtime startup: a base allowance plus a Windows multiplier for slower process spawn. The test is not slowed down by a larger ceiling; it only stops failing for reasons unrelated to what it checks. Fixes MiniMax-AI#395. * feat: sync MiniMax Code 0.5.9 runtime and TUI changes (MiniMax-AI#398) TUI - Report active root-session background tasks as `background=N` in the `[V]` build-mode status line. Bash still owned by its foreground tool call is excluded, and the count holds at 1 after a turn settles until a fresh task list arrives. The documented minimum width is now 102 columns. Runtime - The MiniMax API-key route now shares the official model catalog with the managed route; the first-run catalog moves to `minimax-model-catalog.ts` with unchanged model definitions. - Apply byte limits to large media and accumulated history for BYOK requests. - Send the M3 thinking toggle as a thinking setting rather than a generic reasoning effort. - Allow edit and rewind after an interrupt that left only a background reminder in canonical history. - Read less data when listing session files and navigating long histories. - Measure token output rate from the time events are observed. - Add `worktreeRefreshBeforeCreate` (default on) to fetch the selected upstream before creating a worktree, and exclude nested roots from fork worktree fingerprints. - Add Ghostty to the external editor catalog. - Enable the Codex OAuth model settings entry by default. Prompts - Cron guidance now lives only in tool definitions; the legacy feature template is empty. Memory edits use the `memory` tool's `edit` operation. - Clarify multimodal tool discovery in the mcode-tools reminder. * chore: release MiniMax Code 0.5.9 (MiniMax-AI#399) * Revert MiniMax-AI#390 and MiniMax-AI#389 to restore TUI scrollback baseline (MiniMax-AI#396) * Revert "fix(tui): stabilize native history and diff overlay frames (MiniMax-AI#390)" This reverts commit 1e136bf. * Revert "fix(tui): preserve native scrollback during automatic updates (MiniMax-AI#389)" This reverts commit 9b9c07b. * fix(tui): sync 0.5.10 prompt and run recovery fixes (MiniMax-AI#410) * chore: release MiniMax Code 0.5.10 (MiniMax-AI#411) * fix(merge): adapt upstream stale-run watchdog to fork multi-live-turn; revert MiniMax-AI#389 renderer hunk per upstream revert 3d369f5 * fix(tests): drop scrollback suite reverted upstream (3d369f5); fork-adapt stale-run/runtime-event-flow/literal-text tests * chore(inventory): drop reverted scrollback suite from public source manifest * fix(tests): adopt upstream 5683465 literal-prompt expectation in transcript rail test * fix(merge): keep fork chat-controller/transcript model (retainsTranscript, session cost, scrollbackId); upstream revert versions dropped fork pane hooks * fix(tests): adopt upstream revert 3d369f5 versions of engine/viewport/background-panel suites * fix(tests): keep fork markdown-prompt expectation (fork transcript renders user markdown) --------- Co-authored-by: AdhereZ <85055734+AdhereZ@users.noreply.github.com> Co-authored-by: minimax <adhere@minimaxi.com> Co-authored-by: DanielWalnut <45447813+hetaoBackend@users.noreply.github.com> Co-authored-by: AmsZuidas <254873068+amszuidas@users.noreply.github.com> Co-authored-by: chenhao <chenhao@minimaxi.com> Co-authored-by: hermes-agent <hermes-agent@users.noreply.github.com>
4 tasks done
tournierjc
added a commit
to tournierjc/kinetick-code
that referenced
this pull request
Oct 3, 2026
…r, on 0.6.0/0.6.1 sync) (#110) * fix: remove forced branching from bash guidance (MiniMax-AI#358) Co-authored-by: minimax <adhere@minimaxi.com> * feat: sync reviewed 0.5.5 runtime improvements (MiniMax-AI#367) Preserve public privacy defaults and distribution boundaries while porting compaction, Bash timeout, memory output and update-proxy improvements. Record selective provenance without advancing the full source baseline. Assisted-by: codex-cli reason:public-source-sync-0.5.5 * docs: publish feedback and private security contact channels (MiniMax-AI#360) * docs: publish feedback and private security contact channels * docs: correct MiniMax Agent X contact link * fix(tui): distinguish Bash recaps and import models during onboarding (MiniMax-AI#369) * fix: measure token speed over model generation time (MiniMax-AI#373) * chore: bump version to 0.5.6 (MiniMax-AI#374) * feat(config): add M3.1 Flash Preview to the fallback catalog (MiniMax-AI#375) Include context window and effort controls in the first-run catalog while preserving existing managed snapshots. Docs-Impact: Existing model selection workflow is unchanged. Assisted-by: codex-cli reason:m31-flash-fallback-sync * chore: bump version to 0.5.7 (MiniMax-AI#377) * chore: bump version to 0.5.7 * test: drain stderr before nonzero Bash fixture exit * fix(tui): display hook system messages without adding model context (MiniMax-AI#376) * fix(tui): anchor restored sessions above inherited terminal history (MiniMax-AI#378) * fix(tui): keep slow terminal output off the input loop (MiniMax-AI#379) * chore: bump version to 0.5.8 (MiniMax-AI#380) * feat: cascade explicit session stops to owned background work (MiniMax-AI#381) Port the reviewed shared runtime behavior while retaining standalone composition. Keep conversation leave separate from explicit stop, suppress canceled task delivery, and track append activations through teardown. Assisted-by: codex-cli reason:selective-runtime-port Docs-Impact: document stop and session-leave behavior in docs/tui-capabilities.md Co-authored-by: chenhao <chenhao@minimaxi.com> * fix: query structured Windows source volume properties (MiniMax-AI#383) * feat(examples): add Pocket Pet demo and refresh README onboarding (MiniMax-AI#385) * feat(examples): add reproducible Pocket Pet demo and refresh onboarding * feat(examples): polish Pocket Pet interaction and demo * fix(tui): dismiss stale terminal errors when a new turn starts (MiniMax-AI#388) * fix(tui): preserve native scrollback during automatic updates (MiniMax-AI#389) * fix(tui): preserve native scrollback during projection updates * fix(tui): isolate transient overlays from native scrollback * fix(tui): stabilize native history and diff overlay frames (MiniMax-AI#390) * fix(tui): prevent idle transcript replay and diff overlay frames * fix(tui): retain prompt identity and deferred main-buffer geometry * test: pin the srt-macos probe PATH and scale the BYOK serial timeout budget (MiniMax-AI#397) * test(sandbox): pin the probe PATH instead of inheriting the ambient one The real sandbox-exec probes resolve their command through PATH, so inheriting the caller's let any wrapper ahead of /bin decide what `rm` means. On a machine that has run the agent, that is the recoverable-delete shim MCode installs into agent shells: `rm` resolves to the shim, the shim execs mavis-trash, the sandbox denies that trash move as a write outside the policy under test, and a correct allow-probe exits 1. The suite then reports a sandbox regression where the sandbox behaved correctly. Pin all three probe environments to the system binaries the probes actually use, matching the wrapper-argument test above them. This also drops the unguarded `process.env.PATH` in wrapProfile, which had no fallback and could hand a real sandbox spawn an undefined PATH. Fixes MiniMax-AI#394. * test(byok): scale the serial BYOK budget by platform The first case is 30+ serial CLI spawns, each booting the whole runtime, so its wall-clock cost tracks machine speed rather than the transport it asserts. The flat 90s budget only held with roughly 1.5x headroom on an idle machine, so a parallel build, a laptop under load, or a shared CI runner turned a passing transport into a `testTimeoutFailure` that named a product failure no assertion had actually observed. Budget it the way smoke.test.mjs already budgets runtime startup: a base allowance plus a Windows multiplier for slower process spawn. The test is not slowed down by a larger ceiling; it only stops failing for reasons unrelated to what it checks. Fixes MiniMax-AI#395. * feat: sync MiniMax Code 0.5.9 runtime and TUI changes (MiniMax-AI#398) TUI - Report active root-session background tasks as `background=N` in the `[V]` build-mode status line. Bash still owned by its foreground tool call is excluded, and the count holds at 1 after a turn settles until a fresh task list arrives. The documented minimum width is now 102 columns. Runtime - The MiniMax API-key route now shares the official model catalog with the managed route; the first-run catalog moves to `minimax-model-catalog.ts` with unchanged model definitions. - Apply byte limits to large media and accumulated history for BYOK requests. - Send the M3 thinking toggle as a thinking setting rather than a generic reasoning effort. - Allow edit and rewind after an interrupt that left only a background reminder in canonical history. - Read less data when listing session files and navigating long histories. - Measure token output rate from the time events are observed. - Add `worktreeRefreshBeforeCreate` (default on) to fetch the selected upstream before creating a worktree, and exclude nested roots from fork worktree fingerprints. - Add Ghostty to the external editor catalog. - Enable the Codex OAuth model settings entry by default. Prompts - Cron guidance now lives only in tool definitions; the legacy feature template is empty. Memory edits use the `memory` tool's `edit` operation. - Clarify multimodal tool discovery in the mcode-tools reminder. * chore: release MiniMax Code 0.5.9 (MiniMax-AI#399) * Revert MiniMax-AI#390 and MiniMax-AI#389 to restore TUI scrollback baseline (MiniMax-AI#396) * Revert "fix(tui): stabilize native history and diff overlay frames (MiniMax-AI#390)" This reverts commit 1e136bf. * Revert "fix(tui): preserve native scrollback during automatic updates (MiniMax-AI#389)" This reverts commit 9b9c07b. * fix(tui): sync 0.5.10 prompt and run recovery fixes (MiniMax-AI#410) * chore: release MiniMax Code 0.5.10 (MiniMax-AI#411) * fix: include hidden thinking in TPS timing (MiniMax-AI#413) * fix: include hidden thinking in TPS timing * docs: note thinking_start in first token timing comment * test(windows): allow the NTFS source check to exceed the default timeout --------- Co-authored-by: hetaoBackend <hetao7@pku.edu.cn> * fix: omit empty tools from OpenAI compaction requests (MiniMax-AI#199) * fix: omit empty tools on OpenAI compaction requests * fix: negotiate missing tools with bounded compatibility recovery * fix: simplify empty tools handling to omit absent definitions * fix(tui): keep regular-mode history stable during live runs (MiniMax-AI#416) Regular mode wrote rows into native scrollback as soon as they scrolled off screen. When such a row later changed (a parallel tool finishing, a streamed table widening, a list turning loose, a turn growing past the projection fold, the welcome status badge flipping, or a stopped prompt gaining its cancelled marker), the renderer cleared scrollback and replayed the whole session from the welcome logo. Only final rows now reach native history: - The transcript reports how many leading rows later updates cannot change, including the committed blocks of a streaming Markdown reply. - The chat layout keeps rows that may still change within one screen above the footer, showing their latest rows under a one-line notice when they do not fit. - The regular-mode projection only appends; established turns are not re-folded or dropped. - The welcome banner above a conversation is static; account notices that need action appear above the Composer. - Stopping a run no longer marks its delivered prompt as cancelled; the marker stays reserved for prompts returned to the Composer. To keep long sessions responsive, the transcript drops final rows far above the screen and the engine rebases its retained state (takeDiscardedRows) instead of rewriting history. * feat: sync and release MiniMax Code 0.6.0 (MiniMax-AI#421) Port the reviewed 0.6.0 runtime and TUI behavior into the standalone distribution and bump the release version to 0.6.0. - Allow /retry inside a /btw side conversation to resend its last message. - Default to MiniMax-M3.1-Flash-Preview when no model has been selected. - After an accepted Goal completion, keep the Turn open for one final reply that summarizes the result and deliverables; blocked proposals still end the Turn. - Do not retry provider safety refusals, including on BYOK, and classify them as content_filter; keep Anthropic refusal details in the error. - Retry TLS record verification failures before output like other transient network errors. - Keep a post-compaction reminder at the tail of a continuation instead of aborting the provider call and recompacting on every retry. * feat: sync and release MiniMax Code 0.6.1 (MiniMax-AI#422) Allow /doctor and /feedback in a /btw side conversation so a failed side response can be diagnosed or reported without leaving it. Neither command mutates the parent or side Session. /quit stays blocked in the side view, because leaving from there aborts only the side Turn and skips side Session cleanup. Bump the root and TUI source versions to 0.6.1. * test(tui): adopt upstream MiniMax-AI#410 literal-prompt assertion in compact-rail test Upstream 5683465 (MiniMax-AI#410) changed the 'renders intent and execution as one compact visual rail' expectation to keep the prompt's ** markers literal (fork prompt-literal behavior). The three-way merge kept the pre-MiniMax-AI#410 expectation; adopt the MiniMax-AI#410 form. * fix(config): adopt upstream MiniMax-AI#421 default model MiniMax-M3.1-Flash-Preview Upstream 9150441 (sync 0.6.0) flipped buildPresetEntry's defaultModel to minimax/MiniMax-M3.1-Flash-Preview; the three-way merge kept the main side for config.ts and dropped the flip, breaking the MiniMax-AI#421-pinned model-selection/management suites. Restore the upstream value. * fix(tui): keep side-session Esc and main run timer consistent (MiniMax-AI#423) In a /btw side conversation, an empty Escape no longer arms the double-Escape /edit shortcut or shows its "Press Esc again to edit" hint, since /edit is unavailable in side conversations. Escape still interrupts a live side response. Switching between the side and main views re-adopted the main Session's live Turn at the switch time, which reset the Running/Loading timer and shortened the settled Turn duration. A Turn start ledger now records the earliest observed start (submission, session.start events including hidden Sessions, and adoption), and both re-adoption and the activity line use it. Bump the root and TUI source versions to 0.6.2. * fix(tui): adopt upstream MiniMax-AI#423 side-session Esc and turn start ledger Record the earliest Turn start across side-session switches so the main run timer and settled duration stay stable, and ignore double-Escape /edit while a side conversation is open. Fork packages stay kinetick-code and @mavis/code at 0.6.9, and multi-tab live turn watchers stay in place. Co-authored-by: tournierjc <tournierjc@users.noreply.github.com> * test(tui): drop duplicate applyPendingModelSelection key in command-flow mock The duplicate key dates from the #55/#57 merge on origin/main (5bba9c7): both sides added the same mock key. vitest transforms tolerate it; ESLint does not. --------- Co-authored-by: AdhereZ <85055734+AdhereZ@users.noreply.github.com> Co-authored-by: minimax <adhere@minimaxi.com> Co-authored-by: DanielWalnut <45447813+hetaoBackend@users.noreply.github.com> Co-authored-by: AmsZuidas <254873068+amszuidas@users.noreply.github.com> Co-authored-by: chenhao <chenhao@minimaxi.com> Co-authored-by: SaladDay <1203511142@qq.com> Co-authored-by: hetaoBackend <hetao7@pku.edu.cn> Co-authored-by: hermes-agent <hermes-agent@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: tournierjc <tournierjc@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change
Two test-harness defects that report product failures where the product behaved correctly. No runtime behavior changes; only test environment and test budget.
#394 — the sandbox probes inherited the caller's
PATH. The realsrt-macossandbox-exec probes spawn a process and resolve their command throughPATH, so inheriting the ambient one let any wrapper ahead of/bindecide whatrmmeans. On a machine that has run the agent, that wrapper is the recoverable-delete shim MCode installs into agent shells:rmresolves to the shim, the shim execsmavis-trash, the sandbox denies that trash move as a write outside the policy under test, and a correct allow-probe exits 1. The suite then reported a sandbox regression where the sandbox was right.Pinned all three probe environments (
runProbe,gitProbeEnv,wrapProfile) to the system binaries the probes actually use, matching the wrapper-argument test already higher in the same file. This also drops the unguardedprocess.env.PATHinwrapProfile, which had no fallback and could hand a real sandbox spawn an undefinedPATH.#395 — the serial BYOK case had a flat wall-clock budget.
test/byok.test.mjs's first case is 30+ serial CLI spawns, each booting the whole runtime, so its cost tracks machine speed rather than the transport it asserts. The flat90000budget held only ~1.5x headroom on an idle machine (measured 58.6s of 90s), so a parallel build, a laptop under load, or a shared CI runner turned a passing transport into atestTimeoutFailurethat named a failure no assertion had observed. Budgeted it the waysmoke.test.mjsalready budgets runtime startup — a base allowance plus a Windows multiplier for slower process spawn. A larger ceiling does not slow the test; it only stops it failing for reasons unrelated to what it checks.I did not take #395's second suggested approach (splitting the proxy matrix into its own test for parallelism). It moves shared-fixture ordering around the Node 24.0–24.2
t.test()workaround atbyok.test.mjs:283, which is a materially larger change than the reported problem warrants.Labels
Proposing
bugonly. Per the label guide, product labels are left unset for tooling changes with no specific product impact — this touches test environments and a test timeout, not the CLI runtime or its build. Addingcliif you read the sandbox backend's test contract as in scope. Noperf:full: no runtime path changed.Impact worth being precise about
#394 is a local developer breakage, not a CI one. The shim is injected into the agent's spawn environment by
resolveAgentBashEnvPolicy; a GitHub runner never runs the agent, so it has no shim onPATH. In practice this brokepnpm verifyfor anyone on macOS running it from an MCode agent shell, and only there. #395 is the one that can reach CI:test:byokcarries noplatformsrestriction, so it runs on the ubuntu/macos/windows matrix, and Windows process spawn is the slowest case.Fixes #394.
Fixes #395.
Validation
pnpm verify— 15 gates pass on darwin, run on the clean committed head (1d7ca05) with no uncommitted tracked changes. Skippedtest:windows(not applicable on this platform) andtest:release-package(requires an npm release archive).test:sandboxre-run with~/.minimax/shimsstill first onPATH, i.e. the exact failing condition: 48/48 pass, against 46/48 before. Not validated by removing the shim from the environment.test:byok: 3/3 pass, first case 32.7s against the new 180s budget — measured whiletypecheckran concurrently, so under CPU contention rather than idle.typecheck,check:source,check:tsconfig,lint:tuipass individually as well.check:sourceneeded no inventory regeneration: both files are already inrelease/public-source.jsonand these are content-only edits.Publication and contribution checks
release/public-source.json; new tests are declared intest/vitest-suites.jsonwhere applicable. — No files added or removed; no new test files, sotest/vitest-suites.jsonis unchanged.NOT RUN
win32branch of the new BYOK budget is reasoned fromsmoke.test.mjs:17's existing convention and the issue report, not measured. The platform profile does not run here.test:windows(the runtime validation suite) — platform-gated off on darwin.test:release-package— requires a built npm release archive, which this profile does not produce.Maintainer handoff
Publication scope or license changes: none.
Shared-source port: not needed. Both files are part of the public projection and the change is test-harness only; there is no internal counterpart to port.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.