Files
WorkBuddy df56c2c137 初始化提交:contentm_agent 工作区全量快照
内容分四块:
1、产品规划产出 —— MCN 短视频整合营销工作台的①段五份(1a 需求/1b 竞品/1c 画像/1d 策略/1e 场景)、②段两份(2a 功能/2b 布局)、③段界面(DESIGN.md 契约与令牌表 + mcn-workbench.html 原型 + 实测/会诊/审查三份 + 23 张闸门截图)。
2、开源竞品调研 —— 5 个内容工作台项目的取证原始件与 1b 系列分析文档。
3、参考资料 —— 竞品视频抽帧 1145 张 + 2 个源视频 + 功能点截图。
4、机制侧 —— 协作脚本与状态台账、工作区记忆日志、抽帧/OCR 脚本。

.gitignore 只排运行时日志、脚本备份副本与一次性探针输出,其余按原样入库。
2026-10-08 08:13:02 +08:00

170 lines
15 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/395285731",
"assets_url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/395285731/assets",
"upload_url": "https://uploads.github.com/repos/ZJU-REAL/Easel/releases/395285731/assets{?name,label}",
"html_url": "https://github.com/ZJU-REAL/Easel/releases/tag/v0.2.1",
"id": 395285731,
"author": {
"login": "lidingm",
"id": 112814356,
"node_id": "U_kgDOBrlpFA",
"avatar_url": "https://avatars.githubusercontent.com/u/112814356?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/lidingm",
"html_url": "https://github.com/lidingm",
"followers_url": "https://api.github.com/users/lidingm/followers",
"following_url": "https://api.github.com/users/lidingm/following{/other_user}",
"gists_url": "https://api.github.com/users/lidingm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/lidingm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/lidingm/subscriptions",
"organizations_url": "https://api.github.com/users/lidingm/orgs",
"repos_url": "https://api.github.com/users/lidingm/repos",
"events_url": "https://api.github.com/users/lidingm/events{/privacy}",
"received_events_url": "https://api.github.com/users/lidingm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"node_id": "RE_kwDOUGn4eM4Xj5Tj",
"tag_name": "v0.2.1",
"target_commitish": "main",
"name": "Easel v0.2.1 — 设置面板 · 对话直连网关提速 · 安全加固",
"draft": false,
"immutable": false,
"prerelease": false,
"created_at": "2026-09-24T03:12:28Z",
"updated_at": "2026-09-24T03:18:26Z",
"published_at": "2026-09-24T03:18:26Z",
"assets": [],
"tarball_url": "https://api.github.com/repos/ZJU-REAL/Easel/tarball/v0.2.1",
"zipball_url": "https://api.github.com/repos/ZJU-REAL/Easel/zipball/v0.2.1",
"body": "## Easel v0.2.1\n\n页面端设置面板(模型配置 · 环境安装 · 更多设置)· 对话直连常驻网关提速 · 一批安全加固与 Windows 修复。技能数仍为 114。\n\n### Added\n\n- **设置面板统一入口**:工作台新增「设置」,竖向三分区 —— 模型配置 / 环境安装 / 更多设置。六个通道(chat / transcribe / image / video / music / speech)的供应商、模型、Base URL、API Key 现在都能在页面上直接改;可添加自定义供应商、切换主备、跑真实自测(回显真实握手耗时)。保存写入 `.env`;读取只回掩码 key,输入框留空=不改该 key。\n- **运行期环境安装引擎** `install_tool.py` + 面板内「环境安装」页:对本地引擎做真实体检,后台执行安装、进度回写状态。\n- **B 站投稿读回对账**:投稿后直连 member 稿件接口读回,对上才算成功。\n- **`vendor/VENDOR.md`**:记清内置 `video-pipeline-sdk` 的来源、版本、本地改动与同步方式。\n\n### Improved\n\n- **对话每轮省掉约 3s**:Web 对话改走常驻网关的 OpenAI 兼容 HTTP 端点,不再每轮 spawn 一个 `openclaw agent` 瘦客户端(Linux 实测整轮 7.6s → 4.5s)。选路按会话钉死、中途不换边,不会静默丢掉对话历史。设 `EASEL_CHAT_TRANSPORT=cli` 可整机回到老路径。\n- `/api/outputs` 移入线程池,全量产物树扫描不再阻塞事件循环。\n- CI 从 `pytest tests/` 改为 `pytest`,技能自带的 38 个用例(`skills/**/tests/`)终于真的在 CI 上跑了。\n\n### Fixed\n\n- 修复 Windows PowerShell 5.1 上 `setup.ps1` 在配置写入阶段直接失败(#41)。\n- 修复 workspace 各写各的:`sync.sh` / `setup.ps1` / `doctor` / 视频产线原本各自硬编码了不同路径,在另一种 OpenClaw 布局下会写到 agent 根本不读的目录,却照样报成功。四处统一改为向 OpenClaw 自己问运行时 `workspaceDir`(#19)。\n- 修复 `.env.example` 里的占位符 key 让 `setup.sh` 整条 OpenAI 兼容分支被静默跳过 —— 写出没有 provider 的配置,而 `doctor` 全绿。`doctor` 新增校验:主模型指向的 provider 必须真的配了认证。\n- 修复内容库 HTML 预览:预览抽屉里自带的「复制到公众号」按钮可用了;预览总是渲染最新版本,不再命中启发式缓存的旧版。\n- 修复粘贴到公众号后图片裂开:预览引用的本地图内联为 base64 data-URI,图片字节随剪贴板走,不再要求公众号回源抓 Easel 本地地址。\n- 修复 `install_tool.py` 在非 UTF-8 locale 的 Windows 上崩溃 —— 它会让安装接口的 id 白名单为空,「环境安装」页装什么都报无效 id。\n- 修复国内平台发布链统一直连兜底(Chromium 级 `--no-proxy-server`),开 VPN 也能用。\n- 修复 `scripts/gateway.ps1` 缺 UTF-8 BOM(全仓唯一一个含中文却没 BOM 的 `.ps1`,PS 5.1 会按系统 ANSI 代码页解析)。\n\n### Security\n\n- 加固设置与安装接口:安装 id 白名单改为从引擎自己的配方表推导,设置写入在服务端校验。\n- **堵死 `.env` 值的命令替换注入**:旧守卫只拦换行,而 `setup.sh` 会 `source .env`,`KEY=$(id)` 这类不含换行的值照样走到 bash 的命令替换。现改为在入口把值的字符集收死。\n- **公众号预览页加 CSP**:预览 iframe 为了复制按钮必须开 `allow-scripts`,而 opaque origin 兜不住 —— Web 接口 CORS 全放开且无鉴权,真浏览器复现下正文里夹带的脚本能调本站接口并读到返回体。`connect-src 'none'` 掐断这条外带通道,复制按钮与图片渲染均不受影响。\n\n**Full Changelog**: https://github.com/ZJU-REAL/Easel/compare/v0.2.0...v0.2.1\n"
},
{
"url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/390917477",
"assets_url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/390917477/assets",
"upload_url": "https://uploads.github.com/repos/ZJU-REAL/Easel/releases/390917477/assets{?name,label}",
"html_url": "https://github.com/ZJU-REAL/Easel/releases/tag/v0.2.0",
"id": 390917477,
"author": {
"login": "lidingm",
"id": 112814356,
"node_id": "U_kgDOBrlpFA",
"avatar_url": "https://avatars.githubusercontent.com/u/112814356?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/lidingm",
"html_url": "https://github.com/lidingm",
"followers_url": "https://api.github.com/users/lidingm/followers",
"following_url": "https://api.github.com/users/lidingm/following{/other_user}",
"gists_url": "https://api.github.com/users/lidingm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/lidingm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/lidingm/subscriptions",
"organizations_url": "https://api.github.com/users/lidingm/orgs",
"repos_url": "https://api.github.com/users/lidingm/repos",
"events_url": "https://api.github.com/users/lidingm/events{/privacy}",
"received_events_url": "https://api.github.com/users/lidingm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"node_id": "RE_kwDOUGn4eM4XTO1l",
"tag_name": "v0.2.0",
"target_commitish": "main",
"name": "Easel v0.2.0 — 视频产线内置 + 三级转录 · 能力菜单 · CoT 流式修复",
"draft": false,
"immutable": false,
"prerelease": false,
"created_at": "2026-09-17T17:23:18Z",
"updated_at": "2026-09-17T17:24:08Z",
"published_at": "2026-09-17T17:24:08Z",
"assets": [],
"tarball_url": "https://api.github.com/repos/ZJU-REAL/Easel/tarball/v0.2.0",
"zipball_url": "https://api.github.com/repos/ZJU-REAL/Easel/zipball/v0.2.0",
"body": "## Easel v0.2.0\n\n内置视频产线 + 三级转录 · 「笔」能力菜单 · CoT 思考前端流式修复。技能数 113 → 114。\n\n### Added\n\n- **`video-production` 整片视频产线**:探针 → 转录 → 分场 → 设计表 → 搭建 → 校验 → 抽帧预览 → 渲染 → 交付 的多轮全流程,含两道人工确认门与质量门(五件套 / 响度 / 转场)。上游 `video-pipeline-sdk`(MIT)已内置进仓,产线自包含、可复现、可修改。\n- **三级转录降级**:SRT/VTT 字幕优先 → 硅基流动 ASR API → 本地 whisper 兜底——有字幕或 API key 时不再需要下载 3GB 模型。\n- **「笔」能力菜单**:工作台输入区新增入口,点开浏览 Easel 能做的一切(\"能做的都在这\"),选中即预填提示词。\n- **幻灯片成片渲染器**(ffmpeg):Ken Burns 运镜、差异化转场、libass 动态字幕、极轻 whoosh 音效、loudnorm 响度归一。\n\n### Improved\n\n- 技能库中文展示名(中文大字 + 原名小字,搜索与抽屉同步)。\n- 对话内多选卡(`ask_user` multiSelect 渲染与多值提交)。\n- 超上传上限文件自动转本地素材(复制通道,不改 50MB 配置)。\n- `--thinking` 默认 medium,网关支持时展示推理过程。\n\n### Fixed\n\n- 修复 Web 对话 CoT/token 逐字流式;防呆心跳不再顶真实状态。\n- Gemini 适配器支持 `streamGenerateContent` 流式。\n- Windows UTF-8 持久化(状态读写);关停钩子迁移到 lifespan handler。\n\n**Full Changelog**: https://github.com/ZJU-REAL/Easel/compare/v0.1.1...v0.2.0\n"
},
{
"url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/388554155",
"assets_url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/388554155/assets",
"upload_url": "https://uploads.github.com/repos/ZJU-REAL/Easel/releases/388554155/assets{?name,label}",
"html_url": "https://github.com/ZJU-REAL/Easel/releases/tag/v0.1.1",
"id": 388554155,
"author": {
"login": "lidingm",
"id": 112814356,
"node_id": "U_kgDOBrlpFA",
"avatar_url": "https://avatars.githubusercontent.com/u/112814356?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/lidingm",
"html_url": "https://github.com/lidingm",
"followers_url": "https://api.github.com/users/lidingm/followers",
"following_url": "https://api.github.com/users/lidingm/following{/other_user}",
"gists_url": "https://api.github.com/users/lidingm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/lidingm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/lidingm/subscriptions",
"organizations_url": "https://api.github.com/users/lidingm/orgs",
"repos_url": "https://api.github.com/users/lidingm/repos",
"events_url": "https://api.github.com/users/lidingm/events{/privacy}",
"received_events_url": "https://api.github.com/users/lidingm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"node_id": "RE_kwDOUGn4eM4XKN2r",
"tag_name": "v0.1.1",
"target_commitish": "main",
"name": "Easel v0.1.1",
"draft": false,
"immutable": false,
"prerelease": false,
"created_at": "2026-09-14T16:39:56Z",
"updated_at": "2026-09-14T16:40:26Z",
"published_at": "2026-09-14T16:40:26Z",
"assets": [],
"tarball_url": "https://api.github.com/repos/ZJU-REAL/Easel/tarball/v0.1.1",
"zipball_url": "https://api.github.com/repos/ZJU-REAL/Easel/zipball/v0.1.1",
"body": "### Added\n- **WeChat Official Account (公众号)** support: article publishing, Data Center metrics, and account management via a background QR-scan session.\n- Optional vendored typesetting Skill (`gzh-design`, AGPL-3.0) — Skill count is now **113**.\n\n### Improved\n- Workbench **创作数据** panel: Bilibili & Douyin now populate **近 7 日 · 环比** and **最近作品**.\n - Bilibili: creator overview API for play/like/comment/favorite/share/follower deltas + recent uploads (title/link/cover/stats).\n - Douyin: parses real 近 7 日 labels with a section anchor (no more mis-reading the 最新作品 card), handles 较前7日±X deltas, hardened polling, and scrapes recent works.\n\n### Fixed\n- `easel doctor` OpenClaw version detection on Windows (`.cmd` shim).\n- Cross-platform gateway/launcher robustness; Xiaohongshu login navigation races.\n\n**Full Changelog**: https://github.com/ZJU-REAL/Easel/compare/v0.1.0...v0.1.1\n"
},
{
"url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/379735885",
"assets_url": "https://api.github.com/repos/ZJU-REAL/Easel/releases/379735885/assets",
"upload_url": "https://uploads.github.com/repos/ZJU-REAL/Easel/releases/379735885/assets{?name,label}",
"html_url": "https://github.com/ZJU-REAL/Easel/releases/tag/v0.1.0",
"id": 379735885,
"author": {
"login": "lidingm",
"id": 112814356,
"node_id": "U_kgDOBrlpFA",
"avatar_url": "https://avatars.githubusercontent.com/u/112814356?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/lidingm",
"html_url": "https://github.com/lidingm",
"followers_url": "https://api.github.com/users/lidingm/followers",
"following_url": "https://api.github.com/users/lidingm/following{/other_user}",
"gists_url": "https://api.github.com/users/lidingm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/lidingm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/lidingm/subscriptions",
"organizations_url": "https://api.github.com/users/lidingm/orgs",
"repos_url": "https://api.github.com/users/lidingm/repos",
"events_url": "https://api.github.com/users/lidingm/events{/privacy}",
"received_events_url": "https://api.github.com/users/lidingm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"node_id": "RE_kwDOUGn4eM4Wok9N",
"tag_name": "v0.1.0",
"target_commitish": "main",
"name": "Easel v0.1.0",
"draft": false,
"immutable": false,
"prerelease": false,
"created_at": "2026-08-31T12:18:17Z",
"updated_at": "2026-08-31T12:24:34Z",
"published_at": "2026-08-31T12:24:34Z",
"assets": [],
"tarball_url": "https://api.github.com/repos/ZJU-REAL/Easel/tarball/v0.1.0",
"zipball_url": "https://api.github.com/repos/ZJU-REAL/Easel/zipball/v0.1.0",
"body": "# Changelog\n\nAll notable changes to Easel are documented in this file.\n\n## [0.1.0] - 2026-08-31\n\nEasel's first public release, jointly developed by REAL Lab and OpenDCAI Lab.\n\n### Highlights\n\n- Added an end-to-end social media operations workflow covering discovery, planning, creation, publishing, and attribution.\n- Added profile-driven account context and persistent operating memory across sessions and platforms.\n- Added 112 executable Skills for research, writing, visual production, audio, video, publishing, and analytics.\n- Added the Web workspace and CLI for running workflows, inspecting outputs, and managing projects locally.\n- Added multimodal production workflows for knowledge cards, stories, lifestyle content, audio, and video.\n- Added publishing workflows for Xiaohongshu, Douyin, Kuaishou, Zhihu, Bilibili, and WeChat Channels.\n- Added output manifests, publishing checks, content calendars, and performance attribution workflows.\n- Added Chinese and English documentation, examples, product showcases, and institutional branding.\n\n[0.1.0]: https://github.com/ZJU-REAL/Easel/releases/tag/v0.1.0\n"
}
]