fix e2e - #185
Merged
Merged
Conversation
Contributor
Code Coverage Summary
CLI Package - Full Text ReportCore Package - Full Text ReportFor detailed HTML reports, please see the 'coverage-reports-22.x-ubuntu-latest' artifact from the main CI run. |
xaelistic
pushed a commit
to xaelistic/qwen-code
that referenced
this pull request
Jun 7, 2026
aspnmy
pushed a commit
to aspnmy/qwen-code
that referenced
this pull request
Jun 16, 2026
aspnmy
pushed a commit
to aspnmy/qwen-code
that referenced
this pull request
Jun 18, 2026
…patches Merge upstream QwenLM/qwen-code main (70d6e5f) into aspnmy fork. Re-applied 3 previously-unmerged patches with conflict resolution: 1. fix(ui): React QwenLM#185 — state update on unmounted component (6a8fd71) - Add cancelled guards to 5 async hooks - Fix unmount-time setState in AgentChatContent 2. fix(core): tool-call circuit breaker (518fad0) - Global duplicate detection, alternating pattern, per-turn cap - 227 lines of new test coverage - Fixed: added missing LoopType labels in nonInteractiveCli.ts 3. fix(core): anti-polling guidance for subagent completion (91867b9) - 1-line addition to agent system prompt - Fixed: ToolNames.SHELL for upstream compat Skipped (already fixed upstream): - exit_plan_mode tool visibility (upstream: 7520cdd) Build: npm run build PASS (0 errors, 0 warnings)
wenshao
added a commit
that referenced
this pull request
Jun 18, 2026
…arden async hooks (#5286) AgentChatContent reset the AgentView provider's `agentShellFocused` in an effect cleanup (`return () => setAgentShellFocused(false)`). When the child and the provider unmount in the same commit, that cleanup setState re-enters the provider and can contribute to a "Maximum update depth exceeded" loop (the minified React #185 reported in #5199). The value is already re-established on mount, so the cleanup reset is removed. Also harden five async hooks (useShellHistory, useLogger, useCommandMigration, useGitBranchName, useWorktreeSession) with a `cancelled` flag + cleanup so their post-await setState is skipped after unmount. React 19 tolerates that silently, but the guards avoid stale updates and wasted renders. Co-authored-by: aspnmy <7374416+aspnmy@users.noreply.github.com>
TaimoorSiddiquiOfficial
pushed a commit
to TaimoorSiddiquiOfficial/HopCode
that referenced
this pull request
Jun 18, 2026
…and to HopCode Upstream commits: - fix(cli): drop AgentView cleanup setState that can trip React QwenLM#185; harden async hooks - fix(core): read WebP VP8X canvas height from the correct byte offset - fix(cli): support ctrl np in completions Rebranding applied: - Resolve useGitBranchName.ts conflict to keep @hoptrendy/hopcode-core import - Rename plugin-example bin from qwen-channel-plugin-example-server to hopcode-channel-plugin-example-server - Refresh package-lock.json for renamed bin
wenshao
added a commit
to wenshao/qwen-code
that referenced
this pull request
Jun 18, 2026
…M#185 fix Re-adds the explanatory comments the refactor dropped: in useWorktreeSession the Linux Buffer-filename toString() rationale plus the mkdir/watcher notes, and in useGitBranchName the .git/logs/HEAD existence check and watcher-error handling. Comments only — no behavior change. Per review on QwenLM#5286.
yiliang114
added a commit
that referenced
this pull request
Aug 17, 2026
Follow-up to the tab-switch resets: while agentShellFocused is stale, the tab bar swallows left/right — the only escape — so a crash is exactly the state the switch resets cannot reach (they are guarded by the very flag they would clear). Two additions: - The per-tab boundary clears the flag in onError (componentDidCatch — commit phase, safe, unlike the unmount cleanup the content avoids for React error #185): the crashed content is the flag's only production writer, and once it is gone nothing else can own the focus. Pinned by AgentChatView tests (crash clears, healthy tab untouched). - Belt and braces: the provider resets the flag on ANY activeView change (skipping the mount run, which would clobber a same-commit seed from the active content) — covering unregisterAgent/ unregisterAll, which bounce the view without a switch. Pinned by an act()-driven unregister test. Also stabilize the switch test's flush count: two setImmediates were one render short in this environment's scheduler (asserted state was 'main:true', the switch not yet flushed); four settle it.
undici77
pushed a commit
to undici77/qwen-code-no-telemetry
that referenced
this pull request
Aug 17, 2026
…ion (QwenLM#9292) * fix(cli): contain agent-tab render errors instead of exiting the session Opening an agent-team member tab whose transcript threw during render took down the whole interactive session: the app has a single FATAL top-level error boundary that logs [FATAL_RENDER_ERROR] and exits ~5s later, and the agent-tab view under it had no boundary of its own. The main transcript's think blocks already degrade per-error; team tabs did not (QwenLM#9290). Wrap AgentChatContent in a non-fatal ErrorBoundary so one errored or incomplete teammate degrades THAT tab to a recoverable failure panel (session still running, other tabs unaffected) and logs an [AGENT_TAB_RENDER_ERROR] with the component stack for diagnosis. The boundary is keyed by agentId so switching away from a crashed tab starts from fresh state instead of stranding every later tab in the fallback. Tests pin the containment (a throwing transcript renders the panel instead of propagating), the per-agent keying (switching to a healthy tab recovers), the healthy path, and the missing-agent panel; both load-bearing pins were mutation-verified red. The exact upstream throw in the reporter's session is still unknown — this closes the verified containment gap regardless of cause, as the triage analysis directed. Fixes QwenLM#9290 * fix(cli): clear agent shell focus on tab switch * fix(cli): release the shell-focus lock when a tab crashes (QwenLM#9290) Follow-up to the tab-switch resets: while agentShellFocused is stale, the tab bar swallows left/right — the only escape — so a crash is exactly the state the switch resets cannot reach (they are guarded by the very flag they would clear). Two additions: - The per-tab boundary clears the flag in onError (componentDidCatch — commit phase, safe, unlike the unmount cleanup the content avoids for React error QwenLM#185): the crashed content is the flag's only production writer, and once it is gone nothing else can own the focus. Pinned by AgentChatView tests (crash clears, healthy tab untouched). - Belt and braces: the provider resets the flag on ANY activeView change (skipping the mount run, which would clobber a same-commit seed from the active content) — covering unregisterAgent/ unregisterAll, which bounce the view without a switch. Pinned by an act()-driven unregister test. Also stabilize the switch test's flush count: two setImmediates were one render short in this environment's scheduler (asserted state was 'main:true', the switch not yet flushed); four settle it. * fix(cli): show agent tab debug hint --------- Co-authored-by: yiliang114 <yiliang114@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.
No description provided.