@michengai/dsh-codex-ui 1.1.13 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,29 @@
4
4
 
5
5
  This changelog records recent releases of DSH Codex UI and its one-click installer. Earlier changes remain available in the [Git history](https://github.com/MichengAI/dsh-codex-ui/commits/main).
6
6
 
7
+ ## 1.1.14 - 2026-09-19
8
+
9
+ - Keep official header actions beside the session title and conversation tabs on the right. Long titles stay on one 34px row instead of wrapping the corner slot down.
10
+ - Settings isolation leaves official body-level plugin toasts visible and inside the focus trap. Only `body > [role=alert]` skips isolation.
11
+
12
+ ## suite-installer-v1.0.16 - 2026-09-18
13
+
14
+ Install or maintain 11 first-party plugins in one step. Included plugins and versions:
15
+
16
+ - `@michengai/dsh-archive-manager@0.1.44`
17
+ - `@michengai/dsh-codex-ui@1.1.12`
18
+ - `@michengai/dsh-skills-manager@0.1.53`
19
+ - `@michengai/dsh-agency-agents@0.1.44`
20
+ - `@michengai/dsh-im-connect@0.1.51`
21
+ - `@michengai/dsh-automation@0.1.45`
22
+ - `@michengai/dsh-btw@0.1.10`
23
+ - `@michengai/dsh-simplify@0.1.7`
24
+ - `@michengai/dsh-pua@0.3.16`
25
+ - `@michengai/dsh-code-review@0.1.4`
26
+ - `@michengai/dsh-codex-pet@0.1.7`
27
+
28
+ The installer uses these exact versions for reproducible installation.
29
+
7
30
  ## suite-installer-v1.0.15 - 2026-09-17
8
31
 
9
32
  Install or maintain 11 first-party plugins in one step. Included plugins and versions:
@@ -4,6 +4,29 @@
4
4
 
5
5
  本日志记录 DSH Codex UI 及其一键安装器的最近发布;更早的变更可查看 [Git 提交历史](https://github.com/MichengAI/dsh-codex-ui/commits/main)。
6
6
 
7
+ ## 1.1.14 - 2026-09-19
8
+
9
+ - 紧凑顶栏:标准模式 / Agent Team 贴在标题旁,对话 / 轨迹靠右。长标题单行截断,不再把右栏掉到第二行。
10
+ - 设置页不再藏起官方挂到 body 的插件 Toast;只有 body 直接子级的 alert 跳过隔离和焦点陷阱。
11
+
12
+ ## suite-installer-v1.0.16 - 2026-09-18
13
+
14
+ 一键维护安装 11 个自研插件。包含以下插件及版本:
15
+
16
+ - `@michengai/dsh-archive-manager@0.1.44`
17
+ - `@michengai/dsh-codex-ui@1.1.12`
18
+ - `@michengai/dsh-skills-manager@0.1.53`
19
+ - `@michengai/dsh-agency-agents@0.1.44`
20
+ - `@michengai/dsh-im-connect@0.1.51`
21
+ - `@michengai/dsh-automation@0.1.45`
22
+ - `@michengai/dsh-btw@0.1.10`
23
+ - `@michengai/dsh-simplify@0.1.7`
24
+ - `@michengai/dsh-pua@0.3.16`
25
+ - `@michengai/dsh-code-review@0.1.4`
26
+ - `@michengai/dsh-codex-pet@0.1.7`
27
+
28
+ 安装器使用这些精确版本执行安装,确保可复现。
29
+
7
30
  ## suite-installer-v1.0.15 - 2026-09-17
8
31
 
9
32
  一键维护安装 11 个自研插件。包含以下插件及版本:
package/lib/client.js CHANGED
@@ -2253,12 +2253,12 @@ window.__ModuleLoader__.load({
2253
2253
  const HEADER_PROJECT_TIP_EVENT = "dcu-header-project-tip";
2254
2254
  const HEADER_SESSION_MENU_EVENT = "dcu-header-session-menu";
2255
2255
  const CONVERSATION_HEADER_STYLE = `
2256
- header:has([data-dcu-inline-tabs]){box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:34px;padding-top:3px;padding-bottom:3px;border-bottom:0}
2256
+ header:has([data-dcu-inline-tabs]){box-sizing:border-box;display:flex;flex-wrap:nowrap;align-items:center;gap:10px;min-height:34px;padding-top:3px;padding-bottom:3px;border-bottom:0}
2257
2257
  header:has([data-dcu-inline-tabs]):after{display:none;content:none}
2258
2258
  header:has([data-dcu-inline-tabs]) [class*="titleRow"],header:has([data-dcu-inline-tabs]) [class*="titleCluster"]{display:contents}
2259
- header:has([data-dcu-inline-tabs]) [class*="crumbs"]{order:1;flex:1;min-width:0}
2259
+ header:has([data-dcu-inline-tabs]) [class*="crumbs"]{order:1;flex:0 1 auto;min-width:0}
2260
2260
  header:has([data-dcu-inline-tabs]) [class*="headerActions"]{order:2;flex:none}
2261
- header [data-dcu-inline-tabs]{box-sizing:border-box;order:3;flex:none;display:flex;align-items:center;gap:0;margin:0;padding:0;height:28px;position:relative;z-index:1;overflow:hidden;border:1px solid var(--dsw-alias-border-subtle,rgba(255,255,255,.12));border-radius:8px;background:var(--dsw-alias-background-secondary,rgba(255,255,255,.025))}
2261
+ header [data-dcu-inline-tabs]{box-sizing:border-box;order:3;flex:none;display:flex;align-items:center;gap:0;margin:0 0 0 auto;padding:0;height:28px;position:relative;z-index:1;overflow:hidden;border:1px solid var(--dsw-alias-border-subtle,rgba(255,255,255,.12));border-radius:8px;background:var(--dsw-alias-background-secondary,rgba(255,255,255,.025))}
2262
2262
  header:has([data-dcu-inline-tabs]) [class*="headerUtilities"]{order:4;flex:none}
2263
2263
  /* 新版角落插槽被 display:contents 摊平后,需要独立排序并撤销嵌套布局的边距补偿。 */
2264
2264
  header:has([data-dcu-inline-tabs]) [data-conversation-header-corner]{order:5;flex:none;margin-left:0;margin-right:0}
@@ -9590,6 +9590,7 @@ html[data-dsh-native-backdrop=mica] body[data-ds-dark-theme] :is(.dcu-root,.dcu-
9590
9590
  html[data-dsh-native-backdrop=mica] body:has(.dcu-settings-page) .dcu-root :is([inert],[inert] *){visibility:hidden!important}
9591
9591
  /* 同步隐藏本设置页隔离的外部 portal,保留引导模态及其他组件自己的 inert 语义。 */
9592
9592
  body:has(.dcu-settings-page) :is([data-dcu-settings-isolated],[data-dcu-settings-isolated] *){visibility:hidden!important}
9593
+ body:has(.dcu-settings-page) > [role=alert]{visibility:visible!important}
9593
9594
  html[data-dsh-native-backdrop=mica] .dcu-settings-page,html[data-dsh-native-backdrop=mica] body:has(.dcu-settings-page) .dcu-root{background:transparent}
9594
9595
 
9595
9596
  .dcu-settings-inner:has(.dcu-usage-section){height:100%;display:flex;flex-direction:column;padding-bottom:0}
@@ -9746,6 +9747,7 @@ html[data-dsh-native-backdrop=mica] .dcu-settings-page,html[data-dsh-native-back
9746
9747
  const guideModals = step === void 0 ? [] : settingsOverlays("[role=\"dialog\"][aria-modal=\"true\"],[role=\"alertdialog\"][aria-modal=\"true\"]");
9747
9748
  const isolate = (element) => {
9748
9749
  if (element.parentElement === document.body && element.hasAttribute("data-dsh-pet-overlay")) return;
9750
+ if (element.parentElement === document.body && element.getAttribute("role") === "alert") return;
9749
9751
  if (element === onboardingRoot.current || guideModals.includes(element)) return;
9750
9752
  if (guideModals.some((modal) => element.contains(modal))) {
9751
9753
  for (const child of element.children) if (child instanceof HTMLElement && !/^(STYLE|SCRIPT|LINK)$/.test(child.tagName)) isolate(child);
@@ -9776,7 +9778,7 @@ html[data-dsh-native-backdrop=mica] .dcu-settings-page,html[data-dsh-native-back
9776
9778
  const keepFocus = (event) => {
9777
9779
  const target = event.target;
9778
9780
  if (!(target instanceof Node) || page.current === null || !settingsElementAvailable(page.current)) return;
9779
- if (page.current.contains(target) || onboardingRoot.current?.contains(target) || [...document.querySelectorAll("body > [data-dsh-pet-overlay]")].some((root) => root.contains(target)) || settingsOverlays().some((overlay) => overlay.contains(target))) return;
9781
+ if (page.current.contains(target) || onboardingRoot.current?.contains(target) || [...document.querySelectorAll("body > [data-dsh-pet-overlay], body > [role=alert]")].some((root) => root.contains(target)) || settingsOverlays().some((overlay) => overlay.contains(target))) return;
9780
9782
  back.current?.focus();
9781
9783
  };
9782
9784
  const wrapFocus = (event) => {
@@ -9784,7 +9786,7 @@ html[data-dsh-native-backdrop=mica] .dcu-settings-page,html[data-dsh-native-back
9784
9786
  const items = [
9785
9787
  page.current,
9786
9788
  onboardingRoot.current,
9787
- ...document.querySelectorAll("body > [data-dsh-pet-overlay]")
9789
+ ...document.querySelectorAll("body > [data-dsh-pet-overlay], body > [role=alert]")
9788
9790
  ].filter((root) => root !== null).flatMap((root) => [...root.querySelectorAll("button,input,select,textarea,a[href],[tabindex]")]).filter((element) => element.tabIndex >= 0 && !element.matches(":disabled") && settingsElementAvailable(element));
9789
9791
  const next = event.shiftKey ? items.at(-1) : items[0];
9790
9792
  if (document.activeElement === (event.shiftKey ? items[0] : items.at(-1))) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@michengai/dsh-codex-ui",
3
- "version": "1.1.13",
3
+ "version": "1.1.14",
4
4
  "description": "DSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航 · A Codex-style sidebar, workspace session tree, global search, and turn navigation for DSH Web",
5
5
  "license": "Apache-2.0",
6
6
  "publishConfig": {