From 06d1b8ac874e432073b6a85885f1ca9acf34b1f1 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Sun, 12 Apr 2026 08:53:00 +0900 Subject: [PATCH] =?UTF-8?q?docs(roadmap):=20add=20#68=20=E2=80=94=20intern?= =?UTF-8?q?al=20reinjection/resume=20path=20opacity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OMX lanes leaking internal control prose like [OMX_TMUX_INJECT] instead of operator-meaningful state. Adding requirement for structured recovery/reinject events with clear cause, preserved state, and target lane info. Also fixes merge conflict in test_isolation.rs. Source: gaebal-gajae dogfood analysis 2026-04-12 --- ROADMAP.md | 2 ++ rust/.claw/sessions/session-1775386832313-0.jsonl | 3 +-- rust/crates/plugins/src/lib.rs | 1 + rust/crates/plugins/src/test_isolation.rs | 1 + 4 files changed, 5 insertions(+), 2 deletions(-) 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;