Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 10 additions & 8 deletions PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

更新时间:2026-10-25(Asia/Shanghai)。本文件是用户指定的计划入口,文件名固定为大写 `PLAN.md`。本次按 [ROADMAP](docs/ROADMAP.md) 的 ENG-00 至 ENG-06 顺序执行;当前事实和实际检查结果见 [STATUS](docs/STATUS.md),详细证据见 [verification](docs/verification.md)。下方保留前两轮历史台账,不把历史限制误当成本轮授权。

## 当前阶段:ENG-05 alpha 源码候选
## 当前状态:ENG-00 至 ENG-06 已完成

- 前置:[PR #11](https://github.com/IsaacHuo/OpenLab/pull/11) 修复和 [PR #12](https://github.com/IsaacHuo/OpenLab/pull/12) 数据/权限验收均在精确 PR CI 全通过、无待解决讨论后合并。ENG-04 的 30 项边界测试通过;新基线为 main `14b8a65`。
- 范围:统一 `VERSION`、npm 根版本、OpenAPI 版本元数据为 `0.1.0-alpha.1`,整理双语启动说明、第三方清单、预览限制和带日期的 changelog;不改变 API 形状或数据库/档案版本。
- 完成条件:候选只含明确纳入的源码,第三方声明和使用边界完整;本地全检查及精确候选 PR CI 通过后合并。
- 精确验证:`npm run check`、`npm run build`、`npm run test:browser`、`npm run check:actions`、`npm run check:secrets`、`git diff --check`;核对源代码档案与版本一致性。
- 交付:候选 PR;随后 ENG-06 等精确 main 的 push CI 通过,再 `npm run release:check -- 0.1.0-alpha.1` 并按既有工作流源码预发布,核对 tag、提交和 prerelease 标志。
- 已发布:[v0.1.0-alpha.1 源码预览](https://github.com/IsaacHuo/OpenLab/releases/tag/v0.1.0-alpha.1),2026-10-25 15:17(Asia/Shanghai)。这是科研源码 alpha,不含安装包或托管部署。
- 交付:[PR #11](https://github.com/IsaacHuo/OpenLab/pull/11)、[PR #12](https://github.com/IsaacHuo/OpenLab/pull/12)、[PR #13](https://github.com/IsaacHuo/OpenLab/pull/13) 均在精确 PR CI 全通过、无待解决讨论后合并。
- 验证:本地 check(57 项 Node)、build、browser(13 项)、actionlint、Gitleaks、npm audit(零漏洞)通过;ENG-04 的 30 项边界测试通过。并发材料选择与跨文档对比回归均先失败后通过。
- 发布门槛:[候选 CI](https://github.com/IsaacHuo/OpenLab/actions/runs/40171822447)、[精确 main push CI](https://github.com/IsaacHuo/OpenLab/actions/runs/40172012839)、release dry-run 与[发布工作流](https://github.com/IsaacHuo/OpenLab/actions/runs/40172172425) 均成功。
- 精确身份:带注释 tag `v0.1.0-alpha.1` 指向 `0e6f348612b56ac17e848c88fd9a3034b61bfc56`;GitHub Release 为非草稿 prerelease。源码档案排除研究数据、凭据、本地工具及运行时二进制;版本与 OpenAPI 元数据一致,API 形状和数据库/档案版本未变。

## 阶段清单

Expand All @@ -19,15 +19,17 @@
| ENG-02 文档口径 | 已完成 | 能力、限制、版本及历史证据对齐,文档检查通过 |
| ENG-03 构建与浏览器 | 已完成 | CI 独立准备 TeX;跨文档对比回归先失败后通过;本地 13 项和远程门槛通过,PR #11 已合并 |
| ENG-04 数据与权限 | 已完成 | 30 项边界测试通过,验收表/预览限制和大写 PLAN 入口在 PR #12 通过全部 CI 后合并 |
| ENG-05 alpha 候选 | 进行中 | 统一版本 `0.1.0-alpha.1`、启动说明、许可和发布说明;完整检查、构建、浏览器、actionlint、Gitleaks 及精确候选 CI |
| ENG-06 源码预发布 | 待 ENG-05 | 精确 main 的 push CI、release dry-run 通过后,按既有工作流创建不可变 tag 和 GitHub prerelease,核对版本/提交/说明一致 |
| ENG-05 alpha 候选 | 已完成 | 统一版本、双语启动、许可和发布边界;修复字体证书下载及并发材料选择问题,PR #13 全 CI 通过后合并 |
| ENG-06 源码预发布 | 已完成 | 精确 main push CI 和 dry-run 通过,既有发布工作流成功,tag/提交/版本/预发布标志一致 |

## 执行约束和完成边界

2026-10-25 用户已授权连续推进上述阶段,逐阶段提交、建立或更新 PR,并在 required-checks 通过及讨论解决后合并,无需逐阶段确认。发布仍须满足 ENG-05/06 门槛;不绕过 CI,不调用付费模型,不读取或发布用户研究数据,不使用子 Agent。

本轮完成对象是 ENG-00 至 ENG-06 的源码预览路线,不将第二检索源、研究全文提取、任意代码执行、动态外部插件、多 Agent、安装包和团队部署等远期候选视为已经实现。候选须另行具备明确需求及验收。

本轮没有未完成的路线图任务。后续从实际研究需求选择一个独立候选,再定义输入输出、失败边界和验收;当前不自动扩大范围。现有分块体积提示及本机冷下载 TLS/撤销查询限制继续记录在 STATUS,未将其写成通用兼容性保证。

## 历史:产品完善与插件工作台(2026-10-24)

状态:两轮实施完成,2026-10-24。基于当前工作区增量实现,保留已有未提交改动;完成后保留本文件。
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ OpenLab is a local-first research workspace being designed to connect open resea

**This source is the v0.1.0-alpha.1 research preview.** It runs locally with Node.js 24 and a browser; no installer is provided. The historical v0.0.1 release remains foundation-only. See the [changelog](CHANGELOG.md) for the preview boundary and [PLAN](PLAN.md) for delivery progress.

The [published source prerelease](https://github.com/IsaacHuo/OpenLab/releases/tag/v0.1.0-alpha.1) includes the reviewed notes and GitHub source archives.

The preview combines projects, a supervised Harness, DeepSeek-tested model configuration, Crossref metadata retrieval, plan confirmation, source-linked Markdown reports and portable research archives. See [development](docs/development.md) and the [implementation plan](docs/implementation-plan.md) for tested scope and remaining gates.

| Capability | Status |
Expand Down
2 changes: 2 additions & 0 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ OpenLab 致力于建立本地优先的科研工作空间,将已有的开源科

**当前源码为 v0.1.0-alpha.1 科研预览。** 使用 Node.js 24 和浏览器在本地运行,尚不提供安装包。历史 v0.0.1 仅交付仓库基础设施;预览边界见[变更日志](CHANGELOG.md),交付进度见[PLAN](PLAN.md)。

[已发布的源码预览](https://github.com/IsaacHuo/OpenLab/releases/tag/v0.1.0-alpha.1)提供已审阅的发布说明和 GitHub 源码档案。

| 能力 | 状态 |
| --- | --- |
| 贡献指南、Issue/PR 模板与发布流程 | 本仓库提供 |
Expand Down
6 changes: 4 additions & 2 deletions docs/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
# OpenLab 长期开发路线图

本文件整理已有项目的后续工作,不重新立项。首次检查日期:2026-10-25;当时基于分支 `codex/research-acceptance`、HEAD `ac2b5274f4693f1b0c7cca3c26f4cac131ffd0a7` 及已有未提交实现。随后 ENG-01 按用户授权完成项目提交和推送;实现提交为 `22d6db524c08abfd4976bded081cf415b25919c1`,交接提交为 `1574645b8b8bc4da9b7559d7794540e75775724c`,[PR #11](https://github.com/IsaacHuo/OpenLab/pull/11) 尚未合并。任务执行状态统一记录在 [STATUS](STATUS.md)。ENG-02 仅对齐文档,不自动提交、推送、合并 main 或发布版本。
本文件整理已有项目的任务合同,不重新立项。首次检查日期:2026-10-25;当时基于分支 `codex/research-acceptance`、HEAD `ac2b5274f4693f1b0c7cca3c26f4cac131ffd0a7` 及已有未提交实现。ENG-01 随后按用户授权提交和推送,实现提交为 `22d6db524c08abfd4976bded081cf415b25919c1`,交接提交为 `1574645b8b8bc4da9b7559d7794540e75775724c`;ENG-02 检查时 [PR #11](https://github.com/IsaacHuo/OpenLab/pull/11) 尚未合并,且该文档阶段没有自动推送或发布。任务执行状态统一记录在 [STATUS](STATUS.md)。

2026-10-25 后续执行结果:用户授权连续推进后,ENG-00 至 ENG-06 已全部完成;PR #11、#12、#13 均通过必需检查后合并,精确 main CI 和 release dry-run 通过后发布了 [v0.1.0-alpha.1 源码预览](https://github.com/IsaacHuo/OpenLab/releases/tag/v0.1.0-alpha.1)。上段保留首次规划和 ENG-02 时的历史语境;当前进度以根 [PLAN.md](../PLAN.md) 和 STATUS 为准。以下任务合同保留,不重复实施已完成阶段。

## 目标与现有基线

长期目标沿用[原始愿景](vision.zh-CN.md):让研究项目、证据和成果由用户持有,模型、工具、运行时和界面可以替换。近期目标是把已经可运行的本地研究与文档工作台收敛为可复核、可维护的研究预览,再通过既有发布门槛准备 `v0.1.0-alpha.1`。

当前源码已有 TypeScript/Node.js 24、React/Vite、SQLite 与普通文件、受监督 Harness、Crossref、计划确认、来源追溯、导入导出,以及连续研究上下文、静态插件、Markdown/LaTeX 编辑、修订比较、BusyTeX 与 PDF.js;后两轮实现已纳入 PR #11。详细进度和验证边界见 [STATUS](STATUS.md),不把这些能力重新列为待开发。2026-10-25 检查发现该 PR 浏览器 CI 为 11 项通过、1 项失败;本地 57/12 的历史结果不代表合并门槛通过。
当前源码已有 TypeScript/Node.js 24、React/Vite、SQLite 与普通文件、受监督 Harness、Crossref、计划确认、来源追溯、导入导出,以及连续研究上下文、静态插件、Markdown/LaTeX 编辑、修订比较、BusyTeX 与 PDF.js;后两轮实现已纳入 PR #11。详细进度和验证边界见 [STATUS](STATUS.md),不把这些能力重新列为待开发。早期 CI 的 11/12 失败与本地 57/12 记录保留在验证文档;后续候选和精确 main 检查已通过 57 项 Node 和 13 项浏览器,不以历史结果替代新门槛。

## 文档分工

Expand Down
64 changes: 30 additions & 34 deletions docs/STATUS.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,40 @@
# OpenLab 当前状态与交接

更新时间:2026-10-25(Asia/Shanghai)。当前任务 **ENG-05:alpha 源码候选准备**。ENG-04 的 [PR #12](https://github.com/IsaacHuo/OpenLab/pull/12) 已通过全部必需检查并合并,当前准备 `0.1.0-alpha.1` 版本身份、启动说明、许可和发布材料。计划入口为根 [PLAN.md](../PLAN.md),详细任务合同见 [ROADMAP](ROADMAP.md),约束见 [DECISIONS](DECISIONS.md)。
更新时间:2026-10-25(Asia/Shanghai)。**本轮 ENG-00 至 ENG-06 已全部完成**,[v0.1.0-alpha.1 科研源码预览](https://github.com/IsaacHuo/OpenLab/releases/tag/v0.1.0-alpha.1) 已发布。当前仅整理最终文档交接。根 [PLAN.md](../PLAN.md) 是用户指定的计划入口;任务合同保留在 [ROADMAP](ROADMAP.md),约束见 [DECISIONS](DECISIONS.md)。

## Git、授权与交付边界
## 交付与版本身份

- 当前分支:`codex/alpha-source-candidate`,起点为 main `14b8a652f63c196b1746878f376bab259a141192`([PR #12](https://github.com/IsaacHuo/OpenLab/pull/12) squash 合并)。此前 PR #11 交付实现、ENG-02 文档和 ENG-03 修复。
- 用户已授权按 ENG-00 至 ENG-06 顺序提交、PR、必需检查通过后合并,满足候选和精确 main CI 门槛后源码预发布;不绕过规则,不调用付费模型,不把远期候选当成已批准功能。
- Windows x64、Node.js `24.19.0`、npm `11.17.0`;沿用锁文件和已有依赖,未升级依赖。
- 原小写根计划已按用户要求更名为大写 `PLAN.md`,顶部补当前阶段和验收出口,保留两轮历史台账并同步链接。README 中英文导航已同步。
- 用户研究数据、保护凭据、本地 Skills/hooks、未选稿、缓存和测试产物保留本机,不纳入源码交付。档案 v2 与 SQLite `user_version=1` 独立;v1 导入兼容。
- PR #11(实现、文档对齐、构建/浏览器修复)、#12(数据/权限验收、大写 PLAN)和 #13(alpha 候选及候选失败修复)均在精确 PR CI 全通过、无待解决讨论后 squash 合并。
- 发布源码:`0e6f348612b56ac17e848c88fd9a3034b61bfc56`。带注释 tag `v0.1.0-alpha.1` 的对象为 `de7a92e79707af54e55b868464baa7392bee3748`,远程与本地解引用均指向该源码提交。版本文件、npm 根版本和 OpenAPI 元数据一致。
- GitHub Release 于 2026-10-25 15:17(Asia/Shanghai)发布,非草稿、prerelease,无二进制附件;提供源码档案,不提供安装包或托管部署。活动 v* tag 规则禁止更新/删除。
- 当前最终交接分支:`codex/source-preview-handoff`,基于发布提交,仅改文档;后续 main 文档提交不改变已发布 tag。
- 用户已授权逐阶段提交、PR、检查通过后合并及满足门槛的源码预发布。本轮未调用付费模型,未修改或发布用户研究数据,未使用子 Agent。

## 任务状态
## 阶段结果

| ID | 状态 | 交接 |
| ID | 状态 | 交付 |
| --- | --- | --- |
| ENG-00 | 已完成 | 协作入口及架构约束已交付 |
| ENG-01 | 已完成 | 既有实现盘点、提交、推送,PR #11 已合并 |
| ENG-02 | 已完成 | 文档能力、限制、版本和历史证据对齐;三项文档检查通过 |
| ENG-03 | 已完成 | 本地 57 项 Node、13 项浏览器、构建和检查通过;精确 PR CI 全通过后合并 |
| ENG-04 | 已完成 | 30 项边界测试通过,验收映射和大写 PLAN 入口在 PR #12 通过 CI 后合并 |
| ENG-05 | 进行中 | 固定字体镜像已通过远程准备和真实编译;随后 CI 暴露并发材料选择覆盖,确定性回归先失败后通过,正在复验候选 |
| ENG-06 | 待开始 | 已授权按门槛发布;依赖 ENG-05、release dry-run 与精确 main push CI |

## 本轮实际验证

- ENG-03:`npm run check`(57 项 Node,0 失败/跳过)、`npm run build`、`npm run test:browser`(13 项)、`npm run check:actions`、`npm run check:secrets`、`git diff --check` 通过。桌面/平板/手机文档截图已检查。
- [CI 40170016084](https://github.com/IsaacHuo/OpenLab/actions/runs/40170016084):head `73ad1658c7f9f3d4d283d5221af4922668661a99` 的 Windows/Linux、独立 TeX 准备、13 项浏览器、actionlint、Gitleaks、required-checks 全通过。该结果不替代后续文档和版本候选的 CI。
- ENG-04:`node --test app/tests/platform.test.ts app/tests/runtime.test.ts app/tests/service.test.ts app/tests/store.test.ts app/tests/documents.test.ts app/tests/context.test.ts app/tests/workflow.test.ts`:30 项通过,0 失败/跳过。均使用隔离受控夹具,未调用真实模型。
- [CI 40170593908](https://github.com/IsaacHuo/OpenLab/actions/runs/40170593908):PR #12 head `b1373907f448642991c55840d2c9893c7af1d4b0` 的全部必需检查通过,已合并为 main `14b8a65`。
- 本阶段 `npm.cmd run lint:markdown`(36 份)、`npm.cmd run check:repository`(159 个文件)及 `git diff --check` 通过,大写路径和链接已核对;详细阶段证据见 [verification](verification.md),alpha 门槛映射见 [acceptance](acceptance.md#alpha-data-and-permission-gates-eng-04-2026-10-25)。
- ENG-05 候选:`npm run check`(57 项)、build、browser(13 项)、actionlint、Gitleaks、npm audit(零漏洞)和空白检查通过;版本/OpenAPI 一致、依赖图未变及 154 个源码路径的排除检查通过。尚未发布;精确候选和 main CI 不用历史结果替代。
- PR #13 首次 CI `40171037488`:仓库、actionlint、Gitleaks 通过;准备字体的一个分片 curl 60,浏览器未启动。改用固定 MIT CTAN 镜像,Node HTTPS 实取的 4,947,904 字节与既有 SHA-256 完全一致;TLS 验证保持开启。修复后 check(57 项)、actionlint、空白检查再次通过,等待新远程验证。
- 后续 CI `40171390131`:固定字体准备和真实 TeX 通过,材料选择场景失败,整体 12/13。受控并发上传回归复现旧状态覆盖;修复为基于最新选择合并,针对场景、类型检查、构建及完整 13 项浏览器再次通过;等待新 head CI。

## 限制与下一动作

- 早期 XeLaTeX CI 超时的精确原因没有被日志证明;分离准备后的新 CI 已通过。隔离本地冷下载仍观察到 curl 35 TLS 错误,缓存分片保留,明确重试可续传;不把本地 TLS 故障等同于旧 CI 根因。
- 预览范围保持 Windows 凭据保护、单 Crossref 元数据提供商、具日期的 DeepSeek 非思考模式兼容;没有通用全文/科学论点核实、任意代码、动态插件隔离、多 Agent、安装包或团队部署。Supervisor-Skills 不随源码分发。
- 现有超过 500 kB 的分块提示保留;尚无用户性能测量,不为发布引入无目标重构。
- 下一动作:执行 ENG-05 的完整候选检查,建立候选 PR,通过后合并;ENG-06 继续等待精确 main push CI 和 release dry-run。
| ENG-00 | 已完成 | 协作规则、路线图、状态和决策入口 |
| ENG-01 | 已完成 | 既有实现分类、提交和推送;本地工具及数据排除 |
| ENG-02 | 已完成 | 能力、请求限制、档案/数据库版本与历史证据口径一致 |
| ENG-03 | 已完成 | 独立 TeX 准备、失败证据留存及跨文档比较修复;本地/远程验收通过 |
| ENG-04 | 已完成 | 30 项边界测试与验收映射,PLAN 大写更名及双语入口,PR #12 已合并 |
| ENG-05 | 已完成 | 候选身份、许可与说明;固定字体镜像及并发材料选择修复;PR #13 全检查通过后合并 |
| ENG-06 | 已完成 | 精确 main push CI、release dry-run、发布工作流和 tag/Release 身份核验通过 |

## 实际验证

- 本地:Windows x64、Node.js `24.19.0`、npm `11.17.0`。check(57 项 Node,0 失败/跳过)、build、browser(13 项)、actionlint 1.7.12、Gitleaks 8.30.1、npm audit(零漏洞)、Markdown/仓库和空白检查通过。跨文档对比与确定性并发上传回归均先失败后通过;类型/构建及完整浏览器在对应修复后重跑通过。
- alpha 专项:既定七文件 `node --test` 命令 30 项通过;计划确认、权限拒绝、重放、取消/重启、凭据隔离、人工修订、v1/v2 往返与跨项目引用均有证据。完整映射见 [acceptance](acceptance.md#alpha-data-and-permission-gates-eng-04-2026-10-25)。
- [候选 CI 40171822447](https://github.com/IsaacHuo/OpenLab/actions/runs/40171822447)(head `bba97f0`)和[精确 main push CI 40172012839](https://github.com/IsaacHuo/OpenLab/actions/runs/40172012839)(源码 `0e6f348`)均通过全部必需检查,包含新环境字体准备与真实编译。
- `npm.cmd run release:check -- 0.1.0-alpha.1` 在干净、精确 main 源码上通过;[发布工作流 40172172425](https://github.com/IsaacHuo/OpenLab/actions/runs/40172172425) 成功;发布结果、注释 tag 及活动 tag 保护规则已读取核对。
- 实际发布 tag 源码 tar 检查通过:PLAN/许可文件存在;本地数据、凭据、Skills/hooks、依赖、缓存、构建、测试和编译器/字体二进制不在档案中。原始愿景与前置 main 的 Git blob 一致。详细证据及历史失败见 [verification](verification.md#source-preview-release-eng-06-2026-10-25)。

## 限制与后续

- 仍为 Windows 优先、Crossref 元数据研究和具日期的 DeepSeek 非思考模式兼容;通用全文、科学论点核实、任意代码、动态插件隔离、多 Agent、安装包及团队部署均为远期候选。Supervisor-Skills 未分发;数据库版本 1、导出档案 v2、导入 v1/v2 保持原兼容边界。
- 本机隔离冷下载遇到 TLS/撤销查询错误;已有缓存和新 Linux CI 的真实准备/编译通过。字体固定 MIT 镜像的实取字节与原 SHA-256 一致,TLS 检查未关闭。JavaScript 超过 500 kB 的已有分块提示保留。
- 本轮没有未完成的路线图任务或发布阻塞。下一动作:保留发布身份,从实际研究需求选择一个远期候选,单独定义输入输出、失败边界和验收后再开发,不重复本轮阶段。

## 保留的本地预览记录

Expand Down
Loading
Loading