dsh-bridge-gateway 0.1.5 → 0.1.6
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 +9 -0
- package/client/client.js +93 -4
- package/client/index.js +93 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
本项目 `dsh-bridge-gateway` 是基于 [dsh-bridge](https://github.com/wenbin-wb/dsh-bridge) 的移植增强分支,在保留原版能力之外,重点新增「公网直连网关」。
|
|
4
4
|
|
|
5
|
+
## [0.1.6] - 2026-09-12
|
|
6
|
+
|
|
7
|
+
### 修复(移动端第二批:布局密度与面板)
|
|
8
|
+
- 输入框贴底:收掉 scrollBody 的 16px 底部衬距,只保留 6px 呼吸位 + 安全区,底部统计药丸完整可见。
|
|
9
|
+
- workbuddy-connect 的 Reasoning levels 按钮收成纯图标(26px,结构锚点不依赖语言),不再把左侧按钮挤到上一行;工具栏恢复单行。
|
|
10
|
+
- 对话/轨迹/上下文标签行折叠为标题行下缘的悬浮胶囊(原生 tooltip 灰配色),不再独占一行,中间内容区净增约 33px。
|
|
11
|
+
- 底部面板(better-sidebar panel-host)不再被一刀切隐藏:展开时以底部面板形态显示内容(zsh 会话等),收起时隐藏;收掉展开时原生预留的 220px 空白。展开信号用语言无关的 aria-pressed 锚点(body.dsh-workbench-open 在收起后残留,不可用)。
|
|
12
|
+
- 抽屉化侧边栏顶部对齐到标签条之下(top: 38px),不再与最上面的栏重叠。
|
|
13
|
+
|
|
5
14
|
## [0.1.5] - 2026-09-12
|
|
6
15
|
|
|
7
16
|
### 变更
|
package/client/client.js
CHANGED
|
@@ -3829,6 +3829,44 @@ function injectMobileStyles() {
|
|
|
3829
3829
|
display: none !important;
|
|
3830
3830
|
}
|
|
3831
3831
|
|
|
3832
|
+
/* ---- \u5BF9\u8BDD/\u8F68\u8FF9/\u4E0A\u4E0B\u6587 \u6807\u7B7E\u884C\u6298\u53E0\u8FDB\u6807\u9898\u884C ----
|
|
3833
|
+
\u539F\u672C tabs \u72EC\u5360\u4E00\u884C\uFF0825px + \u95F4\u8DDD\uFF09\uFF0C\u79FB\u52A8\u7AEF\u4E2D\u95F4\u7A7A\u95F4\u592A\u5C0F\u3002
|
|
3834
|
+
\u6539\u4E3A\u7EDD\u5BF9\u5B9A\u4F4D\u7684\u60AC\u6D6E\u80F6\u56CA\uFF1A\u9489\u5728\u6807\u9898\u884C\u4E0B\u7F18\u53F3\u4FA7\uFF0C\u4E0D\u518D\u5360\u636E\u5E03\u5C40\u9AD8\u5EA6\uFF0C
|
|
3835
|
+
\u4E2D\u95F4\u5185\u5BB9\u533A\u51C0\u589E\u7EA6 33px\uFF1B\u80CC\u666F\u7528\u539F\u751F tooltip \u7070\u4E0E\u5185\u5BB9\u5206\u5C42\u3002 */
|
|
3836
|
+
header[class*="wSkVaW_header"] {
|
|
3837
|
+
position: relative !important;
|
|
3838
|
+
}
|
|
3839
|
+
div[class*="wSkVaW_tabs"] {
|
|
3840
|
+
position: absolute !important;
|
|
3841
|
+
top: 38px !important;
|
|
3842
|
+
right: 6px !important;
|
|
3843
|
+
left: auto !important;
|
|
3844
|
+
width: auto !important;
|
|
3845
|
+
max-width: 62vw !important;
|
|
3846
|
+
height: 30px !important;
|
|
3847
|
+
display: inline-flex !important;
|
|
3848
|
+
align-items: center !important;
|
|
3849
|
+
gap: 2px !important;
|
|
3850
|
+
padding: 2px !important;
|
|
3851
|
+
border-radius: 999px !important;
|
|
3852
|
+
background: var(--dsw-alias-tooltip-bg, #43454a) !important;
|
|
3853
|
+
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3) !important;
|
|
3854
|
+
overflow-x: auto !important;
|
|
3855
|
+
scrollbar-width: none !important;
|
|
3856
|
+
z-index: 30 !important;
|
|
3857
|
+
}
|
|
3858
|
+
div[class*="wSkVaW_tabs"]::-webkit-scrollbar {
|
|
3859
|
+
display: none !important;
|
|
3860
|
+
}
|
|
3861
|
+
div[class*="wSkVaW_tabs"] [role="tab"] {
|
|
3862
|
+
height: 24px !important;
|
|
3863
|
+
padding: 0 10px !important;
|
|
3864
|
+
border-radius: 999px !important;
|
|
3865
|
+
font-size: 12px !important;
|
|
3866
|
+
white-space: nowrap !important;
|
|
3867
|
+
flex: 0 0 auto !important;
|
|
3868
|
+
}
|
|
3869
|
+
|
|
3832
3870
|
/* ---- \u9876\u680F\u300C\u6807\u51C6\u6A21\u5F0F\u300D\u4E0E\u300C\u5BF9\u8BDD\u7BA1\u7406\u300D\u91CD\u53E0\u4FEE\u590D ----
|
|
3833
3871
|
\u5B9E\u6D4B\uFF08390px\uFF09\uFF1A\u6807\u51C6\u6A21\u5F0F(\u5728 titleCluster \u5185) \u53F3\u8FB9\u754C 102\uFF0C
|
|
3834
3872
|
\u5BF9\u8BDD\u7BA1\u7406(\u5728 headerUtilities \u5185) \u5DE6\u8FB9\u754C 91 \u2192 \u6C34\u5E73\u91CD\u53E0 11px\u3002
|
|
@@ -4101,11 +4139,34 @@ function injectMobileStyles() {
|
|
|
4101
4139
|
\u5E38\u9A7B\u5C4F\u5E55\u53F3\u4E0B\u89D2\uFF0C\u89C6\u89C9\u4E0A\u5C31\u662F\u90A3\u4E2A"\u5C0F\u65B9\u5757"\u3002
|
|
4102
4140
|
\u4FEE\u590D\uFF1A\u79FB\u52A8\u7AEF\u9690\u85CF panel-host \u906E\u7F69\u4E0E glass \u6E10\u53D8\u88C5\u9970\u6761\uFF0C\u5E76\u9501\u5B9A\u8F93\u5165\u6846 sticky \u4E8E\u5E95\u90E8\u3002 */
|
|
4103
4141
|
|
|
4104
|
-
/*
|
|
4142
|
+
/* better-sidebar \u9762\u677F\u5BBF\u4E3B\uFF1A\u9ED8\u8BA4\u9690\u85CF\uFF08\u65E7\u7684\u5168\u5C4F fixed \u906E\u7F69\u4F1A\u76D6\u4F4F\u8F93\u5165\u6846\u5E76\u62E6\u622A\u70B9\u51FB\uFF09\uFF1B
|
|
4143
|
+
\u5E95\u90E8\u9762\u677F\u5C55\u5F00\u65F6\uFF08\u5F00\u5173 aria-pressed=true / body.dsh-workbench-open\uFF09\u6539\u4E3A
|
|
4144
|
+
\u5E95\u90E8\u9762\u677F\u5F62\u6001\u663E\u793A\u2014\u2014\u4E0D\u906E\u8F93\u5165\u6846\u3001\u4E0D\u9876\u72B6\u6001\u680F\uFF0C\u5185\u5BB9\uFF08zsh \u4F1A\u8BDD\u7B49\uFF09\u53EF\u89C1\u3002
|
|
4145
|
+
aria-pressed \u4E0E data-active \u90FD\u662F\u8BED\u8A00\u65E0\u5173\u951A\u70B9\uFF0C\u4E2D\u82F1\u6587\u73AF\u5883\u901A\u7528\u3002 */
|
|
4105
4146
|
div[data-dsh-panel-host],
|
|
4106
4147
|
div[data-dsh-better-sidebar] {
|
|
4107
4148
|
display: none !important;
|
|
4108
4149
|
}
|
|
4150
|
+
body:has(button[data-dsh-bottom-toggle][aria-pressed='true']) div[data-dsh-panel-host],
|
|
4151
|
+
body:has(button[data-dsh-bottom-toggle][aria-pressed='true']) div[data-dsh-better-sidebar] {
|
|
4152
|
+
display: block !important;
|
|
4153
|
+
top: 42px !important;
|
|
4154
|
+
bottom: calc(var(--dsh-composer-height, 171px) + 34px) !important;
|
|
4155
|
+
left: 8px !important;
|
|
4156
|
+
right: 8px !important;
|
|
4157
|
+
width: auto !important;
|
|
4158
|
+
height: auto !important;
|
|
4159
|
+
z-index: 20 !important;
|
|
4160
|
+
border-radius: 12px !important;
|
|
4161
|
+
overflow: auto !important;
|
|
4162
|
+
background: var(--dsw-alias-bg-layer-2, #2c2c2e) !important;
|
|
4163
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35) !important;
|
|
4164
|
+
}
|
|
4165
|
+
/* \u5E95\u90E8\u9762\u677F\u5C55\u5F00\u65F6\u539F\u751F\u7ED9\u4E2D\u680F\u9884\u7559\u7684 220px \u5E95\u90E8\u7A7A\u767D\u6536\u6389\uFF0C\u8F93\u5165\u6846\u56DE\u5230\u5C4F\u5E55\u5E95\u3002
|
|
4166
|
+
\u6CE8\u610F body.dsh-workbench-open \u5728\u6536\u8D77\u540E\u4ECD\u6B8B\u7559\uFF0C\u4E0D\u80FD\u5F53\u5C55\u5F00\u4FE1\u53F7\u3002 */
|
|
4167
|
+
body:has(button[data-dsh-bottom-toggle][aria-pressed='true']) div[class*="pI_x6G_centerCol"] {
|
|
4168
|
+
margin-bottom: 0 !important;
|
|
4169
|
+
}
|
|
4109
4170
|
/* \u9690\u85CF\u4E3B\u9898\u88C5\u9970\u6027\u6E10\u53D8\u6761\uFF08\u53F3\u4E0B\u89D2\u5C0F\u65B9\u5757\uFF09 */
|
|
4110
4171
|
span[data-dsh-glass-fade] {
|
|
4111
4172
|
display: none !important;
|
|
@@ -4122,12 +4183,39 @@ function injectMobileStyles() {
|
|
|
4122
4183
|
display: flex !important;
|
|
4123
4184
|
align-items: center !important;
|
|
4124
4185
|
justify-content: space-between !important;
|
|
4186
|
+
flex-wrap: nowrap !important;
|
|
4125
4187
|
gap: 6px !important;
|
|
4126
4188
|
width: 100% !important;
|
|
4127
4189
|
padding: 2px 2px 4px !important;
|
|
4128
4190
|
box-sizing: border-box !important;
|
|
4129
4191
|
}
|
|
4130
4192
|
|
|
4193
|
+
/* \u8F93\u5165\u6846\u8D34\u5E95\uFF1AscrollBody \u7684 16px \u5E95\u90E8\u886C\u8DDD\u662F\u7A7A\u9699\u6765\u6E90\uFF0C\u6536\u6389\u53EA\u7559\u5B89\u5168\u533A\uFF1B
|
|
4194
|
+
\u518D\u57AB 6px \u8BA9\u7EDF\u8BA1\u836F\u4E38\u5B8C\u6574\u53EF\u89C1 */
|
|
4195
|
+
div[class*="wSkVaW_scrollBody"] {
|
|
4196
|
+
padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)) !important;
|
|
4197
|
+
}
|
|
4198
|
+
div[class*="wSkVaW_composerStack"] {
|
|
4199
|
+
padding-bottom: env(safe-area-inset-bottom, 0px) !important;
|
|
4200
|
+
}
|
|
4201
|
+
|
|
4202
|
+
/* workbuddy-connect \u7684 Reasoning levels \u6309\u94AE\uFF08uV2eYG_trailing \u91CC\u552F\u4E00\u7684\u65E0 class
|
|
4203
|
+
\u6309\u94AE\uFF0C\u7ED3\u6784\u951A\u70B9 span>button\uFF09\uFF1A\u79FB\u52A8\u7AEF\u6536\u6210\u7EAF\u56FE\u6807\uFF0C\u6587\u5B57\u88AB\u88C1\u6389\uFF0C
|
|
4204
|
+
\u4E0D\u518D\u628A\u5DE6\u4FA7\u6309\u94AE\u6324\u5230\u4E0A\u4E00\u884C */
|
|
4205
|
+
div[class*="uV2eYG_trailing"] span > button:not([class]) {
|
|
4206
|
+
flex: 0 0 26px !important;
|
|
4207
|
+
width: 26px !important;
|
|
4208
|
+
min-width: 26px !important;
|
|
4209
|
+
padding: 0 2px !important;
|
|
4210
|
+
overflow: hidden !important;
|
|
4211
|
+
justify-content: center !important;
|
|
4212
|
+
gap: 0 !important;
|
|
4213
|
+
font-size: 0 !important;
|
|
4214
|
+
}
|
|
4215
|
+
div[class*="uV2eYG_trailing"] span > button:not([class]) svg {
|
|
4216
|
+
flex: 0 0 auto !important;
|
|
4217
|
+
}
|
|
4218
|
+
|
|
4131
4219
|
div[class*="uV2eYG_tools"] {
|
|
4132
4220
|
display: flex !important;
|
|
4133
4221
|
align-items: center !important;
|
|
@@ -4210,7 +4298,8 @@ function injectMobileStyles() {
|
|
|
4210
4298
|
div[class*="_sidebarCol"] {
|
|
4211
4299
|
position: fixed !important;
|
|
4212
4300
|
left: 0 !important;
|
|
4213
|
-
|
|
4301
|
+
/* \u9876\u5230\u9876\u90E8\u6807\u7B7E\u6761(38px)\u4E4B\u4E0B\uFF0C\u4E0D\u518D\u4E0E\u6700\u4E0A\u9762\u7684\u680F\u91CD\u53E0 */
|
|
4302
|
+
top: 38px !important;
|
|
4214
4303
|
bottom: auto !important;
|
|
4215
4304
|
/* \u4FA7\u8FB9\u680F\u5E95\u90E8\u6EA2\u51FA\u5C4F\u5E55\u4FEE\u590D\uFF1A
|
|
4216
4305
|
\u5B9E\u6D4B 390x844 \u4E0B\uFF0C\u4FA7\u8FB9\u680F\u5B9E\u9645\u76D2\u5B50\u4E3A T=12 B=882\uFF08\u9AD8\u5EA6 870 > \u89C6\u53E3 844\uFF09\uFF0C\u5E95\u90E8\u6EA2\u51FA 38px\u3002
|
|
@@ -4218,8 +4307,8 @@ function injectMobileStyles() {
|
|
|
4218
4307
|
\u4E8E\u662F padding(10px+14px) \u4E0E margin(12px) \u88AB\u52A0\u5728 height:100dvh \u4E4B\u5916\u3002
|
|
4219
4308
|
\u6539\u4E3A border-box \u5E76\u7528 100dvh \u76F4\u63A5\u7EA6\u675F\u9AD8\u5EA6\uFF0Cpadding \u5373\u88AB\u5305\u542B\u5728\u9AD8\u5EA6\u5185\u3002 */
|
|
4220
4309
|
box-sizing: border-box !important;
|
|
4221
|
-
height: 100dvh !important;
|
|
4222
|
-
max-height: 100dvh !important;
|
|
4310
|
+
height: calc(100dvh - 38px) !important;
|
|
4311
|
+
max-height: calc(100dvh - 38px) !important;
|
|
4223
4312
|
margin: 0 !important;
|
|
4224
4313
|
width: 290px !important;
|
|
4225
4314
|
max-width: 82vw !important;
|
package/client/index.js
CHANGED
|
@@ -3426,6 +3426,44 @@ function injectMobileStyles() {
|
|
|
3426
3426
|
display: none !important;
|
|
3427
3427
|
}
|
|
3428
3428
|
|
|
3429
|
+
/* ---- 对话/轨迹/上下文 标签行折叠进标题行 ----
|
|
3430
|
+
原本 tabs 独占一行(25px + 间距),移动端中间空间太小。
|
|
3431
|
+
改为绝对定位的悬浮胶囊:钉在标题行下缘右侧,不再占据布局高度,
|
|
3432
|
+
中间内容区净增约 33px;背景用原生 tooltip 灰与内容分层。 */
|
|
3433
|
+
header[class*="wSkVaW_header"] {
|
|
3434
|
+
position: relative !important;
|
|
3435
|
+
}
|
|
3436
|
+
div[class*="wSkVaW_tabs"] {
|
|
3437
|
+
position: absolute !important;
|
|
3438
|
+
top: 38px !important;
|
|
3439
|
+
right: 6px !important;
|
|
3440
|
+
left: auto !important;
|
|
3441
|
+
width: auto !important;
|
|
3442
|
+
max-width: 62vw !important;
|
|
3443
|
+
height: 30px !important;
|
|
3444
|
+
display: inline-flex !important;
|
|
3445
|
+
align-items: center !important;
|
|
3446
|
+
gap: 2px !important;
|
|
3447
|
+
padding: 2px !important;
|
|
3448
|
+
border-radius: 999px !important;
|
|
3449
|
+
background: var(--dsw-alias-tooltip-bg, #43454a) !important;
|
|
3450
|
+
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3) !important;
|
|
3451
|
+
overflow-x: auto !important;
|
|
3452
|
+
scrollbar-width: none !important;
|
|
3453
|
+
z-index: 30 !important;
|
|
3454
|
+
}
|
|
3455
|
+
div[class*="wSkVaW_tabs"]::-webkit-scrollbar {
|
|
3456
|
+
display: none !important;
|
|
3457
|
+
}
|
|
3458
|
+
div[class*="wSkVaW_tabs"] [role="tab"] {
|
|
3459
|
+
height: 24px !important;
|
|
3460
|
+
padding: 0 10px !important;
|
|
3461
|
+
border-radius: 999px !important;
|
|
3462
|
+
font-size: 12px !important;
|
|
3463
|
+
white-space: nowrap !important;
|
|
3464
|
+
flex: 0 0 auto !important;
|
|
3465
|
+
}
|
|
3466
|
+
|
|
3429
3467
|
/* ---- 顶栏「标准模式」与「对话管理」重叠修复 ----
|
|
3430
3468
|
实测(390px):标准模式(在 titleCluster 内) 右边界 102,
|
|
3431
3469
|
对话管理(在 headerUtilities 内) 左边界 91 → 水平重叠 11px。
|
|
@@ -3698,11 +3736,34 @@ function injectMobileStyles() {
|
|
|
3698
3736
|
常驻屏幕右下角,视觉上就是那个"小方块"。
|
|
3699
3737
|
修复:移动端隐藏 panel-host 遮罩与 glass 渐变装饰条,并锁定输入框 sticky 于底部。 */
|
|
3700
3738
|
|
|
3701
|
-
/*
|
|
3739
|
+
/* better-sidebar 面板宿主:默认隐藏(旧的全屏 fixed 遮罩会盖住输入框并拦截点击);
|
|
3740
|
+
底部面板展开时(开关 aria-pressed=true / body.dsh-workbench-open)改为
|
|
3741
|
+
底部面板形态显示——不遮输入框、不顶状态栏,内容(zsh 会话等)可见。
|
|
3742
|
+
aria-pressed 与 data-active 都是语言无关锚点,中英文环境通用。 */
|
|
3702
3743
|
div[data-dsh-panel-host],
|
|
3703
3744
|
div[data-dsh-better-sidebar] {
|
|
3704
3745
|
display: none !important;
|
|
3705
3746
|
}
|
|
3747
|
+
body:has(button[data-dsh-bottom-toggle][aria-pressed='true']) div[data-dsh-panel-host],
|
|
3748
|
+
body:has(button[data-dsh-bottom-toggle][aria-pressed='true']) div[data-dsh-better-sidebar] {
|
|
3749
|
+
display: block !important;
|
|
3750
|
+
top: 42px !important;
|
|
3751
|
+
bottom: calc(var(--dsh-composer-height, 171px) + 34px) !important;
|
|
3752
|
+
left: 8px !important;
|
|
3753
|
+
right: 8px !important;
|
|
3754
|
+
width: auto !important;
|
|
3755
|
+
height: auto !important;
|
|
3756
|
+
z-index: 20 !important;
|
|
3757
|
+
border-radius: 12px !important;
|
|
3758
|
+
overflow: auto !important;
|
|
3759
|
+
background: var(--dsw-alias-bg-layer-2, #2c2c2e) !important;
|
|
3760
|
+
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35) !important;
|
|
3761
|
+
}
|
|
3762
|
+
/* 底部面板展开时原生给中栏预留的 220px 底部空白收掉,输入框回到屏幕底。
|
|
3763
|
+
注意 body.dsh-workbench-open 在收起后仍残留,不能当展开信号。 */
|
|
3764
|
+
body:has(button[data-dsh-bottom-toggle][aria-pressed='true']) div[class*="pI_x6G_centerCol"] {
|
|
3765
|
+
margin-bottom: 0 !important;
|
|
3766
|
+
}
|
|
3706
3767
|
/* 隐藏主题装饰性渐变条(右下角小方块) */
|
|
3707
3768
|
span[data-dsh-glass-fade] {
|
|
3708
3769
|
display: none !important;
|
|
@@ -3719,12 +3780,39 @@ function injectMobileStyles() {
|
|
|
3719
3780
|
display: flex !important;
|
|
3720
3781
|
align-items: center !important;
|
|
3721
3782
|
justify-content: space-between !important;
|
|
3783
|
+
flex-wrap: nowrap !important;
|
|
3722
3784
|
gap: 6px !important;
|
|
3723
3785
|
width: 100% !important;
|
|
3724
3786
|
padding: 2px 2px 4px !important;
|
|
3725
3787
|
box-sizing: border-box !important;
|
|
3726
3788
|
}
|
|
3727
3789
|
|
|
3790
|
+
/* 输入框贴底:scrollBody 的 16px 底部衬距是空隙来源,收掉只留安全区;
|
|
3791
|
+
再垫 6px 让统计药丸完整可见 */
|
|
3792
|
+
div[class*="wSkVaW_scrollBody"] {
|
|
3793
|
+
padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)) !important;
|
|
3794
|
+
}
|
|
3795
|
+
div[class*="wSkVaW_composerStack"] {
|
|
3796
|
+
padding-bottom: env(safe-area-inset-bottom, 0px) !important;
|
|
3797
|
+
}
|
|
3798
|
+
|
|
3799
|
+
/* workbuddy-connect 的 Reasoning levels 按钮(uV2eYG_trailing 里唯一的无 class
|
|
3800
|
+
按钮,结构锚点 span>button):移动端收成纯图标,文字被裁掉,
|
|
3801
|
+
不再把左侧按钮挤到上一行 */
|
|
3802
|
+
div[class*="uV2eYG_trailing"] span > button:not([class]) {
|
|
3803
|
+
flex: 0 0 26px !important;
|
|
3804
|
+
width: 26px !important;
|
|
3805
|
+
min-width: 26px !important;
|
|
3806
|
+
padding: 0 2px !important;
|
|
3807
|
+
overflow: hidden !important;
|
|
3808
|
+
justify-content: center !important;
|
|
3809
|
+
gap: 0 !important;
|
|
3810
|
+
font-size: 0 !important;
|
|
3811
|
+
}
|
|
3812
|
+
div[class*="uV2eYG_trailing"] span > button:not([class]) svg {
|
|
3813
|
+
flex: 0 0 auto !important;
|
|
3814
|
+
}
|
|
3815
|
+
|
|
3728
3816
|
div[class*="uV2eYG_tools"] {
|
|
3729
3817
|
display: flex !important;
|
|
3730
3818
|
align-items: center !important;
|
|
@@ -3807,7 +3895,8 @@ function injectMobileStyles() {
|
|
|
3807
3895
|
div[class*="_sidebarCol"] {
|
|
3808
3896
|
position: fixed !important;
|
|
3809
3897
|
left: 0 !important;
|
|
3810
|
-
|
|
3898
|
+
/* 顶到顶部标签条(38px)之下,不再与最上面的栏重叠 */
|
|
3899
|
+
top: 38px !important;
|
|
3811
3900
|
bottom: auto !important;
|
|
3812
3901
|
/* 侧边栏底部溢出屏幕修复:
|
|
3813
3902
|
实测 390x844 下,侧边栏实际盒子为 T=12 B=882(高度 870 > 视口 844),底部溢出 38px。
|
|
@@ -3815,8 +3904,8 @@ function injectMobileStyles() {
|
|
|
3815
3904
|
于是 padding(10px+14px) 与 margin(12px) 被加在 height:100dvh 之外。
|
|
3816
3905
|
改为 border-box 并用 100dvh 直接约束高度,padding 即被包含在高度内。 */
|
|
3817
3906
|
box-sizing: border-box !important;
|
|
3818
|
-
height: 100dvh !important;
|
|
3819
|
-
max-height: 100dvh !important;
|
|
3907
|
+
height: calc(100dvh - 38px) !important;
|
|
3908
|
+
max-height: calc(100dvh - 38px) !important;
|
|
3820
3909
|
margin: 0 !important;
|
|
3821
3910
|
width: 290px !important;
|
|
3822
3911
|
max-width: 82vw !important;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-bridge-gateway",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "以 dsh-bridge 为根基、融合 remote-gateway 能力的 DSH 远程访问网关:局域网 / Cloudflare 隧道 / 自建隧道之外,新增「公网直连网关」(0.0.0.0 监听 + 自带 HTTPS 自签证书 + 强制登录门禁),解决移动端外网直连操控电脑。",
|
|
5
5
|
"releaseNotes": "【dsh-bridge-gateway 0.1.5】\n• 🔧 适配 DSH 0.1.5:RPC 通道迁移到 webServer 直注册 + requestRejection 鉴权\n• 📱 移动端深度适配:顶栏防重叠、分支 chip 不再裁切、输入框宽度对齐并 sticky 固定、44px 点击热区、侧边栏焦点陷阱消除\n• 默认不启用,安装后原有局域网/隧道/IM 行为完全不变",
|
|
6
6
|
"type": "module",
|