• keppo-bot[bot]'s avatar
    Deflake CI E2E failures (#3311) · 971aca34
    keppo-bot[bot] 提交于
    ## Summary
    - Deflake CI E2E failures from
    https://github.com/dyad-sh/dyad/actions/runs/25126503338.
    - Await streamed token-usage persistence before token-count invalidation
    so the context-limit banner sees the real max token usage.
    - Harden E2E helpers around GitHub sync completion, already-applied
    proposals, queued Lexical submissions, visual-save button re-renders,
    and Windows line endings.
    - Update the component-tagger upgrade snapshot from 0.8.0 to 0.9.0.
    
    ## Root Cause
    The failing run had several independent races and one stale snapshot:
    - The context-limit banner could refetch token counts before the
    assistant message's max token usage had been saved, leaving
    actualMaxTokens null after a high-token stream.
    - GitHub assertions snapshotted the connected-repo panel while the sync
    button was still in its transient Syncing state.
    - Some E2E helpers used one-shot Lexical fills/clicks where Playwright
    can act during React or DOM replacement windows.
    - The code-editor assertion compared raw file contents, which fails on
    Windows CRLF output.
    - The select-component upgrade snapshot still expected the older
    component tagger version.
    
    ## Why This Fix Is Correct
    - Awaiting the existing max-token update makes the later chat/token
    invalidations observe the persisted usage instead of racing it.
    - GitHub sync waits now use the stable connected-repo panel state:
    Syncing hidden, Sync to GitHub enabled, and the panel-local success text
    visible.
    - Queued-message and visual-save actions now retry the exact UI contract
    the tests require: the queued row appears or the save button is visible,
    enabled, and clickable.
    - The editor test normalizes only line endings, preserving the
    file-content assertion while making it platform-independent.
    
    ## Test Plan
    - npm run fmt && npm run lint:fix && npm run ts
    - PYTHON=/usr/bin/python3 npm run build
    - PLAYWRIGHT_HTML_OPEN=never npm run e2e --
    e2e-tests/select_component.spec.ts --update-snapshots
    - PLAYWRIGHT_HTML_OPEN=never npm run e2e --
    e2e-tests/context_limit_banner.spec.ts e2e-tests/debugging_logs.spec.ts
    e2e-tests/edit_code.spec.ts e2e-tests/github.spec.ts
    e2e-tests/queued_message.spec.ts e2e-tests/visual_editing.spec.ts
    - First run: 21 passed, 6 GitHub helper strict-mode failures due
    duplicate success toast text.
    - PLAYWRIGHT_HTML_OPEN=never npm run e2e -- e2e-tests/github.spec.ts
    - npm test
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/3311"
    target="_blank">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open in Devin Review">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    ---------
    Co-authored-by: 's avatarWill Chen <7344640+wwwillchen@users.noreply.github.com>
    971aca34
名称
最后提交
最后更新
..
chat 正在载入提交数据...
home 正在载入提交数据...
media-library 正在载入提交数据...
preview_panel 正在载入提交数据...
settings 正在载入提交数据...
ui 正在载入提交数据...
AIGeneratorTab.tsx 正在载入提交数据...
AppList.tsx 正在载入提交数据...
AppSearchDialog.tsx 正在载入提交数据...
AppSearchSelect.tsx 正在载入提交数据...
AppShowcaseCard.tsx 正在载入提交数据...
AppUpgrades.tsx 正在载入提交数据...
AutoApproveSwitch.tsx 正在载入提交数据...
AutoExpandPreviewSwitch.tsx 正在载入提交数据...
AutoFixProblemsSwitch.tsx 正在载入提交数据...
AutoUpdateSwitch.tsx 正在载入提交数据...
BlockUnsafeNpmPackagesSwitch.tsx 正在载入提交数据...
BugScreenshotDialog.tsx 正在载入提交数据...
CapacitorControls.tsx 正在载入提交数据...
ChatEventNotificationSwitch.tsx 正在载入提交数据...
ChatInputControls.tsx 正在载入提交数据...
ChatList.tsx 正在载入提交数据...
ChatModeSelector.tsx 正在载入提交数据...
ChatPanel.tsx 正在载入提交数据...
ChatSearchDialog.tsx 正在载入提交数据...
CloudSandboxExperimentSwitch.tsx 正在载入提交数据...
CommunityCodeConsentDialog.tsx 正在载入提交数据...
ConfirmationDialog.tsx 正在载入提交数据...
ContextCompactionSwitch.tsx 正在载入提交数据...
ContextFilesPicker.tsx 正在载入提交数据...
CopyErrorMessage.tsx 正在载入提交数据...
CreateAppDialog.tsx 正在载入提交数据...
CreateCustomModelDialog.tsx 正在载入提交数据...
CreateCustomProviderDialog.tsx 正在载入提交数据...
CreatePromptDialog.tsx 正在载入提交数据...
CustomAppsFolderSelector.tsx 正在载入提交数据...
CustomErrorToast.tsx 正在载入提交数据...
CustomThemeDialog.tsx 正在载入提交数据...
DefaultChatModeSelector.tsx 正在载入提交数据...
DeleteConfirmationDialog.tsx 正在载入提交数据...
DyadAppMediaFolder.tsx 正在载入提交数据...
DyadProSuccessDialog.tsx 正在载入提交数据...
DyadProTrialDialog.tsx 正在载入提交数据...
EditCustomModelDialog.tsx 正在载入提交数据...
EditThemeDialog.tsx 正在载入提交数据...
ErrorBoundary.tsx 正在载入提交数据...
FeaturedAppShowcase.tsx 正在载入提交数据...
ForceCloseDialog.tsx 正在载入提交数据...
GitHubConnector.tsx 正在载入提交数据...
GitHubIntegration.tsx 正在载入提交数据...
GithubBranchManager.tsx 正在载入提交数据...
GithubCollaboratorManager.tsx 正在载入提交数据...
HelpBotDialog.tsx 正在载入提交数据...
HelpDialog.tsx 正在载入提交数据...
ImageGenerationProgressButton.tsx 正在载入提交数据...
ImageGenerationProgressDialog.tsx 正在载入提交数据...
ImageGenerationToast.tsx 正在载入提交数据...
ImageGeneratorDialog.tsx 正在载入提交数据...
ImportAppButton.tsx 正在载入提交数据...
ImportAppDialog.tsx 正在载入提交数据...
InputRequestToast.tsx 正在载入提交数据...
KeepPreviewsRunningSwitch.tsx 正在载入提交数据...
LanguageSelector.tsx 正在载入提交数据...
LibraryCard.tsx 正在载入提交数据...
LibraryFilterTabs.tsx 正在载入提交数据...
LibraryList.tsx 正在载入提交数据...
LibrarySearchBar.tsx 正在载入提交数据...
LoadingBlock.tsx 正在载入提交数据...
LocalAgentNewChatToast.tsx 正在载入提交数据...
MacNotificationGuideDialog.tsx 正在载入提交数据...
MaxChatTurnsSelector.tsx 正在载入提交数据...
MaxToolCallStepsSelector.tsx 正在载入提交数据...
McpConsentToast.tsx 正在载入提交数据...
McpToolsPicker.tsx 正在载入提交数据...
MigrationPanel.tsx 正在载入提交数据...
ModelPicker.tsx 正在载入提交数据...
NeonConnector.tsx 正在载入提交数据...
NeonDisconnectButton.tsx 正在载入提交数据...
NeonIntegration.tsx 正在载入提交数据...
NewLibraryItemMenu.tsx 正在载入提交数据...
NodePathSelector.tsx 正在载入提交数据...
PortalMigrate.tsx 正在载入提交数据...
PriceBadge.tsx 正在载入提交数据...
ProBanner.tsx 正在载入提交数据...
ProModeSelector.tsx 正在载入提交数据...
ProviderSettings.tsx 正在载入提交数据...
ReleaseChannelSelector.tsx 正在载入提交数据...
RightActionSidebar.tsx 正在载入提交数据...
RuntimeModeSelector.test.ts 正在载入提交数据...
RuntimeModeSelector.tsx 正在载入提交数据...
ScreenshotSuccessDialog.tsx 正在载入提交数据...
SettingsList.tsx 正在载入提交数据...
SetupBanner.tsx 正在载入提交数据...
SetupProviderCard.tsx 正在载入提交数据...
SupabaseConnector.tsx 正在载入提交数据...
SupabaseIntegration.tsx 正在载入提交数据...
TelemetryBanner.tsx 正在载入提交数据...
TelemetrySwitch.tsx 正在载入提交数据...
TemplateCard.tsx 正在载入提交数据...
ThinkingBudgetSelector.tsx 正在载入提交数据...
VercelConnector.tsx 正在载入提交数据...
VercelIntegration.tsx 正在载入提交数据...
ZoomSelector.tsx 正在载入提交数据...
app-sidebar.tsx 正在载入提交数据...
appItem.tsx 正在载入提交数据...