Skip to content
dsh.fish
Bundle

dsh-daily-sticky

每日语音便签 DSH web 插件:轻量浮动便签(勾选完成可取消/可编辑/可添加/可删除)+ JSON 按日日志 + 周/月数量环比统计。保留 AI 语音抽取闭环,去掉番茄钟。

Source
DoggyHU
stars
2 stars
License
MIT
Updated
Updated 10 days ago

Readme

# dsh-daily-sticky

每日语音便签 · DeepSeek Harness (dsh) Web 插件

一个轻量浮动便签,从既有 `daily-voice-plan`(语音 + 番茄钟)演化而来——保留语音闭环、去掉番茄钟,换成勾选完成的便签 + JSON 按日日志 + 周/月环比统计。

![dsh-plugin](https://badgen.net/badge/dsh/plugin/green)

## 功能

- **轻量浮动便签**:浮在 DSH 界面右上,可拖拽、可关闭。只有两种状态:右下角缩略 x/x 计数,或完整编辑界面。
- **勾选 = 完成(可取消)**:勾选划掉但保留在便签上;再点取消。
- **任务行**:可双击编辑文本、点备注编辑、可删除、可新增;支持多行粘贴批量添加。
- **未完成顺延**:昨天的任务会自动滚到今天,下面用灰色小字标 `昨天` / `前天` / `3天前`(超过 3 天一折算 `3天前`),完成的不顺延。
- **AI 智能输入(双模式)**:手动输入,或贴一段杂乱口语/语音转文字 → 由 **DSH 当前正用的模型**(`agentDefaultModel`,同对话框通道)抽成便签任务,逐条勾选/改字后落盘;可自选模型(默认「跟随当前」)。
- **对话即写**:在对话里说「把这个加进便签 / 记一下 XXX」→ AI 直接写入当日 plan JSON(`sticky_*` 工具),便签轮询实时出现。
- **统计**:本周/本月 录入数、完成数、完成率 + 周环比 / 月环比(纯本地 JSON 计算,不调 LLM)。
- **JSON 落盘**:`plan/YYYY-MM-DD.json`(当日便签快照)+ `logs/YYYY-MM-DD.json`(事件日志),按日分文件,持久化,重启/关机不丢。

## 截图

| AI 智能输入(DSH 当前模型抽取) | 今日便签任务列表 |
|---|---|
| ![AI 智能输入](docs/ai-extract.png) | ![任务列表](docs/tasks.png) |

| 周/月环统计 | 右下角便签入口 |
|---|---|
| ![统计](docs/stats.png) | ![右下角便签](docs/summon.png) |

## 数据位置

默认数据目录:`~/.dsh/dsh-daily-sticky/`

```
~/.dsh/dsh-daily-sticky/
├── plan/YYYY-MM-DD.json    当日便签快照(tasks 数组)
└── logs/YYYY-MM-DD.json    当日事件日志(events 数组,统计用)
```

### plan JSON

```jsonc
{ "date": "2026-08-19",
  "tasks": [{ "task_id": 1, "text": "论文:黎老师文章", "date": "2026-08-19",
              "done": false, "note": "...", "created_at": "...", "done_at": null,
              "origin_date": "2026-08-19" }],
  "saved_at": "..." }
```

### logs JSON

```jsonc
{ "date": "2026-08-19",
  "events": [{ "action": "added|done|undone|edited|deleted|note",
               "task_id": 1, "text": "...", "ts": "..." }],
  "created_at": "...", "updated_at": "..." }
```

## 安装(dsh web 插件)

打 tarball 后装进 web profile:

```sh
pnpm pack --pack-destination /path/to/tarballs      # 生成 dsh-daily-sticky-<version>.tgz
dsh plugin --profile web add /path/to/tarballs/dsh-daily-sticky-<version>.tgz

# 或从 git 源安装(需先 build)
dsh plugin --profile web add github:DoggyHU/dsh-daily-sticky
```

装好重启 `dsh web`,刷新页面后右上角即出现便签。

> 插件依赖的 `@deepseek-ai/*` / `cordis` 由 dsh 官方运行时经 profile pnpm 闭包注入,不要在 `package.json` 声明它们(官方未发布到公共 npm)。

## 开发 / 构建

```sh
git clone https://github.com/DoggyHU/dsh-daily-sticky
cd dsh-daily-sticky
pnpm install          # devDependencies 用 link: 指到本地 harness
pnpm run build        # esbuild 打包 host + client,tsc 生成 .d.ts
pnpm run typecheck
```

## 技术结构

- **host 半** `src/index.ts`:cordis 插件,注册 `sticky` Typert Remote(`src/runtime.ts`)、`sticky_*` 工具(`src/tools.ts`);数据层 `src/datastore.ts`、会话查漏 `src/scan.ts`、AI 抽取 `src/llm.ts`、统计 `src/stats.ts`、契约 `src/contract.ts`。
- **client 半** `src/client/index.tsx`:body portal 渲染 `StickyPanel.tsx`(浮动便签、查漏、统计、AI 输入)。
- 契约与 wire 严格 codec:`src/contract.ts`(`STICKY_INVOCATIONS`,host/client 同源)。

## License

[MIT](LICENSE)

Install

dsh plugin --profile web add github:DoggyHU/dsh-daily-sticky

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source