dsh-global-todo 0.4.4 → 0.4.5

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
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.4.5] — 2026-10-19
11
+
12
+ Polishing where the side detail sits, now that it exists.
13
+
14
+ - **The card is bracketed between the toolbar and the footer**, so it no longer covers the dir
15
+ controls or the store line; the toolbar keeps its full width and only the list gives way; the
16
+ card scrolls as one column instead of pushing the footer around. Same CSS-only mechanism, no
17
+ markup change.
10
18
  ## [0.4.4] — 2026-10-19
11
19
 
12
20
  Opening a todo on a wide screen used to push the list down and leave half the window unused.
package/docs/DESIGN.md CHANGED
@@ -61,8 +61,9 @@ $DSH_HOME/global-todo/todos.json ← { version: 1, todos: [ … ] }
61
61
 
62
62
  Expanding a row inline is right on a narrow window and wrong on a wide one: the list jumps, the
63
63
  row you were reading slides away, and the rest of the screen sits empty. Above 1100px the open
64
- row's detail is lifted out of the flow into a card at the panel's right edge, and the list gets
65
- right padding equal to that card. This is a CSS-only override over unchanged markup
64
+ row's detail is lifted out of the flow into a card bracketed between the toolbar and the footer
65
+ at the panel's right edge; only the list gives way (the toolbar keeps full width), and the list gets
66
+ padding equal to that card. This is a CSS-only override over unchanged markup
66
67
  (`.gt-root[data-wide-detail]` plus one media query) precisely so there is still exactly one
67
68
  detail implementation — a second render path for wide screens would drift from the inline one at
68
69
  the first field change.
Binary file
Binary file
Binary file
package/lib/client.js CHANGED
@@ -50,7 +50,7 @@ window.__ModuleLoader__.load({
50
50
  * different mechanisms (restart vs. hot reload), so "which one am I looking
51
51
  * at" needs an answer that the bundle itself carries.
52
52
  */
53
- const UI_REV = 'ui27'
53
+ const UI_REV = 'ui28'
54
54
  /** Last language resolved for the shell; module-level so a fetch failure can be worded too. */
55
55
  let activeLang = 'zh'
56
56
 
@@ -1012,11 +1012,15 @@ button.gt-chip[data-on="1"] { color: var(--dsw-alias-label-primary); border-colo
1012
1012
  down. Deliberately CSS-only over unchanged markup: one detail implementation, and it only
1013
1013
  applies where there is room for a second column. */
1014
1014
  @media (min-width: 1100px) {
1015
- .gt-root[data-wide-detail="1"] .gt-inner { padding-right: 408px; }
1015
+ /* Only the list gives way: the title row and the toolbar keep their full width, so the
1016
+ controls never wrap or hide behind the card. */
1017
+ .gt-root[data-wide-detail="1"] .gt-groups { padding-right: 400px; }
1016
1018
  .gt-root[data-wide-detail="1"] .gt-item[data-open="1"] .gt-detail {
1017
- /* Follow the panel's own right edge (it is centred and capped at 980px) instead of the
1018
- viewport's, so the card stays attached to the list on ultra-wide screens. */
1019
- position: fixed; top: 96px; right: max(24px, calc(50vw - 466px)); width: 360px; max-height: calc(100vh - 140px);
1019
+ /* Aligned to the panel's own right edge (centred, capped at 980px) and bracketed between
1020
+ the toolbar and the footer, so it reads as a second column rather than a floating
1021
+ dialog. */
1022
+ position: fixed; top: 208px; bottom: 64px;
1023
+ right: max(24px, calc(50vw - 466px)); width: 360px;
1020
1024
  overflow: auto; padding: 16px; margin: 0; border: 1px solid var(--dsw-alias-border-l2);
1021
1025
  border-radius: 12px; background: var(--dsw-alias-bg-overlay); z-index: 30;
1022
1026
  }
package/lib/index.js CHANGED
@@ -35,7 +35,7 @@ import { createStore, resolveStorePath } from './store.js'
35
35
  import { createTools } from './tools.js'
36
36
 
37
37
  /** Must equal `package.json`'s version; `npm run check` enforces that. */
38
- export const VERSION = '0.4.4'
38
+ export const VERSION = '0.4.5'
39
39
 
40
40
  /** Plugin id. Also the Loader row id in `cordis.patch.yml`. */
41
41
  export const name = 'dsh-global-todo'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-global-todo",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "icon": "./docs/icon.svg",
5
5
  "description": "Global, cross-session todos for DeepSeek Harness: one list owned by the human and the agent together, with creation time, attached documents and links, and one-click hand-off to an agent session. 全局待办:跨会话一份清单,记录加入时间,可挂文档与地址,可一键交给 Agent 继续干。",
6
6
  "type": "module",