Skip to content

dsh-inbox

Verified

@lyra_wang/dsh-inbox · v0.1.6 · MIT · Web UI

DSH 收件箱面板:读取飞书「任务收件箱」的未读,启动时弹出待读列表,点开即标记已读。

Install

dsh plugin add @lyra_wang/dsh-inbox

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Readme

@lyra_wang/dsh-inbox

DSH 收件箱面板:把飞书多维表格「任务收件箱」里的未读任务,在 DSH 里变成一个待读面板。

服务器上的定时任务执行完后,往飞书表写一行(状态=未读);你打开 DSH 时,面板自动弹出未读列表,点开即标记已读。

能力

能力 说明
📥 输入框按钮 显示未读数红点,点击打开/关闭面板
自动弹出 DSH 启动后拉一次,有未读则自动弹面板
未读列表 任务名(关联「定时任务」表解析)、执行时间、结果徽标、结果摘要
点开已读 点击一条 → 调 Host 路由把飞书表该行状态改成「已读」,并从面板移除
全部已读 一键把当前未读全部标记
轮询 打开 App 期间每 30 分钟刷新

和「任务侧」的分工与投递契约属于编排层:见 orchestrations/scheduled-task/dsh/COLLABORATION.md。

定时任务侧与本侧的分工、投递字段契约,见编排层文档: orchestrations/scheduled-task/dsh/COLLABORATION.md。

架构

Client(面板 UI)  ──同源 fetch──▶  Host 路由  ──lark-cli──▶  飞书 Base
   conversation.input.left            /plugins/inbox/list
   shell.overlay                      /plugins/inbox/read
                                      /plugins/inbox/deliver   ← 服务器/脚本投递用
  • 表坐标默认写死为「项目管理」Base 的「任务收件箱」(tbl9LghPBTjFLH4N),可用环境变量覆盖: DSH_INBOX_BASE_TOKEN / DSH_INBOX_TABLE_ID / DSH_INBOX_TASK_TABLE_ID / DSH_INBOX_IDENTITY。
  • 所有访问都通过操作者本机已授权的 lark-cli,插件本身不存任何凭据。
  • Host 路由全部经过 DSH 连接鉴权(connection.requestRejection)。

投递(给服务器/脚本用)

curl -X POST http://127.0.0.1:<port>/plugins/inbox/deliver \
  -H 'content-type: application/json' \
  -d '{"summary":"扫描 12 个仓库,3 个有风险","result":"成功","taskRecordId":"reczz28QAltif1ha"}'

需要带上 DSH 的浏览器会话(连接鉴权);服务器侧由 runner 用同机回环 + token 调用。

安装

dsh plugin --profile desktop add @lyra_wang/dsh-inbox
# 然后把 @lyra_wang/dsh-inbox 加进 profile 的 dsh.profile.bundles

版本

  • 0.1.0:Host 路由 + Client 面板(按钮/弹窗/标已读/轮询)
  • 0.1.1:投递改用 +record-batch-create(lark-cli 没有 +record-create)
  • 0.1.2:去掉 patch 里的 config(插件不声明 schema,传 config 有挂载风险);坐标改由环境变量覆盖
  • 0.1.3:修正 Base token(收件箱表在「项目管理」Base);本机实测通过