zcode-pro 1.2.0 → 1.3.0

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.
@@ -11,10 +11,14 @@ import { startAliasMigrationWatcher } from './features/alias-migration.js';
11
11
  import { startTaskOrderWatcher } from './features/task-order.js';
12
12
  import { startSessionSwitch } from './features/session-switch.js';
13
13
  import { startNewtabPanels } from './features/newtab-panels.js';
14
+ import { startStatusBar } from './features/status-bar.js';
15
+ import { startTurnUsage } from './features/turn-usage.js';
14
16
  import { startTitleLock } from './features/title-lock.js';
15
17
  import { startTitleGen } from './features/title-gen.js';
16
18
  import { startWsRunningSpin } from './features/ws-running.js';
17
19
  import { startIdleReclaim } from './features/idle-reclaim.js';
20
+ import { startSandboxReclaim } from './features/sandbox-reclaim.js';
21
+ import { startPluginCardRetry } from './features/plugin-card-retry.js';
18
22
  import { startToolbarIcons } from './features/toolbar-icons.js';
19
23
  import { startPinnedCollapse } from './features/pinned-collapse.js';
20
24
  import { startStyleAdjustments } from './features/styles.js';
@@ -58,8 +62,12 @@ import { ensureStyle } from './ui.js';
58
62
  try { startImageMenu(); } catch { /* ignore */ }
59
63
  try { startWsRunningSpin(); } catch { /* ignore */ }
60
64
  try { startIdleReclaim(); } catch { /* ignore */ }
65
+ try { startSandboxReclaim(); } catch { /* ignore */ }
66
+ try { startPluginCardRetry(); } catch { /* ignore */ }
61
67
  try { startToolbarIcons(); } catch { /* ignore */ }
62
68
  try { startNewtabPanels(); } catch { /* ignore */ }
69
+ try { startStatusBar(); } catch { /* ignore */ }
70
+ try { startTurnUsage(); } catch { /* ignore */ }
63
71
  try { startPinnedCollapse(); } catch { /* ignore */ }
64
72
  try { startStyleAdjustments(); } catch { /* ignore */ }
65
73
  try { startSettingsEntry(); } catch { /* ignore */ }
package/src/inject/ui.js CHANGED
@@ -630,6 +630,56 @@ export function ensureStyle() {
630
630
  text-align: center;
631
631
  color: var(--color-muted-foreground, #888);
632
632
  }
633
+ /* 状态栏统计(status-bar.js):输入框下方右对齐的一行小字,每项带 lucide 小图标。
634
+ 上下间距由脚本按视图控制(status-bar.js:下方有内容时对称 7px,
635
+ 下方是窗底留白时负 margin 压入贴底) */
636
+ .zcodepro-statusbar {
637
+ display: flex;
638
+ justify-content: flex-end;
639
+ align-items: center;
640
+ gap: 8px;
641
+ padding: 7px 14px 0;
642
+ font-size: 11px;
643
+ line-height: 1.4;
644
+ color: var(--color-muted-foreground, #888);
645
+ user-select: none;
646
+ pointer-events: none;
647
+ }
648
+ .zcodepro-statusbar span[data-tone='warn'] { color: var(--color-amber-500, #f59e0b); }
649
+ .zcodepro-statusbar span[data-tone='danger'] { color: var(--color-red-500, #ef4444); }
650
+ .zcodepro-statusbar-sep { opacity: 0.45; }
651
+ /* 会话组与全局组之间的分界竖线 */
652
+ .zcodepro-statusbar-groupsep {
653
+ width: 1px;
654
+ height: 10px;
655
+ background: currentColor;
656
+ opacity: 0.3;
657
+ margin: 0 2px;
658
+ }
659
+ /* 每项内部用 flex 对齐:图标、标签、数值垂直居中,间距统一 */
660
+ .zcodepro-statusbar span[title] {
661
+ display: inline-flex;
662
+ align-items: center;
663
+ gap: 3px;
664
+ white-space: nowrap;
665
+ }
666
+ .zcodepro-sb-icon {
667
+ width: 12px;
668
+ height: 12px;
669
+ flex-shrink: 0;
670
+ opacity: 0.6;
671
+ }
672
+ .zcodepro-statusbar b { font-weight: 600; color: var(--color-foreground-subtle, #666); }
673
+ .zcodepro-statusbar i {
674
+ font-style: normal;
675
+ opacity: 0.7;
676
+ font-size: 10px;
677
+ }
678
+ /* 项内短标签(如“上下文”“累计”),弱化不抢数值 */
679
+ .zcodepro-statusbar em {
680
+ font-style: normal;
681
+ opacity: 0.75;
682
+ }
633
683
  .zcodepro-switcher-ws {
634
684
  font-size: 11px;
635
685
  color: var(--color-muted-foreground, #888);