Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
3cd1e4f
docs: design multi-platform distillation architecture
Jul 21, 2026
e0904c4
docs: design local distillation dashboard
Jul 21, 2026
8f078b2
docs: plan multi-platform distillation delivery
Jul 21, 2026
58039a6
feat: add platform adapter contracts
Jul 21, 2026
6940023
feat: adapt bilibili to platform interface
Jul 21, 2026
44bc17c
feat: add composable episode output
Jul 21, 2026
daef571
feat: add skill and rag output targets
Jul 21, 2026
8aeb6b9
feat: add atomic distillation state store
Jul 21, 2026
27d5e82
feat: add shared distillation application service
Jul 21, 2026
544b56b
feat: add douyin browser session and resolver
Jul 21, 2026
02885ab
feat: enumerate douyin creator works
Jul 21, 2026
b25375e
feat: process douyin video artifacts
Jul 21, 2026
8ccd460
feat: add recoverable staged distillation engine
Jul 21, 2026
53a2695
feat: add shared progress and dual eta
Jul 21, 2026
837291b
feat: expose multi-platform creator distillation
Jul 27, 2026
2e37b07
style: remove trailing blank lines
Jul 27, 2026
486152b
style: finish eof whitespace cleanup
Jul 27, 2026
f03baff
style: remove final eof blank
Jul 27, 2026
088130d
ci: run pytest in GitHub Actions
Jul 27, 2026
68a237e
ci: install CPU torch for FunASR tests
Jul 27, 2026
5e505b0
test: add detached Windows pytest runner
Jul 27, 2026
fd3a404
ci: install torchaudio for FunASR tests
Jul 27, 2026
534323b
fix: measure Bilibili transfer speed at read time
Jul 27, 2026
c58767d
feat: add secure local dashboard host
Jul 27, 2026
5a27695
feat: expose dashboard job APIs
Jul 27, 2026
f6f64c1
feat: stream dashboard progress events
Jul 27, 2026
1c1b3d3
fix: normalize dashboard item event names
Jul 27, 2026
888b700
feat: scaffold cyber dashboard frontend
Jul 27, 2026
b56718e
chore: ignore dashboard build metadata
Jul 27, 2026
7ac9035
fix: serialize progress snapshots for dashboard SSE
Jul 27, 2026
e47de1d
fix: include progress in dashboard reconnect snapshots
Jul 27, 2026
5c47a11
chore: support verified Node 24 runtime
Jul 27, 2026
f7e1593
test: repair dashboard lockfile and use happy-dom
Jul 27, 2026
cf88845
feat: connect mission control to live snapshots
Jul 27, 2026
5dcffa0
feat: show per-item transfer ETA
Jul 27, 2026
8a30336
feat: show per-item ASR metrics
Jul 27, 2026
21cbf32
test: preserve mission row identity across stages
Jul 27, 2026
f56cf92
feat: add revision-aware mission controls
Jul 27, 2026
296dae9
feat: show bounded mission trace
Jul 27, 2026
508c711
feat: show indeterminate unknown transfers
Jul 27, 2026
e0d5253
feat: announce mission pause states
Jul 27, 2026
d7df3f2
perf: memoize mission item rows
Jul 27, 2026
e74525a
feat: add safe artifact reveal endpoint
Jul 27, 2026
05d9d29
feat: persist sanitized source events
Jul 27, 2026
c0d5efc
feat: add preview-gated mission creation
Jul 27, 2026
3971439
feat: guide external platform login
Jul 27, 2026
4fac62f
feat: add filterable job history
Jul 27, 2026
acba3d8
feat: add safe dashboard artifact actions
Jul 27, 2026
b8f24cb
feat: expose retryable item state
Jul 27, 2026
160d74e
feat: retry server-marked failed items
Jul 27, 2026
e814d79
feat: expose local dashboard cli
Jul 27, 2026
7023b49
feat: package dashboard static assets
Jul 27, 2026
fc0b889
test: add fixture dashboard e2e coverage
Jul 27, 2026
578aa88
feat: preview source jobs for dashboard
Jul 27, 2026
47a4d8e
feat: run dashboard jobs after preview
Jul 27, 2026
39c08f3
test: skip unavailable native pdf renderer
Jul 27, 2026
66bd892
fix: retain fast download progress updates
Jul 27, 2026
5577f89
feat: coordinate dashboard worker controls
Jul 27, 2026
33ad71f
docs: refresh README for multi-platform dashboard
Jul 27, 2026
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
26 changes: 26 additions & 0 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: pytest

on:
push:
branches:
- "**"
pull_request:
workflow_dispatch:

jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
cache: pip
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install torch torchaudio --index-url https://download.pytorch.org/whl/cpu
python -m pip install -r requirements.txt pytest
- name: Run test suite
run: python -m pytest -q
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,18 @@ plan/

# 内部会议参考样本(含公司内部信息,仅本地开发参考)
examples/feishu-miaoji-reference.md

# 跨平台蒸馏运行状态与浏览器凭据
data/browser/
data/session/
data/jobs/
data/media/
input/
.local-reference/
.local-artifacts/

# Dashboard development dependencies are reproducible from package-lock.json.
dashboard/node_modules/
dashboard/*.tsbuildinfo
dashboard/test-results/
dashboard/playwright-report/
18 changes: 18 additions & 0 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,24 @@ Distill-Anyone/
└── output/ # 最终产物,.gitignore
```

### 1.5 v0.4 跨平台架构

新入口遵循固定分层,CLI 与本地 Dashboard 都不得绕过应用服务直接操作平台或状态文件:

```text
CLI / Dashboard
-> src/application/ 命令、查询、revision、events、job lease
-> src/platforms/ Bilibili/Douyin Source Adapter 与显式 registry
-> src/distillation/ 原子状态、artifact、3/1/3 engine、progress、双 ETA
-> src/outputs/ episodes / skill / rag 可组合输出目标
```

跨平台内部主键是 `<platform>_<item_id>`。`bvid` 只作为旧 B 站字段保留兼容;新代码必须优先使用 `source_id`。抖音枚举只信任页面产生的 `/aweme/post/` JSON,按 cursor 原子保存 checkpoint。运行态为 `pending -> enumerated -> downloading -> transcribing -> cleaning -> summarizing -> writing -> completed`,`failed/retry_wait/unsupported` 为旁路状态。

所有状态和正式产物使用同目录临时文件、`flush + fsync`、重新打开校验、`os.replace`。读取损坏的 `job_state.json` 必须抛 `StateCorruptionError`。同一任务执行前必须获取 job lease,同一抖音 profile 也必须排他使用。

默认并发是下载 3、ASR 1、LLM 3,且全局活跃作品不超过 3。FunASR 只能由单一 ASR worker 持有一份模型实例。Rich 与 Dashboard 只消费同一个不可变 `ProgressSnapshot`,前端不得自行重算百分比或 ETA。

> ⚠️ `prompts/*.txt` 目前只是参考文档。**实际 Prompt 模板内嵌在 Python 源文件底部**(`TOPIC_SEGMENT_PROMPT`、`VIDEO_KNOWLEDGE_PROMPT`、`PROFILE_SYNTHESIS_PROMPT`)。修改 Prompt 时改 Python 文件,不要改 `prompts/` 目录。

---
Expand Down
Loading
Loading