Skip to content

[Feature Request] 拆分纯净的 Better Sidebar Core 基础包 #449

Description

@pure-craft

提交前确认 / Pre-submit checklist

  • 我已搜索现有 issue,确认没有完全相同的条目 / I searched existing issues and found no exact duplicate.

运行环境 / Environment

DSH Web(浏览器访问)/ DSH Web (browser access)

类别 / Category

✨ 功能请求(新功能 / Feature request)

描述 / Description

首先感谢你们开发和持续维护 DSH Better Sidebar。

这个项目的侧边栏 UI、Tab 管理、布局持久化,以及 ctx.betterSidebar.registerTab() / registerFileViewer() 扩展机制都做得非常优秀。特别是内置功能与第三方插件使用同一套注册 API,让它很有潜力成为 DSH 通用的侧边栏基础设施。

想请问,项目是否考虑将这部分基础能力拆分为一个独立、纯净的 Core 包,例如:

dsh-better-sidebar-core

Core 只包含:

  • Sidebar / Tab UI Shell;
  • ctx.betterSidebar 扩展服务;
  • Tab 和 Viewer 注册表;
  • 布局、状态持久化与生命周期;
  • 必要的 DSH UI 集成。

当前的 dsh-better-sidebar 则依赖 Core,并在其上组合文件、Git、终端、浏览器、Subagent、Side Chat 和文件预览等完整功能。更贴近具体使用场景的能力,也可以作为上层封装或独立插件依赖 Core。

期望的依赖关系大致是:

dsh-better-sidebar-core
├── dsh-better-sidebar(完整工作台)
├── 其他功能插件
└── 用户自己的业务插件

这样,需要完整工作台的用户仍然可以直接安装当前包;只需要侧边栏容器的用户,则可以单独依赖 Core,并按需选择功能插件。依赖关系会更干净,插件组合也会更加灵活。

提出这个需求,正是因为 Better Sidebar 的 UI 与扩展机制非常优秀。希望它可以进一步成为一个独立、通用、可组合的 DSH 侧边栏基础设施。

请问维护者是否认可或已经考虑过这个拆分方向?如果方向合适,是否欢迎社区参与设计或提交 PR?

再次感谢这个优秀的项目!


Thank you for building and continuously maintaining DSH Better Sidebar.

Its sidebar UI, tab management, layout persistence, and the ctx.betterSidebar.registerTab() / registerFileViewer() extension APIs are especially well designed. Since built-in features and third-party plugins already use the same registration mechanism, Better Sidebar has strong potential to become a general-purpose sidebar foundation for DSH.

Would you consider extracting these foundational capabilities into a clean standalone Core package, for example:

dsh-better-sidebar-core

The Core package would contain only the UI shell, extension service and registries, layout/state persistence, lifecycle management, and necessary DSH UI integration. The current dsh-better-sidebar package would depend on Core and compose the complete workspace features on top of it. Other feature-oriented or business-specific plugins could depend on Core directly as well.

This would preserve the current package's out-of-the-box experience while allowing users who only need the sidebar foundation to install a cleaner dependency set and compose features as needed.

Is this separation already being considered? If the direction fits the project, would community design work or a PR be welcome?

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