Repository navigation
Releases: wilsonchengassistant/dsh-quick-workspace
Release list
v1.0.1
What changed
The zh dictionary was written in Traditional Chinese, but DSH ships zh as the
Simplified locale — the separate dsh-zh-hant pack is what converts a bundle's
zh table to Traditional, with OpenCC.
So 1.0.0 gave Simplified users Traditional text (區 / 稱 / 會 / 將 / 敗 / 資料夾), and
the zh-Hant conversion was a no-op on this namespace instead of the reverse of the
table.
1.0.1 rewrites the 12 zh values in Simplified:
| key | 1.0.0 (wrong) | 1.0.1 |
|---|---|---|
dialog.title |
新增工作區 | 新增工作区 |
field.label |
工作區名稱 | 工作区名称 |
field.hint |
只支援單一資料夾名稱 | 只支持单一资料夹名称 |
target |
將建立於 {path} | 将建立于 {path} |
close |
關閉 | 关闭 |
failed |
建立失敗 | 建立失败 |
error.blank |
請輸入工作區名稱。 | 请输入工作区名称。 |
The dsh-zh-hant pack now regenerates exactly the previous Traditional strings from
them — verified as an exact OpenCC cn → tw round trip.
English is unchanged. Both dictionaries still carry the same 12 keys.
v1.0.0
Why
Clicking Add workspace in the DeepSeek Harness web UI did nothing when you were driving it from anywhere other than the host machine.
dsh-host-directory-picker-auto resolves the native backend whenever the bind host is 127.0.0.1 on macOS, on the assumption that the operator is sitting at that screen. The native backend is a renderless osascript "choose folder with prompt …" call, so it puts a Finder dialog on the host screen and renders nothing in the browser.
It got worse than dead: while that hidden dialog was open, WorkspacePickFlow held directoryBusy, and createWorkspaceShortcutControls().add() is a no-op whenever that flag is set — so every click after the first was silently discarded, with no error and nothing on screen.
What this does
Occupies both directory-flow holes — the sidebar header button and the composer's Choose workspace — with a name prompt:
- type a name,
- the dialog shows the exact path it is about to create,
- DSH makes the folder, registers it as a workspace, and opens it.
New folders land beside the deployment's default workspace, so a workspace at
~/Documents/deepseek-harness/default-workspace gets siblings in ~/Documents/deepseek-harness/.
It registers at priority: -100, the documented way to shadow a single-kind slot occupant: the slot registry sorts entries by ascending priority and the lowest renders, so this takes the seat instead of throwing at the native picker.
Install
dsh plugin --profile web add dsh-quick-workspaceRestart dsh web afterwards — the host half is lib/index.js, which only re-imports on restart. The client half hot-reloads on its own.
Verified
End-to-end on an isolated DSH profile: the folder really appears, the registry gains a row, and the sidebar gains the new workspace. Path-traversal names (../escape, blank, names containing /) are rejected host-side before anything touches the filesystem.