Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Oh My DSH Plugin Lab

Plugin Lab 0.4 是面向 DeepSeek Harness rc.6 的隐私优先插件反馈闭环。普通用户只看到一个“插件反馈”入口,不需要模型 API,也不需要记住命令;后端只把达到阈值的聚合信号提交到 GitHub。
Plugin Lab 0.4 是面向 DeepSeek Harness rc.6 的隐私优先插件反馈闭环。普通用户只看到一个“让 Agent 帮我反馈”入口,不需要模型 API,也不需要记住命令;后端只把达到阈值的聚合信号提交到 GitHub。

## 现在的体验

1. 从插件市场开始一次试用;在当前 rc.6 开发接入中也可用 `/omdsh-start <plugin>#<version>` 关联目标。
2. 点击输入框旁唯一的“插件反馈”,面板自动显示 `ok / unavailable / error / unknown`,不调用模型
3. 用户选择“好用 / 一般 / 不好用”和一个有限大类。
4. 面板显示两行脱敏预览;此时只保存到本机,没有网络请求。
5. 用户再次点击“确认提交”后,有限枚举包才会发送;Session 历史只新增一条独立的“插件反馈”卡片。
2. 点击输入框旁唯一的“让 Agent 帮我反馈”,面板自动显示 `ok / unavailable / error / unknown`,不调用模型读取会话
3. 用户选择“好用 / 一般 / 不好用”和一个有限大类;Agent 只负责把这些有限字段整理成固定模板
4. 面板弹出发送前预览;此时只保存到本机,没有网络请求,也没有本地消息引用可被附带
5. 用户再次点击“确认发送这条反馈”后,有限枚举包才会发送;Session 历史只新增一条独立的“插件反馈”卡片。
6. 探活、选择和预览等中间操作不进入历史;“查看进展”收在同一面板内。后端聚合到阈值后创建 GitHub Issue,并通过回执邀请复测。

Agent 分析是可选能力,只能建议有限大类,不能读取或提交任务摘要。没有模型 API Key 时,上述完整主流程照常可用。
Expand All @@ -32,13 +32,13 @@ Agent 可能已经拥有当前任务的正常会话上下文,但 Plugin Lab
```sh
pnpm install
pnpm pack:release
dsh plugin --profile web add ./oh-my-dsh-plugin-lab-0.4.2.tgz
dsh plugin --profile web add ./oh-my-dsh-plugin-lab-0.4.3.tgz
dsh --profile web
```

Plugin Lab 是标准 DSH Bundle:`package.json` 通过 `dsh.bundle.patch` 声明 Host 插件,通过 `dsh.client` 提供唯一的 Web“插件反馈”入口。探活、体验选择、脱敏预览、确认提交和进展都在这个入口中完成。
Plugin Lab 是标准 DSH Bundle:`package.json` 通过 `dsh.bundle.patch` 声明 Host 插件,通过 `dsh.client` 提供唯一的 Web“让 Agent 帮我反馈”入口。探活、体验选择、脱敏预览、确认提交和进展都在这个入口中完成。

版本 `0.4.2` 的 Peer 契约从 DSH `0.1.0-rc.6` 起。完整测试会执行真实的 rc.6 打包、安装、Host/Web 启动、Client Loader 注册和卸载。
版本 `0.4.3` 的 Peer 契约从 DSH `0.1.0-rc.6` 起。完整测试会执行真实的 rc.6 打包、安装、Host/Web 启动、Client Loader 注册和卸载。

## 兼容命令与 Agent 工具

Expand Down
159 changes: 93 additions & 66 deletions dist/client.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/client.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dist/summary.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/summary.js.map

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion dist/types/client/ExperienceResultCard.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface LabInjected {
hooks: {
pluginLab: LabController;
};
record: (messageId: MessageId, verdict: ExperienceVerdict, category: FeedbackCategory) => Promise<void>;
record: (verdict: ExperienceVerdict, category: FeedbackCategory) => Promise<void>;
join: () => Promise<void>;
dismiss: () => void;
}
Expand Down
4 changes: 1 addition & 3 deletions dist/types/client/controller.d.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import type { ClientRemote } from '@deepseek-ai/dsh-api-remotes/client';
import type { MessageId } from '@deepseek-ai/dsh-client-connection/client';
import type { SessionId } from '@deepseek-ai/dsh-client-runtime/client';
import type { HostObservable } from '@deepseek-ai/dsh-client-ui-slots';
import type { ExperienceVerdict, FeedbackCategory } from '../protocol.js';
/** Silent panel Remote surface. It does not create durable command nodes. */
export type PluginLabRemote = Pick<ClientRemote['pluginLab'], 'probe' | 'record' | 'join' | 'inbox'>;
export interface PendingResult {
readonly messageId?: MessageId;
readonly verdict: ExperienceVerdict;
readonly category: FeedbackCategory;
readonly phase: 'saving' | 'local' | 'joining' | 'joined' | 'error';
Expand All @@ -25,7 +23,7 @@ export declare class LabController implements HostObservable<LabView> {
getSnapshot: () => LabView;
subscribe: (listener: () => void) => (() => void);
setTrialActive(active: boolean): void;
record(messageId: MessageId | undefined, verdict: ExperienceVerdict, category: FeedbackCategory): Promise<void>;
record(verdict: ExperienceVerdict, category: FeedbackCategory): Promise<void>;
join(): Promise<void>;
inbox(): Promise<string>;
probe(): Promise<string>;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@oh-my-dsh/plugin-lab",
"version": "0.4.2",
"version": "0.4.3",
"description": "DSH privacy-first plugin health, confirmed category summaries and aggregate fix flywheel",
"license": "MIT",
"type": "module",
Expand Down
Loading