diff --git a/ROADMAP.md b/ROADMAP.md index 8db1064..5ddf4d1 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -500,3 +500,5 @@ Model name prefix now wins unconditionally over env-var presence. Regression tes 66. **Completion-aware reminder shutdown missing** — dogfooded 2026-04-12. Ultraclaw batch completed and was reported as done, but 10-minute cron reminder (`roadmap-nudge-10min`) kept firing into channel as if work still pending. Reminder/cron state not coupled to terminal task state. **Fix shape:** (a) cron jobs should check task completion state before firing; (b) or, provide explicit `cron.remove` on task completion; (c) or, reminders should include "work complete" detection and auto-expire. Blocker: none. Source: gaebal-gajae dogfood analysis 2026-04-12. 67. **Scoped review lanes do not emit structured verdicts** — dogfooded 2026-04-12. OMX review lanes now have improved scope (specific ROADMAP items, specific files, explicit APPROVE/REJECT contract), but the stop event only contains the review request — not the actual verdict. Operators must infer approval/rejection/blockage from later git commits or surrounding chatter. **Fix shape:** emit structured review result on stop with: `verdict: approve|reject|blocked`, `target: commit/diff reviewed`, `rationale: short summary`. Blocker: none. Source: gaebal-gajae dogfood analysis 2026-04-12. + +68. **Internal reinjection/resume paths leak opaque control prose** — dogfooded 2026-04-12. OMX lanes stopping with `Continue from current mode state. [OMX_TMUX_INJECT]` expose internal implementation details instead of operator-meaningful state. The event tells us *that* tmux reinjection happened, but not *why* (retry after failure? resume after idle? manual recovery?), *what state was preserved*, or *what the lane was trying to do*. **Fix shape:** recovery/reinject events should emit structured cause like: `resume_after_stop`, `retry_after_tool_failure`, `tmux_reinject_after_idle`, `manual_recovery` plus preserved state / target lane info. Never leak bare internal markers like `[OMX_TMUX_INJECT]` as the primary summary. Blocker: none. Source: gaebal-gajae dogfood analysis 2026-04-12. diff --git a/rust/.claw/sessions/session-1775386832313-0.jsonl b/rust/.claw/sessions/session-1775386832313-0.jsonl index 81f7a9d..eed0e85 100644 --- a/rust/.claw/sessions/session-1775386832313-0.jsonl +++ b/rust/.claw/sessions/session-1775386832313-0.jsonl @@ -1,2 +1 @@ -{"created_at_ms":1775386832313,"session_id":"session-1775386832313-0","type":"session_meta","updated_at_ms":1775386832313,"version":1} -{"message":{"blocks":[{"text":"status --help","type":"text"}],"role":"user"},"type":"message"} +{"created_at_ms":1775777421902,"session_id":"session-1775777421902-1","type":"session_meta","updated_at_ms":1775777421902,"version":1} diff --git a/rust/crates/plugins/src/lib.rs b/rust/crates/plugins/src/lib.rs index 3252d91..3e970cc 100644 --- a/rust/crates/plugins/src/lib.rs +++ b/rust/crates/plugins/src/lib.rs @@ -4,6 +4,7 @@ pub mod test_isolation; use std::collections::{BTreeMap, BTreeSet}; use std::fmt::{Display, Formatter}; +use std::sync::atomic::{AtomicU64, Ordering}; use std::fs; use std::path::{Path, PathBuf}; use std::process::{Command, Stdio}; diff --git a/rust/crates/plugins/src/test_isolation.rs b/rust/crates/plugins/src/test_isolation.rs index 9f14a5b..7041314 100644 --- a/rust/crates/plugins/src/test_isolation.rs +++ b/rust/crates/plugins/src/test_isolation.rs @@ -2,6 +2,7 @@ // ROADMAP #41: Stop ambient plugin state from skewing CLI regression checks use std::env; +use std::fs; use std::path::PathBuf; use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::Mutex;