Repository navigation
v0.16.4
핵심 변경
새 사용자 입력으로 세션이 Running 상태에 진입할 때 cmux 사이드바 로그 패널이 자동 초기화된다. 이전까지 과거 턴의 [nexus] [error] MessageAbortedError 같은 stale 에러 엔트리가 계속 남아 "아직 에러 상태인가?" 혼동을 일으키던 UX를 해소. 사용자는 더 이상 cmux clear-log를 수동 실행할 필요 없음.
최종 사용자 영향
session.status busy가 root 세션의 idle→running 전이로 fire될 때, cmux clear-log가 기존set-status Running앞서 호출된다.- 한 턴 내 연속 busy(관측상 ~4회/턴)는 내부
sessionRunning: Set<string>으로 dedup되어 clear-log가 턴당 1회만 실행된다. session.error(abort 포함)도 turn-end로 취급되어 그 다음 busy에서 clear-log 트리거 — MessageAbortedError 이후 재입력 시 자동 청소.permission.replied는 의도적으로 turn-end에서 제외 (mid-turn 재개이므로 현재 턴 로그 보존).
의도된 트레이드오프
cmux clear-log CLI는 --source 필터를 지원하지 않는다. 즉 호출 시 해당 workspace 내 모든 source(다른 cmux 플러그인 포함)의 로그가 함께 지워진다. 다른 workspace는 영향 없음. 사용자가 원래 명시한 "정상 상태로 돌아왔을 때 에러가 사라지는 것" UX를 충족시키기 위한 의식적 선택이며, .nexus/memory/empirical-cmux-log-turn-reset.md에 근거와 anti-patterns 기록.
opt-out
OPENCODE_NEXUS_CMUX=0 또는 CMUX_WORKSPACE_ID 미설정 시 cmux 호출 자체가 일어나지 않음(clear-log 포함). 기존 동작과 동일.
install / CLI UX 영향
없음. config surface·hook signature·CLI argv 전부 불변.
Breaking change
없음. 기존 설치본에서 opencode-nexus install 또는 글로벌 업데이트 후 OpenCode 재시작만 하면 반영된다.
검증
bun run checkPASSbun run test:e2ePASS — 기존 cmux-a~s 시나리오 + 신규 cmux-t/u/v/w 4개 모두 통과npm pack --dry-run— 27 files, 0.16.4, 74.3 kB- 임시 prefix 글로벌 설치 후 MCP handshake PASS (
serverInfo: nexus-core 0.20.0수신) - 임시 디렉터리 install → uninstall --force 후
opencode.json/.opencode/모두 정상 제거
신규 e2e 회귀 시나리오
- cmux-t: error → busy → clear-log + Running set-status
- cmux-u: 연속 busy 5회 → clear-log 정확히 1회 (dedup)
- cmux-v: MessageAbortedError abort → busy → clear-log (abort도 turn-end)
- cmux-w: 비활성 모드 및 non-root 세션에서 clear-log 미호출 (negative regression)
관련 문서 / 메모리
CHANGELOG.md[0.16.4].nexus/context/releasing.md§5-5-1/§5-5-2 신규 bullet.nexus/memory/empirical-cmux-log-turn-reset.md(신규).nexus/memory/empirical-cmux-pill-clear-paths.md(cross-reference 추가)