iomgaa
|
e0f3ee10ec
|
feat(harness): pools.py — 三池切分(test→validation→diagnosis)
|
2026-07-07 12:48:54 -04:00 |
|
iomgaa
|
48b423ef35
|
feat(harness): pools.py — 三池切分(test→validation→diagnosis)
|
2026-07-07 12:48:54 -04:00 |
|
iomgaa
|
9800fef37a
|
feat(harness): batching.py — FFD + round-robin mini-batch (#10 算法保真)
|
2026-07-07 12:47:33 -04:00 |
|
iomgaa
|
ad8fc176d0
|
feat(harness): batching.py — FFD + round-robin mini-batch (#10 算法保真)
|
2026-07-07 12:47:33 -04:00 |
|
iomgaa
|
d349fe1148
|
feat(harness): workspace.py — Workspace lifecycle + VersionedSkillStore/PromptStore
- ResolvedPaths frozen dataclass: store_dir, videos_dir, questions_dir,
skills_dir, prompts_dir, workspace_dir, db_path, analyses_dir, runs_dir
- init_workspace: create ws + copy seed weights from store
- init_workspace_from_seed: create from seed with fail-fast questions check
- load_manifest / resolve_paths: manifest I/O + path resolution
(skills/prompts resolve to workspace, videos/questions to store)
- update_manifest: key whitelist validation
- record_run: idempotent history append + per-video wiki dirs
- read_best / update_best: best pointer independent of current
- list_video_ids: videos with tree.json
- archive_workspace: move to .archive/<name>-<ts>
- VersionedSkillStore: implements core/evolution/protocols.py::SkillStore
- VersionedPromptStore: implements core/evolution/protocols.py::PromptStore
- 21 tests all passing (incl. Protocol compliance checks)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:41:59 -04:00 |
|
iomgaa
|
461abf0329
|
feat(harness): workspace.py — Workspace lifecycle + VersionedSkillStore/PromptStore
- ResolvedPaths frozen dataclass: store_dir, videos_dir, questions_dir,
skills_dir, prompts_dir, workspace_dir, db_path, analyses_dir, runs_dir
- init_workspace: create ws + copy seed weights from store
- init_workspace_from_seed: create from seed with fail-fast questions check
- load_manifest / resolve_paths: manifest I/O + path resolution
(skills/prompts resolve to workspace, videos/questions to store)
- update_manifest: key whitelist validation
- record_run: idempotent history append + per-video wiki dirs
- read_best / update_best: best pointer independent of current
- list_video_ids: videos with tree.json
- archive_workspace: move to .archive/<name>-<ts>
- VersionedSkillStore: implements core/evolution/protocols.py::SkillStore
- VersionedPromptStore: implements core/evolution/protocols.py::PromptStore
- 21 tests all passing (incl. Protocol compliance checks)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:41:59 -04:00 |
|
iomgaa
|
b052c1f3ee
|
feat(harness): store.py — Store 版本操作 + Seed 管理
从 TRM4 core/workspace.py 拆出 Store + Seed 相关函数:
- _parse_version / list_versions / next_version / advance_version
- _write_meta / init_store
- init_seed / list_seeds / read_seed
- extract_run_db(保留原始 CREATE 语句重建主键约束)
- promote_to_seed(强校验版本一致 + 非 NULL + finally 清理)
26 个测试全部通过,radon 复杂度 A (2.83)。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:36:36 -04:00 |
|
iomgaa
|
6858da80c7
|
feat(harness): store.py — Store 版本操作 + Seed 管理
从 TRM4 core/workspace.py 拆出 Store + Seed 相关函数:
- _parse_version / list_versions / next_version / advance_version
- _write_meta / init_store
- init_seed / list_seeds / read_seed
- extract_run_db(保留原始 CREATE 语句重建主键约束)
- promote_to_seed(强校验版本一致 + 非 NULL + finally 清理)
26 个测试全部通过,radon 复杂度 A (2.83)。
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:36:36 -04:00 |
|
iomgaa
|
be3c176a46
|
feat(harness): HarnessLog SQLite wrapper + RunLogImpl readonly port
- HarnessLog: TRM4 direct port with WAL mode, threading.Lock, INSERT OR
IGNORE idempotent _runs, context manager (completed/failed), create_table
with auto run_id+timestamp, insert/insert_many/execute/query/log_event
- RunLogImpl: implements core/evolution/protocols.py::RunLog Protocol with
independent sqlite3.connect for read-only SELECT (no _runs pollution),
asyncio.to_thread wrapping for async interface
- _read_table: shared readonly helper with optional question_ids filtering,
graceful empty-list return for missing tables
- Tests: 17 cases covering thread safety, idempotent inserts, context
manager status, WAL mode, protocol compliance, readonly isolation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:29:29 -04:00 |
|
iomgaa
|
fd76720dcf
|
feat(harness): HarnessLog SQLite wrapper + RunLogImpl readonly port
- HarnessLog: TRM4 direct port with WAL mode, threading.Lock, INSERT OR
IGNORE idempotent _runs, context manager (completed/failed), create_table
with auto run_id+timestamp, insert/insert_many/execute/query/log_event
- RunLogImpl: implements core/evolution/protocols.py::RunLog Protocol with
independent sqlite3.connect for read-only SELECT (no _runs pollution),
asyncio.to_thread wrapping for async interface
- _read_table: shared readonly helper with optional question_ids filtering,
graceful empty-list return for missing tables
- Tests: 17 cases covering thread safety, idempotent inserts, context
manager status, WAL mode, protocol compliance, readonly isolation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:29:29 -04:00 |
|
iomgaa
|
b929a5db6c
|
fix(harness): Codex functional review 修复 — 命名/集成测试/delta_min/promote 消息
- _apply_env_overrides → _apply_env_var_overrides,docstring 明确从 os.environ 读取
- 新增 TestLoadConfigRealYaml:用真实 config/default.yaml 验证嵌套 harness 解析
- 新增 test_delta_min_negative_rejected:覆盖 gate_delta_min >= 0 校验
- 恢复 promote 模式独立错误消息(从合并分支分离回 TRM4 原始提示)
- 77 个单元测试全部通过,radon 全部 Grade B 或更好
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:23:27 -04:00 |
|
iomgaa
|
b47f634e61
|
fix(harness): Codex functional review 修复 — 命名/集成测试/delta_min/promote 消息
- _apply_env_overrides → _apply_env_var_overrides,docstring 明确从 os.environ 读取
- 新增 TestLoadConfigRealYaml:用真实 config/default.yaml 验证嵌套 harness 解析
- 新增 test_delta_min_negative_rejected:覆盖 gate_delta_min >= 0 校验
- 恢复 promote 模式独立错误消息(从合并分支分离回 TRM4 原始提示)
- 77 个单元测试全部通过,radon 全部 Grade B 或更好
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:23:27 -04:00 |
|
iomgaa
|
ce43871828
|
fix(harness): 补充 train 模式 run_id 校验 + 拆分函数保持 radon Grade B
- _validate_mode_deps: 恢复 train 非 resume/fresh 时必须提供 run_id 校验
- 提取 _validate_train_run_id 用 early return 展平条件,避免 radon Grade C
- 合并 promote run_id 检查到 diagnose/evolve/promote 统一检查
- 新增 4 个测试:train+run_id / train+resume / train+fresh / train+baseline
- radon cc -n C 无输出(全部 Grade B 或更好)
- 74 个单元测试全部通过
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:14:28 -04:00 |
|
iomgaa
|
535bd320b0
|
fix(harness): 补充 train 模式 run_id 校验 + 拆分函数保持 radon Grade B
- _validate_mode_deps: 恢复 train 非 resume/fresh 时必须提供 run_id 校验
- 提取 _validate_train_run_id 用 early return 展平条件,避免 radon Grade C
- 合并 promote run_id 检查到 diagnose/evolve/promote 统一检查
- 新增 4 个测试:train+run_id / train+resume / train+fresh / train+baseline
- radon cc -n C 无输出(全部 Grade B 或更好)
- 74 个单元测试全部通过
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:14:28 -04:00 |
|
iomgaa
|
6a2ddb1624
|
refactor(harness): 拆分校验函数降低 radon 圈复杂度至 Grade B
- _validate: 拆出 _validate_mode(mode 依赖校验)+ _validate_basic(标量/枚举校验)
- _validate_gate: 拆为 _validate_gate_thresholds(e 值/净胜/方向)+ _validate_gate_ladder(阶梯/块序贯)
- load_config: 提取 _apply_env_overrides 函数
- radon cc -n C 无输出(全部 Grade B 或更好)
- 70 个单元测试全部通过
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:01:46 -04:00 |
|
iomgaa
|
5e57cf19b6
|
refactor(harness): 拆分校验函数降低 radon 圈复杂度至 Grade B
- _validate: 拆出 _validate_mode(mode 依赖校验)+ _validate_basic(标量/枚举校验)
- _validate_gate: 拆为 _validate_gate_thresholds(e 值/净胜/方向)+ _validate_gate_ladder(阶梯/块序贯)
- load_config: 提取 _apply_env_overrides 函数
- radon cc -n C 无输出(全部 Grade B 或更好)
- 70 个单元测试全部通过
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 12:01:46 -04:00 |
|
iomgaa
|
09a385addc
|
feat(harness): RunConfig frozen dataclass + 四层校验 + YAML/CLI/.env 三层加载
- RunConfig: 46 字段 frozen dataclass,从 TRM4 core/harness/config.py 迁移
- 四层校验链:_validate → _validate_edit_budget + _validate_minibatch + _validate_gate
- 新增 .env 覆盖层:工程配置(workspace_dir, store_dir)可通过 HARNESS_* 环境变量注入
- 合并优先级:CLI > .env > YAML(CLAUDE.md §4.5)
- load_config 支持嵌套 harness 段和扁平 YAML 两种格式
- run_id 改为默认空字符串(CLI-only 字段,YAML 不提供)
- resume/fresh 互斥校验不在 config 层(移至 runner.py)
- 70 个单元测试全部通过
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 11:57:35 -04:00 |
|
iomgaa
|
ca02b5a91d
|
feat(harness): RunConfig frozen dataclass + 四层校验 + YAML/CLI/.env 三层加载
- RunConfig: 46 字段 frozen dataclass,从 TRM4 core/harness/config.py 迁移
- 四层校验链:_validate → _validate_edit_budget + _validate_minibatch + _validate_gate
- 新增 .env 覆盖层:工程配置(workspace_dir, store_dir)可通过 HARNESS_* 环境变量注入
- 合并优先级:CLI > .env > YAML(CLAUDE.md §4.5)
- load_config 支持嵌套 harness 段和扁平 YAML 两种格式
- run_id 改为默认空字符串(CLI-only 字段,YAML 不提供)
- resume/fresh 互斥校验不在 config 层(移至 runner.py)
- 70 个单元测试全部通过
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 11:57:35 -04:00 |
|
iomgaa
|
d84cd679b4
|
feat(evolution): export dataclass types from __init__.py
|
2026-07-07 11:48:13 -04:00 |
|
iomgaa
|
63ad68f737
|
feat(evolution): export dataclass types from __init__.py
|
2026-07-07 11:48:13 -04:00 |
|
iomgaa
|
292dd0fa13
|
docs: app/harness/ implementation plan — 15 tasks, algorithm fidelity #6/#10/#13, 120 TRM4 tips
|
2026-07-07 11:45:38 -04:00 |
|
iomgaa
|
2db612e0bb
|
docs: app/harness/ implementation plan — 15 tasks, algorithm fidelity #6/#10/#13, 120 TRM4 tips
|
2026-07-07 11:45:38 -04:00 |
|
iomgaa
|
eba4344a4b
|
docs: app/harness/ design — 14-module training loop orchestration layer
|
2026-07-07 11:28:29 -04:00 |
|
iomgaa
|
af8081e9ed
|
docs: app/harness/ design — 14-module training loop orchestration layer
|
2026-07-07 11:28:29 -04:00 |
|
iomgaa
|
4e241aa581
|
merge: feat/tree-index — core/evolution/ extractable kernel + tree/search/question_gen modules
|
2026-07-07 10:29:54 -04:00 |
|
iomgaa
|
283ea27b51
|
merge: feat/tree-index — core/evolution/ extractable kernel + tree/search/question_gen modules
|
2026-07-07 10:29:54 -04:00 |
|
iomgaa
|
8bc4132750
|
feat(evolution): __init__.py public API + ARCHITECTURE.md Protocol update
|
2026-07-07 10:28:14 -04:00 |
|
iomgaa
|
9ab6a89298
|
feat(evolution): __init__.py public API + ARCHITECTURE.md Protocol update
|
2026-07-07 10:28:14 -04:00 |
|
iomgaa
|
4634414606
|
feat(evolution): evolve.py per-target evolution — skill/system/tool (#9)
|
2026-07-07 10:26:58 -04:00 |
|
iomgaa
|
5c42e0309b
|
feat(evolution): evolve.py per-target evolution — skill/system/tool (#9)
|
2026-07-07 10:26:58 -04:00 |
|
iomgaa
|
6072ee7d0b
|
feat(evolution): evolve.py validation + helpers (#9)
|
2026-07-07 10:12:15 -04:00 |
|
iomgaa
|
2c5b4c819c
|
feat(evolution): evolve.py validation + helpers (#9)
|
2026-07-07 10:12:15 -04:00 |
|
iomgaa
|
dc091361c3
|
feat(evolution): diagnose.py aggregation + case packs + run_diagnosis (#8)
|
2026-07-07 10:04:48 -04:00 |
|
iomgaa
|
c6a81f8504
|
feat(evolution): diagnose.py aggregation + case packs + run_diagnosis (#8)
|
2026-07-07 10:04:48 -04:00 |
|
iomgaa
|
49d6fe8f51
|
feat(evolution): diagnose.py metrics + attribution (Stage 1, #8)
|
2026-07-07 09:55:22 -04:00 |
|
iomgaa
|
fdbf9222ab
|
feat(evolution): diagnose.py metrics + attribution (Stage 1, #8)
|
2026-07-07 09:55:22 -04:00 |
|
iomgaa
|
f7193551dd
|
feat(evolution): validate.py — pure block validation decision functions (#7)
|
2026-07-07 09:47:45 -04:00 |
|
iomgaa
|
ebd83810aa
|
feat(evolution): validate.py — pure block validation decision functions (#7)
|
2026-07-07 09:47:45 -04:00 |
|
iomgaa
|
3005f24577
|
feat(evolution): patch.py — 补丁引擎移植(算法 #9),51 测试全通过
从 TRM4 core/harness/patch.py (427 行) 零修改移植到 core/evolution/patch.py。
包含:
- 7 个常量(APPENDIX/MOMENTUM marker + MAX_CHARS + HEADING)
- appendix 区:追加/提取/替换/边界检测,损坏态 ValueError
- momentum 区:替换/提取/边界检测,注入防护
- apply_patch_with_report:4 种 op(append/insert_after/replace/delete)
- 冻结区坐标判定(每条 edit 重算)、report 1-based index
- 51 个单元测试覆盖全部公共 API 及边缘场景
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:44:05 -04:00 |
|
iomgaa
|
7f8ed56428
|
feat(evolution): patch.py — 补丁引擎移植(算法 #9),51 测试全通过
从 TRM4 core/harness/patch.py (427 行) 零修改移植到 core/evolution/patch.py。
包含:
- 7 个常量(APPENDIX/MOMENTUM marker + MAX_CHARS + HEADING)
- appendix 区:追加/提取/替换/边界检测,损坏态 ValueError
- momentum 区:替换/提取/边界检测,注入防护
- apply_patch_with_report:4 种 op(append/insert_after/replace/delete)
- 冻结区坐标判定(每条 edit 重算)、report 1-based index
- 51 个单元测试覆盖全部公共 API 及边缘场景
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:44:05 -04:00 |
|
iomgaa
|
4eefbfdd74
|
feat(evolution): gate.py — CE-Gate e-process 纯函数 (#5 算法保真)
从 TRM4 core/harness/eprocess.py 逐行迁移,零逻辑变更:
- compute_e_value: 截断 Beta 混合 e 值(log 空间 + betainc 对称性)
- gate_decision: 四出口优先级链(confirmed→directional→futility→exhaustion→continue)
- probation_verdict: 试用期非对称双向结算
- 常量保真: _WALD_WIN=ln1.4, _WALD_LOSS=ln0.6, _SHRINK_PSEUDO=4
仅变更: import 路径 + GateParams/GateVerdict 移至 types.py + 中文 docstring
14 tests 覆盖: e 值数学、边界校验、四出口路径、试用期三分支
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:38:21 -04:00 |
|
iomgaa
|
57793fb0f8
|
feat(evolution): gate.py — CE-Gate e-process 纯函数 (#5 算法保真)
从 TRM4 core/harness/eprocess.py 逐行迁移,零逻辑变更:
- compute_e_value: 截断 Beta 混合 e 值(log 空间 + betainc 对称性)
- gate_decision: 四出口优先级链(confirmed→directional→futility→exhaustion→continue)
- probation_verdict: 试用期非对称双向结算
- 常量保真: _WALD_WIN=ln1.4, _WALD_LOSS=ln0.6, _SHRINK_PSEUDO=4
仅变更: import 路径 + GateParams/GateVerdict 移至 types.py + 中文 docstring
14 tests 覆盖: e 值数学、边界校验、四出口路径、试用期三分支
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:38:21 -04:00 |
|
iomgaa
|
9d4d52dac5
|
feat(core/evolution): protocols.py + types.py 基础层 — 18 个 dataclass + 3 个 Protocol
TRM4 诊断/进化/门控数据类型迁移至 TRM5 Clean Architecture 内核。
逐字段比对 TRM4 的 eprocess.py、diagnose.py、evolve.py 保真迁移。
types.py (18 个 dataclass):
- Gate: GateParams, GateVerdict (frozen, 原样迁移)
- 诊断: SpanMetrics, SkillStepAdherence, QuestionMetrics,
ErrorAttribution, CaseSample, SkillCasePack, SystemCasePack,
ToolCasePack, DiagnosisResult (全部 frozen=True)
- 进化: EvolutionRecord (mutable), RejectedEdit (frozen),
EvolutionResult (frozen, 移除 skills_version/prompts_version)
- 新增: PairResult, QuadrantClassification (块验证纯决策输出)
- 新增: DiagnosePrompts, EvolvePrompts (模板束, frozen)
protocols.py (3 个只读 Protocol):
- SkillStore, PromptStore (同步文件读取)
- RunLog (异步日志查询, 隔离 SQL)
变更理由:
- QuestionMetrics 由 TRM4 mutable 改为 frozen (一次性构造)
- ErrorAttribution 由 TRM4 mutable 改为 frozen (构造时填入全部字段)
- EvolutionResult 移除版本管理字段 (app/ 职责)
涉及算法: #5(CE-Gate), #8(诊断瀑布), #9(进化引擎)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:34:04 -04:00 |
|
iomgaa
|
47c2de71a2
|
feat(core/evolution): protocols.py + types.py 基础层 — 18 个 dataclass + 3 个 Protocol
TRM4 诊断/进化/门控数据类型迁移至 TRM5 Clean Architecture 内核。
逐字段比对 TRM4 的 eprocess.py、diagnose.py、evolve.py 保真迁移。
types.py (18 个 dataclass):
- Gate: GateParams, GateVerdict (frozen, 原样迁移)
- 诊断: SpanMetrics, SkillStepAdherence, QuestionMetrics,
ErrorAttribution, CaseSample, SkillCasePack, SystemCasePack,
ToolCasePack, DiagnosisResult (全部 frozen=True)
- 进化: EvolutionRecord (mutable), RejectedEdit (frozen),
EvolutionResult (frozen, 移除 skills_version/prompts_version)
- 新增: PairResult, QuadrantClassification (块验证纯决策输出)
- 新增: DiagnosePrompts, EvolvePrompts (模板束, frozen)
protocols.py (3 个只读 Protocol):
- SkillStore, PromptStore (同步文件读取)
- RunLog (异步日志查询, 隔离 SQL)
变更理由:
- QuestionMetrics 由 TRM4 mutable 改为 frozen (一次性构造)
- ErrorAttribution 由 TRM4 mutable 改为 frozen (构造时填入全部字段)
- EvolutionResult 移除版本管理字段 (app/ 职责)
涉及算法: #5(CE-Gate), #8(诊断瀑布), #9(进化引擎)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-07-07 09:34:04 -04:00 |
|
iomgaa
|
09100dcbd4
|
docs: core/evolution/ implementation plan — 9 tasks, TDD, algorithm fidelity checks
|
2026-07-07 07:55:21 -04:00 |
|
iomgaa
|
8bbfbc9b8a
|
docs: core/evolution/ implementation plan — 9 tasks, TDD, algorithm fidelity checks
|
2026-07-07 07:55:21 -04:00 |
|
iomgaa
|
84e8abbf4f
|
docs: core/evolution/ extractable kernel design — gate, patch, diagnose, evolve
|
2026-07-07 07:39:24 -04:00 |
|
iomgaa
|
2761ca3e82
|
docs: core/evolution/ extractable kernel design — gate, patch, diagnose, evolve
|
2026-07-07 07:39:24 -04:00 |
|
iomgaa
|
7cd49a5a3f
|
docs: 同步 app/search/ 模块结构 + OCRProvider 签名到 ARCHITECTURE.md
|
2026-07-07 06:14:26 -04:00 |
|
iomgaa
|
dc19e9e007
|
docs: 同步 app/search/ 模块结构 + OCRProvider 签名到 ARCHITECTURE.md
|
2026-07-07 06:14:26 -04:00 |
|