Commit Graph

  • 5272d8f028 知识库「同时只跑一个重建」的两条测试,放行之后只重建一个空集合:测的是互斥不是重建本身。按全部集合重建要把同一个 xdist 进程里别的测试留下的几百段都重算一遍(这一轮加了测试,分到它那个进程的多了,实测停在 428/431),满载时超过 10 秒的等待,后面一条也跟着撞上「正在重建」 ThearchyHelios 2026-10-19 12:07:31 +08:00
  • db328efd21 原子写和部署脚本的几处(复核 R-a11、R-a12、R-a13 追加写) ThearchyHelios 2026-10-19 12:07:31 +08:00
  • ba87a93ef7 bubblewrap 沙箱不再继承后端的环境变量(复核 R-a5):bwrap 参数最前面加 --clearenv,再按缺省(HOME、TMPDIR、PATH、LANG、PYTHONDONTWRITEBYTECODE)和调用方给的逐条 --setenv;bwrap 进程本身也只拿 PATH ThearchyHelios 2026-10-19 12:07:31 +08:00
  • 0d9f1d9339 用户看得到的列表补决胜键(复核 R-a9):按名称、时间等可能并列的排序后面补上同一个模型的 id,并列时两种库排出来一样 ThearchyHelios 2026-10-19 12:07:06 +08:00
  • 7febf2bcdb 两种库行为再对齐一轮(复核 NUL、R-a4、R-a6、R-a7、R-a10) ThearchyHelios 2026-10-19 12:06:31 +08:00
  • 0e997eb968 copy-to-postgres 在真实开发数据上核对不过的几处(复核 R-a1、R-a2、R-a3、R-a8、R-a13) ThearchyHelios 2026-10-19 12:06:31 +08:00
  • ae254b052e 合入遗留收口分支 nr8/l 的复核修复(变化记录先占住那一行再读改写、召回里行序不定的指标、事件触发列表按任务各取上限、选对象按名字查用 ilike、子工作流写入认旧键、几处测试的竞态) ThearchyHelios 2026-10-19 12:05:19 +08:00
  • 1acf960312 多进程端到端验收:scripts/test-multiprocess.sh 用本机 postgres:16 起临时库,tests/test_multiprocess_e2e.py(缺省跳过,AGENTLAB_MULTIPROCESS_E2E=1)在上面起两个 uvicorn 工作进程,用演示模型跑七个场景——两个进程都登记、一个当班;运行由接到请求的进程认领,另一个进程上的流收得到实时事件和流式增量,同一个审批决定同时发给两边只执行一次,两边事件流不重不漏、封存核对得上;跨进程停止;定时只触发一次;全站一个名额时评测的作答运行排着队,后来的问数据运行先拿到名额;两个进程同时记同一本每日账不越过上限;强杀一个进程后在跑的运行被照实标中断、停在审批上的照常在另一个进程上批完、当班交接。顺带修:等名额时被停止也照实收成已取消(以前停在排队中);当班的本地余量不超过租约的四分之一(租约调短时一直不当班);启动清理上传半成品时没有别的活着的进程就全清;文件锁守卫的几项测试只在 SQLite 跑;问数据事件日志清理那一拍不带时刻时按现在算 ThearchyHelios 2026-10-19 12:03:35 +08:00
  • b1736095a0 结果未知自动核实的测试先等排上查询再看记录:运行先挂起、runner 再安排核实(actions.on_unknown),并行跑时测试会在中间读到还没排上查询的记录。测试的竞态,产品行为不动 ThearchyHelios 2026-10-19 11:58:45 +08:00
  • b23784d65b 动作确认的测试先等运行停到确认上再去确认:待办和审批同一个事务开出来,那一刻运行可能还没收成 interrupted,PostgreSQL、并行跑时偶发「运行正在运行,没有待处理的审批」。测试的竞态,产品行为不动 ThearchyHelios 2026-10-19 11:54:48 +08:00
  • b672088fe3 召回里行序不定的指标不当「没变」(编排者拍板):全部指标都行序不定的,结论写「核对不了(行序不定)」(召回批次的新状态 row_order),开召回待办请人核对,待办和通知的标题照实说没能核对,不在原答案上记「已核对,不影响」;部分行序不定的,已判定的照常判,行序不定的那几项在结论里列出(row_order_metrics),数没变时原答案的记账照样列出、问数据的轮次写「其中「x」行序不定,没能核对」。补测试 ThearchyHelios 2026-10-19 11:54:08 +08:00
  • c768c56fd7 多进程协调补齐几处:执行时长从拿到名额算起(排队等名额不算执行,墙钟本来就从开始执行算);蓝图留痕、蓝图助手开轮先占住那一行再取最大值往下接;问数据等别的进程接着跑的运行时回库里等封存;按配方导入的 AI 起草、知识库重建索引另取跨进程的锁(多进程时重建进度记在设置表里,别的进程读得到、属主不在了照实说没做完);调度循环一拍的间隔可配(AGENTLAB_SCHEDULER_TICK_S) ThearchyHelios 2026-10-19 11:51:29 +08:00
  • 4ffd9ad431 变化记录的 affects 先占住那一行再读改写(复核 L5):口径试算记没试算的那几版(ledger/recall._probe_skipped)和探查刷新影响面(data/source_changes.record)以前都是先读再整份写,交错时互相盖掉。现在两处都先发一句按条件的 UPDATE(record 顺手记又见到一次,SQLite 上拿到写锁、PostgreSQL 上锁住这一行),再读出来改。补并发测试(六版口径同时记、探查同时刷新,一条不丢) ThearchyHelios 2026-10-19 11:48:43 +08:00
  • 4548e8bd25 列表上「有几条在等」按任务各取各的上限(复核 L4):等着的事件按任务、还没派发的事件按(事件种类, 对象)用 ROW_NUMBER 各取前 N 条(同改前每个任务各读的那么多),不再所有任务合起来一个上限——积压多的任务会把别的挤掉,它们的 due_at 为空、未派发数少算。补测试 ThearchyHelios 2026-10-19 11:45:55 +08:00
  • 20f8eb37e0 选对象按名字查改用 ilike(复核 L3):PostgreSQL 上 LIKE 分 ASCII 大小写、SQLite 不分,两种库说法不一;% 和 _ 照 runs._like 转义、按字面匹配。补测试 ThearchyHelios 2026-10-19 11:44:49 +08:00
  • c59b085922 子工作流里的写入跨升级认旧键时按事件和内容认是谁的、是哪一笔(复核 L1、L2):升级前子图里的写入按子图里的 id 记键,和父图同名节点的键一样。以前父图有同名节点时一律不认旧键:子图里结果未知的那一笔核实为已生效后接着跑,用新键又发一笔;父图那个节点按自己的键找到子图那一笔、交回它的回执,自己那笔一直发不出去。现在一条记录是哪个节点写的按它的 action.* 事件上记的节点 id 认(认不出的按能力和内容指纹):按自己的键找到别人那一笔的换一个只属于自己的键;认旧键时还要内容指纹是这一次的——跨升级的循环第二轮按老算法同样是第 1 次执行,找到的是第一轮那一笔,金额不同就照常发,不再记「已经生效」。去掉不再用的最外层节点 id 传递;改对两处过时的说明(审批恢复时子图从自己的断点接着跑;终态事件的途经驳回含子工作流里的)。补跨版本测试:同一个进程里先装成升级前的代码跑到挂起、再换回现在的代码接着跑 ThearchyHelios 2026-10-19 11:43:41 +08:00
  • f2134753a4 设置页加「运行并发」一节:全站同时运行的上限,交互、应用、定时、系统四类各自的上限和优先级,旁边写各类现在在执行、在等名额的个数(/system 的 cluster.runs);管理员可改,搭建者只读,自己读写 concurrency 一组、带离开前确认(同评测那一节) ThearchyHelios 2026-10-19 11:40:53 +08:00
  • 87f0d62f9b 多进程协调(W2-b)第一步:新增 app/cluster——工作进程在库里登记、心跳续租约(属主随进程,进程没了它认领的行一起到期),调度当班的租约,发给属主进程的停止 / 记事件请求,PostgreSQL 的 LISTEN/NOTIFY 叫醒,跨进程的互斥锁(咨询锁),SQLite 单进程守卫(第二个进程拒绝启动);运行、问数据一轮、起草 / 剖析 / 探查 / 评测 / 影子起草、文档、发布单记 owner,启动整理改成只接手属主不在了的行,当班进程隔一会儿再接手一次;运行的并发名额改成库里按交互 / 应用 / 定时 / 系统四类发(各有全站上限和优先级,设置里可调),替掉进程内的信号量;同源队记在库里;运行停止、记事件跨进程交给属主;运行事件、问数据事件跨进程转发(库里按 seq 追,不落库的流式增量和保活心跳只转给在看的进程);每日花费账先占住那一行再读写;访问密钥限流、登录失败计数在 PostgreSQL 时记在库里;登录设置、对外地址、向量模型、能力快照、数据源连接池、应用页面缓存跨进程失效;上传版本库、记录表、按需探查、出具、召回、补算、按需视图、个人刷新、定时发起的锁换成跨进程的锁 ThearchyHelios 2026-10-19 11:40:33 +08:00
  • 9a0d87aa6e 合入遗留收口分支 nr8/l(问数据心跳不落库与事件日志清理、续跑重新核对身份、事件触发批量查询与去抖边界、子图编号与驳回出口等),W2-b 在此之上做多进程协调 ThearchyHelios 2026-10-19 10:46:34 +08:00
  • 76290baaf1 问数据的心跳只落换了阶段的那一拍:浏览器检查发现刷新后过程里「规划」那一行没了——页面按心跳的阶段画那一行,全都不落库就回放不出来。现在换了阶段的那一拍(规划 → 查看 → 搭建……)照落,同一阶段接着的保活心跳才只在流上发、不落库;页面接着的心跳顶替上一拍、不叠成好几条。检查脚本的伪服务端照同一个规矩,「一条只收一份」比心跳之外的操作 ThearchyHelios 2026-10-19 10:41:06 +08:00
  • f0c34d790d 守着 PostgreSQL 的 json 列:扫应用代码里对整个 JSON 列做 ==、!=、in_、DISTINCT、ORDER BY、GROUP BY 的写法(json 没有相等运算符,SQLite 不报、PostgreSQL 报错),一处都不许有 ThearchyHelios 2026-10-19 10:28:18 +08:00
  • 5e6ba12678 断点库模块去掉没用上的 kind();test-postgres.sh 的注释照现在的连接池写法改 ThearchyHelios 2026-10-19 10:27:17 +08:00
  • b9cfc243e2 PostgreSQL 上文本按字节比大小、排序,同 SQLite:应用库建表时文本列带 COLLATE "C"(PostgreSQL 缺省按建库的区域设置比,en_US.UTF-8 下大小写混排、标点被忽略,排出来的先后和 key < '…' 的结果都跟 SQLite 不一样),不看建库时选了什么;驱动报错的第一句去掉 asyncpg 带的「<class '…'>: 」前缀 ThearchyHelios 2026-10-19 10:26:45 +08:00
  • b2f6d8d7d2 README、部署说明补上用 PostgreSQL:AGENTLAB_DATABASE_URL、断点、连接池(含 PgBouncer)、和 SQLite 一致的那几条、从 SQLite 导入的步骤(copy-to-postgres,先停服务、先 --dry-run)、备份(pg_dump 加数据目录)、多台机器要把数据目录挂在共享存储的同一个路径上,以及实话:数据目录里的 SQLite 文件(记录表原地追加写、上传表格版本库的 flock)在网络文件系统上并发写不安全,眼下仍按单进程部署 ThearchyHelios 2026-10-19 10:13:58 +08:00
  • 14001c0900 记录页审批之后的横幅按驳回之后去哪说:接了驳回出口的不说「本次运行终止」,没接驳回出口的工具、代码审批照实说终止(按中断内容的 reject_route;老审批照旧按模式) ThearchyHelios 2026-10-19 10:13:04 +08:00
  • 2d108d116f 表结构变了之后口径凑不齐参数时照实记下:以前不试算、也不记日志,一声不响地跳过。现在记一条日志写缺哪几个参数(必填、没给值也没有缺省值的入口字段)和参数本来从哪来,同时写进变化记录的 affects.probes(同一版只记一条),变化页的「影响」一块写「「x」v3:缺少参数 start、end,没有试算」;同一条变化再被探查到时这份记录不丢。变化接口给的 affects 缺的几项补上空的 ThearchyHelios 2026-10-19 10:10:38 +08:00
  • 3e922cbefb 新增 python -m app.db copy-to-postgres:把 SQLite 数据目录里的应用库和断点导入 PostgreSQL(db/to_postgres.py) ThearchyHelios 2026-10-19 10:07:06 +08:00
  • a534af6ea1 对账视图测试跟上预选字段:只引用一列、没有逐格比的查询,options.suggested 为空 ThearchyHelios 2026-10-19 10:05:38 +08:00
  • 71d535c4ce 对账要人选对照时按逐格比对的结论预选:这一列单独比和口径取数的某一列等价(ledger/match._cells 证明了),口径卡上只读那一格的指标就是它最可能的对照,409 的 options 里给 suggested;对账框照它预选、标「预选」,人可以改。只是「相关」的那一格不预选(比到的是第一个试的列,不是最像的),一个口径列对上几个指标的也不预选 ThearchyHelios 2026-10-19 10:05:04 +08:00
  • f63d037b2c PostgreSQL 上和 SQLite 一致的两处:知识库统计的 sum 转成整数(PostgreSQL 的 sum 交回 numeric,驱动给 Decimal);对象索引按注释搜索不分大小写(SQLite 的 LIKE 对 ASCII 本来就不分,PostgreSQL 分,改用 icontains) ThearchyHelios 2026-10-19 10:01:20 +08:00
  • dead51ae56 数据目录里的文件一律先写临时文件再改名:新增 core/atomic(同目录、带随机后缀的临时文件,写完 os.replace;只该生成一次的用 os.link 建,已有就不动) ThearchyHelios 2026-10-19 10:01:20 +08:00
  • aee237f457 按行号取多行查询里的一格,重跑、核对时行序不定的照实标出来:sql_semantics.ordered / row_stable 认这一行重跑时还是不是同一行(最外层带 ORDER BY 的按位置认,一定只出一行的第 0 行认得住,别的行序不定)。口径账本的比对记下 ordered、one_row,指标标签按「同一行」认来自口径只在行认得住时成立,行序不定的标相关、写明原因;口径召回里两版都按行号取一格、查询又没有 ORDER BY 的指标记行序不定(changed 为空),召回待办上写「行序不定」,不按位置硬比;对账的多行对齐每一组先核对那一行的维度就是它,重跑时缺了一行、多出一行错位的记空值,不拿别的维度的数冒充 ThearchyHelios 2026-10-19 10:01:05 +08:00
  • 2e7d6103ea 应用库可移植到 PostgreSQL:AGENTLAB_DATABASE_URL 设成 postgresql+asyncpg://… 时整个应用库用 PostgreSQL,断点用官方的 langgraph-checkpoint-postgres(同一个库,AGENTLAB_CHECKPOINT_URL 可另给);不设时照旧是数据目录里的 SQLite,行为不变 ThearchyHelios 2026-10-19 09:52:09 +08:00
  • 358206312e 事件触发的规模:定时任务列表里每个事件触发任务「有几条在等」一次查齐(outbox.pending_for_many:待派发数一条 SQL 按任务分组算,窗口要看的事件一次读出),不再每行查一次;每一拍派发只读触发条件的事件种类、对象对得上的任务(SQLAlchemy 的通用 JSON 访问),保存时查环一层查一次、只顺着「上游工作流运行成功结束」的边找;选对象(trigger-options)按事件、关键字查、一页最多 100 个、more 说还有没有,当前选中的总在里面,编辑页一页没列完时多一个按名称查找。顺带修:等着的时候任务改了条件、最早那条不再合条件时,「什么时候合成触发」按剩下的最早一条算(列表上的时刻和真发起的一致);一个窗口的结束时刻和这个任务已有的另一次触发撞在同一刻(别的期次早一拍发了)时往后挪,那几条事件照常发起,不再被记到已有的触发上 ThearchyHelios 2026-10-19 09:46:47 +08:00
  • fa431da91b 问数据接着收尾一轮时按当前账号重新核对身份:服务重启后接手(已发起运行的接着等、复核)以前用的是发起时的身份快照,之后停用了、降了角色不会再核对。现在每次执行开始时按用户名读现在的账号(chat/job.current_principal):不在了、停用了,或者按现在的角色已经用不了问数据的,照实标中断、写清原因(cause identity),不再往下做;还用得了的按现在的角色、组接着做。已经发起的运行不动。页面照原因说「上次未完成」 ThearchyHelios 2026-10-19 09:38:07 +08:00
  • edde451d19 问数据事件日志:助手的心跳不落库、已结束的轮次按期清理。心跳(模型几秒没出声时的 heartbeat 操作)是纯保活,以前每 3 秒落一条库;现在只在本进程里记最近的一拍(chat/log.beat),流上发一条不带 seq 的,重连时流先补最近的那一拍,之后落了任何事件就作废;页面照收不带 seq 的心跳、不动收到的最后一个 seq。其余事件照落(第 2 波跨进程从库里按 seq 追)。已结束(成功、失败、取消、中断)超过 14 天的轮次整轮删事件日志(chat/log.purge,挂在调度循环的那一拍里,一小时最多一次):重开已结束的一轮读的是 conversation_turns 那一行,不读事件日志;任务行留着,seq 接着发号。README 数据位置写明 ThearchyHelios 2026-10-19 09:34:14 +08:00
  • 8ba0b27097 同一个子工作流节点执行多次时子图里的节点分得开:子图这一次跑过的每一步交回父图的 trail(节点 id 接上前缀),下一次执行从那里接着数第几次执行(engine/evidence.next_exec),台账、证据面板不再几条都记第 1 次;写外部系统的幂等键按这次运行里的节点 id 算(「sub/pay」)。以前循环里第二轮的子图写入算出和第一轮同一个键,交回第一轮的回执、外部系统少收一笔,父图里同名的节点、套同一个工作流的两个子工作流节点也撞键。升级前停在子图里的运行恢复时照旧按子图里的 id 认出已经生效的那一笔、不重发(父图里有同名节点时不认) ThearchyHelios 2026-10-19 09:16:14 +08:00
  • d1ad670fb3 复核规则对子工作流里失败的那一步只报一条:子图里那一步、子工作流节点各发一条原话相同的 node.failed,以前合成两条「执行失败」(驳回同理两条「被驳回」),问数据的复核提示里同一件事写两遍。现在保留更具体的那一步,名字一层层接上写清在哪个子工作流里(「复核子流程 › 算一下」),不写内部 id;子工作流节点自己失败、原话不同的照报 ThearchyHelios 2026-10-19 09:10:27 +08:00
  • 04d80472f9 子工作流里的反方审稿按全局 id 记它审的报告:审稿记录和工件上的报告写这次运行里的 id(「sub/write」,同 report.checked、报告文档,第 1 波 B1 修过报告节点同样的问题),证据面板连子工作流里的审稿一起认(_Sealed.nodes_of nested),点开子图里那份报告的句子认得出审它的那次审稿;审批卡上的报告按全局 id 记,打开证据面板、审批质询对得上;单句面板的报告名写「子工作流 › 报告」,不写内部 id ThearchyHelios 2026-10-19 09:08:45 +08:00
  • aa051b0a28 运行对比里子工作流的口径卡按卡所在那一层找产出:组装推演用的 Sources 时带上是哪张卡,节点产出、跑完的时刻按 engine/lineage.in_scope 换成卡那一层的 id(同推演 api/whatif._sources、证据面板 _InputMasks._output)。以前子图里的卡取值链写的是子图里的 id(nodes.parse),对比拿父图里同名的节点当它的产出,容器输入认到父图那次查询上;加一条子图卡的真跑对比测试 ThearchyHelios 2026-10-19 09:03:37 +08:00
  • 17e99cd76c 驳回出口之后,待办、通知、Webhook 照实说转到哪:中断内容带上驳回之后去哪(engine/replay.reject_route:接了驳回出口写转到哪几步,没接的写运行就此结束,审批没接、没设驳回即终止的写这一路到此为止),待办卡的提示、驳回按钮、驳回后的提示、处理过的「结果」照它说,不再一律写「转入驳回分支」「本次运行终止」;超时驳回不再露出英文结论码;双盲裁决、动作确认被驳回的提示同样照它说。子工作流里的关卡走驳回出口时,名字记成「子工作流 › x」(RunContext.global_label),走过的那几步交回父图的 trail,父运行的终态事件照实带上途经驳回,实例页、通知写「「子工作流 › 把关」被驳回,转到「子工作流 › 退回」」,不写内部 id、不写成已完成。定时任务的 Webhook:照驳回那条路成功结束的,标题、状态写途经驳回,另起一行写谁被驳回、转到哪一步 ThearchyHelios 2026-10-19 08:59:15 +08:00
  • ebf1d63269 助手的节点手册讲驳回出口:哪些节点能接(审批、补充输入、编辑稿件、动作确认、代码和工具审批、双盲裁决),连线写 sourceHandle="rejected",什么时候接(驳回后要通知、退回修改、走另一条路),不接时怎样(运行结束、记为被驳回;审批模式这一路到此为止;写了驳回即终止就别接),驳回那条路必须走到成果节点或结束,失败重试、出错时继续不管驳回。以前手册只有一句审批的 approved / rejected,助手画出来的图驳回就整轮结束 ThearchyHelios 2026-10-19 08:47:53 +08:00
  • c79f4e8bf7 合入两处修正(部署上一段问数据会话里查出):数据源的探查范围(introspect_scope)、定时维护(catalog_maintenance)不再被拼进连接串——以前设过它们(运行时按需加入范围也会自动写)的 MySQL / PostgreSQL / Oracle 数据源,驱动 connect() 收到不认识的参数,每一条查询都失败,加守卫测试扫 app/data 下所有 *_OPTION 常量;上游查库全失败时报告照实说没查到,不再照着上游文字写出引用不存在的 Q1… 的标记。验收:后端全量 14568 通过;文案检查;泄露扫描干净 ThearchyHelios 2026-10-19 08:25:44 +08:00
  • 06286deefa 上游查库全失败时报告照实说没查到:报告节点写作前从上游 Agent 的调用记录里找出失败的平台查询(engine/nodes/report.failed_queries),写作提示里多一节「没有查到的数据」列出哪几次、原因第一行;一次成功的查询都没有时不许写单元格引用、照实写没查到和怎么排查,重写请求里同一句;记一条 report_queries_failed 提醒。以前写作者照着上游文字里的 SQL 和列名写出引用不存在的 Q1…,重写一次还是那样,答案里留着没填上的 ⟦?v:Q1…⟧ ThearchyHelios 2026-10-19 08:23:29 +08:00
  • 0ca8243587 数据源的探查范围、定时维护不再被拼进连接串:data/engine._NON_DRIVER_OPTIONS 补上 introspect_scope、catalog_maintenance。以前漏在名单外,设过探查范围(运行时按需把范围外的表加进来时也会自动写)或定时维护的 MySQL / PostgreSQL / Oracle 数据源,驱动 connect() 收到不认识的关键字参数,每一条查询都失败;加守卫测试,把 app/data 下所有 *_OPTION 常量扫出来逐个核对都不进连接串 ThearchyHelios 2026-10-19 08:08:51 +08:00
  • 3aae81918a 合入编排完善第 1 波(docs/design/orchestration-round):问数据整轮放到服务端跑(建图、发起运行、复核、按复核重来、落库都在后台任务里,和评测共用同一个驱动;页面只负责看,掉线、刷新、关掉再打开按序号接着看,停止走接口;同一段对话、同一轮的发起在一个事务里占住再写);子工作流的步骤和证据进父图(子图每一步进同一个运行的事件流,出口字段带出处,父图口径卡、报告跨子图追到原始数据,子图里的报告按全局 id 记);驳回出口(审批、动作确认、代码和工具审批、双盲裁决驳回后沿出口往下走,不接时行为不变);定时任务的事件触发(上传表格出新一期、上游工作流正式运行成功结束、数据源有要处理的变化;去抖、防环、途经驳回与应用补算缺省不认)。验收:后端全量 14562 通过;tsc、文案检查;相关的 15 项浏览器检查 5452 项全过;泄露扫描干净 ThearchyHelios 2026-10-18 18:37:33 +08:00
  • 591db44afd README:编排完善第 1 波的升级说明(问数据整轮放到服务端、子工作流的步骤和证据进父图、驳回出口、定时任务的事件触发);核心能力的人工介入补上驳回出口 ThearchyHelios 2026-10-18 18:31:52 +08:00
  • ea28f02eeb 子工作流里那一步结束了运行时各处同一个名字:新增 apps/resolve.end_label(终态事件上记的「子工作流 › x」),定时任务的 Webhook 不再在找不到节点时什么都不写、发布单不再写内部 id「sub/x」;补测试 ThearchyHelios 2026-10-18 18:28:17 +08:00
  • 4ca7d0c768 驳回出口接上数据事件触发:正式运行收尾时把途经的驳回(_rejected_via)交给 outbox.stage_run_finished,workflow.finished 照发并带上 rejected_via,缺省不认途经驳回的触发不派;补一条走驳回出口的正式运行与批准走完的对照测试 ThearchyHelios 2026-10-18 18:25:24 +08:00
  • c0739dfd5d 合入 W1-c 数据事件触发:定时任务加「事件触发」(上传表格出新一期、上游工作流正式运行成功结束、数据源有要处理的变化),事件在发生处写进待派发事件、调度循环去抖派发;保存时与运行时防环;{{ event.* }} 模板变量;途经驳回、应用补算的缺省不认(可勾选);积压一拍处理完、过期的合成一条跳过;按期次分窗口;定时页可选「定时 / 事件触发」 ThearchyHelios 2026-10-18 18:23:33 +08:00
  • 3d5fb19fbd 合入 W1-b 子工作流证据交回父图 + 驳回出口:子图每一步进同一个运行的事件流;子图出口字段带出处,父图口径卡、报告跨子图追到原始数据(运行时、证据面板、静态检查同一套,最多 3 层);报告目录收进子图里的查询和口径卡;审批、动作确认、代码和工具审批、双盲裁决可接「驳回」出口,驳回后沿出口往下走(不接时行为不变),动作确认走出口不发送;发布检查拦下走不到结束的驳回路径;实例页、通知写「被驳回,转到 X」;子图里的报告按全局 id 记、父图只认自己的报告 ThearchyHelios 2026-10-18 18:23:15 +08:00
  • a4b83abecc 合入 W1-a 问数据整轮放到服务端跑:一轮是一个后台任务(建图 → 发起运行 → 复核 → 按复核重来 → 落库都在服务端),和评测共用同一个驱动(chat/drive.TurnDriver,评测 Driver 是它的子类);/api/chat/turns 发起、状态、按序号回放的实时流、停止;chat_turn_jobs / chat_turn_events;服务端写对话那一行;服务重启时建图中的标中断、已发起运行的接着收尾;页面改成发起 + 播放,掉线、刷新、关掉再打开都能接着看;同一段对话、同一轮的发起在一个事务里占住再写;使用者照旧不能继续运行 ThearchyHelios 2026-10-18 18:23:15 +08:00
  • 3e6032bdca 复核修正(前端):节点计数、并行数、「当前在跑」不把子工作流里的步骤另算;子图那一步写「子工作流 › 那一步」 ThearchyHelios 2026-10-18 18:18:53 +08:00
  • 32dbfcfb52 复核修正(后端):子图里的报告不再被判「疑似被修改」、驳回出口的双盲裁决照样降档、可验证报告与推演按卡所在的层找产出、子图那一步写名字 ThearchyHelios 2026-10-18 18:15:37 +08:00
  • 656a550408 数据事件触发按复核意见修正:途经驳回、去抖积压、source.changed 补写、按期次分窗口、补算缺省不认、示例出口字段同一套过滤 ThearchyHelios 2026-10-18 18:09:20 +08:00
  • d6318b639d 问数据页的复核修正(前端):使用者不给「继续运行」,两个标签页同时打开停在半路的一轮时后到的那个接着看 ThearchyHelios 2026-10-18 18:07:03 +08:00
  • 85eee89799 问数据一轮的复核修正(后端):同时来的几次发起只起得来一次、事件 seq 不撞号、晚到的复核记得上也送得到、使用者不能继续运行、 入口的 history 只取这一轮之前的、只有问数据的对话能发起 ThearchyHelios 2026-10-18 18:07:03 +08:00
  • 124131b393 问数据一轮:停止正好落在发起运行的那一下,也不会留下没人管的运行 ThearchyHelios 2026-10-18 17:10:01 +08:00
  • 8b74c0d532 问数据页的状态:去掉播放改造后用不上的导入(parseServerTime) ThearchyHelios 2026-10-18 17:03:10 +08:00
  • fa9725adf2 问数据一轮的收尾补漏:接着收尾不算占着对话,实时流没等到结局不再转圈,刷新后接着播的过程照实时的样子摆 ThearchyHelios 2026-10-18 16:55:30 +08:00
  • 5ff3e1136d 问数据整轮放到服务端跑(前端):store/chat.ts 改成「发起 + 播放」,断线按 seq 重连补齐,刷新、关掉再打开接着看 ThearchyHelios 2026-10-18 16:49:14 +08:00
  • 38addf8f5d 驳回出口与子工作流证据(前端):画布多一个「驳回」出口、走了驳回出口的那一步画「被驳回」、子工作流里的步骤和证据有名字 ThearchyHelios 2026-10-18 16:30:39 +08:00
  • 35611beb7d 数据事件触发:去抖中的等待状态补一条断言(几次在等、窗口何时结束) ThearchyHelios 2026-10-18 16:15:28 +08:00
  • 3f1eeff841 数据事件触发(界面):定时页新建时选「定时 / 事件触发」、事件那一节、列表与详情的等待状态、触发历史和运行详情的「由事件触发」 ThearchyHelios 2026-10-18 16:11:55 +08:00
  • 3998e821dc 子工作流的证据交回父图(后端):子图每一步进同一个运行、台账和口径卡交回、出口字段带出处、父图跨子图往下追 ThearchyHelios 2026-10-18 16:11:15 +08:00
  • d18a496ef9 问数据整轮放到服务端跑(后端):一轮是一个后台任务,建图、运行、复核、按复核重来、落库都在服务端,页面断了也会跑完 ThearchyHelios 2026-10-18 16:05:53 +08:00
  • d57cdcaffc 驳回出口(后端):审批、补充输入、编辑稿件、动作确认、代码和工具审批、双盲裁决接了「驳回」出口时沿它往下走 ThearchyHelios 2026-10-18 15:56:20 +08:00
  • a1ab3247f9 数据事件触发(后端):待派发事件表、调度循环派发与去抖、防环、{{ event.* }} 模板变量、接口收 trigger_kind / trigger ThearchyHelios 2026-10-18 15:53:08 +08:00
  • 3f3e39e4d5 编排完善第 1 波骨架:定时任务加触发方式(trigger_kind:cron | event,trigger 写事件种类和对象)两列与迁移,存量行都是 cron(docs/design/orchestration-round/00-总方案.md §4) ThearchyHelios 2026-10-18 15:25:13 +08:00
  • 153e48a568 合入真实模型验收后的修正:口径标签逐个数判(报告引用了一条查询的几列时,每个数按它那一列投影后和口径的指标列比,判定仍只走 match_template / explain_sql_diff,投影只在去掉别的列不改变这个数时做;整题等价照拍板 L1 不放宽),差异说明在投影之后说得清(多查了几列、COALESCE、ROUND、按当天现算的日期、取不到参数、LEFT JOIN ON 里的日期条件);转抄口径卡指标的出处跨卡追到取数查询(对账、召回不再降档,发布前的静态检查同一套说法);认证队列按规范形分组;问题聚类的类 id 由成员定;use_caliber 的协议写清 card;评测「期望没有数据」只认数值格和叙述里的数、逐题比 SQL 比产出答案的那一格并按引用的列投影、判错时给配对上的那一格、估不出金额时不写 0(评分规则第 2 版);被取消、超时的模型调用也计一次;助手只给思考不给操作时问数据和评测都自动重来一次;零售样例题集的期望 SQL 去掉取整;目录两种计数照实说;自由形应用入口与岗位显示名。验收:后端全量 14435 通过;tsc、文案检查;相关浏览器检查(decode、stream、chat、evidence、ledger、evals、publish、inbox、verify、compare 等)全过;泄露扫描干净;在隔离服务上复验:自然问法里和口径写法一致的那一格标等价已证明,COALESCE、现算日期的照实标相关并说清差在哪 ThearchyHelios 2026-10-17 13:36:08 +08:00
  • 3d9dc7239b README:口径账本逐个数判与取数 SQL 别取整的建议;第 4 波升级说明补上最终验收后的修正(比对算法第 4 版、评分规则第 2 版可重评、只思考不出操作自动重来、未完成的调用也计次) ThearchyHelios 2026-10-17 13:35:39 +08:00
  • 9627953445 差异说明认得一边套了 ROUND:说「X 套了 ROUND(…, 2):保留 2 位小数,另一边没有取整」,只陈述写法、不断言值不同,判等价照旧不等价;零售样例题集的期望 SQL 去掉 ROUND(…, 2)(取整交给展示,评分本来按容差比数),评测逐题比 SQL 不再因为期望里的取整一律对不上 ThearchyHelios 2026-10-17 13:31:25 +08:00
  • eb42c12f05 合入 nr6/c:口径标签逐格判(引用了好几列的查询,每个数按它自己那一格投影后和口径的指标列比,判定仍只走 match_template;整题等价照拍板 L1 不放宽);差异说明在投影之后也说得清(COALESCE 套聚合、按当天现算的日期、取不到参数);评测逐题比 SQL 取和期望配上的那一格 ThearchyHelios 2026-10-17 13:18:02 +08:00
  • 39b89fd36b 差异说明在投影之后也说得清:COALESCE 套聚合、按当天现算的日期、取不到参数 ThearchyHelios 2026-10-17 13:08:40 +08:00
  • 271bc6e782 口径标签逐格判:引用了好几列的查询,每个数按它自己那一格标 ThearchyHelios 2026-10-17 13:07:19 +08:00
  • f520a88891 静态地认指标出处也跨卡往下追:转抄同一张图里另一张口径卡的指标,按那个指标的式子接着认(最多 MAX_COPY_DEPTH 层),受管级发布检查、应用检查和运行时、证据面板同一套说法;被抄的卡按 caliber_from 固定在别处版本的照旧停在那张卡 ThearchyHelios 2026-10-17 12:31:13 +08:00
  • 124e1c0f49 评测逐题比 SQL 和账本同一个口径:传报告引用了哪几列(ledger/match.referenced_of),整条比不等价时按引用的列投影再比;「多查了几列」那一条不算差在哪个方面 ThearchyHelios 2026-10-17 12:29:20 +08:00
  • f8d89e780c 合入 nr6/b:评测「期望没有数据」只认数值格和叙述里的数、逐题 E1 比产出答案的那条查询、判错时给配对上的那一格、估不出金额时不写 0、没做完的模型调用也计一次、助手只给思考不给操作时自动重来一次(问数据与评测同一个决定)、目录两种计数照实说、自由形应用入口与岗位显示名;评分规则升到第 2 版 ThearchyHelios 2026-10-17 12:28:04 +08:00
  • 94f028fcef 合入 nr6/a:认口径按答案引用的那几列投影后再判等价(判定仍只走现有的 match_template)、差异说明投影之后再说并认得 LEFT JOIN ON 里的日期条件、转抄口径卡指标的出处跨卡追到取数查询(对账、召回不再降档)、认证队列按规范形分组、问题聚类的类 id 由成员定、use_caliber 的协议写清 card ThearchyHelios 2026-10-17 12:28:04 +08:00
  • d4f1ba8dd4 给评测留一个按引用的列投影的入口(referenced_of),顺手折行、补模块说明 ThearchyHelios 2026-10-17 12:22:48 +08:00
  • 8c2ff49b50 use_caliber 的协议写清 card 填什么,写错了交回的原因能一次改对 ThearchyHelios 2026-10-17 12:17:21 +08:00
  • 1b31c49a00 问题聚类的类 id 由成员定,「不是口径」按成员记 ThearchyHelios 2026-10-17 12:15:07 +08:00
  • 67b13a921b 评测页检查守住估不出金额时的写法;估算说明去掉重复的半句 ThearchyHelios 2026-10-17 12:11:55 +08:00
  • 72d9d2770c 认证队列的确定性重复按规范形分组:条件换序、AND 两边换位的进同一组 ThearchyHelios 2026-10-17 12:09:58 +08:00
  • c3123e3818 转抄口径卡指标的出处跨卡往下追,对账、召回运行按追到底的结果判档 ThearchyHelios 2026-10-17 12:05:12 +08:00
  • 0b6cde5c0c 自由形应用的两处小问题:入口按钮「发起」后英文名空一格,岗位显示名不再拿岗位名充数 ThearchyHelios 2026-10-17 12:00:58 +08:00
  • 78e9b0c6da 目录的「使用次数」和「用过这张表的运行」口径照实写:一个按查询计、一个按运行计 ThearchyHelios 2026-10-17 11:55:53 +08:00
  • 0488965352 探查范围外、没有注释的表中文需求命不中:照实写进模块说明,加一条测试钉住 ThearchyHelios 2026-10-17 11:53:54 +08:00
  • 3dc5f5add4 助手只写了思考、一个操作都没给时自动重来一次:问数据和评测走同一个决定 ThearchyHelios 2026-10-17 11:51:34 +08:00
  • 12439b5305 差异说明投影之后再说;日期条件写在 LEFT JOIN 的 ON 里的说清楚 ThearchyHelios 2026-10-17 11:49:07 +08:00
  • 2a4086ab73 认口径按答案引用的那几列比:整条比不等价时先投影再交现有的绑定和判等价 ThearchyHelios 2026-10-17 11:47:26 +08:00
  • 4aa3e6f01f 评测估算和每题平均花费:有估不出金额的调用时不再写成 0 美元 ThearchyHelios 2026-10-17 11:40:27 +08:00
  • 3c4dbe0c02 没做完的模型调用也计一次:挑表超时被取消的那次不再漏掉 ThearchyHelios 2026-10-17 11:36:50 +08:00
  • 06c1e8bd25 逐题 E1 比产出答案的那条查询:答案没引用、又查了几条时不再硬比第一条 ThearchyHelios 2026-10-17 11:33:35 +08:00
  • f5204277aa 评测判错时「答案里的数」给配对上的那一格,配不上照实写配不上 ThearchyHelios 2026-10-17 11:31:05 +08:00
  • c103055c2a 评测「期望没有数据」的题:引用文字格、空值格不再算给了数 ThearchyHelios 2026-10-17 11:29:06 +08:00
  • fdd889b73a 合入最终验收(免模型部分)查出的 12 项修正:取值观察的「量跌」「缺天」不再拿今天这个不完整的日子比、按日行数只数到观察当天、「今天」统一按服务端所在时区;同一列条件被改写时差异说明说清两边的写法(判等价不变);用量计量记对模型名;探查范围外的表照实说「在探查范围外」;对被驳回的运行 resume 说「被驳回」;固化口径草稿用传入的名字、报告指令不写死日期、指标名取中文名、frozen_into 去重;剖析对话框可以直接发起取值观察,定时维护挑不出表时触发记录写明原因;评测结果给实际问的问题、没跑的题单独计 not_run、stop_reason 照实写;按需加入范围的留痕记上运行发起人;召回消息按种类写答案条数;撤销分享返回页面标题;E4 只算有口径卡的版本。验收:后端全量 14312 通过;tsc、文案检查;相关的 13 项浏览器检查 4423 项全过;四种库的方言容器测试全过;泄露扫描干净 ThearchyHelios 2026-10-17 09:31:58 +08:00
  • 77b4c9c68a E4 的版本用量只算有口径卡的工作流 ThearchyHelios 2026-10-17 09:19:24 +08:00
  • d9eaf8b850 撤销分享链接交回的 page_title 是页面标题,和建、列的一样 ThearchyHelios 2026-10-17 09:19:24 +08:00
  • 590bfc9a59 口径召回的通知按种类分开写答案的条数 ThearchyHelios 2026-10-17 09:15:07 +08:00