projmux 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/agent-workflow.md +2 -2
- package/docs/keybindings.md +29 -16
- package/package.json +5 -5
package/docs/agent-workflow.md
CHANGED
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
- `make test` also covers Codex rollout rate-limit window classification by `window_minutes`: old-schema primary 5-hour plus secondary weekly snapshots, new-schema primary weekly plus null secondary behavior, unknown-window skipping, and golden snapshot output for both rollout schemas.
|
|
44
44
|
- `make test` also covers AI semantic badge renderer aggregation for window-list, sidebar rows, switch window tabs, popup pane summaries, and pane-border topic badges using prompt-required > response-complete > in-progress priority while preserving blank no-state lanes, response-complete live badge consume on attention clear without idling action-required/progress badges, plus Settings > Appearance AI badge style selection for dot/emoji/off pane-border, Alt-1 sidebar window/preview tabs, and tmux window-status compatibility with dot as the persisted/config fallback.
|
|
45
45
|
- `make test` also covers AI semantic badge Phase 3 theme-role hardening: `@projmux_ai_badge_kind` storage values and aggregate priority stay unchanged, `minimal` remains a read-time alias for the `off` badge style, progress/success/action-required badge roles stay distinct, permission/input status badges do not use critical red, and critical notify queue severity does not drive live AI status badge colors or desktop notification urgency.
|
|
46
|
-
- `make test` also covers keybinding surface tier catalog rules, action-centered `keymap.toml` `keys = [...]` multi-alias parsing/writing, quoted internal `Surface:Action` tables, legacy popup action ID aliases, canonical popup toggle names, AI split popup-vs-direct action labels, generated tmux config multi-alias rendering, global/direct conflict detection, surface-scoped native picker command conflict detection, Settings Keybindings list/search/detail surface-aware picker-local labels, compact action-list state copy, flat Keys list/action detail rows, key detail remove/test rows, Add key
|
|
46
|
+
- `make test` also covers keybinding surface tier catalog rules, action-centered `keymap.toml` `keys = [...]` multi-alias parsing/writing, quoted internal `Surface:Action` tables, legacy popup action ID aliases, canonical popup toggle names, AI split popup-vs-direct action labels, generated tmux config multi-alias rendering, global/direct conflict detection, surface-scoped native picker command conflict detection, Settings Keybindings list/search/detail surface-aware picker-local labels, compact action-list state copy, flat Keys list/action detail rows, key detail remove/test rows, capture-unavailable Add key direct recorder routing with Advanced typed entry retained on Action detail, recorder Recording/Staged/Confirmed transitions, empty Enter no-op, Esc cancellation, staged candidate replacement, native byte-stream normalization/confirmation/conflict recovery, and one-reader/no-event-leak lifecycle, collapsed Troubleshooting entry copy, Settings delivery diagnostics that split logical key/raw bytes/tmux received key while distinguishing missing, ambiguous, adapter-needed, and delivered states, safe direct key pool and risky/reserved diagnostic-only copy, Projmux-owned Ghostty/Windows Terminal advanced delivery copy, raw escape/CSI-u/xterm modified/UserKey/UserSequence rejection from primary keymap storage, Labs compatibility redirect to the Keybindings root, existing macOS capture/add-key flows, unsafe raw capture, reset behavior, stale guide docs guards, and welcome/runtime footer copy that avoids hardcoded launch-key guides.
|
|
47
47
|
- Darwin native-key focused coverage includes portable physical chord parsing for Alt/Option, Control, Control-Option, Shift, letters/digits/navigation/function keys, `darwin && cgo` synthetic event-to-canonical-chord mapping for Option, Control, shifted letters, function keys, and arrows with unmatched/plain event pass-through, shared `keymap.toml` custom-action loading (including `M-a`), focused tmux client discovery, canonical `send-keys -K -c` dispatch through the existing root key table, native Settings Add key capture winning over terminal text encoding, default-on shell startup, `PROJMUX_NATIVE_KEYS=0`/`false` and Settings `[ui].native_keys = false` broker opt-out gates, broker direct no-op behavior, one-time pre-permission consent guidance, and an explicit Linux/Windows/no-CGO shell startup no-op boundary.
|
|
48
48
|
- `make test` covers the default picker key ownership across catalog, generated tmux config, terminal adapters, setup probes, and native popup close hints: `Alt-4` opens AI Resume as a guaranteed launch default, while `Alt-7` opens the AI split picker as its editable default.
|
|
49
49
|
- `make test` also covers welcome revisit policy: legacy welcome state remains readable without suppressing shell entry, Enter continues without storing release skip, `s` stores an update skip for the current latest tag when an update is available, source installs show disabled Upgrade guidance, stale update cache refresh is best-effort, Settings > About > Welcome opens a Settings-native viewer without pending state, and shell prompt display does not schedule a redundant attach popup.
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
- Shell focused unit coverage includes native Windows and explicit `PROJMUX_MUX_BACKEND=psmux` `projmux.exe shell` routing to `psmux -L projmux -f <generated config> new-session -A -s <session> [-c <cwd>]`, separate minimal psmux config generation with PowerShell-rendered callbacks, minimal psmux project-switch keybinding generation with psmux/native-picker env forcing, native line-mode fallback, explicit PowerShell `display-popup -E powershell -NoProfile -Command <script>` command tail, left-anchored sidebar-like popup geometry, explicit tmux override on Windows, and unchanged tmux/POSIX shell routing.
|
|
106
106
|
- `make test-integration`: Docker-backed Linux integration smoke with real `tmux`, `git`, and `stty`; covers `doctor`, tmux config print/install/apply, and notify queue CRUD against isolated HOME/XDG paths.
|
|
107
107
|
- `make test-install-smoke`: Docker-backed source install smoke; covers `make install`, atomic binary replacement, `tmux apply` against a live `projmux` socket, and post-install notify queue initialization.
|
|
108
|
-
- `make test-e2e`: Docker-backed real-tmux workflow smoke for session/pane setup, app config sourcing, reply-state notify reconciliation, focus notify fallback,
|
|
108
|
+
- `make test-e2e`: Docker-backed real-tmux workflow smoke for session/pane setup, app config sourcing, reply-state notify reconciliation, focus notify fallback, status notify rendering with contextual project/state/agent badges, and an isolated attached-client `display-popup` Settings recorder flow that verifies staged-before-write Enter confirmation plus Esc cancellation against a temporary HOME/keymap. Host-only terminal, WSL, macOS, and GUI notification behavior remains outside Docker; see [docs/testing.md](testing.md).
|
|
109
109
|
|
|
110
110
|
## When To Update This List
|
|
111
111
|
- A feature moves between unit, integration, and e2e coverage levels.
|
package/docs/keybindings.md
CHANGED
|
@@ -102,11 +102,12 @@ and function keys. Command/Super is intentionally not part of this portable
|
|
|
102
102
|
tier. Picker-local unmodified commands continue through the picker input path;
|
|
103
103
|
the native adapter owns action-level no-prefix bindings only.
|
|
104
104
|
|
|
105
|
-
Settings > Keybindings > Add key
|
|
106
|
-
the existing controlling-TTY capture.
|
|
107
|
-
new physical Option, Control, Control-Option, or Shift-modified chord
|
|
108
|
-
the terminal turns it into text; ordinary keys still use the portable
|
|
109
|
-
path.
|
|
105
|
+
On Darwin, Settings > Keybindings > Add key keeps racing native modified-key
|
|
106
|
+
capture against the existing controlling-TTY capture. This lets Press a key
|
|
107
|
+
store a new physical Option, Control, Control-Option, or Shift-modified chord
|
|
108
|
+
before the terminal turns it into text; ordinary keys still use the portable
|
|
109
|
+
TTY path. The Darwin transport lifecycle, Accessibility policy, and event
|
|
110
|
+
mapping are unchanged by the Linux/WSL recorder described below.
|
|
110
111
|
|
|
111
112
|
## Discoverable Actions
|
|
112
113
|
|
|
@@ -119,18 +120,27 @@ transport policy toggle followed by the action list with a key summary and
|
|
|
119
120
|
state. The key summary uses the first key plus `+N`, or `Not bound` when no key
|
|
120
121
|
is active. State vocabulary is limited to Default, Custom, Available, and
|
|
121
122
|
Unbound. Each action detail shows the action label, state, a flat Keys list
|
|
122
|
-
with `+ Add key`, Options, and a collapsed
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
123
|
+
with `+ Add key`, Options, and a collapsed Troubleshooting row. Key rows open
|
|
124
|
+
key detail for Remove key and Test key. In a Linux/WSL tmux popup, `+ Add key`
|
|
125
|
+
enters a purpose-built recorder immediately: Recording waits for one chord,
|
|
126
|
+
Staged previews its normalized tmux key name without writing, Enter saves and
|
|
127
|
+
applies, and Esc discards it. Another chord replaces the staged candidate.
|
|
128
|
+
There is no Back row, search prompt, or result count in recorder mode. Plain
|
|
129
|
+
Enter and plain Escape are recorder controls, not candidates; modified Enter or
|
|
130
|
+
Escape are accepted only when the native picker can decode them to a stable
|
|
131
|
+
modified key name. Conflict and invalid-key feedback remains in the recorder so
|
|
132
|
+
the user can choose another chord before any write.
|
|
133
|
+
|
|
134
|
+
Advanced typed entry remains available from Action detail for literal
|
|
135
|
+
`Enter`/`Escape`, nonstandard tmux key names, the safe direct key pool,
|
|
136
|
+
risky/reserved key copy, and raw diagnostics. Advanced delivery is still owned
|
|
137
|
+
by the selected Projmux action. The native macOS app-socket adapter reads the
|
|
138
|
+
same safe chords directly; supported Ghostty and Windows Terminal mappings for
|
|
129
139
|
other paths are previewed/applied through `projmux init`, not by storing raw
|
|
130
140
|
sequences in the primary keymap. Options covers unbinding the action and
|
|
131
141
|
reset/use-default flows. Diagnostic/probe/init workflows are not first-class
|
|
132
|
-
Settings tabs; use `projmux setup` and, where the native adapter does not
|
|
133
|
-
|
|
142
|
+
Settings tabs; use `projmux setup` and, where the native adapter does not apply,
|
|
143
|
+
`projmux init` from the terminal when key delivery needs remediation.
|
|
134
144
|
|
|
135
145
|
Optional direct keys can be added for actions such as:
|
|
136
146
|
|
|
@@ -201,8 +211,11 @@ uppercase `A`, distinct from `NotifySidebar:Ack` on lowercase `a`.
|
|
|
201
211
|
Runtime picker footers render key guides from the merged keymap, using the
|
|
202
212
|
first active key as the representative key.
|
|
203
213
|
|
|
204
|
-
In Settings > Keybindings, **Add key**
|
|
205
|
-
`keys = [...]` list
|
|
214
|
+
In Settings > Keybindings, **Add key** stages one normalized chord and appends
|
|
215
|
+
it to the selected action's `keys = [...]` list only after Enter confirmation.
|
|
216
|
+
The recorder reuses the native picker's single input reader; it does not open a
|
|
217
|
+
second controlling-TTY reader or install a platform input hook. For catalog
|
|
218
|
+
popup toggle actions, confirmed keys are used both
|
|
206
219
|
by generated tmux open bindings and by popup-internal close bindings, so the
|
|
207
220
|
same key can close the corresponding already-open popup. This same-key close
|
|
208
221
|
behavior is only for actions cataloged as popup toggles, such as
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projmux",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "tmux project session manager",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/crevissepartners/projmux#readme",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
"package:npm:pack": "scripts/package-npm.sh --pack"
|
|
29
29
|
},
|
|
30
30
|
"optionalDependencies": {
|
|
31
|
-
"@projmux/linux-x64": "0.8.
|
|
32
|
-
"@projmux/linux-arm64": "0.8.
|
|
33
|
-
"@projmux/darwin-x64": "0.8.
|
|
34
|
-
"@projmux/darwin-arm64": "0.8.
|
|
31
|
+
"@projmux/linux-x64": "0.8.1",
|
|
32
|
+
"@projmux/linux-arm64": "0.8.1",
|
|
33
|
+
"@projmux/darwin-x64": "0.8.1",
|
|
34
|
+
"@projmux/darwin-arm64": "0.8.1"
|
|
35
35
|
}
|
|
36
36
|
}
|