Repository navigation
Releases: Xavier-168/data-scientist-community
Release list
v0.1.0-rc.2 — Collection Integrity & Native Export Fixes
v0.1.0-rc.2 发布说明
发布日期:2026-08-18
版本性质:Community 源码预发布候选
这是 v0.1.0-rc.1 之后的一轮完整稳定性修复,重点处理四平台采集完整性、进度状态、Excel 保存、飞书首次初始化、本地客户端布局和运行数据隔离。
本项目仍是独立社区项目,与抖音、小红书、哔哩哔哩、快手、飞书及其关联公司不存在官方合作、授权或背书关系。
核心修复
抖音采集
- 作品列表发现同时使用真实页面滚动与接口响应,不再仅依赖当前可见的首屏卡片。
- 等待尚未解析完成的列表接口响应后再判断分页是否结束,避免慢响应导致作品数量少于后台真实数量。
- 防止较早返回的旧接口响应覆盖较新的分页游标和
has_more状态。 - 接口持续声明还有数据、但页面和游标长期没有变化时,明确报告分页停滞,不再无限等待或错误显示完成。
- 作品详情页导航遇到超时、连接关闭等瞬态错误时执行有限次数重试与退避,并在连续失败后停止继续冲击平台页面。
- 部分作品已经成功时,会保留已采集结果、Excel 中间产物和真实进度;不会立即从头重跑并把
21/28覆盖成0/0。 - 部分失败保持为
partial_failure,不会被包装成“采集完成”,也不会自动进入全量合并或飞书同步。
B站采集
- 先按日期范围锁定目标稿件,再通过官方页面滚动确认稿件集合,并按官方对比导出的限制分批处理。
- 21 条稿件会形成
10 + 9 + 2的无重叠批次,避免最后只剩 1 条而无法完成官方对比。 - 只有批次文件真实下载完成后才增加已处理数量,修复进度先跳到 21、再回到 10、随后又增长到 20 的倒退现象。
- 校验目标稿件、实际选择数量、导出文件数量以及规范化结果覆盖率;任一环节不完整时明确失败。
- 增加必要指标的列存在性和整批有效值检查,防止字段缺失却继续发布结果。
- 日期范围内确实没有稿件时返回空结果;接口结构变化、分页不完整和数据不可解析不会再混同为“没有稿件”。
小红书与快手采集
- 两个平台均补充接口分页信息与真实页面滚动的联合确认,减少首屏、懒加载或单一接口判断导致的漏采。
- 小红书继续严格执行用户选择的日期窗口;发布日期无法确认的记录不会默认进入结果。
- 快手导出任务绑定本次创建的任务 ID,并等待唯一的新任务完成后再下载,避免误取历史导出文件。
- 快手标题提取兼容多层数据结构和话题文本,同时保留既定的指标映射口径。
授权、调度与运行状态
- 单平台授权与数据采集使用不同锁;点击“去授权”时只显示“授权进行中”,不会把其他平台错误标记为正在采集。
- 未获得采集线程的平台显示“排队等待”;只有真正取得执行槽位的平台进入“采集进行中”。
- 采集器已写入完成或失败后,监督器会清理仍滞留的浏览器和调试器进程并释放下一平台的执行槽位。
- 单平台失败、部分失败和空结果均写入运行历史。
- 运行产物先写入隔离 staging,完成校验后再原子发布,避免旧文件或半成品被当成本次结果。
- 失效的
running状态会回滚到最近稳定快照,客户端重启后不会长期保留虚假的运行中状态。
Excel 导出
- “导出 Excel”改为应用内范围选择加 macOS 系统保存窗口。
- 用户可以选择汇总数据或指定平台,并自行选择本地文件名和保存位置。
- 不再依赖 JavaScript
prompt或弹出外部浏览器下载。 - 保存采用临时文件、同步写入和原子替换;取消保存、路径异常和写入失败都会返回明确状态。
- 没有可导出数据、平台范围无效或 Excel 校验失败时,会直接说明原因。
飞书首次初始化与同步
- 飞书初始化区分“应用配置存在”和“用户授权完成”;仅有
appId、但用户授权列表为空时,不再误判为初始化完成。 - 首次准备固定版本飞书 CLI 时,界面说明可能需要 1–2 分钟。
- 飞书登录链接生成后自动交给系统浏览器打开,同时仍在页面保留手动打开入口。
- 自动打开严格限制为
https://open.feishu.cn/page/cli,其他协议、域名和路径不会被放行。 - 修复 CLI stdout 阻塞读取导致的无限等待;有限超时后返回明确错误。
- 飞书表字段创建遇到权限限制时重新读取表结构并进行幂等处理;需要补充权限时进入专门的用户授权流程。
- 分批同步增加 checkpoint;全部成功后才提交新的同步基线,任一表失败时不会提前推进基线。
数据完整性
- Excel 与飞书的跨平台标题相似度阈值统一为
0.40,让同一教程在不同平台的长标题和短标题更容易归入同一作品组。 - 标题清洗只移除空白分隔的尾部话题,避免误截断
C#、F#等正文;整行本身就是话题时保留原值。 - 播放量和阅读量均为 0 的无效记录继续在统一 source rows 链路过滤,Excel 与飞书使用同一口径。
- 平台范围贯穿采集、合并、Excel 和飞书同步,未启用平台不会混入本次结果。
- 新鲜产物、部分结果、空结果和失败结果分别处理,不再用旧缓存掩盖本次采集失败。
UI 与本地客户端
- 主仪表盘按
1920 × 1080设计基线整体等比缩放,避免窗口变化时侧边栏、表格、文字和进度条分别缩放造成错位。 - 右侧工作区延伸到窗口上下边缘,修复顶部和底部出现非设计灰色留白的问题。
- 平台表格、状态标签、数字、进度条和操作按钮按统一网格居中对齐。
- 平台名称统一为中文;采集状态简化为“采集完成 / 采集进行中 / 排队等待”等真实任务状态。
- 授权健康状态与采集状态分列展示,Cookie 检查异常不会被误显示成采集异常。
- 总进度以真实平台完成量计算;等待开始时显示 0% 轨道,运行期间只向前增长。
- 同步记录页面、运行日志和操作控件同步放大,提升原生窗口中的可读性。
- Noto Serif SC 变量字体随附 OFL 1.1;平台 SVG 仅用于来源识别,权利归对应平台,不代表合作或背书。
- Tauri 桌面壳补充 Python 服务监管、启动状态恢复、受限外部链接处理和失败回退;本版本仍只将其作为可构建源码提供。
安全与隐私
- Cookie、浏览器 Profile、日志、下载文件、配置和数据库默认写入
~/Library/Application Support/数据科学家 Community/,不写入源码目录或只读安装位置。 - 用户状态目录以仅当前用户可访问的权限创建。
- 本地服务仅监听
127.0.0.1,敏感操作继续受本地会话令牌保护。 - 社区版默认不配置商业许可证、自动更新和反馈服务,不存在默认遥测。
- 主动提交产品反馈时不发送本机 hostname。
- 社区源码模式无需许可证;14 天免费试用流程已关闭。
- 白名单候选不包含原 Git 历史、客户数据、Cookie/Profile、日志、Excel、SQLite、历史 DMG、runtime、node_modules、缓存、私钥、发货台账或商业专属文件。
- 外部 URL 继续执行精确协议、主机和路径校验。
已验证
以下是本轮实际执行过的自动化或隔离验证,不代表真实平台账号已经全面验收:
- 最终白名单导出物 Python 全量回归:
282项通过,6项跳过;公开契约测试14/14通过。 - 抖音、调度器和 runner 专项回归:
82项通过。 - 飞书初始化专项:
5/5通过;相关 runner 回归:81/81通过。 - 前端完整门禁退出状态为
0;桌面 Web38/38通过,Rust/Tauri 为181 + 2 + 7 + 2项通过,启动 smoke2/2通过。 - Excel 导出流程、采集进度、授权状态和 Figma 布局均有专项回归。
- 本地 Playwright 瞬态故障 fixture 已验证“超时 → 连接关闭 → 重试成功”的退避链路。
- B站官方分批、覆盖率和进度单调性具有独立回归测试。
- Excel 系统保存窗口、取消、目标文件已存在和原子替换具有后端与浏览器流程测试。
- 最近一次社区白名单候选扫描结果为
0 critical / 0 high / 0 medium / 0 low。 - 公开候选的依赖、安全扫描、SBOM、纯 Python staging 和只读源码冷启动结果以
RELEASE_GATE.md为准。
人工验证边界
以下内容仍需要账号所有者在发布候选上人工确认:
- 四个平台真实账号的首次扫码、重新授权及完整日期范围采集。
- 平台后台数量与最终 Excel 行数、日期、标题和核心指标的逐项核对。
- 抖音真实网络环境下的分页、详情页瞬态故障恢复与部分结果保留。
- 飞书首次初始化、扫码授权、创建多维表格及真实租户写入。
- macOS 系统保存窗口中由用户选择任意目录后的真实 Excel 文件打开检查。
- 当前账号类型、使用地区和用途所适用的平台条款。
- CLA、商业许可和合同模板的正式法律审阅。
自动化测试不等于平台授权通过,也不构成“完全合规”“永不掉 Cookie”或“所有账号均可稳定采集”的承诺。
从 rc.1 升级
建议在原目录之外重新 clone 或 checkout v0.1.0-rc.2,重新创建 .venv 并安装锁定依赖:
python3 -c "import ssl, sqlite3, xml.parsers.expat"
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
npm ci
npx playwright install chromium需要构建或测试可选 Tauri 桌面壳时,再执行:
npm ci --prefix desktop
npm --prefix desktop run build:web升级源码时不要删除或移动 ~/Library/Application Support/数据科学家 Community/;其中包含用户自己的浏览器 Profile、Cookie、配置、历史和导出数据。
发布边界
v0.1.0-rc.2 仍是 source-only release candidate:
- 不附带客户 DMG;
- 不代表代码签名或 Apple 公证已经完成;
- 当前优先验证 Apple Silicon;
- Intel、Windows 与稳定版
v0.1.0不在本次发布承诺范围; - 真实账号与平台条款人工门禁完成前,版本继续保留
rc标记。
社区代码采用 GNU AGPL-3.0-only。完整的数据边界、安全说明和发布门禁见 PRIVACY.md、SECURITY.md、PLATFORM_COMPLIANCE.md 与 RELEASE_GATE.md。
v0.1.0-rc.1 — Community Source Release Candidate
v0.1.0-rc.1 发布说明
这是从商业开发仓库当前安全白名单导出的首个社区源码候选,使用全新 Git 历史。
包含
- 抖音、小红书、B站、快手四平台本地采集入口;
- 数据规范化、Excel、本地分析和基础飞书同步;
- Vanilla HTML 仪表盘与 Tauri/React 桌面壳源码;
- 默认每 6 小时对已授权平台做一次保守的登录态检查,并在本地仪表盘显示最近检查状态;
- AGPL、商业许可说明、CLA、隐私、安全、平台合规和第三方声明;
- 公开导出清单、脱敏扫描器、源码 staging 和 SPDX SBOM。
明确排除
客户数据与 Profile、生产服务配置、客户包生成器、发货台账、私钥运维、历史 DMG、字体二进制、原品牌图标、内部 Agent 文档、MCN/团队/白标/OEM/托管/SLA 与 HSI 私有能力。
安装
参见根目录 README。当前只发布源码,不发布签名或公证的 DMG。
建议运行环境为 macOS 11+、Python 3.11+(已实测 3.12)、Node.js >=22.12.0 <23 与 Git。普通源码运行不需要 Rust;只有构建或测试 Tauri 桌面壳时才需要 Rust stable 和 Apple 平台构建环境。安装前应先执行 README 中的 Python 标准库预检;出现 dlopen、pyexpat 或 ensurepip 错误时,重装完整 Python 3.12 并丢弃失败的 .venv。
登录态与数据边界
- 平台登录、扫码和重新授权必须由账号本人完成。
- Cookie、浏览器 Profile、检查元数据和导出结果默认保存在当前用户的
~/Library/Application Support/数据科学家 Community/,不写入源码目录。 - HTTP 503、网络异常、空白或不稳定页面会记为
unknown并保留上次authorized;只有明确的未登录/Cookie 失效证据才提示重新授权。 - 检查不会刷新 Cookie 或承诺登录永不过期。平台页面变化、频控、安全校验和账号风控仍可能影响采集。
- 飞书同步默认不启用;只有用户完成配置并主动请求同步时,选中数据才会发送到用户自己的飞书租户。
- 社区源码模式无需许可证;14 天免费试用流程已关闭,默认也不配置商业激活、更新或反馈地址。
本项目只支持抖音、小红书、B站和快手四个平台,是独立社区项目,不是任何平台或飞书的官方产品。
验收状态
自动测试、隔离冷启动、纯 Python staging、秘密/隐私扫描、SBOM 与源码依赖漏洞检查已经完成,结果以根目录 RELEASE_GATE.md 为准。法定项目方已确认为杭州玄野科技有限公司,当前没有硬性 FAIL 或 BLOCKED;真实平台账号扫码、端到端采集和平台条款适用性仍标记为 MANUAL VERIFICATION REQUIRED,不能由合成测试替代。本说明仅适用于源码候选,不代表已验证或可直接分发安装包。