feat: prepare agen crates for publication
This commit is contained in:
@@ -108,7 +108,7 @@ runtime state に segment 表示の不一致があった。
|
||||
- `019e5c2f` の 892-entry history が、旧 segment history の何番目から retained されたものか特定する。
|
||||
- 旧 segment の `LogEntry::LlmUsage { history_len, input_total_tokens, ... }` と retained cut の対応を確認する。
|
||||
- `split_for_retained` を当時の history / usage records に対して再実行し、見積もりと実 persisted size の差を出す。
|
||||
- `llm-worker` の prune threshold / protected area / min savings を確認し、pruning がこの乖離にどの程度寄与したかを確定する。
|
||||
- `agen` の prune threshold / protected area / min savings を確認し、pruning がこの乖離にどの程度寄与したかを確定する。
|
||||
- 空 turn が `run_completed finished` になった理由を追う。
|
||||
|
||||
## 注意
|
||||
|
||||
@@ -48,5 +48,5 @@ The corrupted `tool_result` was manually replaced with a synthetic repair record
|
||||
|
||||
## Related fixes made during investigation
|
||||
|
||||
- Added safer SSE parse diagnostics in `llm-worker` so future provider-stream failures include HTTP status and selected safe response headers.
|
||||
- Added safer SSE parse diagnostics in `agen` so future provider-stream failures include HTTP status and selected safe response headers.
|
||||
- Enabled local trace via `.yoi/override.local.toml` and manually set `record_event_trace = true` in the `yoi-orchestrator` metadata snapshot for future restores.
|
||||
|
||||
@@ -95,7 +95,7 @@ The cleanup immediately before this audit removed 547 nonblank test LOC and 21 R
|
||||
|
||||
`cargo test --workspace --no-fail-fast` currently fails during compilation before the workspace suite can run.
|
||||
|
||||
The immediate failure is stale test code in `crates/llm-engine/tests/parallel_execution_test.rs`:
|
||||
The immediate failure is stale test code in `crates/agen/tests/parallel_execution_test.rs`:
|
||||
|
||||
- tests pass `Vec<ToolOutput>` where production now requires `Vec<Segment>`;
|
||||
- tests still construct `ToolOutput` with two arguments although the current constructor accepts one;
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
- [client](client.md) — # テスト妥当性レビュー: client - 評価: 概ね良い
|
||||
- [daemon](daemon.md) — # テスト妥当性レビュー: daemon - 評価: 混在
|
||||
- [lint-common](lint-common.md) — # テスト妥当性レビュー: lint-common
|
||||
- [llm-worker-macros](llm-worker-macros.md) — # テスト妥当性レビュー: llm-worker-macros - 評価: 混在
|
||||
- [llm-worker](llm-worker.md) — # テスト妥当性レビュー: llm-worker - 評価: 概ね良い
|
||||
- [agen-macros](agen-macros.md) — # テスト妥当性レビュー: agen-macros - 評価: 混在
|
||||
- [agen](agen.md) — # テスト妥当性レビュー: agen - 評価: 概ね良い
|
||||
- [manifest](manifest.md) — # テスト妥当性レビュー: manifest - 評価: 概ね良い
|
||||
- [memory](memory.md) — # テスト妥当性レビュー: memory
|
||||
- [pod](pod.md) — # テスト妥当性レビュー: pod - 評価: 混在
|
||||
|
||||
+14
-14
@@ -1,21 +1,21 @@
|
||||
# テスト妥当性レビュー: llm-worker-macros
|
||||
# テスト妥当性レビュー: agen-macros
|
||||
- 評価: 混在
|
||||
|
||||
## 確認範囲
|
||||
|
||||
- 対象 crate: `crates/llm-worker-macros`
|
||||
- 対象 crate: `crates/agen-macros`
|
||||
- 読んだ主なファイル:
|
||||
- `crates/llm-worker-macros/src/lib.rs`
|
||||
- `crates/llm-worker-macros/Cargo.toml`
|
||||
- `crates/llm-worker-macros/README.md`
|
||||
- `crates/llm-worker/tests/tool_macro_test.rs`
|
||||
- `crates/agen-macros/src/lib.rs`
|
||||
- `crates/agen-macros/Cargo.toml`
|
||||
- `crates/agen-macros/README.md`
|
||||
- `crates/agen/tests/tool_macro_test.rs`
|
||||
- 変更はしていない。
|
||||
|
||||
`llm-worker-macros` 自体にはローカル unit/integration test がなく、`cargo test -p llm-worker-macros` では実質的に挙動を検証していない。一方で、下流 crate の `llm-worker` 側に `#[tool_registry]` / `#[tool]` の実利用 integration test があり、主要な happy path と一部 error path は確認されている。
|
||||
`agen-macros` 自体にはローカル unit/integration test がなく、`cargo test -p agen-macros` では実質的に挙動を検証していない。一方で、下流 crate の `agen` 側に `#[tool_registry]` / `#[tool]` の実利用 integration test があり、主要な happy path と一部 error path は確認されている。
|
||||
|
||||
## 現在のテストがよくカバーしていること
|
||||
|
||||
`crates/llm-worker/tests/tool_macro_test.rs` は、この proc macro が実際に `llm_worker::tool::Tool` と組み合わさって動くことを確認しており、単なる helper unit test より有用な面がある。
|
||||
`crates/agen/tests/tool_macro_test.rs` は、この proc macro が実際に `agen::tool::Tool` と組み合わさって動くことを確認しており、単なる helper unit test より有用な面がある。
|
||||
|
||||
特に以下はよく押さえられている。
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
## 不足・疑問のあるテスト
|
||||
|
||||
- `llm-worker-macros` package 自身の test は 0 件。`cargo test -p llm-worker-macros` 単体では回帰検知力がほぼない。
|
||||
- `agen-macros` package 自身の test は 0 件。`cargo test -p agen-macros` 単体では回帰検知力がほぼない。
|
||||
- proc macro crate として重要な compile-pass / compile-fail matrix がない。現在は runtime integration test 中で使われる形だけが通っている。
|
||||
- `#[description = "..."]` parameter attribute の挙動が未検証。実装は `#[schemars(description = ...)]` に変換するが、schema に description が出るか、parameter attribute として期待通り扱えるかをテストしていない。
|
||||
- JSON Schema の検証が弱い。`properties` の存在だけを見ており、以下を確認していない。
|
||||
@@ -46,7 +46,7 @@
|
||||
- `#[description]` が schema に反映されること
|
||||
- 不正引数 test が error variant や message を確認していない。`ToolError::InvalidArgument` であることまで見るべき。
|
||||
- 引数なし tool は invalid JSON も `unwrap_or` で通す実装になっているが、この仕様が意図通りかを固定する test がない。現在の test は `{}` のみ。
|
||||
- macro expansion が参照する外部 path/import の契約が未検証。生成コードは `serde`, `schemars`, `serde_json`, `async_trait`, `::llm_worker` に依存しているため、利用側 crate で何を明示 import/dependency すべきかを compile test で固定した方がよい。
|
||||
- macro expansion が参照する外部 path/import の契約が未検証。生成コードは `serde`, `schemars`, `serde_json`, `async_trait`, `::agen` に依存しているため、利用側 crate で何を明示 import/dependency すべきかを compile test で固定した方がよい。
|
||||
- unsupported input の扱いが未検証。
|
||||
- destructuring pattern 引数
|
||||
- `self` 以外の receiver 形
|
||||
@@ -82,12 +82,12 @@
|
||||
- wrong type。
|
||||
- それぞれ `ToolError::InvalidArgument` になること。
|
||||
- 引数なし tool の invalid input 仕様を明文化して test する。現在の「parse 失敗でも空 args として続行」はかなり permissive なので、意図した仕様なら固定し、意図しないなら変更前提の regression test を作る。
|
||||
- `llm-worker-macros` crate 自身にも、少なくとも compile test harness を置くか、下流 `llm-worker` 側の macro tests がこの crate の実質テストであることを明示する。
|
||||
- `agen-macros` crate 自身にも、少なくとも compile test harness を置くか、下流 `agen` 側の macro tests がこの crate の実質テストであることを明示する。
|
||||
|
||||
## 実行したコマンド
|
||||
|
||||
```sh
|
||||
cd /home/hare/Projects/yoi && cargo test -p llm-worker-macros
|
||||
cd /home/hare/Projects/yoi && cargo test -p agen-macros
|
||||
```
|
||||
|
||||
結果:
|
||||
@@ -98,12 +98,12 @@ cd /home/hare/Projects/yoi && cargo test -p llm-worker-macros
|
||||
- この crate 単体の test 妥当性評価としては、挙動検証はほぼない。
|
||||
|
||||
```sh
|
||||
cd /home/hare/Projects/yoi && cargo test -p llm-worker --test tool_macro_test
|
||||
cd /home/hare/Projects/yoi && cargo test -p agen --test tool_macro_test
|
||||
```
|
||||
|
||||
結果:
|
||||
|
||||
- 成功。
|
||||
- `9 passed`。
|
||||
- `llm-worker` 側の integration test としては、macro の主要 runtime behavior をある程度検証できている。
|
||||
- `agen` 側の integration test としては、macro の主要 runtime behavior をある程度検証できている。
|
||||
|
||||
+9
-9
@@ -1,14 +1,14 @@
|
||||
# テスト妥当性レビュー: llm-worker
|
||||
# テスト妥当性レビュー: agen
|
||||
- 評価: 概ね良い
|
||||
|
||||
## 確認範囲
|
||||
- Workspace root: `/home/hare/Projects/yoi`
|
||||
- Crate/package: `crates/llm-worker` / `llm-worker`
|
||||
- Crate/package: `crates/agen` / `agen`
|
||||
- 読んだ範囲:
|
||||
- `crates/llm-worker/Cargo.toml`
|
||||
- `crates/llm-worker/src/**`
|
||||
- `crates/llm-worker/tests/**`
|
||||
- `crates/llm-worker/docs/{requirements,architecture}.md`
|
||||
- `crates/agen/Cargo.toml`
|
||||
- `crates/agen/src/**`
|
||||
- `crates/agen/tests/**`
|
||||
- `crates/agen/docs/{requirements,architecture}.md`
|
||||
- ソースファイル、Ticket、設定ファイルは変更していない。
|
||||
|
||||
## 現在のテストがよくカバーしていること
|
||||
@@ -69,12 +69,12 @@
|
||||
- 実行不能な外部 call は `no_run`、擬似コードは明確に `text` fence などに分ける。
|
||||
|
||||
## 実行したコマンド
|
||||
- `cargo test -p llm-worker`
|
||||
- `cargo test -p agen`
|
||||
- Result: passed.
|
||||
- `cargo test -p llm-worker -- --list`
|
||||
- `cargo test -p agen -- --list`
|
||||
- Result: passed/listed.
|
||||
- Executable tests listed: unit/integration/trybuild 全体で 237 件。
|
||||
- Doc tests listed: 24 件、すべて ignored。
|
||||
- `cargo test -p llm-worker --quiet`
|
||||
- `cargo test -p agen --quiet`
|
||||
- Result: passed.
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
## 確認した範囲
|
||||
|
||||
- `crates/pod/Cargo.toml`、`crates/pod/README.md`、`crates/pod/src/lib.rs`、`crates/pod/tests/*.rs` の integration suite、テスト一覧、および選択した失敗中の prompt-resource assertion を確認した。
|
||||
- `pod` crate の責務: `llm-worker` を中心とした Pod lifecycle/runtime authority、socket protocol serving、manifest/profile startup、スコープ付き built-in tools、session/pod-store persistence、spawned child Pod orchestration、prompt/resource assembly、compaction/extraction/consolidation、および runtime metadata integration。
|
||||
- `pod` crate の責務: `agen` を中心とした Pod lifecycle/runtime authority、socket protocol serving、manifest/profile startup、スコープ付き built-in tools、session/pod-store persistence、spawned child Pod orchestration、prompt/resource assembly、compaction/extraction/consolidation、および runtime metadata integration。
|
||||
- `cargo test -p pod -- --list` によるテスト一覧:
|
||||
- 310 件の lib/unit tests。
|
||||
- 9 件の integration test target、合計 106 件の integration tests。
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
- trace file が segment log と分離されること
|
||||
- `read_entry_count`
|
||||
- `lookup_session_of`
|
||||
- `session_test.rs` は mock LLM + actual `llm_worker::Worker` を通して、単純応答・tool call・pause・restore・fork 系を実行している。単なる pure unit だけでなく、crate 境界上の使われ方もある程度守れている。
|
||||
- `session_test.rs` は mock LLM + actual `agen::Worker` を通して、単純応答・tool call・pause・restore・fork 系を実行している。単なる pure unit だけでなく、crate 境界上の使われ方もある程度守れている。
|
||||
- fork lineage について、fresh-session fork / in-session `fork_at` / live conflict `ensure_head_or_fork` / nested past fork まで触れているのは良いです。特に「source segment を mutate しない」方針をテストで固定できています。
|
||||
|
||||
## 不足・疑問のあるテスト
|
||||
|
||||
Reference in New Issue
Block a user