Merge upstream/main (ae65651, 17 commits) — en attente du fix upstream, NE PAS MERGER - #14
Merged
Merged
Conversation
…ses token counter (MiniMax-AI#260) Z.AI / Zhipu coding-plan base URLs (/api/coding/paas/v4) were not claimed by the Zhipu tokenizer adapter, so they fell through to generic-responses, which appended /v1 to the already-versioned path and POSTed to a non-existent /api/coding/paas/v4/v1/responses/input_tokens (guaranteed 404, silently degrading the token estimate to the BPE fallback). - Claim the coding-plan paths in ZHIPU_PATHS and derive the tokenizer endpoint from the plan root instead of hardcoding the general-plan path, so coding-plan keys hit /api/coding/paas/v4/tokenizer and fail classified (cached as unsupported) until Zhipu enables the endpoint for that plan. - Stop appending /v1 in buildResponsesInputTokensUrl when the base URL already ends in a version segment (/v<digits>), fixing the doubled version for any versioned OpenAI-compatible gateway. - Add routing and URL-construction tests, register them in the capability suite, and refresh the source inventory. Fixes MiniMax-AI#258
Select and pin a settled history prefix for temporary side conversations, retaining completed tool results and excluding unfinished tool groups. Record bounded local diagnostics and cover the production history-copy path. Assisted-by: codex-cli reason:btw-public-source-sync
All 8 upstream commits accepted after full-diff telemetry review: - bcdd606 tokenizer routing for Zhipu coding-plan URLs (MiniMax-AI#260) - 3c5d18f multiline terminal paste chunks (MiniMax-AI#268) - bfe0829 welcome login prompts (MiniMax-AI#269) - a6d29fc session title review scoping (MiniMax-AI#270) - c89aa1b Z.AI plan presets + endpoint retries (MiniMax-AI#272) - ff415b1 IME cursor on Windows (MiniMax-AI#271) - 89c930a TUI scrollback rebuild after queued turns (MiniMax-AI#274) - 29addf7 BTW from persisted history (MiniMax-AI#276) Fork boundaries preserved: upstream's deletion of egress guard, copilot auth and provider-credentials files reverted; docs/telemetry.md, packages/tui/src/analytics/, error-reporting/, telemetry-policy.ts, telemetry-command.ts and incident-reporter.ts (retired paths) stay out; docs/telemetry.md + docs/harness-integration.md restored; README/SECURITY wording untouched; provider presets keep OpenRouter pinned in both regions.
The merge accidentally kept upstream's vitest registrations for modules retired in this fork (business-telemetry, error-reporting, metrics-telemetry, incident-reporter privacy tests); check:source on CI flagged them as missing registered files. Local run of scripts/source-inventory.mjs passes after removal.
…iMax-AI#280) * fix(ci): stabilize the performance gate with paired confirmation Replace the single-outlier-sensitive max/min spread verdict with a two-stage paired policy: three alternating pairs settle a scenario only when every metric is within budget and stable, and up to two additional confirmation pairs decide the rest. A regression must exceed the budget by median and reproduce in at least four of five pairs, so one corrupted sample can neither create nor veto it; a pass tolerates one extreme sample per revision when measuring spread. INCONCLUSIVE still exits 2 locally, but the workflow now reports it as a warning annotation without failing the required check, so persistent hosted-runner noise stops blocking unrelated pull requests while confirmed regressions and execution errors keep failing. * fix(ci): validate paired performance budgets
…x-AI#286) applyEdit used String.prototype.replace on the single-match path, which expands $&, $$, $` and $' inside a string replacement value. A memory edit whose new_string contained those sequences was silently rewritten instead of inserted: "$&" put the matched text back in place of the replacement, and "$$" collapsed to a single "$". Main and topic memory both go through this helper. Both paths now insert new_string literally. The replaceAll=false path is already guarded to exactly one match, so the replacement count and the OLD_STRING_* error codes are unchanged. Refs: MiniMax-AI#283 Assisted-by: mavis reason:github-issue-283-memory-edit-literal Co-authored-by: libai <likewei@minimaxi.com>
…Max-AI#290) Use writable non-append handles while preserving permission hardening before truncation. Tolerate optional preset synchronization failures only when the original config remains intact. Assisted-by: codex-cli reason:windows-config-write-compatibility
MiniMax-AI#287) * fix(storage): retry message write lock acquisition without replaying mutations * fix(storage): preserve aborted turn settlement when cancelling lock waits * fix(storage): preserve uncontended tool completion writes after cancellation
…x-AI#277) * perf: batch semantic hashing and stream history revisions * perf: reuse prepared queries for streaming turn lookups * perf: retain owned history across the durable store boundary
) * perf: reduce identity framing and repeated repository query work * perf: reuse validated immutable history rows by exact file content * fix: detach cached history text from whole file strings * perf: reuse verified file prefixes across history and index reads * perf: reuse validation and revisions of owned history snapshots * perf: compare history bytes before decoding appended records * perf: load pi runtime APIs through focused package exports * perf: share unchanged immutable messages between history snapshots * perf: compact bundled source to reduce module loading allocations * fix: keep precise release audit matches after whitespace minification
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.
Upstream sync: ae65651 (17 commits cumules, 2026-09-21) — ROLLING
Merges
upstream/main@ae65651(HEAD amont du 21/09, tag v0.5.1) dans la branche de sync. Cette PR remplace la version 29addf7 : elle contient les 8 commits precedents plus les 9 nouveaux. Chaque commit a ete passe au crible telemetry/egress (diff complet des lignes ajoutees).Commits upstream integres
Lot precedent (deja revue, 8 commits, 29addf7 et descendants directs) :
Nouveau lot (9 commits, 21/09) :
mcp.example.com(fixture)example.invalidagent.minimax.iouniquement dans une constante de test (managed-preset-sync.test.ts), zero host sortant dans le code src ; le correctif durcit l'ecriture config (troncature apres fchmod)127.0.0.1(test local)Frontieres du fork preservees (non revertees par le merge)
docs/telemetry.md,packages/config/src/telemetry-policy.ts,packages/tui/src/analytics/*,packages/tui/src/cli/telemetry-command.ts,packages/tui/src/observability/incident-reporter.ts,packages/local-runtime/src/error-reporting/*— verifies absents de l'arbre de branche.scripts/check-egress-guard.mjs+docs/egress-policy.mdpresents et intacts (diff vide vs main).README.md/SECURITY.mdcote fork non touches ; entrees vitest telemetry-privacy retirees conservees (04f8019).Conflits / resolutions
release/public-source.jsonettest/vitest-suites.jsonreconcilies automatiquement et verifie parnode scripts/source-inventory.mjs(4223 files, OK).Gates (APRES merge, branche finale)
node scripts/source-inventory.mjs: OK (exit 0)node scripts/build.mjs: OK (0.5.1, 6355 source files)pnpm typecheck(tsconfig.standalone) : exit 0node --test test/smoke.test.mjs: 20 pass / 0 fail / 1 skippnpm test:byok: 3 pass / 0 fail (incl. nouveau test sqlite contention)--config vitest.oss.config.mjs: copilot service-input + egress-guard 24/24 ; provider-presets + onboarding + observability + managed-preset-sync + private-config-file 80/80Hold decision JC 20/09 : la PR reste ouverte, la branche n'est pas mergee dans main, tant que le fix upstream (re-integration telemetry / suppression des fichiers securite du fork) n'est pas confirme.