sinohqb
b1a09f02b7
docs(readme): 添加 v1.3.0 性能基准实测数据
...
CI / test (pull_request) Successful in 3m59s
- 版本标记更新至 v1.3.0,发布说明链接指向 CHANGELOG.md
- 测试基线更新为 963 后端 + 178 前端
- 新增性能基准章节:t480 线上 3-case 场景实测,并行 88.5s vs 串行 104.6s,提速 15.4%,加速比 1.59x
2026-08-25 01:14:16 +08:00
sinohqb
0d074e5465
test(runs): 取消测试扩至 30 case 适配并发执行
...
CI / test (push) Successful in 4m3s
case 并行(默认 3)后原 5 case 场景在取消请求到达前就跑完,
取消语义不再被观测到。扩到 30 case(10 波)保证取消窗口充分。
2026-08-24 23:38:53 +08:00
sinohqb
bd6efc3709
chore: bump version to 1.3.0
...
架构深化(两轮审查候选落地)+ 性能优化(WAL/索引/N+1 消除/并发执行)
发布。CHANGELOG 登记 1.3.0 变更。
2026-08-24 23:36:08 +08:00
sinohqb
9f5da70c36
docs: 归档 2026-08-24 全面代码库健康审查报告
...
八个候选中 1-7 已在 3705945 落地(Campaigns.tsx 拆分、repository/db
按域拆包、lifecycle 拆分、编排下沉、工具函数收敛、测试补全);
候选 8(Engine/Storage 解耦)与两处 _translate 副本经核对语义刻意
不同,登记为刻意不做。
2026-08-24 23:18:23 +08:00
sinohqb
bf1ec16ef6
perf(eval): case/rule/campaign 并发执行
...
- EvalEngine case 循环改 asyncio.gather + semaphore(默认 3 并发)
- 规则评估并行(默认 5 并发),LLM 评分耗时从串行求和降为最慢一条
- _resolve_model 改 async + 双重检查锁,保护共享模型缓存
- _case_errors / case_outcomes 并发写入加状态锁
- Campaign occurrence 派生并行(默认 2 并发),claim 拒绝时提前收敛
- 新增配置:max_concurrent_cases=3 / max_concurrent_rules=5 / max_concurrent_runs=2
SQLite StaticPool 单连接下 DB 写入仍天然串行,并行收益集中在
channel I/O 与 LLM 调用的等待重叠。
2026-08-24 23:18:11 +08:00
sinohqb
ca208232c7
perf(db): WAL 模式 + 性能索引 + N+1 查询消除
...
- SQLite 启用 WAL,允许读写并发
- 新增 6 个索引(eval_runs.status/campaign_id、eval_results.run_id、
turns.run_id、intelligent_evals.status、task_queue.assigned_at)
- 幂等 Alembic 迁移(列/索引存在性检查)
- domain.py 计数改 func.count 聚合,get_attention_reason 单次加载 sessions
- scenario list_all 批量加载 bindings(1+N → 2 查询)
- mark_orphans_failed 批量加载 campaigns(N → 1 IN 查询)
2026-08-24 23:17:51 +08:00
sinohqb
f8f87815c6
docs: 归档 2026-08-24 代码重构总结报告
...
总结 8 个架构深度化候选(7 执行 + 1 跳过)和完整测试覆盖补全:
- 前端 107→232 passed(+125)
- 后端 916→963 passed(+47)
- 后端覆盖率 91%→92%
- files.py 79%→100%,scheduler.py 75%→91%
- websocket.py 60%→100%,target repository 50%→100%
总计 172 个新测试用例,81 个文件变更。
2026-08-24 17:51:10 +08:00
sinohqb
90ebbd5ff4
test(scheduler): 补全触发失败落账与错误路径测试(+9 用例)
...
覆盖 scheduler.py 中等难度边缘分支:
- _trigger_openclaw_agent 非零退出码 → on_failure 回调
- _trigger_openclaw_agent subprocess 异常 → on_failure 回调
- _record_worker_trigger_failure 成功/跳过/DB 异常兜底
- _record_planner_trigger_failure 成功/跳过/DB 异常兜底
- _fire_and_forget cancelled task 不记录异常
scheduler.py 覆盖率 75% → 81%
后端总计 963 passed
2026-08-24 17:18:52 +08:00
sinohqb
3705945a7d
test: 完整测试覆盖补全(+163 用例)
...
架构重构(候选 1-6):
- storage/repository.py 按域拆分为包(target/scenario/run/campaign/result)
- storage/db.py 按域拆分为包(eval/campaign/file/model_config/intelligent_eval)
- intelligent_eval/lifecycle.py 按状态机阶段拆分为包
- services/runs.py 编排逻辑下沉
- Campaigns.tsx 拆分为 campaigns/ 子组件
测试补全(候选 7):
前端(+125 用例,107→232):
- utils/ 纯函数:date/campaignTime/ruleLabels/fileTree/fileFormat/colors
- stores/tabStore 状态管理
- 核心组件:FormDrawer/PageWrapper/ChatBubble/GeneratedMessages/SectionHeader/StatCard/TurnList
- 业务组件:CaseBlock/CaseDetail/RuleOverview/WindowTimeline/RunList/TabBar/CampaignRunTimeline
- 文件管理:FileCategoryTree/FileTable
- hooks:sessionReducer/useFiles/useRunSession
后端(+38 用例,916→954):
- targets API CRUD + 404 路径
- WebSocket 连接管理器
- proxy 头部重写(CSP/X-Frame-Options)
- target 仓储 update 方法
- app 健康检查 + SPA 404
- scenarios 模板端点 + 404
- files API 边缘分支(404 场景 + 500 兜底)
- files service update_category
- 智能评估状态机迁移测试
门禁状态:
- 前端:tsc 干净 + 232 passed
- 后端:954 passed + ruff 全绿
2026-08-24 15:56:09 +08:00
sinohqb
9588dcbfda
docs: 归档 2026-08-24 架构审查报告(Phase 5)
...
CI / test (push) Successful in 3m22s
将本轮架构审查 HTML 报告按先例归档至 docs/archive/,并同步
登记 docs/README.md 与 docs/archive/README.md 索引。
本轮五个深化候选已全部落地:
- 候选① 智能作业结算统一(ADR-0012)
- 候选② 可见性接缝(require_live_eval 单一接缝)
- 候选③ storage/repository.py 拆分
- 候选④ 前端 ReadSlot 资源接缝
- 候选⑤ api.ts 拆分为 10 个域模块
刻意不做项(CAS 共享原语、db.py 拆分、app.py 关停顺序归一、
会话/任务状态机转换表)已在 v3 计划与 ADR-0012 中记录。
2026-08-24 05:54:54 +08:00
sinohqb
4534df7e7a
test: 五个零覆盖组件补全测试(Phase 4.23)
...
锁定 Phase 4 读取接缝收敛后的纯渲染与关键交互契约;五个组件
此前从未被 vitest 覆盖,现全量补齐(25 个测试)。
- DecisionProcess(6):加载/空态/详情展开/上下文 JSON 折叠、
轮询门控(executing 轮询、completed 停轮询)、补充日志触发。
- EvalOverview(6):planning / pending_approval / executing
三种状态的渲染分支;plan 维度/虚拟用户/时间分布/完成标准;
会话进度与过期文案。
- EvalReport(4):报告加载/空态、会话折叠、SessionMessages
懒加载、Markdown 导出(downloadBlob 接缝)。
- ConfigSnapshots(4):列表与类型标签、详情展开、快照对比
两选一校验、空态与差异渲染。
- TaskQueueMonitor(5):统计芯片、状态过滤、刷新按钮、
轮询定时器(vi.useFakeTimers + advanceTimersByTimeAsync)、
空态。
测试沿用 sessionReducer 先例:vi.mock 工厂注入 readSlot /
API 方法,按 reducer 形状构造 fixture;antd 双汉字按钮
(详情/导出/查看)使用 /\s*/ 正则匹配 autoInsertSpace 空格。
2026-08-24 05:54:28 +08:00
sinohqb
eca7ccebe2
refactor(api): api.ts 拆分为 10 个域模块(Phase 4.22)
...
909 行的单文件 api.ts 按域拆为 10 个模块 + 共享 client;barrel
保持 import from '../api' 不变,调用点零改动。
- api/client.ts:axios 实例 + 拦截器 + authToken + setOnUnauthorized
(唯一住处)。
- 10 个域模块:auth / targets / scenarios / modelConfigs / runs /
reports / stats / campaigns / intelligentEvals / files,每个
自包含类型声明与 API 方法。
- api/index.ts:barrel 再导出,调用点 import 路径全部不变。
- 原 api.ts 中的 Blob 导出仪式已在 Commit 4 下沉至
utils/download.ts,本 commit 仅做拆分与搬运。
2026-08-24 05:53:45 +08:00
sinohqb
f458897ab5
refactor(read): 前端泛化 ReadSlot 资源接缝(Phase 4.18-21)
...
将 src/read 从单一消费者扩展为通用资源接缝;drawer 标签页与
useCampaignReport / useFiles 统一消费;导出仪式下沉至工具函数。
- 新增 readResource.ts:ReadSlot<T> 相位机(idle/loading/
refreshing/ready/error)、requestId 竞态守卫、静默刷新、
可注入 adapter;SelectedReadSlot<T> 支持 list→detail 的
stale-response rejection。配套 characterization 测试。
- evalActivity.ts / useIntelligentEvalRead.ts 退化为 readResource
的特化;既有测试保持通过。
- DecisionProcess / ConfigSnapshots / TaskQueueMonitor 删除手写
fetch 样板(useState + try/catch + useEffect 三件套),改走
资源接缝;ExecutionProcess 的 5 个 fetch 槽同步收敛。
- 决策日志新鲜度归一:三种策略(父级 5s 详情轮询 +
ExecutionProcess 独立 5s 轮询 + DecisionProcess 挂载取一次)
收敛为父级 evalActivity 单一供给,子组件消费同一份数据。
- useCampaignReport 删除私有 ReadPhase / ReadSlot 定义,改
import 自 readResource。
- ACTIVE_STATUSES 合并至 read/intelligentEval.ts 单一出口。
- 新增 utils/download.ts:downloadBlob / downloadJson 取代 api.ts
与 useFiles 中三处重复的 Blob 导出仪式(含 DOM 副作用迁出
接口定义出口)。
2026-08-24 05:51:53 +08:00
sinohqb
7eae6de52d
refactor(evaluation/storage): 结算统一与 repository 拆分(Phase 2 + 3)
...
合并两个不可分割的深化:
Phase 2 — 智能作业结算统一(ADR-0012)
- intelligence_jobs.execute(job_kind, campaign_id, ...) 作为结算的
唯一实现:建行 → 认领 → 校验 → generating → 落账,一处编排、
一处截断(500 字符)。两个 executor 退化为 ensure_queued /
validate / work_fn 三个小 adapter。
- analysis.validate_analysis_request() 共享校验入口(活动终态 →
模型),路由捕获映射 400、executor 捕获落 failed 行,与
validate_comparison_request 先例同构。
- campaign_runner._auto_start_analysis 的跳过守卫收敛至
auto_intelligence_eligible 单一判断点。
- comparison.py 删除零调用的 build_comparison_payload;
load_comparison_view 投影归位至 campaign_read_model。
- 新增 characterization 测试(认领竞争、重复触发、截断、恢复上限)。
Phase 3 — storage/repository.py 拆分
- AsyncJobRepository 及两个子类迁至
storage/async_job_repository.py(Phase 2 的 intelligence_jobs
与 comparison 必须 import 自该路径,故与 Phase 2 同 commit)。
- ExplorationSession / ExplorationMessage 迁至
storage/exploration_repository.py;repository.py 由 1180 行降至
约 814 行,grep 确认无残留符号。
- exploration 子模块与路由 import 全部更新;测试 import 跟随。
刻意不做:CAS 共享原语、app.py 五 registry 关停顺序归一
(ADR-0006 精神,等真实需求出现再议)。
2026-08-24 05:50:27 +08:00
sinohqb
71543f042a
refactor(intelligent-eval): 可见性接缝收敛(Phase 1)
...
将「已删即 404」语义收进 IntelligentEvalRepository 单一接缝,消除三处独立裁决;
任务监控开始隐藏已删评估的任务(本 Phase 唯一刻意行为变化)。
- repository.py 新增 visible() 谓词与 require_live_eval() 服务接缝;
六处裸谓词统一走它,get()/get_including_deleted() 语义不变。
- decision_logs.py 删除本地 _require_eval,三处调用迁至 repository 接缝;
count_decisions 由 len(.all()) 改为 func.count。
- task_queue.py list_tasks 与 stats 过滤已删评估的任务(行为变化)。
- web/routers/intelligent_evals.py: _require_eval_exists → _require_live_eval,
把 LookupError 翻译为 404;expired 会话 Markdown 标注下沉至
read_model.report_markdown_by_eval;配置快照 11 字段序列化收至
config_snapshot.snapshot_to_dict 单一出口。
- AGENTS.md 登记可见性纪律(已知陷阱 #6)。
- 补 characterization 测试锁定四处契约;更新 task_queue 测试以使用
真实 eval_id(可见性过滤后字面 eval_id 不再可见)。
2026-08-24 05:47:00 +08:00
sinohqb
913dc9ae86
perf: address remaining heuristic issues from code review
...
CI / test (push) Successful in 3m18s
- decision_logs.py: add LIMIT 100 to dedup query to avoid loading all records
- ExecutionProcess.tsx: document N+1 API pattern and explain why acceptable
- scheduler.py: document why scan_once runs synchronously (thread pool would break fire-and-forget)
All 880 tests pass.
2026-08-24 02:01:04 +08:00
sinohqb
5a81c570c0
style: fix ruff whitespace warnings
CI / test (push) Successful in 3m16s
2026-08-24 01:53:35 +08:00
sinohqb
09ff2ed123
refactor(intelligent-eval): reduce nesting complexity in supplement_decision_logs
...
Extract helper functions _supplement_executing and _supplement_completed
to flatten the nested conditional logic. This improves readability and
makes the code easier to test and maintain.
Addresses code review finding: supplement_decision_logs nested complexity
2026-08-24 01:53:15 +08:00
sinohqb
da7dd434dd
perf(intelligent-eval): 修复 N+1 查询和参数名混淆
...
- expire_stale_running_sessions: 使用单次 JOIN 查询替代 N+1 查询
将每个会话单独查询最后消息时间改为一次性获取所有 running 会话及其最后消息时间
- submit_report/evals_needing_analyst_nudge: 消除 session/sessions 参数名混淆
将局部变量 sessions 重命名为 eval_sessions,避免与数据库会话参数 session 混淆
这些改进提升了查询性能并增强了代码可读性。
2026-08-24 01:52:05 +08:00
sinohqb
84627a3c6a
refactor(intelligent-eval): 消除 lifecycle.py 和 scheduler.py 中的重复延迟导入
...
CI / test (push) Successful in 3m16s
- 将延迟导入移至模块顶部,消除 Shotgun Surgery 气味
- lifecycle.py: 移除 41 行重复导入
- scheduler.py: 移除 14 行重复导入
- 修复测试:更新 monkeypatch 以补丁 scheduler 模块的引用而非原始模块
- 符合代码规范:避免函数内重复导入
Closes code-review finding: repeated deferred imports (Shotgun Surgery)
2026-08-24 01:47:47 +08:00
sinohqb
876d75f9ed
refactor(intelligent-eval): 将 _get_raw 改为公开方法 get_including_deleted
...
CI / test (push) Successful in 3m22s
- 消除 lifecycle.delete_eval 对私有方法的访问
- 明确该方法用于删除幂等性检查的用途
- 符合代码规范:避免跨模块访问私有接口
2026-08-24 01:37:58 +08:00
sinohqb
7db75be707
fix(ui): 评估列表默认分页改为 20,符合 ADR-0005
...
CI / test (push) Successful in 3m27s
- 将 pageSize 默认值从 10 改为 20
- 遵循 ADR-0005 "超过 20 行才分页(pageSize 20)" 规范
2026-08-23 13:32:00 +08:00
sinohqb
5f116700d7
fix(ui): move eval delete to drawer header to stop row click opening detail
CI / test (push) Successful in 3m23s
2026-08-21 17:01:39 +08:00
sinohqb
8021eab65e
feat(ui): live running-session cards in intelligent-eval execution view
2026-08-21 16:13:27 +08:00
sinohqb
2d2c5a2904
feat(intelligent-eval): logical delete for terminal evals
...
CI / test (push) Successful in 3m24s
Add `deleted` terminal status: completed/cancelled/failed → deleted via
DELETE /api/intelligent-evals/{id} (idempotent, 409 for non-terminal).
Deleted evals are hidden from list, detail, stats, and all sub-resource
endpoints (sessions/report/decision-logs/config-snapshots); child tables
are untouched (audit-safe). Frontend shows a Popconfirm-guarded delete
button for terminal evals only.
2026-08-21 14:34:04 +08:00
sinohqb
d77a363f58
fix(ui): align EvalReport tab padding with EvalOverview
...
CI / test (push) Successful in 3m9s
评估报告 tab 外层 padding 从 '16px 16px 24px' 改为 '0 16px 24px',
与概览页外层 wrapper 一致,消除 Drawer 内 tab 切换时与导航栏之间的视觉错位。
2026-08-21 04:22:03 +08:00
sinohqb
7910717b1e
docs: archive intelligent-eval architecture deepening report (v1.2)
...
CI / test (push) Successful in 3m9s
架构审查总结报告入库:5 个深化候选(scheduler 抽取、决策日志去重内化、
状态机归一、过渡残留清理、前端标签单一出口)的痛点/深化/红利、全景图与
余下机会。按先例归档到 docs/archive/ 并登记 docs/README.md 与
archive/README.md 两处索引。
2026-08-21 04:10:00 +08:00
sinohqb
d87aad5aed
refactor(ui): single-source intelligent-eval label maps in status.ts
...
CI / test (push) Successful in 3m13s
架构审查候选⑤:消除标签双轨,状态/决策类型映射单一出口。
- status.ts 新增 DECISION_TYPE_META(12 类型与后端 decision_type 字面量
对齐)+ decisionTypeOf() 兜底:后端新增类型时前端不再静默显示裸字符串,
未识别类型显式标注"未识别·xxx"
- DecisionProcess / ExecutionProcess 删除各自手写的 DECISION_TYPE_LABELS
(后者是审查报告之外的第三处双轨),统一走 decisionTypeOf
- IntelligentEvals 的 STAT_CHIPS 标签从 EVAL_STATUS 派生,不再平行维护
tsc --noEmit 通过,前端 20 tests 全过,标签文本零变化。
2026-08-21 04:00:32 +08:00
sinohqb
2a0bcdd185
refactor(intelligent-eval): drop ADR-0008 transitional wrappers, callers use domain
...
CI / test (push) Successful in 3m8s
架构审查候选④:ADR-0008 收敛调度域时为保测试兼容留下的过渡 wrapper 使命结束。
删除 8 个浅封装:task_queue 的 _is_slot_due / _calculate_session_deficit
(零调用死函数)+ _calculate_priority / _get_attention_reason,decision 的
_parse_time_slot(零调用死函数)+ _get_current_slot / _count_sessions_in_slot /
_has_high_severity_issues。调用方直接使用 domain 模块。
5 个隔着 wrapper 测 domain 行为的测试迁到新文件
test_intelligent_eval_domain.py,直接锁定 domain,覆盖零丢失。
删除测试通过:复杂度直接消失,时段/欠账/优先级知识只剩 domain 一处。
870 tests passed,零行为变化。
2026-08-21 03:50:44 +08:00
sinohqb
58c2ad0227
refactor(intelligent-eval): unify watchdog failures behind fail_eval seam
...
CI / test (push) Successful in 3m10s
架构审查候选③(状态机归一):_TRANSITIONS 成为评估状态机的唯一真相。
三个 watchdog(planning 双闸 / executing 兜底 / 触发失败闸门)原先直接
row.status = FAILED 绕过转换表、手工重复写字段。收编到新的公开接缝
fail_eval(session, eval_id, reason, decision_type, context):表校验 →
repo CAS 条件写(status/plan_feedback/updated_at/completed_at 一条 SQL)
→ append_decision_log 留痕。
CAS 冲突(如用户在扫描间隙抢先取消)跳过并留日志,不当故障。API 路径
本已在表内,不动。新增 4 个契约测试,870 tests passed,零行为变化。
2026-08-21 03:35:05 +08:00
sinohqb
182b0e59cb
refactor(intelligent-eval): extract scheduler runtime + internalize decision-log dedup
...
CI / test (push) Successful in 3m9s
架构深化两则(架构审查候选①②):
① scheduler 抽取:web/app.py 约 400 行触发式执行编排(60s 扫描循环、
docker exec 触发、失败落账)沉入 intelligent_eval/scheduler.py,runtime
单例 start()/stop()/scan_once() 与 campaign_runtime 惯例一致;worker/planner
两处重复触发代码合并为一个触发原语;_supplement_decision_logs 归入
decision_logs.py。测试改为直接驱动 scan_once(interface 即测试面)。
② 决策日志去重内化:create_decision_log 的去重只服务 agent 上报路径;
新增 append_decision_log(平台落账纯追加)与 count_decisions(计数原语),
lifecycle/task_queue 全部平台落账切换,调用方不再需要塞 attempt 骗去重。
零行为变化:提示词、60s 节拍、编排顺序、闸门语义原样保留,866 tests passed。
2026-08-21 03:20:14 +08:00
sinohqb
d0da9ef4ec
docs: add CHANGELOG for v1.2.0 UI optimization release
CI / test (push) Successful in 3m26s
2026-08-20 20:29:59 +08:00
sinohqb
651d068744
chore: update package-lock.json version to 1.2.0
CI / test (push) Successful in 3m20s
2026-08-20 20:25:14 +08:00
sinohqb
5cb38befc0
chore: bump version to 1.2.0 for UI optimization release
2026-08-20 20:16:57 +08:00
sinohqb
09a808c0c5
feat(ui): restructure config snapshot detail view to match overview layout
2026-08-20 20:02:17 +08:00
sinohqb
68bf1876af
feat(ui): position current stage badge on node circle
2026-08-20 19:53:32 +08:00
sinohqb
9bf741fbee
feat(ui): use tag badge for current stage and show full datetime in lifecycle
2026-08-20 19:46:42 +08:00
sinohqb
ff734c72e5
feat(ui): add timestamps to lifecycle timeline and replace time distribution cards with table
2026-08-20 19:41:11 +08:00
sinohqb
d61657eedb
fix(ui): display 5-point scale scores correctly in dimension cards
2026-08-20 19:34:18 +08:00
sinohqb
fb68f9ebce
feat(ui): add grade labels and icons to dimension scores for better intuitiveness
2026-08-20 19:29:30 +08:00
sinohqb
de80e85658
feat(ui): replace Bar chart with custom progress cards for dimension scores
2026-08-20 19:22:42 +08:00
sinohqb
81741a67e7
feat(ui): replace Steps and Column chart with custom timeline and cards in ExecutionProcess
2026-08-20 19:19:09 +08:00
sinohqb
61d8b8b4b8
feat(ui): single-column overview layout with end-of-content marker
...
- Overview: full-width stacked cards (basic info as two aligned rows,
plan, user input with seeds in fixed-height right column, sessions)
- Basic info labels fixed-width right-aligned for vertical alignment
- Add "已显示全部内容" end marker and increase drawer tab bottom
padding (16px → 24px) so content no longer looks cut off
2026-08-20 18:59:50 +08:00
sinohqb
d626dd8c3f
feat(ui): restructure overview tab to 3-row layout
...
- Row 1: basic info (span=8) + plan (span=16) with virtual users in
2-column grid and time distribution as a table
- Row 2: user input in one row (goal/intent/role/seeds), seeds area
enlarged with no height cap for full JSON display
- Row 3: session progress full-width with progress bar in header
2026-08-20 18:27:01 +08:00
sinohqb
63e96c2bf2
feat(ui): widen drawer and restructure overview tab layout
...
- Drawer width: 1000px → 1200px for more content space
- Overview tab: move user input to full-width bottom section
- Seeds JSON area: maxHeight 160px → 300px with better padding
- Unify font sizes: 13px body, 12px labels/tags throughout
- Fix progress calculation to use estimated_sessions consistently
2026-08-20 18:08:03 +08:00
sinohqb
af8c7d6810
feat(ui): add tooltip to session progress column
...
Explain the progress calculation (completed/estimated sessions) when
hovering over the progress bar in the evaluation list.
2026-08-20 17:55:42 +08:00
sinohqb
60981b634d
feat(ui): optimize intelligent eval drawer UI
...
- Show estimated session progress in list (completed/estimated with running count)
- Improve user input layout with scrollable sections for long text
- Remove 50-item limit on activity feed, show all events
- Enhance lifecycle steps and time distribution chart styling
- Add pagination to decision log table (20/50/100 per page)
- Unify font sizes across drawer tabs (12/13/14px scale)
2026-08-20 17:44:05 +08:00
sinohqb
d0487b54b4
fix(intelligent-eval): respect time-window slots before nudging analyst
...
冒烟发现 analyst_nudge 不考虑时间窗口:首会话完成后 10 分钟即催促,
但后续时段尚未到期,导致报告提前收敛、漏掉计划内会话。催促闸门新增
"窗口未结束且会话数未达计划则跳过";worker 触发指令同步明确仅当所有
时段会话都达终态才转 analyst。
2026-08-20 16:27:05 +08:00
sinohqb
eb4944a8bd
feat(intelligent-eval): terminal-state discipline watchdogs (ADR-0011)
...
常见故障自愈有上限,超限收敛终态且可见:任务 attempts 上限、会话过期、
planning 双闸、executing 超窗兜底、触发失败计数判死、孤儿 agent 双管、
fire-and-forget 触发;open_session 预算硬闸门、settle 按终态区分、报告
scores 归一化;cron 池遗留面全删。
2026-08-20 14:34:17 +08:00
sinohqb
0096c22e27
docs: v1.1.1 release notes + ADR-0010 + context/CLAUDE updates
...
CI / test (push) Successful in 3m58s
更新本次智能评估全链路修复与 UI/UX 优化的必要文档:
- ADR-0010 新增:方案③触发采用独立 OpenClaw session(main 持久 session 上下文
缓存污染导致 worker 幻觉不执行)+ 时段分布约束
- CONTEXT.md:触发式执行词条补充时段约束与独立会话语义
- release-notes-v1.1.1.md 新增:智能评估全链路稳定化、任务队列监控、UI/UX 一致性
- docs/README.md:补 v1.1.0/v1.1.1 发布说明索引,版本升 v1.2
- CLAUDE.md:补智能评估执行机制(方案③)章节(scan loop 职责 + 独立 session/
时段分布/状态一致性关键约束)
2026-08-18 19:01:14 +08:00