dsh-better-workspace 0.36.13 → 0.36.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/README.md +1 -1
- package/dsh.plugin.json +1 -1
- package/package.json +1 -1
- package/src/client.js +31 -7
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
工作区里的会话名称同样用 `/` 分层(如 `测试1/两个插件维护`)。会话分组用**次级配色且无文件夹图标**渲染,和工作区文件夹一眼可辨;会话分组可整组重命名(批量改写成员标题)。
|
|
39
39
|
|
|
40
|
-
**重启后标题不回退**:DSH
|
|
40
|
+
**重启后标题不回退**:DSH 重启后的冷列表只为命中投影缓存的会话携带标题——分叉出的会话与从未写过检查点的会话会暂时没有标题,真实的标题其实还在会话日志里。本插件把每个会话**最近一次的真实标题**持久化在浏览器里(带防抖的本地缓存,变更合并整写一次),回退窗口内直接用记忆标题渲染,`/` 分级分组照常成立;打开会话后官方数据到位即自动纠正。**从未有过标题的会话**(例如只写了头部、零轮次的空会话)不再回退成「工作区名」,而是显示官方语义的「未命名」(v0.36.14,issue #16)。
|
|
41
41
|
|
|
42
42
|
**跨端手动同步(Web ↔ 桌面客户端)**:外观自定义、默认外观与开关默认保存在各设备自己的浏览器里;设置卡片新增「跨端同步」区——Web 上点「从客户端获取」、客户端上点「从 Web 获取」,可选**覆盖本设备**或**合并两端**(并集保留各自独有项),另一端的数据经宿主设置存储(~/.dsh/settings.yaml,两端共享)送达;旁边有「发送本设备数据」按钮,旧版本的历史数据首次同步推一次即可,之后每次修改都会自动写入宿主、对端随手可取。折叠状态仍保持每端独立。
|
|
43
43
|
|
package/dsh.plugin.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "dsh-external/dsh-better-workspace",
|
|
3
|
-
"version": "0.36.
|
|
3
|
+
"version": "0.36.14",
|
|
4
4
|
"main": "./src/index.js",
|
|
5
5
|
"description": "侧边栏工作区树:按官方磁盘目录嵌套(官方 workspace-tree 语义),可选按名称中的 / 分组(默认关闭,设置里开启);新会话页的工作区选择器同树。Workspace tree for the DSH sidebar workspace list, nested by official disk folders with optional \"/\"-name grouping; the New Session workspace picker shows the same tree.",
|
|
6
6
|
"engines": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-better-workspace",
|
|
3
|
-
"version": "0.36.
|
|
3
|
+
"version": "0.36.14",
|
|
4
4
|
"description": "侧边栏工作区树:按官方磁盘目录嵌套(官方 workspace-tree 语义),可选按名称中的 / 分组(默认关闭,设置里开启);新会话页的工作区选择器同树(同一份视图选项即时同步);添加工作区走官方目录流。Workspace tree for the DSH sidebar: disk-path nesting (official workspace-tree semantics), with optional \"/\"-name grouping (off by default), and the same tree in the New Session workspace picker; add-workspace rides the official directory flow.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
package/src/client.js
CHANGED
|
@@ -48,6 +48,7 @@ window.__ModuleLoader__.load({
|
|
|
48
48
|
'shortcut.noCompletedTurn': '当前会话没有已结束的轮次',
|
|
49
49
|
'workspace.defaultName': '默认工作区',
|
|
50
50
|
'session.new': '新会话',
|
|
51
|
+
'session.untitled': '未命名',
|
|
51
52
|
'viewOptions.label': '视图选项',
|
|
52
53
|
'viewOptions.groupBy': '分组方式',
|
|
53
54
|
'viewOptions.byWorkspace': '按工作区',
|
|
@@ -224,6 +225,7 @@ window.__ModuleLoader__.load({
|
|
|
224
225
|
'shortcut.noCompletedTurn': 'This session has no completed turn',
|
|
225
226
|
'workspace.defaultName': 'Default workspace',
|
|
226
227
|
'session.new': 'New session',
|
|
228
|
+
'session.untitled': 'Untitled',
|
|
227
229
|
'viewOptions.label': 'View options',
|
|
228
230
|
'viewOptions.groupBy': 'Group by',
|
|
229
231
|
'viewOptions.byWorkspace': 'Workspaces',
|
|
@@ -408,6 +410,7 @@ window.__ModuleLoader__.load({
|
|
|
408
410
|
'shortcut.noCompletedTurn': 'لا توجد جولة مكتملة في هذه الجلسة',
|
|
409
411
|
'workspace.defaultName': 'مساحة العمل الافتراضية',
|
|
410
412
|
'session.new': 'جلسة جديدة',
|
|
413
|
+
'session.untitled': 'بدون عنوان',
|
|
411
414
|
'viewOptions.label': 'خيارات العرض',
|
|
412
415
|
'viewOptions.groupBy': 'التجميع حسب',
|
|
413
416
|
'viewOptions.byWorkspace': 'مساحات العمل',
|
|
@@ -584,6 +587,7 @@ window.__ModuleLoader__.load({
|
|
|
584
587
|
'shortcut.noCompletedTurn': 'Diese Sitzung hat keinen abgeschlossenen Durchlauf',
|
|
585
588
|
'workspace.defaultName': 'Standard-Arbeitsbereich',
|
|
586
589
|
'session.new': 'Neue Sitzung',
|
|
590
|
+
'session.untitled': 'Ohne Titel',
|
|
587
591
|
'viewOptions.label': 'Ansichtsoptionen',
|
|
588
592
|
'viewOptions.groupBy': 'Gruppieren',
|
|
589
593
|
'viewOptions.byWorkspace': 'Arbeitsbereiche',
|
|
@@ -760,6 +764,7 @@ window.__ModuleLoader__.load({
|
|
|
760
764
|
'shortcut.noCompletedTurn': "Cette session n'a aucun tour terminé",
|
|
761
765
|
'workspace.defaultName': 'Espace de travail par défaut',
|
|
762
766
|
'session.new': 'Nouvelle session',
|
|
767
|
+
'session.untitled': 'Sans titre',
|
|
763
768
|
'viewOptions.label': 'Options d’affichage',
|
|
764
769
|
'viewOptions.groupBy': 'Regrouper par',
|
|
765
770
|
'viewOptions.byWorkspace': 'Espaces de travail',
|
|
@@ -936,6 +941,7 @@ window.__ModuleLoader__.load({
|
|
|
936
941
|
'shortcut.noCompletedTurn': 'इस सत्र में कोई पूर्ण चक्र नहीं है',
|
|
937
942
|
'workspace.defaultName': 'डिफ़ॉल्ट कार्यस्थान',
|
|
938
943
|
'session.new': 'नया सत्र',
|
|
944
|
+
'session.untitled': 'बिना शीर्षक',
|
|
939
945
|
'viewOptions.label': 'दृश्य विकल्प',
|
|
940
946
|
'viewOptions.groupBy': 'समूहीकरण',
|
|
941
947
|
'viewOptions.byWorkspace': 'कार्यक्षेत्र अनुसार',
|
|
@@ -1112,6 +1118,7 @@ window.__ModuleLoader__.load({
|
|
|
1112
1118
|
'shortcut.noCompletedTurn': 'Sesi ini tidak memiliki putaran yang selesai',
|
|
1113
1119
|
'workspace.defaultName': 'Ruang kerja default',
|
|
1114
1120
|
'session.new': 'Sesi baru',
|
|
1121
|
+
'session.untitled': 'Tanpa judul',
|
|
1115
1122
|
'viewOptions.label': 'Opsi tampilan',
|
|
1116
1123
|
'viewOptions.groupBy': 'Kelompokkan berdasarkan',
|
|
1117
1124
|
'viewOptions.byWorkspace': 'Ruang kerja',
|
|
@@ -1288,6 +1295,7 @@ window.__ModuleLoader__.load({
|
|
|
1288
1295
|
'shortcut.noCompletedTurn': 'Questa sessione non ha turni completati',
|
|
1289
1296
|
'workspace.defaultName': 'Area di lavoro predefinita',
|
|
1290
1297
|
'session.new': 'Nuova sessione',
|
|
1298
|
+
'session.untitled': 'Senza titolo',
|
|
1291
1299
|
'viewOptions.label': 'Opzioni vista',
|
|
1292
1300
|
'viewOptions.groupBy': 'Raggruppa per',
|
|
1293
1301
|
'viewOptions.byWorkspace': 'Aree di lavoro',
|
|
@@ -1464,6 +1472,7 @@ window.__ModuleLoader__.load({
|
|
|
1464
1472
|
'shortcut.noCompletedTurn': 'このセッションには完了したターンがありません',
|
|
1465
1473
|
'workspace.defaultName': '既定のワークスペース',
|
|
1466
1474
|
'session.new': '新しいセッション',
|
|
1475
|
+
'session.untitled': '無題',
|
|
1467
1476
|
'viewOptions.label': '表示オプション',
|
|
1468
1477
|
'viewOptions.groupBy': 'グループ化',
|
|
1469
1478
|
'viewOptions.byWorkspace': 'ワークスペースごと',
|
|
@@ -1640,6 +1649,7 @@ window.__ModuleLoader__.load({
|
|
|
1640
1649
|
'shortcut.noCompletedTurn': '이 세션에는 완료된 턴이 없습니다',
|
|
1641
1650
|
'workspace.defaultName': '기본 워크스페이스',
|
|
1642
1651
|
'session.new': '새 세션',
|
|
1652
|
+
'session.untitled': '제목 없음',
|
|
1643
1653
|
'viewOptions.label': '보기 옵션',
|
|
1644
1654
|
'viewOptions.groupBy': '그룹화',
|
|
1645
1655
|
'viewOptions.byWorkspace': '작업 공간별',
|
|
@@ -1816,6 +1826,7 @@ window.__ModuleLoader__.load({
|
|
|
1816
1826
|
'shortcut.noCompletedTurn': 'Deze sessie heeft geen voltooide ronde',
|
|
1817
1827
|
'workspace.defaultName': 'Standaardwerkruimte',
|
|
1818
1828
|
'session.new': 'Nieuwe sessie',
|
|
1829
|
+
'session.untitled': 'Zonder titel',
|
|
1819
1830
|
'viewOptions.label': 'Weergaveopties',
|
|
1820
1831
|
'viewOptions.groupBy': 'Groeperen op',
|
|
1821
1832
|
'viewOptions.byWorkspace': 'Werkruimtes',
|
|
@@ -1992,6 +2003,7 @@ window.__ModuleLoader__.load({
|
|
|
1992
2003
|
'shortcut.noCompletedTurn': 'Ta sesja nie ma ukończonej tury',
|
|
1993
2004
|
'workspace.defaultName': 'Domyślna przestrzeń robocza',
|
|
1994
2005
|
'session.new': 'Nowa sesja',
|
|
2006
|
+
'session.untitled': 'Bez tytułu',
|
|
1995
2007
|
'viewOptions.label': 'Opcje widoku',
|
|
1996
2008
|
'viewOptions.groupBy': 'Grupuj według',
|
|
1997
2009
|
'viewOptions.byWorkspace': 'Obszary robocze',
|
|
@@ -2168,6 +2180,7 @@ window.__ModuleLoader__.load({
|
|
|
2168
2180
|
'shortcut.noCompletedTurn': 'Esta sessão não tem nenhum turno concluído',
|
|
2169
2181
|
'workspace.defaultName': 'Espaço de trabalho predefinido',
|
|
2170
2182
|
'session.new': 'Nova sessão',
|
|
2183
|
+
'session.untitled': 'Sem título',
|
|
2171
2184
|
'viewOptions.label': 'Opções de vista',
|
|
2172
2185
|
'viewOptions.groupBy': 'Agrupar por',
|
|
2173
2186
|
'viewOptions.byWorkspace': 'Áreas de trabalho',
|
|
@@ -2344,6 +2357,7 @@ window.__ModuleLoader__.load({
|
|
|
2344
2357
|
'shortcut.noCompletedTurn': 'В этом сеансе нет завершённых циклов',
|
|
2345
2358
|
'workspace.defaultName': 'Рабочая область по умолчанию',
|
|
2346
2359
|
'session.new': 'Новая сессия',
|
|
2360
|
+
'session.untitled': 'Без названия',
|
|
2347
2361
|
'viewOptions.label': 'Параметры вида',
|
|
2348
2362
|
'viewOptions.groupBy': 'Группировка',
|
|
2349
2363
|
'viewOptions.byWorkspace': 'По рабочим областям',
|
|
@@ -2520,6 +2534,7 @@ window.__ModuleLoader__.load({
|
|
|
2520
2534
|
'shortcut.noCompletedTurn': 'Den här sessionen har ingen avslutad omgång',
|
|
2521
2535
|
'workspace.defaultName': 'Standardarbetsyta',
|
|
2522
2536
|
'session.new': 'Ny session',
|
|
2537
|
+
'session.untitled': 'Utan titel',
|
|
2523
2538
|
'viewOptions.label': 'Visningsalternativ',
|
|
2524
2539
|
'viewOptions.groupBy': 'Gruppera efter',
|
|
2525
2540
|
'viewOptions.byWorkspace': 'Arbetsytor',
|
|
@@ -2696,6 +2711,7 @@ window.__ModuleLoader__.load({
|
|
|
2696
2711
|
'shortcut.noCompletedTurn': 'เซสชันนี้ไม่มีรอบที่เสร็จสิ้น',
|
|
2697
2712
|
'workspace.defaultName': 'พื้นที่ทำงานเริ่มต้น',
|
|
2698
2713
|
'session.new': 'เซสชันใหม่',
|
|
2714
|
+
'session.untitled': 'ไม่มีชื่อ',
|
|
2699
2715
|
'viewOptions.label': 'ตัวเลือกมุมมอง',
|
|
2700
2716
|
'viewOptions.groupBy': 'จัดกลุ่มตาม',
|
|
2701
2717
|
'viewOptions.byWorkspace': 'ตามพื้นที่ทำงาน',
|
|
@@ -2872,6 +2888,7 @@ window.__ModuleLoader__.load({
|
|
|
2872
2888
|
'shortcut.noCompletedTurn': 'Bu oturumda tamamlanmış tur yok',
|
|
2873
2889
|
'workspace.defaultName': 'Varsayılan çalışma alanı',
|
|
2874
2890
|
'session.new': 'Yeni oturum',
|
|
2891
|
+
'session.untitled': 'Başlıksız',
|
|
2875
2892
|
'viewOptions.label': 'Görünüm seçenekleri',
|
|
2876
2893
|
'viewOptions.groupBy': 'Gruplandır',
|
|
2877
2894
|
'viewOptions.byWorkspace': 'Çalışma alanları',
|
|
@@ -3048,6 +3065,7 @@ window.__ModuleLoader__.load({
|
|
|
3048
3065
|
'shortcut.noCompletedTurn': 'Phiên này chưa có lượt nào hoàn thành',
|
|
3049
3066
|
'workspace.defaultName': 'Không gian làm việc mặc định',
|
|
3050
3067
|
'session.new': 'Phiên mới',
|
|
3068
|
+
'session.untitled': 'Chưa đặt tên',
|
|
3051
3069
|
'viewOptions.label': 'Tùy chọn hiển thị',
|
|
3052
3070
|
'viewOptions.groupBy': 'Nhóm theo',
|
|
3053
3071
|
'viewOptions.byWorkspace': 'Theo khu vực làm việc',
|
|
@@ -3224,6 +3242,7 @@ window.__ModuleLoader__.load({
|
|
|
3224
3242
|
'shortcut.noCompletedTurn': '呢個會話未有已完成嘅回合',
|
|
3225
3243
|
'workspace.defaultName': '預設工作區',
|
|
3226
3244
|
'session.new': '新對話',
|
|
3245
|
+
'session.untitled': '未命名',
|
|
3227
3246
|
'viewOptions.label': '檢視選項',
|
|
3228
3247
|
'viewOptions.groupBy': '分組方式',
|
|
3229
3248
|
'viewOptions.byWorkspace': '按工作區',
|
|
@@ -3400,6 +3419,7 @@ window.__ModuleLoader__.load({
|
|
|
3400
3419
|
'shortcut.noCompletedTurn': '呢個會話未有已完成嘅回合',
|
|
3401
3420
|
'workspace.defaultName': '預設工作區',
|
|
3402
3421
|
'session.new': '新對話',
|
|
3422
|
+
'session.untitled': '未命名',
|
|
3403
3423
|
'viewOptions.label': '檢視選項',
|
|
3404
3424
|
'viewOptions.groupBy': '分組方式',
|
|
3405
3425
|
'viewOptions.byWorkspace': '按工作區',
|
|
@@ -3576,6 +3596,7 @@ window.__ModuleLoader__.load({
|
|
|
3576
3596
|
'shortcut.noCompletedTurn': '此工作階段沒有已完成的回合',
|
|
3577
3597
|
'workspace.defaultName': '預設工作區',
|
|
3578
3598
|
'session.new': '新工作階段',
|
|
3599
|
+
'session.untitled': '未命名',
|
|
3579
3600
|
'viewOptions.label': '檢視選項',
|
|
3580
3601
|
'viewOptions.groupBy': '分組方式',
|
|
3581
3602
|
'viewOptions.byWorkspace': '按工作區',
|
|
@@ -4058,14 +4079,17 @@ window.__ModuleLoader__.load({
|
|
|
4058
4079
|
if (!summary) return ''
|
|
4059
4080
|
if (summary.blank) return t('session.new')
|
|
4060
4081
|
if (summary.title) return String(summary.title)
|
|
4061
|
-
// Cold-restart window:
|
|
4062
|
-
//
|
|
4063
|
-
//
|
|
4064
|
-
//
|
|
4065
|
-
//
|
|
4066
|
-
// the session opens and the wire catches up.
|
|
4082
|
+
// Cold-restart window: the wire serves only the projection cache, so a
|
|
4083
|
+
// title that was never checkpointed (fork-born, never-checkpointed) is
|
|
4084
|
+
// missing for the list row even though the durable title sits in the
|
|
4085
|
+
// session log. A title remembered from an earlier snapshot restores the
|
|
4086
|
+
// "/" grouping until the session opens and the wire catches up.
|
|
4067
4087
|
if (typeof rememberedTitle === 'string' && rememberedTitle !== '') return rememberedTitle
|
|
4068
|
-
|
|
4088
|
+
// Nothing remembered: stay official. Rows.tsx displayTitle() renders
|
|
4089
|
+
// t('session.untitled') for an unnamed row — NEVER the host's
|
|
4090
|
+
// displayTitle, which falls back to the project basename and turned
|
|
4091
|
+
// every title-less row into a duplicate workspace name (issue #16).
|
|
4092
|
+
return t('session.untitled')
|
|
4069
4093
|
}
|
|
4070
4094
|
|
|
4071
4095
|
/**
|