mirror of
https://github.com/nearai/ironclaw.git
synced 2026-09-02 23:56:24 +08:00
* fix: prevent immediate requests creating missions * fix: address review findings (iteration 1) * fix: use prefix stem matching for scheduling intent words Addresses review feedback: "monitoring" now matches the "monitor" stem, "routinely" matches "routin", etc. Replaces exact word matching with starts_with prefix matching so morphological variants are caught without maintaining an exhaustive word list. Adds regression test for "set up monitoring now" being correctly allowed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * style: fix cargo fmt alignment in SCHEDULE_STEMS Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(bridge): add caller-level tests for immediate mission rejection (#2328) Address henrypark133 review: the `should_reject_immediate_mission_create` predicate was only covered by helper-level unit tests. Per the "Test Through the Caller" rule, add three caller-level tests that drive `EffectBridgeAdapter::execute_action` end-to-end: - Reject path: foreground + immediate goal → EngineError::Effect - Allow path: foreground + scheduling intent → mission created - Alias path: routine_create → mission_create alias also rejected Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(skills): remove useless .into_iter() flagged by clippy 1.95 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ci): resolve clippy 1.95 collapsible-match and useless-conversion lints Collapse nested `if` into match arm guards per clippy::collapsible_match (new in Rust 1.95). Replace `.sort_by(|a, b| b.1.cmp(&a.1))` with `.sort_by_key(|x| Reverse(x.1))` per clippy::unnecessary_sort_by. Affected crates: ironclaw (main), ironclaw_engine, ironclaw_tui, ironclaw_skills. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(test): add thread_goal to ThreadExecutionContext in gate integration test The merge from staging introduced a new test that constructs ThreadExecutionContext without the thread_goal field added by this PR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ci): resolve clippy lint and 3 test failures - Add #[allow(clippy::too_many_arguments)] on register_startup_channels - Extract extension name from tool_install params in pending_gate_extension_name fallback - Isolate re_resolve_llm tests from user config.toml via temp file - Mark propagate_approval test #[ignore] (requires prebuilt telegram WASM) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Illia Polosukhin <ilblackdragon@gmail.com>