This repository was archived by the owner on Aug 25, 2026. It is now read-only.
fix: port more upstream reliability fixes - #71
Merged
Conversation
MoonshotAI#3079) * fix(vscode): multi-select question jumps to next after only one answer selected * chore: add changeset --------- Co-authored-by: gaoyuan <gaoyuan@moonshot.ai> (cherry picked from commit 35befdc)
* fix(kimi-code): open /feedback to all signed-in users Gate the command on holding a kimi-for-coding OAuth token instead of the active model's provider, so signed-in users on API-key models can also submit feedback through the authenticated channel. When signed out, open the sign-up page alongside GitHub Issues. Also harden the failure paths: a failing auth status lookup or a rejected submit promise now falls back to GitHub Issues, while attachment-stage failures degrade to a non-fatal partial failure instead of triggering the fallback. * fix(kimi-code): print sign-up and issue links for signed-out /feedback Opening two browser pages at once is jarring; just print the links in the transcript instead. (cherry picked from commit 8588121)
Adapted from upstream kimi-code 102984a (MoonshotAI#2899). Cancelling an in-flight MCP authorization closes the callback listener, but a pending waitForCode was left hanging until its own timeout -- the browser can no longer deliver a code, so the wait is already doomed. Reject it immediately with OAuthCallbackClosedError instead. Upstream rewrote settle() into an outcome state machine to get there and patched only the v1 engine. This fork carries the same defect in both engines, and v2 is the one that ships, so the intent is implemented in both with a smaller change that leaves the existing settle() alone. packages/oauth has the same shape but a different flow; it is untouched here.
…onshotAI#2814) * fix: surface a readable error when Git Bash is missing on Windows * fix(agent-core-v2): translate probe rejection into HostProcessError for ready awaiters - HostEnvironmentService.ready now rejects with the translated HostProcessError(shell.git_bash_not_found) instead of the raw ProbeShellNotFoundError, matching what sync field reads throw and what SDKRpcClientV2.ensureConfigFile() surfaces, while an internal no-op handler keeps the rejection from becoming an unhandledRejection. - Replace the Windows-gated probe-failure tests with vi.mock-stubbed deterministic suites that run identically on any platform. - Move the ProbeShellNotFoundError explanation into the environmentProbe file header per the package comment convention. * fix(agent-core-v2): narrow probe error to Error to satisfy only-throw-error lint * fix(agent-core-v2): preserve probe error as cause when translating to HostProcessError * fix(agent-core-v2): keep checked paths out of the public probe error message * fix(node-sdk): gate the host-environment wait in ensureConfigFile to Windows The missing-Git-Bash failure is Windows-only, and IHostEnvironment.ready also covers the login-shell PATH enrichment, which spawns the user's login shell with a 5s timeout. Awaiting it on POSIX coupled config-only commands (kimi provider list/remove, export, ...) to the user's shell profile for no benefit. --------- Co-authored-by: liruifengv <liruifeng1024@gmail.com> (cherry picked from commit 158c81d)
- The feedback fix carried a kimi.com sign-up prompt with no Echadron equivalent, so the signed-out path now offers only the issue tracker, and the copy no longer promises a sign-up link it cannot render. Its tests hard-coded upstream's issue URL; they point at this fork now. - The Git Bash probe fix landed its call sites but not the error code it raises, so shell.git_bash_not_found is registered here. - Two commits were dropped rather than applied: an import move onto upstream's #/app/scopes module, which this fork does not have (all 133 of our files import LifecycleScope from #/_base/di/scope), and a visibility fix for a dim "already logged in" notice that this fork's rewritten login flow never renders -- it shows an action menu instead.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Merged
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Second pass through the contested upstream fixes — the ones that collide with this fork's own work, so each was judged individually rather than cherry-picked blind.
Applied (5):
waitForCodewaiting for its own timeout. Upstream rewrotesettle()into a state machine and patched only v1; this fork has the defect in both engines and v2 is what ships, so the intent is implemented in both with a smaller change. Verified: without the fix the waiter times out at 8s, with it it settles immediately./feedbackfor any signed-in user — gated on the OAuth token instead of the active model's provider, so an API-key model no longer blocks it.Dropped (2), with reasons:
fa3325404moves aLifecycleScopeimport onto upstream's#/app/scopesmodule. We don't have it — all 133 of our files import from#/_base/di/scope. It's upstream housekeeping for their layout, not a fix, despite thefix(prefix.dfc55a5c9makes a dim "already logged in" notice visible. Our rewritten login flow never renders that notice — it shows an action menu — so the bug doesn't exist here.Adaptations needed: the feedback fix carried a kimi.com sign-up prompt with no Echadron equivalent (dropped, and the copy reworded so it doesn't promise a link it can't render); its tests hard-coded upstream's issue URL; and the Git Bash fix landed its call sites but not the
shell.git_bash_not_founderror code it raises.Tested: full suite 17,102 passed / 0 failures; typecheck, lint, sherif, release:check and build clean.