cmux-debugging
Installation
SKILL.md
cmux Debugging
Debug event log
Put debug event instrumentation (keys, mouse, focus, splits, tabs) in the unified DEBUG build log. This is not a requirement to log every new code path; most probes belong to a dogfood debug loop and are removed before merge.
tail -f "$(cat /tmp/cmux-last-debug-log-path 2>/dev/null || echo /tmp/cmux-debug.log)"
- Untagged Debug app logs to
/tmp/cmux-debug.log; tagged (./scripts/reload.sh --tag <tag>) to/tmp/cmux-debug-<tag>.log. reload.shwrites the current log path to/tmp/cmux-last-debug-log-pathand the selected dev CLI path to/tmp/cmux-last-cli-path, and points/tmp/cmux-cliand$HOME/.local/bin/cmux-devat that CLI.- Implementation:
Packages/macOS/CMUXDebugLog/Sources/CMUXDebugLog/DebugEventLog.swift. App shim:Sources/App/DebugLogging.swift. Both are#if DEBUG, so every call site must be wrapped in#if DEBUG/#endif. cmuxDebugLog("message")timestamps and appends in real time. A 500-entry ring buffer backs it;CMUXDebugLog.DebugEventLog.shared.dump()writes the full buffer to file.- Key events are logged in
AppDelegate.swift(monitor,performKeyEquivalent); mouse/UI events inline in views (ContentView,BrowserPanelView). - Stable event prefixes:
focus.panel,focus.bonsplit,focus.firstResponder,focus.moveFocus,tab.select,tab.close,tab.dragStart,tab.drop,pane.focus,pane.drop,divider.dragStart.