feat: 排序默认改为手动(一次性迁移,最近改为可选)

This commit is contained in:
Aisland
2026-08-17 00:56:33 +08:00
parent 641f5c40ab
commit fefc60399f
3 changed files with 17 additions and 3 deletions
+7 -2
View File
@@ -84,10 +84,15 @@ function loadView(): ViewState {
if (!raw) return { ...DEFAULT_VIEW }
const p = JSON.parse(raw)
// 显式挑字段:旧版遗留的 groupBy 等未知字段直接忽略。
// 一次性迁移:v2 起默认「手动」排序(最近排序点击即置顶、体验差),旧存「最近」回落为「手动」;
// 之后用户手动选择「最近」会写入 sortMigratedV2 标记并被尊重。
const orderBy = p.sortMigratedV2 === true
? (p.orderBy === 'recent' ? 'recent' : 'manual')
: 'manual'
return {
query: typeof p.query === 'string' ? p.query : '',
searchOpen: p.searchOpen === true,
orderBy: p.orderBy === 'recent' ? 'recent' : 'manual',
orderBy,
dock: p.dock === 'float' ? 'float' : 'footer',
floatTop: typeof p.floatTop === 'number' ? p.floatTop : null,
}
@@ -180,7 +185,7 @@ function WorktableSection(props: any) {
const persistView = (patch: Partial<ViewState>) => {
setView((prev) => {
const next = { ...prev, ...patch }
try { localStorage.setItem(PERSIST_KEY, JSON.stringify(next)) } catch {}
try { localStorage.setItem(PERSIST_KEY, JSON.stringify({ ...next, sortMigratedV2: true })) } catch {}
return next
})
}
+1 -1
View File
@@ -85,7 +85,7 @@ agent 级项目**(如旅行图鉴 TravelAtlas),让用户可以像管理应
| 按钮 | 图标(primitives) | 行为 |
| --- | --- | --- |
| 搜索 | 🔍 | 点击展开输入行(Esc / 点 ✕ 收起);输入即过滤项目卡片与快捷方式(query 经座位 owner props 传给每个卡片,卡片自行判断是否隐藏) |
| 视图选项 | ☰ | 排序方式(手动/最近),选择即持久化到 `dsh.worktable.view.v1`;另含「管理项目…」入口(§5.5)。分组方式已按用户定案取消 |
| 视图选项 | ☰ | 排序方式(手动/最近),选择即持久化到 `dsh.worktable.view.v1`;**默认「手动」**(v2 起;最近为可选——点击即置顶的体验取舍);另含「管理项目…」入口(§5.5)。分组方式已按用户定案取消 |
| 添加 | + | 展开「添加项目」面板:接入指引(注册即入驻说明 + 插件市场外链)+ 本地快捷方式表单(§5.6) |
> 官方工作区头部三按钮 = 搜索 / 视图选项(ViewOptionsMenu) / 添加工作区(+),已逆向确认。
@@ -260,3 +260,12 @@
③ planreview 无需改埋点逻辑(引擎内统一过滤)。
- 验证:两插件构建 + node --check 通过;服务端实时下发(含 activeSplitId/
LEGACY_BUMP_COOLDOWN 标记);待用户刷新实测。
## 补记(排序默认改为「手动」)
- 用户反馈:最近排序下点击仍有反复置顶,体验差 → 定案:默认「手动」排序,
喜欢「最近」的用户自行切换。
- 实现:loadView 一次性迁移(sortMigratedV2 标记)——旧存「最近」自动回落「手动」;
用户此后手动选择「最近」会写入标记并被尊重;persistView 统一写入标记。
fresh 状态默认本就 manual(DEFAULTS.orderBy='manual')。
- 验证:构建 + node --check 通过;服务端实时下发(含 sortMigratedV2);待用户刷新确认。