chore(sync): port upstream 0.5.7 into the public distribution - #54
Merged
Merged
Conversation
) * feat(tui): select plugins with durable identity mentions * test(tui): update plugin mention discovery hints * fix(tui): preserve plugin bindings across draft and message edits * fix(tui): retain unique plugin labels across multiple external edits * fix: reconcile plugin mention display and simplify completion rows * fix(tui): reconcile theme edits missed during watcher startup
…Max-AI#351) * fix: run Windows managed updates through Node entry points * fix: preserve custom npm launchers during managed updates * fix: preserve npm wrapper behavior in managed updates --------- Co-authored-by: muyu <muyu@minimaxi.com>
…AI#350) * fix(tui): preserve detached scrolling across resize * test(tui): cover detached scrolling across content and footer shrink --------- Co-authored-by: muyu <muyu@minimaxi.com> Co-authored-by: hetaoBackend <hetao7@pku.edu.cn>
A provider can expose many models while users switch between only a few. Let users star those models so they can reach them without scrolling through every provider group. - Press Ctrl+S in /model to star or unstar the focused model. Starred models appear in a Favorites group at the top, in the order they were added, and keep a star marker in their provider group. - When the current model is a favorite, the picker opens with focus on its Favorites row. Search filters the Favorites group as well. - Favorites identify a model only (provider and model ID); effort, thinking and context still follow the normal selection flow. - Store favorites in the local runtime preferences table under `model-favorites`. Malformed values degrade to an empty or partial list. Favorites missing from the catalog are hidden, and are pruned on the next toggle only when the catalog was read successfully. - The picker updates immediately and rolls back with an inline notice if saving fails. Hosts without a favorites store hide the shortcut. Only the TUI uses this capability for now; Desktop and ACP are unchanged.
* perf: reuse verified history during incremental index scans * fix: validate index inputs from the same fresh read * perf: avoid transient copies and repeated replay size walks * perf: share immutable history messages across runtime boundaries * perf: defer unused browser and syntax grammar initialization * Revert "perf: defer unused browser and syntax grammar initialization" This reverts commit 058f59a. * perf: reuse bounded buffers for fresh history reads * Revert "perf: reuse bounded buffers for fresh history reads" This reverts commit 0d85c2b. * perf: fold native turn outcomes without retaining stream events * perf: reuse history subtree identities and index replay eviction * perf: continue canonical history digests from verified prefixes * fix: ignore superseded replay settlements
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
Merge upstream/main (0f6ad52, v0.5.5) into the public source projection. The merge base is 944e874, the previous sync point, so this applies only the 0.5.3-0.5.5 delta: 23 upstream commits across 197 files. Included behavior, matching the upstream 0.5.5 review: - Managed foreground Bash caps larger requests at a one-hour deadline; the 60-second foreground yield preserves the running process and its original deadline. Explicit background tasks keep their own runtime watchdog. - Automatic context compaction reserves output space before the context limit, scales checkpoint output with the model window, and bounds provider retries. - Update downloads reuse the TUI proxy and loopback-bypass policy and load their network dependency lazily. - Memory-tool results carry a 16 KiB model-facing limit with a head/tail preview; storage and upload behavior are unchanged. - Plugin mentions, model favorites, terminal titles, background-task settlement and skill-directory symlink handling. Excluded, pending separate review: - The upstream ESLint stack: .eslintrc.cjs, its six devDependencies, the lint:tui verification step and its CONTRIBUTING section. This distribution has no lint gate, and the stack would add roughly 130 packages, so adopting it is a dependency decision rather than part of a source sync. release/extraction.json sourceRevision stays at 9b9885e. The remaining runtime ownership migrations and service integrations have not been reviewed, so advancing the baseline would misreport them as synchronized. Conflict resolutions: package.json keeps the public webui scripts and takes the 0.5.5 version; pnpm-lock.yaml, release/dependency-licenses.json and test/source-sync.test.mjs keep the public versions; test/vitest-suites.json takes the union of both sides; release/public-source.json and tsconfig.standalone.json are regenerated from their sources. Gates run: check:source, check:tsconfig, typecheck, test:release-tools, build, check:standalone, test:capabilities (185 files, 4935 tests).
…-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
Bring chore/sync-upstream-0.5.5 up to date with main so the pull request is mergeable again. main advanced by nine webui-parity changes (#55-#63) while this branch was open, and the earlier CI run on 13f52a8 was green across ubuntu, macos and windows. The only conflict was docs/tui-capabilities.md: the 0.5.5 sync and the webui slash-command work each appended independent sections after the capability matrix. Both are kept, in that order, so the document still describes the TUI, the webui and the shared engine. release/public-source.json and tsconfig.standalone.json are regenerated from their sources rather than taken from the automatic merge.
Merge upstream/main (2aed5ca) so the sync covers the two releases that landed after the 0.5.5 selection: four commits, 23 files, root and TUI source versions 0.5.5 -> 0.5.7. - fix: measure token speed over model generation time (MiniMax-AI#373). Replaces the wall-clock span with a generation-time window, and adds decode-timing and content-timing tests for the event bridge and session content path. - feat(config): add M3.1 Flash Preview to the fallback catalog (MiniMax-AI#375). A static bundled-catalog descriptor with capability, context-window and thinking metadata; no endpoint, credential or new network dependency, and the existing catalog tests still gate it. - Two version bumps to 0.5.6 and 0.5.7. The merge base is 0f6ad52, the 0.5.5 sync point, so nothing between the two selections is skipped. The single conflict, test/vitest-suites.json, is a union: the five upstream additions join the capability group (185 -> 190) and the public cli-webui-command entry is preserved. Every declared file exists; there are no duplicates and each group stays sorted. The ESLint stack stays excluded: .eslintrc.cjs is still absent, no ESLint devDependency was added, and verify.mjs has no lint step. Those four commits do not touch the lint surface. pnpm-lock.yaml and tsconfig.standalone.json are unchanged - no new dependency and no new package export subpath. release/public-source.json is regenerated (4702 paths). release/extraction.json sourceRevision stays at 9b9885e; the remaining runtime ownership migrations and service integrations remain unreviewed.
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
Ports the upstream source update through 0.5.7 into this public distribution, and keeps the branch current with
main.The merge base with upstream is
944e874— the previous sync point — so this applies the full 0.5.3–0.5.7 delta: 27 upstream commits, 209 files againstmain. Root and TUI source versions move0.5.2→0.5.7.mainadvanced by nine webui-parity changes (#55–#63) while this pull request was open, which left the branch conflicted.mainis merged in withmaintreated as the baseline:packages/webui/**is byte-identical tomain, no file present inmainis missing here, and the conflict there —docs/tui-capabilities.md, where the sync and the webui slash-command work each appended independent sections after the capability matrix — is resolved as a union keepingmain's section verbatim.0.5.5
Behavior matching the upstream 0.5.5 review:
tui.terminalTitle), background-task settlement and stop handling, and skill-directory symlink handling.0.5.6 and 0.5.7
Excluded, pending separate review
.eslintrc.cjs, its six devDependencies (eslint,@typescript-eslint/{parser,eslint-plugin},eslint-config-airbnb-base,eslint-config-prettier,eslint-plugin-{import,prettier}), thelint:tuiverification step, and itsCONTRIBUTING.mdsection. This distribution has no lint gate, so the mergedverify.mjsstep would reference a script that does not exist and fail every run. The stack is roughly 130 additional packages: a dependency decision, not a source sync.CONTRIBUTING.mdnow states that the distribution ships no ESLint stack or lint gate. None of the 0.5.6/0.5.7 commits touch the lint surface, so the exclusion holds across both steps.release/extraction.jsonsourceRevisiondeliberately stays at9b9885e. Advancing it would incorrectly mark the remaining runtime ownership migrations, service integrations and source-tree moves as synchronized; those still need their own public dependency and privacy review.Conflict resolutions
package.jsonwebui:*script plus the publictest:release-toolsentry. Dropped thelint/lint:tuiscripts and the six ESLint devDependencies.pnpm-lock.yamlpnpm install. The only change is the@mavis/sharedworkspace link thatsystem-remindergained — 3 added lines, no registry package change. The 0.5.6/0.5.7 step needs none.release/dependency-licenses.jsonmain.test/source-sync.test.mjsmain.test/vitest-suites.jsoncapabilitygroup (170 → 185 → 190). Nomainentry removed, no duplicates, each group stays sorted.docs/tui-capabilities.mdmain's slash-command parity section is preserved byte-for-byte; the sections added by the sync follow it.release/public-source.jsonnode scripts/source-inventory.mjs --write(4702 paths).tsconfig.standalone.jsonpnpm gen:tsconfigfor the new./plugin-mentionand./memory-limitsexport subpaths; 128 paths recorded. The 0.5.6/0.5.7 step adds no export.No
packages/webui/**file is modified by the sync, and theLOCAL_CHANGES/MINIMAX_CHANGESbookkeeping kept every previously recorded change ID while adding the new ones (L041–L043).Publication review
synthetic-discovery-key,synthetic-draft-key,selected-provider-key).docs/source-sync-0.5.5.md, is upstream's own already-public review note; it is included as the record of the 0.5.5 selection and documents the unchangedsourceRevisionbaseline.Source tracking
Upstream history is carried in by merge commit, never rebase or cherry-pick, so the ported commits stay individually visible and the gap to upstream stays measurable.
main)944e8740f6ad522aed5ca(v0.5.6tag at836580e+)The 27 upstream commits this pull request brings into
main, in order:Re-check the tracking state at any time:
This pull request must be merged with a merge commit, not squashed. The repository allows all three strategies, but a squash would collapse these 27 upstream commits and the three sync merges into one commit and erase the tracking above. The previous sync (PR #19) was merged with a merge commit, which is why
944e874is still an ancestor ofmain.One upstream commit is tracked but deliberately not taken:
a914a30 chore(tui): restore source ESLint rules and verification gate (#341). It appears in this history for completeness, but its content is excluded here — see "Excluded, pending separate review".Validation
Run on revision
a6da443, profilefull, linux/x64, Node v24.19.0, against a clean tracked working tree.pnpm verifyis the same gate list, in the same order, as CI.PASS (17)
check:source(4702 files) ·check:tsconfig(128 exports) ·export source preview·test:release-tools(69 passed, 1 Windows-only skip) ·typecheck·webui:typecheck·build·check:standalone·check:webui-bundle·test:artifact·test:capabilities(190 files, 4935 passed, 18 skipped) ·test:status-contract·test:smoke·test:byok·test:webui·test:webapp·test:policySKIP (3) —
test:windowsandtest:sandboxare not applicable on linux/x64;test:release-packagerequires an npm release archive.Each sync step was verified on its own commit on a clean tree:
13f52a8for the 0.5.5 selection,e2f5c3efor themainmerge,a6da443for the 0.5.6/0.5.7 extension. CI on13f52a8was green across ubuntu, macos and windows (16 checks passed, 5 skipped, 0 failed).perf:fullwas not run.test:release-toolscase is reported skipped rather than passed.pnpm verifymatrix in CI remains the authoritative check for this PR.Publication and contribution checks
release/public-source.json; new tests are declared intest/vitest-suites.jsonwhere applicable.Maintainer handoff
Publication scope or license changes (if any): none. The dependency set is unchanged — the only manifest change is a
workspace:link, and no license inventory entry was added, removed or relicensed.Shared-source port: complete for the 0.5.3–0.5.7 selection. The ESLint stack is the one upstream item held back and needs its own decision;
sourceRevisionintentionally stays at9b9885e.