Files
AstrBot/openspec
Soulter 4b049d1e57 feat(dashboard): regroup sidebar into labeled sections and rename plugin Pages to Views (#10307)
* feat(dashboard): regroup the sidebar into labeled System and Extensions sections

- Add static group headers (System / Extensions) to the sidebar, in the
  style of AI Studio's labeled sections
- System: welcome, platforms, providers, extensions, config profiles,
  data & logs, custom rules
- Extensions: knowledge base, cron, subagent orchestration, personas;
  plugin pages are flattened into this section and the collapsible
  plugin-pages group is removed
- Dissolve the collapsible More Features group; headers hide in rail mode
- Skip the legacy sidebar customization when building the menu (the
  feature is slated for removal)
- Update zh/en docs for the new locations

* feat(dashboard): place personas before knowledge base in the extensions group

* feat(dashboard): make the extensions sidebar group collapsible

Add a chevron toggle to the extensions group header; collapsing hides
the group's items and the state persists in localStorage. Rail mode is
unaffected and always shows every icon.

* feat(dashboard): pin extension sidebar items to the top of their group

Extension group items show a pin button on hover; pinned items move to
the top of the extensions group (hidden together with the group when
collapsed) and the pinned set is persisted in localStorage.

* feat(dashboard): keep the unpin icon always visible on pinned items

Pinned items now show a PinOff icon in the primary color without
requiring hover; unpinned items still reveal the Pin icon on hover.

* feat(dashboard): show a hover card with plugin details on plugin page items

Hovering a plugin-provided page in the extensions group reveals a card
with the page name, plugin ID, and author. The data comes from the
existing plugin list API (no backend change); static items and rail
mode are unaffected.

* fix(dashboard): add author and version to the PluginEntry type

* feat(dashboard): refine the plugin hover card

- Show the card immediately on hover (no open delay) and drop the
  expand animation
- Plugin row shows an icon plus 'display_name (id)' with the id muted,
  or just the id when the plugin has no display name
- Author row gets its own icon

* feat(dashboard): add a type row to the plugin hover card

Defaults to '插件可视化视图' (localized in all four locales).

* feat: rename plugin Pages to Views and group plugin views by plugin

Rename (Views preferred, Pages kept as a compatible alias everywhere):
- StarMetadata.pages -> views; metadata.yaml accepts views: (pages: alias)
- Plugin view directory views/ preferred, pages/ still accepted
- v1 API gains /plugins/view(s) alias routes alongside /plugins/page(s)
- Bridge global window.AstrBotPluginView with AstrBotPluginPage as alias
- Plugin i18n keys views.<name>.* preferred, pages.<name>.* alias
- Frontend route /plugin-view/... with /plugin-page/... redirecting
- OpenAPI spec + regenerated client; docs use Views (zh: 插件可视化视图)

Sidebar (extensions group):
- Default mode shows the view name for plugin views
- New group-by-plugin toggle on the extensions header (grid icon, off by
  default, persisted in localStorage): plugin views are grouped per plugin
  under the extensions group, each group listing all of the plugin's views
- Hover card on plugin view items shows page name, plugin display name
  (with id), author, and type; white card style reused for the toggle
  tooltip
- Pinning works for nested views too, lifting them to the group top
2026-10-01 16:26:56 +08:00
..