Skip to content

merge: upstream da22f11 (#522 built-in skills shared dir + ACP launcher) - #113

Open
tournierjc wants to merge 68 commits into
mainfrom
merge/upstream-c172cf9
Open

tournierjc wants to merge 68 commits into
mainfrom
merge/upstream-c172cf9

Conversation

@tournierjc

@tournierjc tournierjc commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

merge: upstream da22f11 (MiniMax-AI#522 built-in skills shared dir + ACP launcher)

Sync continue de la PR de rolling. Dernier SHA amont intégré : da22f11 (tip upstream/main au 21/10).

Commits upstream intégrés dans cette tête

  • da22f11 fix(skills): don't wipe shared .builtin-skills; add @minimax-ai/code-acp launcher for ACP registry (fix(skills): don't wipe shared .builtin-skills; add @minimax-ai/code-acp launcher for ACP registry MiniMax-AI/minimax-code#522) — 8 fichiers, +223/−9
    • packages/local-runtime/src/skills/seed-builtin.ts : le seed ne wipe plus tout .builtin-skills (dir partagée desktop/CLI), remplace seulement les skills possédés ; EPERM/EACCES loggés et retry au prochain start.
    • packages/code-acp/ (nouveau) : launcher mono-bin code-acp qui spawn le bin mcode de @minimax-ai/code épinglé. acp.js = spawn local uniquement (stdio inherit, gestion signaux) — aucun fetch/URL externe dans le code.
    • .github/workflows/cli-release.yml : job publish-acp opt-in (vars.MCODE_ACP_PUBLISH == 'true' + secret NPM_TOKEN). Le fork ne publie jamais sur npm (releases GitHub-Release-only, cf. docs/releasing.md) ; le job reste inactif tant que la variable n'est pas posée.
    • packages/local-runtime/test/unit/seed-builtin-shared-dir.test.ts : nouveau test amont, vert.

Historique des vagues précédentes dans les commits de merge de la branche (56221c1 → c21e88e → 5821f7c → da22f11).

Écran télémétrie / egress

  • 0 chemin telemetry/analytics/beacon introduit. metrics-telemetry-privacy.test.ts présent dans le vitest-suites.json amont = suite supprimée par le fork (PR security: default-deny egress guard + remove the telemetry subsystem #1) → non réinscrite ; le vitest-suites.json de la branche reste la version fork (main).
  • docs/telemetry.md absent, analytics/ absent, 0 réf. requireTelemetryRunner hors mention documentaire dans docs/releasing.md, 0 businessEventTracker, 0 marker de conflit, 0 node_modules committé.
  • URLs externes ajoutées : registry.npmjs.org (setup-node du job opt-in), agent.minimax.io (homepage/README du package launcher), github.com/MiniMax-AI (repo metadata) — métadonnées de package, pas de code sortant.

Conflits et résolutions

  • release/public-source.json (content) : régénéré via node scripts/source-inventory.mjs --write (4398 entrées ; + code-acp ×3, + seed-builtin-shared-dir.test.ts).
  • test/vitest-suites.json : version fork conservée + inscription de seed-builtin-shared-dir.test.ts dans la suite capability ; suites télémétrie/checkin amont non réinscrites.
  • packages/code-acp/* : pris tels quels (additif, pas de conflit).

Gates locaux (branche, node_modules du clone principal en symlinks)

  • typecheck tsc -p tsconfig.standalone.json : exit 0
  • check_gates.sh : 10/10 gates exit 0 (copilot, provider-presets, provider-application, session-tabs, session-cost, provider-manager, command-feature-flow, fork-identity kinetick-code 0.6.9, egress-guard 14/14)
  • theme + tui-app : 431/431
  • seed-builtin-shared-dir (nouveau test amont) : 2/2
  • build.mjs : 0 (Kinetick Code 0.6.9, 6415 fichiers)
  • smoke : 20 pass / 0 fail / 1 skip
  • byok : 5/5
  • source-sync : 56 pass / 0 fail / 1 skip

CI

État lu via gh pr checks — voir le commentaire de suivi / le rapport du job.

AdhereZ and others added 30 commits September 25, 2026 19:55
Co-authored-by: minimax <adhere@minimaxi.com>
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
…-AI#360)

* docs: publish feedback and private security contact channels

* docs: correct MiniMax Agent X contact link
…-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

* test: drain stderr before nonzero Bash fixture exit
…x-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>
…niMax-AI#385)

* feat(examples): add reproducible Pocket Pet demo and refresh onboarding

* feat(examples): polish Pocket Pet interaction and demo
…x-AI#389)

* fix(tui): preserve native scrollback during projection updates

* fix(tui): isolate transient overlays from native scrollback
…I#390)

* fix(tui): prevent idle transcript replay and diff overlay frames

* fix(tui): retain prompt identity and deferred main-buffer geometry
…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.
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.
…seline (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: 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 on OpenAI compaction requests

* fix: negotiate missing tools with bounded compatibility recovery

* fix: simplify empty tools handling to omit absent definitions
…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.
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.
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.
…x-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.
hetaoBackend and others added 5 commits October 9, 2026 14:45
…e, session id once) (MiniMax-AI#459)

P1-8: two reminders were spending tokens on every request/turn.

--timeout execution budget (request-only, appended per LLM request):
- Emit only on the first request, when remaining budget first drops to
  <=50%, <=25%, <=10% of the total, and on every request inside the final
  two minutes. Total budget is measured from hook creation (turn prep).
- Coarse text: whole minutes above 2 min, 10-second steps inside it.
- Drop the "since the previous model request" sentence.
- Admission rejection does not consume a threshold. Caller's cancellation
  timer stays authoritative; hook ordering constraint unchanged.

Per-turn <agent-context> system reminder (local runtime):
- date: Date#toString() without seconds (minute precision).
- The slim (turn >= 2) block omits YOUR SESSION ID when the provider-facing
  history since the latest compaction already contains a user message with
  this session's ID. First turn and the first turn after a compaction that
  dropped it still carry the ID. Full first-turn block and cloud scene are
  unchanged (flag absent => old behaviour).
…paction (MiniMax-AI#460)

* fix: stop retrying oversized requests and recover with one forced compaction

A request the provider rejects as too large (HTTP 413, request_too_large,
the local request-body check, or a context-window overflow such as MiniMax
'context window exceeds limit (2013)') fails identically on every resend.
The API-key and custom-provider paths retried it five times.

- Classify these rejections as deterministic (isLLMRequestOversized), so
  withLLMRetry sends them once on every path.
- Add contextOverflowRecoveryHook to PiTurnHooks. When the main-agent
  request is rejected as too large before any output, the runner runs only
  these hooks once per turn with trigger 'context_overflow_recovery',
  persists the replacement and resends once; a second rejection is final.
- local-runtime-v2 registers the automatic compaction hook there; the
  trigger forces compaction and targets at most half of the rejected
  request, since the local estimate had admitted it.

* fix: surface the original rejection when overflow recovery throws
…rflow compaction (MiniMax-AI#466)

* fix(runtime): drop forced compaction after oversized requests

Remove the one-shot compact-and-resend recovery that ran after a provider
rejected a main-agent request as too large. The resend bypassed the
normal before-LLM pipeline, so request-level transforms (screenshot caps,
session identity restoration) were not reapplied to it.

Oversized requests (HTTP 413, request_too_large, the local request-body
check, context-window overflow) are still classified as deterministic
rejections and are not resent unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(runtime): restore the session ID after compaction drops it

The turn reminder omits `YOUR SESSION ID` while earlier history already
shows it. When automatic compaction summarizes that history away, the
model would lose its own session ID for the rest of the turn. A stateless
post-compaction hook now appends a hidden session identity reminder when
no visible user message or identity reminder after the latest compaction
carries the ID (before the current user message on initial compaction,
at the tail mid-turn). The preparation check counts that reminder too, so
the next turn does not repeat the ID.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…rtup (MiniMax-AI#465)

* fix(tui): support SOCKS5 proxies and stop ALL_PROXY from crashing startup

Fixes MiniMax-AI#393. ALL_PROXY=socks5://... used to abort CLI startup because only
http:// and https:// proxy URLs were accepted.

- Route socks5://, socks5h://, and socks:// proxies through undici's
  Socks5ProxyAgent, which sends host names to the proxy for resolution.
  socks5h:// is rewritten to socks5:// with its credentials preserved.
  NO_PROXY hosts, including loopback, still connect directly.
- Ignore an unusable ALL_PROXY fallback (for example socks4:// or a
  malformed URL) with a single stderr warning instead of failing startup.
  Explicit invalid HTTP_PROXY/HTTPS_PROXY values are still rejected.
- Mask proxy credentials in warnings.
- Suppress only undici's one-time SOCKS5 ExperimentalWarning while the
  agent is constructed; other warnings are unaffected.
- Add unit tests and a loopback SOCKS5 integration test covering
  no-auth, username/password auth, domain-name CONNECT, and NO_PROXY.

* fix(tui): handle IPv6 SOCKS5 proxies and malformed proxy credentials

Follow-up to MiniMax-AI#393 review feedback.

- Dial SOCKS5 proxies at IPv6 literals such as socks5://[::1]:1080.
  undici passes the bracketed URL hostname to the socket connect, which
  failed with ENOTFOUND; a wrapped connector now strips the brackets.
- Validate the percent-encoding of proxy user names and passwords while
  classifying proxy settings. undici decodes them during agent
  construction and threw URIError, so a malformed ALL_PROXY made every
  command, including --help, exit with only "URI malformed". Such an
  ALL_PROXY is now ignored with a redacted warning; an explicit
  HTTP_PROXY/HTTPS_PROXY fails with an error naming the variable.
- Pass decoded SOCKS5 credentials as agent options and remove them from
  the proxy URL so undici does not decode them again.
…stream-c172cf9

# Conflicts:
#	packages/local-runtime/src/api/hosted-agent-capabilities.ts
#	test/vitest-suites.json
@tournierjc tournierjc changed the title merge: upstream c172cf9 (#454 output rate, #448 exec timeout chunks) merge: upstream ebfdc00 (#465 SOCKS5, #466/#460 compaction, #459 reminders, #461 effort) Oct 9, 2026
@cursor cursor Bot changed the title merge: upstream ebfdc00 (#465 SOCKS5, #466/#460 compaction, #459 reminders, #461 effort) merge: upstream cee0791 (#477 Codex catalog client 0.162.0) Oct 12, 2026
@cursor

cursor Bot commented Oct 12, 2026

Copy link
Copy Markdown

Delta ebfdc00 → cee0791 (head dc1315d)

Cherry-pick propre de cee0791 / cee079138600224e9ad4d8b954c4a4ed549e15b6 — fix: update Codex catalog client version to 0.162.0 (MiniMax-AI#477). Un seul commit amont après ebfdc00. Identité inchangée : kinetick-code / kcode / Kinetick Code / @mavis/code 0.6.9.

Pris

  • cee0791 (fix: update Codex catalog client version to 0.162.0 MiniMax-AI/minimax-code#477) — CODEX_CATALOG_CLIENT_VERSION 0.153.0 → 0.162.0 dans packages/local-runtime-v2/src/service/model-system/connectivity/codex-model-discovery.ts. L'attente de codex-oauth.test.ts vise l'URL exacte https://chatgpt.com/backend-api/codex/models?client_version=0.162.0, et la note README du protocole Codex est alignée. Version de client catalogue Codex, indépendante de la version produit du fork. 3 fichiers, aucun conflit. Pas de régénération d'inventaire (contenu seul).

Déjà sur cette PR (delta c172cf9..ebfdc00) : 7682398 (MiniMax-AI#461 effort), 8e93b19 (MiniMax-AI#459 reminders), 5b4e0a4 (MiniMax-AI#460 compaction), c460f08 (MiniMax-AI#466 session ID), ebfdc00 (MiniMax-AI#465 SOCKS5), plus 8348311 (MiniMax-AI#454) et c172cf9 (MiniMax-AI#448) via fccc7e6.

Skips conservés (non réintroduits)

  • 553b19e / b26f634 — bumps de version amont. Numéros du fork conservés (0.6.9).
  • f466590 — canal de mise à jour npm-prefix exclusif MiniMax. Module retiré du fork.
  • Télémétrie (docs/telemetry.md, requireTelemetry, createTuiBusinessEventTracker, analytics sortant) : hors périmètre.
  • Branding / canaux MiniMax exclusifs et renommages minimax-code / mcode / MiniMax Code : non réintroduits quand ils entrent en conflit avec l'identité du fork.

Screening

Aucun hostname nouveau : chatgpt.com est déjà l'endpoint de découverte du catalogue Codex OAuth ; seul client_version change.

Gates locaux sur dc1315d (Node 24.21.0)

  • pnpm typecheck PASS
  • vitest OSS packages/local-runtime-v2/src/service/model-system/codex-oauth.test.ts 32/32 PASS
  • pnpm build PASS (Kinetick Code 0.6.9, 6413 sources) ; 0.162.0 présent dans le bundle
  • pnpm check:source PASS (4378 fichiers)
  • pnpm check:tsconfig PASS
  • pnpm check:egress PASS, y compris le scan d'artefact après build

CI verify (ubuntu/macos, Node 24) et performance sont en cours sur ce head. Pas de merge.

yujiachen-y and others added 2 commits October 13, 2026 16:02
* feat(tui): report program status with OSC 7501

* fix(tui): report approval and question waits without build-mode

Interaction readback was gated on the build-mode status line item, so with
the default configuration a pending permission or question was reported as
working in both the terminal title and OSC 7501. The readback now always
feeds the status projection; build-mode only controls rendering the [V] line.

Missing login is derived once in the status projection as an error with
loginRequired, so the [V] line keeps state=error while the title shows
"Needs login" and OSC 7501 reports blocked:kind=auth from the same fact.

Add tui.programStatus (default true) to disable OSC 7501 reports, document
why reports are not wrapped for tmux passthrough, and reference protocol
revision 0.4.
Cherry-pick of e798b46. The interactive TUI emits OSC 7501 on the local TTY:
idle, working, done, error, or blocked on permission, a question, or login.
Reports contain only state, kind, and app=kcode, with no heartbeat and no
network egress. tui.programStatus defaults to true.

Fork resolution: terminal titles stay the session title or "Kinetick Code".
Build-mode still owns the [V] line. A missing login stays status=error on that
line and is reported as blocked:kind=auth over OSC 7501.

Co-authored-by: kinetick-labs <kinetick-labs@users.noreply.github.com>
@cursor cursor Bot changed the title merge: upstream cee0791 (#477 Codex catalog client 0.162.0) merge: upstream e798b46 (#471 OSC 7501 program status) Oct 13, 2026
hetaoBackend and others added 3 commits October 15, 2026 13:45
MiniMax-AI#487)

README, README_ZH, SECURITY, installation, open-source-status,
release-audit, releasing, telemetry, tui-capabilities and verification
still declared 0.4.12 while package.json is 0.6.3 and the published npm
package is 0.6.9. The version and evidence baseline table named
packages/tui/package.json as its source of truth while asserting a value
that file contradicted.

The data directory default was verified against the published 0.6.9
package before updating the references that name it.

Historical records are intentionally left unchanged: the reviewed 0.4.12
import and shared-source baseline in docs/verification.md, the
packages/tui CHANGELOG timelines, and release/extraction.json.
…dency-free public validator (MiniMax-AI#484)

* docs(community): add community on-call SLA and group layering docs

Register the two new community documents in the public source inventory so
check:source passes.

- docs/community/oncall.md: role split (chat vs GitHub), rotation windows,
  48h triage SLA, label hygiene rules, contribution-request rules, weekly
  feedback replay, reply templates, weekly metrics.
- docs/community/groups.md: three community layers and what belongs in each,
  the single entry point, movement rules, Insider external-disclosure rule,
  showcase wall and AMA format.

* docs(plugins): publish Plugin V1 format contract, schemas and public validator

External authors had no path to the Plugin package format: the contract,
the four JSON Schemas, the reference vectors and the validator all lived in
the internal marketplace repository, and the only onboarding tool
(plugin-creator) is private.

This publishes the contract into the public repository:

- docs/plugins/package-format-v1.md, host-bindings.md, showcases.md
- schemas/plugins/{plugin,mcp,app,host-binding,marketplace}-v1.schema.json
- test-vectors/plugins/content-digest-v1.{source,expected}.json
- tools/plugins/validate-plugin.mjs

The public validator runs the same code path an external author runs, and
check:source now calls it, so the published schemas and the validator cannot
drift apart. It uses only dependencies the repository already declares.

Catalog membership, cross-file capability closure, archive limits and
content_digest remain the responsibility of the official Marketplace
validator at submission time.

* chore(source): record published Plugin contract paths in the source inventory

* chore(source): drop temporary validator fixtures from the source inventory

* fix(plugins): make the public Plugin validator dependency-free

check:source also runs inside the exported source snapshot, which has no
node_modules, so importing a YAML parser made the gate fail there. The Skill
frontmatter subset the V1 contract requires is a flat scalar mapping, so it is
parsed inline instead.

* docs(plugins): add the external author onboarding guide and check:plugin entry

The contract was published without a way in. This adds docs/plugins/README.md
with the clone-to-submit path and a pnpm check:plugin script so an author can
run the same validation the CI runs.
@tournierjc tournierjc changed the title merge: upstream e798b46 (#471 OSC 7501 program status) merge: upstream 9a93560 (#492 Google BYOK, #484 Plugin V1, #487 versions) Oct 15, 2026
# Conflicts:
#	README.md
#	README_ZH.md
#	SECURITY.md
#	docs/installation.md
#	docs/releasing.md
#	docs/telemetry.md
#	docs/tui-capabilities.md
#	packages/tui/src/tui/app-composition.ts
#	packages/tui/src/tui/app.ts
#	packages/tui/src/tui/controller/interaction/interaction-flow.ts
#	packages/tui/src/tui/controller/product/chrome-flow.ts
#	packages/tui/src/tui/launcher.ts
#	packages/tui/src/tui/platform/terminal-program-status.ts
#	packages/tui/test/unit/tui-app.test.ts
#	packages/tui/test/unit/tui-terminal-presentation.test.ts
#	packages/tui/test/unit/tui/controller/product/chrome-flow.test.ts
#	release/public-source.json
@kinetick-labs
kinetick-labs force-pushed the merge/upstream-c172cf9 branch from ead1485 to ad0b84b Compare October 15, 2026 18:09
yujiachen-y and others added 3 commits October 19, 2026 21:03
…paction trigger (MiniMax-AI#493)

Users can set an upper bound for the automatic context compaction trigger in
config.yaml, as a ratio of the context window in (0, 1] or as an absolute token
count above 1. The effective trigger is min(setting, built-in trigger), so the
setting can only start compaction earlier; there is no lower bound by design.
Invalid numbers such as 1.5 are logged once and ignored, and an unreadable
config falls back to the built-in trigger.

Refs MiniMax-AI#488
…Max-AI#509)

Replace the MiniMax-M3.1-Flash-Preview entry in the built-in MiniMax
fallback catalog with the generally available MiniMax-M3.1-Flash, and
point the managed preset default model at it. The model definition
(capabilities, context options, thinking efforts) is unchanged and
matches the remote managed snapshot for MiniMax-M3.1-Flash.
…stream-c21e88e

# Conflicts:
#	release/public-source.json
@kinetick-labs kinetick-labs changed the title merge: upstream 9a93560 (#492 Google BYOK, #484 Plugin V1, #487 versions) merge: upstream c21e88e (#509 M3.1-Flash default, #493 compactionTriggerAt, #465 SOCKS5) Oct 19, 2026
hetaoBackend and others added 2 commits October 20, 2026 10:53
)

Record the user-visible changes of every public release from 0.5.0 to
0.6.5 in the English and Chinese TUI changelogs, which previously stopped
at 0.5.5 and skipped 0.5.0-0.5.4. Entries follow the commits contained in
each public tag. 0.5.5 gains the terminal title, notification, update
proxy and memory-output changes it shipped, and its date now matches the
GitHub release.
@kinetick-labs kinetick-labs changed the title merge: upstream c21e88e (#509 M3.1-Flash default, #493 compactionTriggerAt, #465 SOCKS5) merge: upstream 5821f7c (#511 changelog 0.5.0-0.6.5, sur #509 M3.1-Flash default) Oct 20, 2026
SaladDay and others added 2 commits October 21, 2026 20:10
…acp launcher for ACP registry (MiniMax-AI#522)

* fix(local-runtime): refresh only owned built-in skills in shared dir

The seed wiped the whole .builtin-skills dir on a fingerprint mismatch.
That dir is shared between the desktop app and the CLI/ACP agent, so a
CLI start deleted desktop-only skills (mavis, create-agent, ...). Replace
only the dirs of skills this seed ships; per-skill rm failures (EPERM,
EACCES) are logged and retried next start instead of aborting.

* feat(acp): add @minimax-ai/code-acp launcher and lockstep publish job

@minimax-ai/code ships two bins (mcode, mcode-tools), so the ACP
registry's `npx @minimax-ai/code acp` cannot pick one and the registry
entry is stuck at 0.2.7. code-acp is a single-bin launcher that runs the
mcode bin of a pinned @minimax-ai/code. The opt-in publish-acp job stamps
and publishes it at the same version after @minimax-ai/code is on npm.
# Conflicts:
#	release/public-source.json
@kinetick-labs kinetick-labs changed the title merge: upstream 5821f7c (#511 changelog 0.5.0-0.6.5, sur #509 M3.1-Flash default) merge: upstream da22f11 (#522 built-in skills shared dir + ACP launcher) Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants