You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug] Settings closes when archiving the current chat activates automatic onboarding (0.2.1-rc.2)
#10596
In DSH Desktop 0.2.1-rc.2 on macOS, archiving the currently displayed conversation from a settings section can unexpectedly dismiss the entire Settings dialog. The user reported this intermittently after first installing dsh-archived-chats; later attempts did not always repeat it.
The plugin interaction is the reported trigger. I isolated a matching close path in the Host-owned SettingsRoot, without loading the archive plugin. This report does not claim that every archive operation, or every first installation, triggers it.
Trigger and expected behavior
Reported workflow:
Display a nonblank conversation in the main view.
Open Settings and the archive-management section.
Archive the currently displayed conversation.
When the main view becomes blank or no longer retains a conversation, an uncompleted automatic onboarding step becomes eligible. Settings closes without the user pressing Close or Escape.
Expected: keep Settings open with its selected section intact; defer automatic onboarding until the user closes Settings. Explicitly opening an onboarding editor should continue to work.
The main-view transition and onboarding eligibility are the conditions isolated below. A fresh-install GUI reproduction on a clean profile, and a Windows/Linux run, are still unverified.
Source evidence
This is still present in current master at 687f282e8625c6b8d11ff58211a90524be2e4317:
SettingsRoot.tsx, onboarding selection and automatic close: onboardingActive becomes true when the main session is absent or blank; automatic step selection does not check whether Settings is open; a newly appearing step runs if (appeared && open) close().
Existing component test explicitly expects the panel to disappear when onboarding becomes active.
I understand the existing close behavior prevents the portalled Settings panel from remaining interactive behind onboarding's inert-root overlay. The proposed change below delays the automatic step itself, preserving that safety property. It changes the timing policy and therefore needs maintainer agreement; simply deleting close() would not be sufficient.
The explicit requestedOnboarding branch remains first. The launcher already closes Settings when the user explicitly requests onboarding.
Verification and proposed regression coverage
I extracted the shipped 0.2.1-rc.2 settings component and ran it in an isolated JavaScript hook/store harness. With Settings open and a nonblank main conversation, switching the session snapshot to no retained main conversation makes the original component call close() and fail the “Settings stays open” assertion. Applying the gate above makes that assertion pass. The same harness also verified that automatic onboarding appears after Settings is manually closed, completed onboarding remains dismissed, and explicitly requested onboarding still opens.
This is a controlled component-logic replay with simulated hooks, not a full React/browser E2E run or a successful run of the upstream Vitest suite. I have not modified the signed desktop application.
For the upstream suite, I suggest changing the existing takes the panel down when an onboarding step appears beneath it test to require:
the dialog and selected section stay mounted when the main session becomes blank or absent;
no automatic onboarding slot is rendered while Settings is open;
manual Settings close allows the pending automatic step;
explicitly requested onboarding and normal Close/Escape behavior remain unchanged.
Contribution
I am reporting this in Discussions per the current contribution policy. Would you accept this timing change? I can prepare the focused source patch and upstream regression tests in your preferred format if useful.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
In DSH Desktop 0.2.1-rc.2 on macOS, archiving the currently displayed conversation from a settings section can unexpectedly dismiss the entire Settings dialog. The user reported this intermittently after first installing
dsh-archived-chats; later attempts did not always repeat it.The plugin interaction is the reported trigger. I isolated a matching close path in the Host-owned
SettingsRoot, without loading the archive plugin. This report does not claim that every archive operation, or every first installation, triggers it.Trigger and expected behavior
Reported workflow:
Expected: keep Settings open with its selected section intact; defer automatic onboarding until the user closes Settings. Explicitly opening an onboarding editor should continue to work.
The main-view transition and onboarding eligibility are the conditions isolated below. A fresh-install GUI reproduction on a clean profile, and a Windows/Linux run, are still unverified.
Source evidence
This is still present in current
masterat687f282e8625c6b8d11ff58211a90524be2e4317:SettingsRoot.tsx, onboarding selection and automatic close:onboardingActivebecomes true when the main session is absent or blank; automatic step selection does not check whether Settings is open; a newly appearing step runsif (appeared && open) close().I understand the existing close behavior prevents the portalled Settings panel from remaining interactive behind onboarding's inert-root overlay. The proposed change below delays the automatic step itself, preserving that safety property. It changes the timing policy and therefore needs maintainer agreement; simply deleting
close()would not be sufficient.Minimal proposed fix
The explicit
requestedOnboardingbranch remains first. The launcher already closes Settings when the user explicitly requests onboarding.Verification and proposed regression coverage
I extracted the shipped 0.2.1-rc.2 settings component and ran it in an isolated JavaScript hook/store harness. With Settings open and a nonblank main conversation, switching the session snapshot to no retained main conversation makes the original component call
close()and fail the “Settings stays open” assertion. Applying the gate above makes that assertion pass. The same harness also verified that automatic onboarding appears after Settings is manually closed, completed onboarding remains dismissed, and explicitly requested onboarding still opens.This is a controlled component-logic replay with simulated hooks, not a full React/browser E2E run or a successful run of the upstream Vitest suite. I have not modified the signed desktop application.
For the upstream suite, I suggest changing the existing
takes the panel down when an onboarding step appears beneath ittest to require:Contribution
I am reporting this in Discussions per the current contribution policy. Would you accept this timing change? I can prepare the focused source patch and upstream regression tests in your preferred format if useful.
中文摘要:从设置中的归档管理归档当前会话后,主页变空白会触发官方引导,
SettingsRoot随即主动关闭整个设置窗口。已在隔离组件逻辑测试中复现,并验证“设置打开时延后自动引导”的小补丁;尚未完成干净 profile 的 GUI 回归。现有官方测试明确要求引导出现时关设置,因此先请求维护者确认交互调整,不直接提交违反当前贡献政策的 PR。All reactions