0 ? 'mt-1' : ''}>
+ {section.title && (
+
{section.title}
+ )}
{section.rows.map((row, ri) => {
const clickable = Boolean(row.openView)
const content = (
@@ -50,7 +80,7 @@ export function StatusPopover({
{row.detail &&
{row.detail}}
{row.trailing && (
-
+
{row.trailing}
)}
@@ -63,12 +93,12 @@ export function StatusPopover({
onClick={() => {
if (row.openView) onOpenView(row.openView.view, row.openView.params)
}}
- className="flex w-full items-center gap-2 rounded-control px-2 py-1.5 text-left transition-colors hover:bg-hover"
+ className="flex w-full items-center gap-2 rounded-control px-2 py-2 text-left transition-colors hover:bg-hover"
>
{content}
) : (
-
+
{content}
)
@@ -80,14 +110,6 @@ export function StatusPopover({
)
}
-/** 胶囊前导色点:tone 的安静表达(胶囊底保持中性,不整块染色) */
-export const TONE_DOT_CLASS: Record
= {
- default: 'bg-ink-3',
- accent: 'bg-accent',
- warn: 'bg-orange',
- danger: 'bg-red'
-}
-
export function PluginStatusCapsules({
entries,
onOpenView
@@ -144,12 +166,12 @@ export function PluginStatusCapsules({
} ${open ? 'border-line-strong text-ink' : ''}`}
>
- {item.icon ? (
-
- ) : null}
+ {item.icon ? : null}
{item.text}
- {open && item.detail && }
+ {open && item.detail && (
+ setOpenKey(null)} />
+ )}
)
})}
diff --git a/docs/plugins.md b/docs/plugins.md
index 104ebaf..ef1745d 100644
--- a/docs/plugins.md
+++ b/docs/plugins.md
@@ -174,7 +174,7 @@ api.ui.onSettingsAction((key) => {}) // button 条目点击回调(key = 按钮
| 深链 | `openView(view, params)`(main 侧 IPC 广播 / 页侧桥直通) | ✅ |
| 工具栏按钮(B5) | `registerToolbarButton` 数据已通,Composer 工具行渲染 | ⏳ 下版本 |
| 聊天流富组件(B4) | ```类型``` 围栏块 → 宿主元组件(data-table/stat-grid/step-list/kv-card) | ⏳ 下版本 |
-| 聊天区浮动胶囊(B3) | 与 B2 同源数据:聊天列右上角折叠圆钮(计数徽标),展开为纵向胶囊堆栈,样式/弹层/深链与 B2 一致 | ✅ |
+| 聊天区浮动胶囊(B3) | 独立浮动态暂缓——顶栏胶囊的详情面板(ZCode 式)已覆盖同场景;数据同源(`setStatusItem`) | ⏳ |
## 交互基线
diff --git a/docs/roadmap.md b/docs/roadmap.md
index 4e62f5d..83da6b8 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -12,7 +12,7 @@
| v0.4.0 | 工具与审批 | 工具调用卡片(参数/结果折叠展示)、tool_call 拦截 → Approval Card、defineTool 业务工具骨架(本地可跑的演示工具) |
| v0.5.0 | 打磨 | 深浅主题、GSAP 动效细节、快捷键、错误态/空态、队列可视化、自动滚动策略 |
| v0.8.0 | 动态插件系统(M0–M3) | 两层能力模型(内置组件级/外置 iframe)、pi 原生契约聚合 extension、@aso/plugin-sdk、plugin://peer:// 协议、视图切换+聊天保活+徽标、侧栏/面板/胶囊/深链槽位、浏览器面板插件化、插件重载 |
-| v0.9.0 | 插件一等公民 + 可观测 | entry.renderer 宿主内 React 组件(Blob 装载+单实例 React)、.pi/extensions 一等插件源(build 开关门控)、声明式设置体系(13 控件+一级导航入口)、统一日志系统(滚动文件/api.log/IPC 追踪/渲染层错误归档)、渐进式教程 docs/plugins/ + DESIGN.md + plugin-template、性能/样式标准与检验器(激活 10s/装载 8s 护栏、@aso/plugin-sdk/ui 组件库+三态、withTimeout/withRetry、plugin:check)、状态胶囊详情弹层+聊天区浮动胶囊(B3,与 B2 同源)、图标统一 lucide 白名单、面板平铺标签条 |
+| v0.9.0 | 插件一等公民 + 可观测 | entry.renderer 宿主内 React 组件(Blob 装载+单实例 React)、.pi/extensions 一等插件源(build 开关门控)、声明式设置体系(13 控件+一级导航入口)、统一日志系统(滚动文件/api.log/IPC 追踪/渲染层错误归档)、渐进式教程 docs/plugins/ + DESIGN.md + plugin-template、性能/样式标准与检验器(激活 10s/装载 8s 护栏、@aso/plugin-sdk/ui 组件库+三态、withTimeout/withRetry、plugin:check)、状态胶囊详情面板(ZCode Git 工具式:头部+分组+行尾彩色数值,B3 浮动态并入顶栏胶囊)、图标统一 lucide 白名单、面板平铺标签条 |
| 未来 | | 插件管理与 zip 导入(M4)、ed25519 签名在线更新(M5)、外置插件模板与开发工作流(M6)、pi 原生扩展目录管控(M7)、B3/B4/B5 槽位、electron-builder 打包与自动更新、i18n(中/英)、sqlite 持久化与迁移、本地备份恢复、热点词/生成/模板业务插件、手动模式编排 UI、RPC 子进程隔离模式 |
---
diff --git a/packages/plugin-sdk/src/status.ts b/packages/plugin-sdk/src/status.ts
index 6cf6d18..3523640 100644
--- a/packages/plugin-sdk/src/status.ts
+++ b/packages/plugin-sdk/src/status.ts
@@ -11,7 +11,7 @@ export interface OpenViewAction {
}
/** 徽标/胶囊共用色调语义 */
-export type StatusTone = 'default' | 'accent' | 'warn' | 'danger'
+export type StatusTone = 'default' | 'accent' | 'success' | 'warn' | 'danger'
/** 详情弹层里的一行(数据驱动;openView 缺省为纯展示行) */
export interface StatusDetailRow {