Skip to content

建议桌面端(MonkeyCode work)左侧项目板块支持项目置顶 #1193

Description

@GOLDKUN

背景

MonkeyCode work 桌面端左侧「项目」板块中,项目以组为单位展示(组头 + 组内任务列表)。当前与项目排序/管理相关的交互有:

  • 拖拽排序:组头可拖动,全序快照存于 mc.projectOrder(含「临时会话」哨兵键);
  • 右键菜单desktop/ui-next/src/features/split/SplitView.tsx 项目组头 onContextMenu):只有「在此新建任务」「归档项目」两项;
  • 归档:独立持久化(prefs),归档项目收进单独的「已归档项目」小节。

痛点

  • 项目数量一多,把常用项目拖到顶部需要跨越整条列表逐位拖动,且任何一次重新整理都会被后续插入的新项目挤乱相对位置;
  • 没有"永远置顶"的锚点:拖拽排序是全序手工维护,用户真正想要的往往只是"这几个常用项目固定在最上面,其余随意";
  • 对比同板块已有的「归档」(一层结构化收纳),缺一个更轻量的"高频项目"标记。

建议

给项目组头右键菜单增加「置顶项目 / 取消置顶」:

  1. 入口:复用现有右键菜单(与「在此新建任务」「归档项目」并列),置顶后在组头显示图钉图标(tabler IconPinned 之类)作为状态提示;
  2. 持久化:与归档同一模式,prefs 里加一个置顶集合键(如 mc.pinnedProjects),按项目 key(workdir)存;
  3. 排序语义:置顶项目组浮到非置顶项目组之上,置顶组之间仍按既有 mc.projectOrder 相对排序;未置顶项目排序完全不变。建议置顶组排在「临时会话」之前(置顶的语义就是"最容易够到"),这点可以讨论;
  4. 与拖拽的兼容:置顶组与非置顶组之间不允许拖拽换位(拖了等于提示"先取消置顶"),置顶组内部仍可拖拽微调;实现上也可以更简单——置顶组不参与拖拽,只按 mc.projectOrder 排。

代码位置

  • 项目组右键菜单:desktop/ui-next/src/features/split/SplitView.tsx(组头 onContextMenu,现有两项菜单)
  • 排序快照:同文件「组头拖拽排序(mc.projectOrder 全序快照)」段落
  • 归档持久化参照:readArchivedProjects / writeArchivedProjects(prefs 模式)
  • 文案:desktop/ui-next/src/lib/i18n/zh.ts / en.tssidebar.project.*

收益

高频项目一步直达,不用维护整条手工顺序;实现量小(一个菜单项 + 一个 prefs 集合 + 分组排序一处调整),与现有归档/拖拽机制完全同构。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions