zh
|
1dbed5be7c
|
feat(storage): 会话与消息落库 SQLite(A3.7,决策 D16)
新增 server/core/storage:openDatabase + 迁移(projects / sessions / messages / idempotency_keys 四张平台表,按 ADR-0007 用整数毫秒与应用侧主键),SessionRepository 负责读写。SessionStore 改为内存态 + 写透:会话、消息、幂等键落库,进程重启后按库补建运行时状态(事件总线与进行中的运行仍在内存,符合架构设计 5.1)。startServer 支持 databasePath(测试传 :memory: 隔离,默认取配置 ~/.aps/aps.sqlite),关停时关闭数据库。新增 storage 用例:同一库文件起两次服务,会话、消息、幂等键都可查且重试命中同一条受理记录。测试 54 → 56 全绿。过程中修掉一个自身缺陷:迁移表要先建,否则第一次查版本号就报 no such table。
|
2026-09-28 16:03:12 +08:00 |
zh
|
0e1a1bb5c0
|
feat(config): 模型与端点配置层(ADR-0011,决策 D15 / D16)
server/config.ts 按 ADR-0011 读取配置:环境变量 > ~/.aps/config.json > 默认值;默认 DeepSeek(https://api.deepseek.com/v1,deepseek-chat);密钥只在配置对象里出现一次,日志与启动横幅一律走 redactConfig。.env.example 改为平台自己的变量并写清优先级。serve 启动打印脱敏配置与「模型是否已配置」。数据库默认 ~/.aps/aps.sqlite(决策 D16,驱动用 Node 内置 node:sqlite,实测 22.19 免 flag、零原生依赖)。顺带收紧跨库访问检查的边界:平台自己的 APS_DB_PATH 不算越界(补一条用例锁住),避免误报。测试 47 → 54 全绿。
|
2026-09-28 16:01:04 +08:00 |
zh
|
cd883d9ad7
|
feat(agent): 规则计划器按声明的 text/query 参数填充原始问法
让假引擎的默认计划器能把用户原话作为 text/query 参数传给能力,M1 演示与联调不再因为缺参数而失败;能力声明里没有这两个参数时不受影响。
|
2026-09-28 15:39:21 +08:00 |
zh
|
d03f8d7414
|
feat(agent,eval): 假引擎接入服务端并跑通问法评测(A2.6 / A2.7,M1 闭环)
服务端改用 AgentRuntime 接口:新增 turn-runner 把 RuntimeEvent 翻成平台事件(text→message.delta、tool_call→tool.call 并走 Core.invoke、tool_result→tool.result、turn_end→message.completed+run.state、error→error),工具描述由能力目录投影;取消时先推 cancelling 再中止引擎;关停时主动断开 SSE 长连接。默认引擎为假引擎 + 规则计划器,M1 链路打通:假引擎发起工具调用 → Core.invoke → 假 Provider → 回执回流 → 继续说话(scripts/m1-loop.test.mjs 验证)。A2.6:providers 下 17 个能力描述文件,七要素 CI 检查实际校验通过。A2.7:scripts/eval-intents.mjs 跑手 + 规则基线报告(工具选择 68.2%、参数命中 23.1%、澄清率 33.3%、误澄清 13.6%、幻觉 0、越权 0),修正了期望参数占位符无法字面比对与比率显示两个自身缺陷。测试 46 → 47 全绿。
|
2026-09-28 15:38:42 +08:00 |
zh
|
89b9535138
|
feat(agent): 引擎接口、假引擎与一致性测试套件(A3.1 / A3.2)
runtime.ts 按架构设计 5.2 定义 AgentRuntime / RuntimeSession / RuntimeEvent(text、tool_call、tool_result、approval_required、turn_end、error),补两处实现必需项:createSession 带 sessionId、resolveToolResult 让工具回执回流。fake-runtime 为确定性假引擎,支持脚本与计划器,事件顺序与真引擎一致,用于一致性测试与 A2.7 评测。conformance.ts 是一套跑任何运行时的验收用例:单轮事件顺序、多轮、工具调用与回执、取消、错误分类、带历史恢复。测试 44 → 46 全绿;坏运行时负例证明套件不是摆设。过程中修掉两个自身缺陷:假引擎在 yield 之后才登记回执回调导致回执丢失;一致性套件超时定时器 unref 导致事件循环空转退出。
|
2026-09-28 15:14:11 +08:00 |
zh
|
6fe43f1d4b
|
docs(plan): 长程路线图(平台主线 / 前端界面 / APS 独立化)
三条长程线与六个里程碑(M1 假引擎可对话 → M2 真引擎 → M3 控制面 → M4 首个真实系统只读 → M5 写操作与可插拔 → M6 Sub-agent 与发布),L2 前端分两批迁移(第一批为新增 A3.12:壳、对话渲染、甘特/负荷/交期三视图),L3 分 B0 到 B7 四段;列明五个决策门与并行/串行约束。
|
2026-09-28 15:12:14 +08:00 |
zh
|
f2359cc3ad
|
feat(core): 引擎工具回调端点与会话归属者(A2.5)
会话记录带 owner,创建会话时记录发起人;新增 POST /internal/tool-call(loopback + 启动时生成的内部令牌鉴权),身份取自会话归属者而非调用方自带,平台侧仍收口到 Core.invoke。三条端到端用例:HTTP→应用服务→Core→假 Provider 成功链路、令牌缺失或错误被拒且不留执行记录、未知能力返回失败回执而非 HTTP 错误。测试 41 → 44 全绿。
|
2026-09-24 15:50:07 +08:00 |
zh
|
e15e7e81e9
|
feat(core): Provider SDK、能力目录与 Core.invoke(A2.1-A2.4)
按架构设计第 6 节实现 Provider 契约(describe/invoke/health)与能力声明(effect/mode/idempotency/errors);错误统一六分类(invalid_argument、forbidden、conflict、rate_limited、unavailable、unknown_result)。Core.invoke 作为唯一执行出口:能力解析、幂等重试返回原回执、超时归一为 unknown_result、执行记录带参数摘要。新增能力目录(registry)与内存执行记录,能力清单改由目录提供;GET /v1/executions/{id} 由 501 改为返回真实回执。假 Provider(testing)与契约测试套件(contract-suite)落地,含坏 Provider 负例。APS Provider 占位改为新契约。测试 31 → 41 条全绿。
|
2026-09-24 15:48:45 +08:00 |
zh
|
d6bb4a7df2
|
feat(client): 最小界面与单端口托管(A1.4 / A1.5)
客户端 Vite + React 三栏骨架:左会话列表、中对话流(SSE 流式)、右工作区占位与事件流观察窗;连接状态徽章;类型全部来自 @aps/contracts。服务端托管 client/app/dist,一个端口跑完整平台;pnpm dev 一键起服务端与前端,pnpm start 构建后单端口托管。实测:浏览器打开后新建会话、发消息、看到流式回复与事件流 seq 1..7;31 条测试全绿。
|
2026-09-24 15:41:01 +08:00 |
zh
|
f127e5071e
|
feat(ci): lint 基线与三个检查接入门禁(A1.6)
eslint(typescript-eslint + prettier)、跨库访问检查(ADR-0008)、能力描述七要素检查(A2.6 的 CI 项)、APS/平台 CI 分流;新增 pnpm verify 一条命令跑完整门禁。TypeScript 从 7.0 降到 6.0.3——typescript-eslint 尚不支持 TS 7。测试 21 → 30 条全绿。
|
2026-09-24 15:37:35 +08:00 |
zh
|
0a6152e419
|
docs: ADR-0010(APS 开发期同仓不同目录)+ aps/ 骨架 + A1–A2 实施计划
ADR-0010:开发期 APS 放 aps/,独立工具链、独立 CI、独立库,唯一界面是 Provider 契约;写清迁出独立仓库的三个触发条件。架构设计第 2 节补开发期例外说明。新增 docs/plan/a1-a2-plan.md:A1.6 → A1.4 → A1.5 → A2.1 → A2.2 的串行计划与每步验收证据。
|
2026-09-24 15:36:04 +08:00 |
zh
|
52be2793e4
|
feat(server): 应用服务最小闭环与 HTTP/SSE 入口(A1.3)
按协议 v1 实现 12 个端点中的 10 个:健康检查、身份、项目、会话 CRUD、发消息、取消、能力清单;执行状态与确认卡返回 501(A2/A4 落地)。应用层含事件总线(会话内 seq、回放、订阅)、会话存储(ADR-0003 作用域校验)、占位引擎(回显,A3 替换)。新增 6 条冒烟测试:未接入 Provider 可用、事件流合规且 seq 递增、幂等重试、取消、断点续传、错误包装。协议补一型事件 message.user(多端与重连需要)。测试 15 → 21 条全绿;本地启动实测通过。
|
2026-09-24 15:09:37 +08:00 |
zh
|
f5c935e96b
|
docs: ADR-0009 交付形态(纯平台包 + APS 单独部署)
首版只交付纯平台包:桌面端 + 平台服务 + 平台库 + Provider 契约,不含 APS 运行时与 APS 库;APS 单独部署,平台按 Provider 配置指向它;平台在未接入 APS 时要能正常启动并呈现「未接入/不可用」状态。连带影响写进 ADR:A1.5 一键启动不拉 APS、A10.5 本地守护只管平台服务、A10.8 只验收纯平台包、A5 联调需 APS 单独部署环境。
|
2026-09-24 14:57:39 +08:00 |
zh
|
2d0fdd2c50
|
docs: ADR-0008 数据库归属与实例拓扑、平台与业务能力边界、单机版口径
ADR-0008:库各自私有、允许共用实例、平台禁止直连 APS 库,并纠正「单机版」口径(客户端与平台服务同机,不含 APS)。新增 docs/spec/platform-vs-business.md 作为拆分判据(三分类 + 三个判据 + 四项已确认边界)。术语表修正 Pi 的描述(长驻子进程 + 扩展桥),补单机版/服务端版。实施设计 9.5 补进程创建时机:首次发消息时懒启动。
|
2026-09-24 13:51:39 +08:00 |
zh
|
84e4d6b504
|
docs: 实施设计第 9 节按 ADR-0006 重写(引擎长驻子进程)
原第 9 节写的是进程内 new Agent() 的接法,与 ADR-0006 冲突。重写为:为什么子进程、平台装 npm 只为拿 RpcClient 与类型、五块实现拆分、一次对话链路、进程模型(一进程一会话 + 空闲回收待定 + 进程复用暂不做)、工具面扩展桥、接入方式对比、推进顺序。同时订正架构设计 5.2 对比表里 Pi「驱动=进程内库」「工具面=进程内注册工具」两处过期描述。
|
2026-09-24 11:33:34 +08:00 |
zh
|
f9e7923982
|
chore: 按新结构重写 .gitignore
81 行降到 21 条规则,按 Node/TS、环境密钥、运行数据、Python、IDE 五组组织;删掉指向已不存在路径的旧规则(apps/web/dist、apps/desktop/release、poc/pi-fallback、_shots、video、_refs、beihai-shipyard-aps-data 等),补上 .aps/、server/data/、coverage/、.env.* 白名单 .env.example。旧项目残留(.venv、apps/、tests/、server 下旧 Python 目录与运行数据)已移出工作区,未入库。
|
2026-09-23 21:02:10 +08:00 |
zh
|
b56e6f5551
|
feat(contracts): 补齐 HTTP 契约与端点一致性检查(A1.8)
新增 http.schema.json(14 个 HTTP payload:健康检查、身份、项目、能力清单、消息、会话 CRUD、发消息、取消、审批响应);receipt/capability/session/approval/error 五份改成 \ 形式以便跨文件引用。样例从 5 条补到 19 条,覆盖 protocol.ts 除 CapabilityId 外的全部导出类型。新增三条测试:HTTP payload 覆盖率、协议文档端点表 vs ENDPOINT_SPECS、ENDPOINTS 常量 vs ENDPOINT_SPECS 路径。反向验证过:把文档里的 /v1/me 改成 /v1/whoami 会被拦下。
|
2026-09-23 20:52:24 +08:00 |
zh
|
12ff5004d7
|
docs(review): 更新重写后的提交号
统一提交署名重写了本分支 10 个提交,材料包与结论里引用的 ADR-0007 提交号由 0981004 更正为 de8d044,并在结论里注明本次重写。内容未变。
|
2026-09-23 20:29:52 +08:00 |
zh
|
a6056f58e8
|
fix(contracts): 补 ProjectSummary 与 ProjectListResponse 类型
端点表引用了 ProjectSummary 但类型文件里没定义;同时把协议文档的响应列改成 ProjectListResponse。
|
2026-09-23 20:00:59 +08:00 |
zh
|
2023e5312b
|
feat(contracts): 客户端与服务端协议 v1 及事件模型(A1.7)
JSON Schema 为规范本体(envelope / events / receipt / capability / session / approval / error),TS 镜像在 contracts/events.ts 与 contracts/protocol.ts,人读版本在 docs/spec/protocol.md。11 类事件(message.delta、message.completed、tool.call、tool.result、execution.updated、approval.requested、approval.resolved、run.state、session.updated、error、heartbeat)带会话内单调 seq,支持 Last-Event-ID 断点续传;HTTP 端点覆盖健康检查、身份、项目、会话、发消息、取消、能力清单、执行状态与审批响应。漂移检查卡三处一致:schema、TS、文档;样例共 11 条事件 + 5 条 HTTP。
|
2026-09-23 20:00:47 +08:00 |
zh
|
433684fd79
|
docs: 设计文档随分支入库(A0.10)
架构设计与实施设计由飞书文档导入 docs/(含两张 mermaid 图,cite 与 bookmark 转成链接);两份文档头部写明来源与「导入后以仓库版本为准」。实施设计 1.4 补入单机 SQLite 文件路径与跨库写法约定(ADR-0007),飞书副本未同步。README 的设计文档一节改为仓库目录索引。
|
2026-09-23 19:37:16 +08:00 |
zh
|
9748466944
|
docs(review): A0-G 评审结论(追认式)
七份 ADR 全部接受并记录出处;九项遗留项逐条认领责任人与时限(其中是否另立仓库当场关闭为不另立);三条门槛全部通过;追认平台 7 张表、工艺路线归 APS 两项后定结论。评审方式为逐条确认,效力来自提交可查,不来自会议签字。
|
2026-09-23 19:33:34 +08:00 |
zh
|
ff31e7baa2
|
feat(ci): 依赖方向检查与负例用例接入 CI(A1.2)
scripts/check-dependency-direction.mjs 拦三类反向依赖:包之间越界(core 引用具体 Provider、业务包直连 Provider、客户端引用服务端)、相对路径逃出包边界、引擎包被 server/agent 之外引用(ADR-0006)。八条用例含六个负例,node --test 全绿;CI 跑 install / typecheck / check:deps / test。lint 与完整测试矩阵留待 A1.6。
|
2026-09-23 19:31:13 +08:00 |
zh
|
d2aa837579
|
feat(workspace): pnpm monorepo 骨架与包边界(A1.1)
六个包:@aps/contracts、@aps/provider-sdk、@aps/server、@aps/client-app、@aps/desktop、@aps/provider-aps。依赖方向 contracts <- provider-sdk <- server <- client,providers/* 只依赖 provider-sdk。TypeScript 项目引用串起构建,pnpm typecheck 全绿。server 内部按 entry/app/agent/core/workflows 建目录并写明各自不该出现什么。
|
2026-09-23 19:29:57 +08:00 |
zh
|
fd14783e0e
|
docs(spec,eval): 能力描述规范与 30 条问法评测集(A2.6 / A2.7)
能力描述规范给出七要素、反例对照与近义能力裁决规则;问法评测集覆盖直白/同义/缺省/指代/歧义/跨系统/多步/应拒绝八类共 30 条,并定义六项指标与门槛。用途:平台把意图理解交给引擎后,用数字回答引擎是否搞得定。
|
2026-09-23 19:27:06 +08:00 |
zh
|
6757193710
|
docs(review): 修正材料包清单里的章节引用
|
2026-09-23 16:44:16 +08:00 |
zh
|
26373835de
|
docs(review): A0-G 评审材料包与议程(A0.11)
材料包含 ADR-0001~0007 一览、决策台账 D1~D11、盘点结论摘要(26 条:保留 2 / 借鉴 15 / 改写 7 / 丢弃 2)、九项遗留清单、60 分钟议程与结论模板。来源:任务表 A0.11。
|
2026-09-23 16:44:05 +08:00 |
zh
|
de8d04489b
|
docs(adr): 补齐 ADR-0007(数据存储选型与双形态一致规则)
单机版结构化数据用本地 SQLite、会话消息用 JSONL、附件用本地目录;服务端版全部 PostgreSQL。定下七条写法约定(整数毫秒时间、应用侧 ULID 主键、JSONB/TEXT、整数最小单位、禁用库特有逻辑、一套 schema 一个迁移工具、会话消息不落结构化库),并记录访问层选型与四项缺口。来源:任务表决策 D11 / A0.12。
|
2026-09-23 15:43:40 +08:00 |
zh
|
e144429763
|
docs(adr): 补齐 ADR-0006(引擎以长驻子进程运行)
|
2026-09-23 11:25:31 +08:00 |
zh
|
b77b3a3a9a
|
docs: 补充术语表与边界一页纸(A0.6)
|
2026-09-23 11:16:12 +08:00 |
zh
|
6fb5310ece
|
docs(adr): 补齐 ADR-0005(直接切换,不并行、不迁移)
|
2026-09-23 11:03:42 +08:00 |
zh
|
85fab9daf5
|
docs(adr): 按“开发阶段无客户数据”修订 ADR-0001/0003,去掉迁移与兼容假设
|
2026-09-23 10:43:15 +08:00 |
zh
|
8d261afbbc
|
docs(adr): 补齐 ADR-0002/0003/0004(部署形态、数据作用域、桌面端边界)
|
2026-09-22 18:33:22 +08:00 |
zh
|
7806e413fd
|
docs(adr): 建立 ADR 目录约定与模板,补齐 ADR-0001
|
2026-09-22 18:26:30 +08:00 |
zh
|
b878fd6f41
|
chore: 从零开始重构(首个提交)
|
2026-09-22 17:46:56 +08:00 |