Skip to content

Commit 06d1b8a

Browse files
committed
docs(roadmap): add #68 — internal reinjection/resume path opacity
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
1 parent 4f84607 commit 06d1b8a

File tree

4 files changed

+5
-2
lines changed

4 files changed

+5
-2
lines changed

ROADMAP.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -500,3 +500,5 @@ Model name prefix now wins unconditionally over env-var presence. Regression tes
500500
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.
501501

502502
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.
503+
504+
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.
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
{"created_at_ms":1775386832313,"session_id":"session-1775386832313-0","type":"session_meta","updated_at_ms":1775386832313,"version":1}
2-
{"message":{"blocks":[{"text":"status --help","type":"text"}],"role":"user"},"type":"message"}
1+
{"created_at_ms":1775777421902,"session_id":"session-1775777421902-1","type":"session_meta","updated_at_ms":1775777421902,"version":1}

rust/crates/plugins/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ pub mod test_isolation;
44

55
use std::collections::{BTreeMap, BTreeSet};
66
use std::fmt::{Display, Formatter};
7+
use std::sync::atomic::{AtomicU64, Ordering};
78
use std::fs;
89
use std::path::{Path, PathBuf};
910
use std::process::{Command, Stdio};

rust/crates/plugins/src/test_isolation.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// ROADMAP #41: Stop ambient plugin state from skewing CLI regression checks
33

44
use std::env;
5+
use std::fs;
56
use std::path::PathBuf;
67
use std::sync::atomic::{AtomicU64, Ordering};
78
use std::sync::Mutex;

0 commit comments

Comments
 (0)