projmux 0.7.1 → 0.7.3
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/README-ko.md +1 -0
- package/README.md +3 -1
- package/docs/agent-workflow.md +1 -1
- package/docs/ai-agent-shortcuts.md +30 -1
- package/docs/cli.md +38 -21
- package/docs/configuration.md +46 -0
- package/docs/hooks.md +5 -4
- package/docs/keybindings.md +3 -1
- package/docs/testing.md +1 -0
- package/docs/upgrading.md +22 -6
- package/docs/usage-tracking.md +6 -5
- package/package.json +5 -5
package/README-ko.md
CHANGED
|
@@ -66,6 +66,7 @@ projmux shell
|
|
|
66
66
|
- `Alt-4`: AI split picker.
|
|
67
67
|
- `Alt-5`: settings.
|
|
68
68
|
- `Alt-6`: project switcher popup.
|
|
69
|
+
- `Alt-7`: AI resume session picker.
|
|
69
70
|
|
|
70
71
|
전체 key map은 [Terminal Keybindings](docs/keybindings.md)를 참고하세요. 키가
|
|
71
72
|
동작하지 않으면 tmux 밖에서 `projmux setup`을 실행한 뒤,
|
package/README.md
CHANGED
|
@@ -74,8 +74,10 @@ Inside the app:
|
|
|
74
74
|
- `Alt-3` opens Recent Windows.
|
|
75
75
|
- `Alt-4` opens the AI split picker.
|
|
76
76
|
- `Alt-5` opens settings.
|
|
77
|
+
- `Alt-7` opens the AI resume session picker.
|
|
77
78
|
|
|
78
|
-
|
|
79
|
+
The `Alt-1` through `Alt-5` launch keys are the guaranteed zero-config
|
|
80
|
+
defaults. Add more
|
|
79
81
|
aliases in Settings > Keybindings or `~/.config/projmux/keymap.toml`. If a key
|
|
80
82
|
does not fire, run `projmux setup` outside tmux, then use
|
|
81
83
|
`projmux init [terminal] --apply` for supported terminal delivery fallbacks.
|
package/docs/agent-workflow.md
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
- `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 default press-key flow with Advanced typed entry, 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, capture/add-key flows, unsafe raw capture, reset behavior, stale guide docs guards, and welcome/runtime footer copy that avoids hardcoded launch-key guides.
|
|
41
41
|
- `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.
|
|
42
42
|
- `make test` also covers transport-dependent app tmux defaults for pane/window navigation (`M-Left`/`M-Right`/`M-Up`/`M-Down` and `M-S-Left`/`M-S-Right`) while keeping visible default chords, allowing additive safe plain aliases that do not store or remove the transport defaults, and no UserKey/CSI-u generated fallback.
|
|
43
|
-
- `make test` also covers direct `projmux ai split --agent <claude|codex|antigravity|shell|selective>` launches, enabled-agent gating for disabled direct launches and disabled saved defaults, `--force-agent` as an explicit direct CLI-only override, selective picker filtering with all-disabled shell fallback guidance, config-default preservation, extra args appended to resolved agent executables, managed pane metadata, title watcher startup, layout application, plain shell split behavior, selective picker delegation, invalid direct-agent usage errors, and regressions that direct concrete-agent and saved-default splits create a new pane without probing existing AI pane metadata or selecting an existing pane, including when launched from the current AI pane.
|
|
43
|
+
- `make test` also covers direct `projmux ai split --agent <claude|codex|antigravity|shell|selective|resume>` launches, enabled-agent gating for disabled direct launches and disabled saved defaults, `--force-agent` as an explicit direct CLI-only override, selective picker filtering with all-disabled shell fallback guidance, resume picker routing/New delegation/zero-session fallback/Phase 1 fresh fallback contract, config-default preservation, extra args appended to resolved agent executables, managed pane metadata, title watcher startup, layout application, plain shell split behavior, selective picker delegation, invalid direct-agent usage errors, and regressions that direct concrete-agent and saved-default splits create a new pane without probing existing AI pane metadata or selecting an existing pane, including when launched from the current AI pane.
|
|
44
44
|
- `make test` also covers Settings IA regression guards for `send-noti` visibility in Hooks, no nested Project recipe inside Hooks, Project recipe/AI/Labs view-first detail rows, Appearance Path/Git/Notify icon direct off/symbol/emoji preview selection with no Change page, Notifications root/Desktop notifications/Delivery sources relocation, localized Korean Desktop notifications root/detail chrome without visible English residue, Delivery sources command-row clipboard copy, and Labs Project Hooks overview-first rows.
|
|
45
45
|
- `make test` also covers AI desktop notification dedupe precedence (env override > Settings saved value > default), Desktop notifications mode persistence through `desktop-notify-mode`, saved-config precedence over live tmux options, `projmux tmux apply` regeneration of `@projmux_desktop_notify_mode`, configured dedupe-window collapse/send behavior, Settings > Notifications AI dedupe preset/custom rows, explicit notify focus consume rules for selected critical rows and older same-pane non-critical AI cleanup, preservation of critical/permission/stop-failure/external/git/k8s rows during bulk cleanup, OS Toast click-to-focus queue consume, WSL Toast protocol handler hidden-launcher registration with `wsl.exe --exec` URI forwarding, and attention clear paths that do not ack the queue.
|
|
46
46
|
- `make test` also covers AI hook runtime action precedence over catalog defaults, runtime quiet for known Codex notify events, runtime notify for known Claude quiet events, generic in-app-only notify rows for known Codex hook events without specialized handlers, suppression of desktop notification and `send-noti` dispatch on that generic path, separation of runtime hook action from catalog install events, Settings > Notifications hook quiet policy display/write behavior without external install/remove execution, hook desktop notification payload parity with the in-app queue text across the shared OS notification payload, normal/transient OS urgency and expiration for critical AI queue rows, and dormant title/capture fallback gating once a pane is hook-active.
|
|
@@ -66,10 +66,13 @@ without a tail:
|
|
|
66
66
|
```sh
|
|
67
67
|
projmux ai split --agent shell right
|
|
68
68
|
projmux ai split --agent selective down
|
|
69
|
+
projmux ai split --agent resume right
|
|
69
70
|
```
|
|
70
71
|
|
|
71
72
|
`shell` opens a plain shell split. `selective` opens the existing picker, where
|
|
72
|
-
the user chooses the launch mode interactively.
|
|
73
|
+
the user chooses the launch mode interactively. `resume` opens the current
|
|
74
|
+
project's resume-session picker; when no sessions exist it delegates to the
|
|
75
|
+
same selective picker.
|
|
73
76
|
|
|
74
77
|
## Naming Pattern
|
|
75
78
|
|
|
@@ -88,6 +91,8 @@ Concrete examples:
|
|
|
88
91
|
```text
|
|
89
92
|
$projmux-codex-right
|
|
90
93
|
$projmux-claude-down
|
|
94
|
+
$projmux-resume-right
|
|
95
|
+
$projmux-resume-down
|
|
91
96
|
```
|
|
92
97
|
|
|
93
98
|
For Claude-style slash-command surfaces, names can follow:
|
|
@@ -102,6 +107,8 @@ Concrete examples:
|
|
|
102
107
|
```text
|
|
103
108
|
/projmux:codex-right
|
|
104
109
|
/projmux:claude-down
|
|
110
|
+
/projmux:resume-right
|
|
111
|
+
/projmux:resume-down
|
|
105
112
|
```
|
|
106
113
|
|
|
107
114
|
The same pattern also works for editor commands, launcher actions, shell
|
|
@@ -120,6 +127,7 @@ For Codex-style skill surfaces:
|
|
|
120
127
|
```text
|
|
121
128
|
$projmux-codex → projmux ai split --agent codex right
|
|
122
129
|
$projmux-claude → projmux ai split --agent claude right
|
|
130
|
+
$projmux-resume → projmux ai split --agent resume right
|
|
123
131
|
```
|
|
124
132
|
|
|
125
133
|
For Claude-style slash-command surfaces:
|
|
@@ -127,6 +135,7 @@ For Claude-style slash-command surfaces:
|
|
|
127
135
|
```text
|
|
128
136
|
/projmux:codex → projmux ai split --agent codex right
|
|
129
137
|
/projmux:claude → projmux ai split --agent claude right
|
|
138
|
+
/projmux:resume → projmux ai split --agent resume right
|
|
130
139
|
```
|
|
131
140
|
|
|
132
141
|
Register the bare name as a thin alias of the `*-right` shortcut so that the
|
|
@@ -189,6 +198,26 @@ projmux ai split --agent claude down -- <agent flags>
|
|
|
189
198
|
```
|
|
190
199
|
````
|
|
191
200
|
|
|
201
|
+
Resume picker examples:
|
|
202
|
+
|
|
203
|
+
```text
|
|
204
|
+
~/.codex/skills/projmux-resume-right/SKILL.md
|
|
205
|
+
~/.codex/skills/projmux-resume-down/SKILL.md
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
````markdown
|
|
209
|
+
---
|
|
210
|
+
name: projmux-resume-right
|
|
211
|
+
description: Open a projmux-managed AI resume-session picker to the right.
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
Run this command:
|
|
215
|
+
|
|
216
|
+
```sh
|
|
217
|
+
projmux ai split --agent resume right
|
|
218
|
+
```
|
|
219
|
+
````
|
|
220
|
+
|
|
192
221
|
If your tool stores skills as JSON, TOML, or another format, keep the same
|
|
193
222
|
fields conceptually:
|
|
194
223
|
|
package/docs/cli.md
CHANGED
|
@@ -259,10 +259,12 @@ Codex shares the global `30s`). `--json` emits the snapshot array; when
|
|
|
259
259
|
backoff is active the wrapper `{snapshots, backoff}` object is emitted
|
|
260
260
|
instead.
|
|
261
261
|
|
|
262
|
-
Antigravity has no
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
262
|
+
Antigravity has no 5-hour/weekly quota contract, so it is surfaced
|
|
263
|
+
`context-window-only`: the adapter emits a single `context` window row
|
|
264
|
+
(context-window fullness, no `RESETS_AT`) sourced from the latest
|
|
265
|
+
statusline `context_window` seen via hook ingest. `--model antigravity`
|
|
266
|
+
renders that row; in the HUD it shows as `Antigravity ctx [bar] N%`
|
|
267
|
+
alongside the Claude/Codex quota bars.
|
|
266
268
|
|
|
267
269
|
## status
|
|
268
270
|
|
|
@@ -340,8 +342,8 @@ supplied window.
|
|
|
340
342
|
## ai
|
|
341
343
|
|
|
342
344
|
```
|
|
343
|
-
projmux ai split [--agent <claude|codex|antigravity|shell|selective>] [--force-agent] [right|down] [-- <extra-arg>...]
|
|
344
|
-
projmux ai picker --inside <right|down>
|
|
345
|
+
projmux ai split [--agent <claude|codex|antigravity|shell|selective|resume>] [--force-agent] [right|down] [-- <extra-arg>...]
|
|
346
|
+
projmux ai picker [--inside] [--shell] [--resume] <right|down>
|
|
345
347
|
projmux ai settings
|
|
346
348
|
projmux ai status set <thinking|waiting|idle> [--pane <id>]
|
|
347
349
|
projmux ai notify <reset|notify> [--pane <id>]
|
|
@@ -372,7 +374,8 @@ can still render a non-red action-required status badge.
|
|
|
372
374
|
|
|
373
375
|
`ai split right|down` uses the configured default split mode. Add
|
|
374
376
|
`--agent claude`, `--agent codex`, `--agent antigravity`, `--agent shell`, or
|
|
375
|
-
`--agent selective` for a one-shot launch without changing that default.
|
|
377
|
+
`--agent selective` for a one-shot launch without changing that default. Add
|
|
378
|
+
`--agent resume` to open the current project's AI resume-session picker.
|
|
376
379
|
Concrete `--agent claude|codex|antigravity` invocations create a new managed
|
|
377
380
|
agent pane every time; existing managed AI panes in the same project/session are
|
|
378
381
|
not selected or reused.
|
|
@@ -381,6 +384,11 @@ existing plain shell split. Arguments after `--` are extra arguments appended to
|
|
|
381
384
|
the resolved `claude`, `codex`, or `agy` executable inside the managed wrapper;
|
|
382
385
|
projmux still sets the context directory, tmux title, AI pane metadata, title
|
|
383
386
|
watcher, and split layout.
|
|
387
|
+
The resume picker lists the newest deduplicated Claude/Codex resume sessions
|
|
388
|
+
for the current project, with `[+ New Session]` pinned first. If there are no
|
|
389
|
+
resume sessions it goes straight to the existing selective picker. Phase 1
|
|
390
|
+
captures the selected `(agent, resume id)` contract but still launches a fresh
|
|
391
|
+
split; actual `claude --resume` / `codex resume` wiring is reserved for Phase 2.
|
|
384
392
|
Settings > AI Settings > Enabled agents controls Claude/Codex/Antigravity launch
|
|
385
393
|
visibility. Disabled agents are hidden from the selective picker and from the
|
|
386
394
|
default-mode picker. A saved default that later becomes disabled fails clearly
|
|
@@ -467,9 +475,10 @@ Antigravity notify metadata uses `agent=antigravity`. Phase 3 session-state
|
|
|
467
475
|
restore is included: Antigravity ingest stores `conversationId` as pane thread
|
|
468
476
|
metadata for matching and as session-state resume metadata. Restore uses
|
|
469
477
|
`agy --conversation <uuid>` when that id is present and UUID-shaped; otherwise
|
|
470
|
-
session-state preview/doctor render `resume unavailable`.
|
|
471
|
-
|
|
472
|
-
`context-window-only`
|
|
478
|
+
session-state preview/doctor render `resume unavailable`. The statusline
|
|
479
|
+
`context_window` value is persisted on ingest and surfaced by the usage HUD
|
|
480
|
+
as a `context-window-only` row (Antigravity has no 5h/weekly quota contract).
|
|
481
|
+
Transcript contents are not read.
|
|
473
482
|
|
|
474
483
|
`ingest bell --pane <pane_id>` is the narrow tmux-bell fallback ingest path.
|
|
475
484
|
It does not require the pane to be AI-managed. Projmux resolves session,
|
|
@@ -657,7 +666,8 @@ Helpers tmux's keybindings and the install pipeline call into. Modes
|
|
|
657
666
|
accepted by `popup-toggle` mirror the historical sessionizer surface:
|
|
658
667
|
`session-popup`, `sessionizer`, `sessionizer-sidebar`,
|
|
659
668
|
`notify-sidebar`, `recent-windows`, `ai-split-picker-right`,
|
|
660
|
-
`ai-split-picker-down`, `ai-split-
|
|
669
|
+
`ai-split-picker-down`, `ai-split-resume-right`, `ai-split-resume-down`,
|
|
670
|
+
`ai-split-settings`.
|
|
661
671
|
`apply` regenerates the app tmux config and reloads the live `-L projmux`
|
|
662
672
|
server without restarting it. `make install` and `projmux upgrade` invoke it
|
|
663
673
|
after replacing the binary. Settings > Keybindings normally runs the same
|
|
@@ -695,18 +705,25 @@ fresh cached update is available, the shell welcome uses Enter=Continue,
|
|
|
695
705
|
`${XDG_CACHE_HOME:-~/.cache}/projmux/update-skip.json` and suppresses that tag
|
|
696
706
|
until a newer latest release appears.
|
|
697
707
|
|
|
698
|
-
Installer detection honors
|
|
699
|
-
`PROJMUX_INSTALLER=npm|go|github-release|source
|
|
700
|
-
|
|
708
|
+
Installer detection honors an explicit
|
|
709
|
+
`PROJMUX_INSTALLER=npm|go|github-release|source` first. When it is unset,
|
|
710
|
+
detection falls back to inspecting the running binary: an npm install tree
|
|
711
|
+
(`node_modules/@projmux/...`) is reported as `npm`, a `go install …@latest`
|
|
712
|
+
binary in `$GOBIN`/`$GOPATH/bin`/`~/go/bin` as `go`, and a local `go build`
|
|
713
|
+
(`make install`) — which reports a `(devel)` main-module version — as `source`.
|
|
714
|
+
`github-release` installs are indistinguishable from a hand-placed binary and
|
|
715
|
+
still require an explicit `PROJMUX_INSTALLER=github-release`. Anything else is
|
|
716
|
+
reported as `unknown` with guidance.
|
|
701
717
|
`apply` is installer-aware and only runs after explicit user selection.
|
|
702
|
-
For npm installs, it runs `npm
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
`
|
|
718
|
+
For npm installs, it runs `npm install -g projmux@latest` (which reliably
|
|
719
|
+
crosses minor/major versions where `npm update -g` does not, and re-resolves
|
|
720
|
+
the per-platform optional dependency) and then `projmux tmux apply` unless
|
|
721
|
+
`--no-apply` is set. For Go installs, it delegates to the existing atomic
|
|
722
|
+
`projmux upgrade` flow. For `github-release` installs, it downloads the latest
|
|
723
|
+
matching `projmux_<version>_<goos>_<goarch>.tar.gz` release asset, extracts the
|
|
707
724
|
binary, atomically replaces the current executable, then applies tmux
|
|
708
725
|
configuration unless `--no-apply` is set. `source` installs report an
|
|
709
|
-
actionable error
|
|
726
|
+
actionable error to update the checkout with `git pull --ff-only && make install`.
|
|
710
727
|
|
|
711
728
|
## upgrade
|
|
712
729
|
|
|
@@ -719,7 +736,7 @@ projmux upgrade [--ref @latest|@<tag>|@<branch>]
|
|
|
719
736
|
runs `projmux tmux apply` (skipped with `--no-apply`). Reads
|
|
720
737
|
`PROJMUX_PROJDIR` from the calling shell and memoizes the primary entry
|
|
721
738
|
to `~/.config/projmux/projdir`. npm-installed binaries reject this
|
|
722
|
-
command; use `projmux update apply` or `npm
|
|
739
|
+
command; use `projmux update apply` or `npm install -g projmux@latest` for npm
|
|
723
740
|
installs.
|
|
724
741
|
|
|
725
742
|
## welcome
|
package/docs/configuration.md
CHANGED
|
@@ -328,6 +328,50 @@ warning with the unsupported value and source.
|
|
|
328
328
|
Project-local locale override is not part of the runtime policy. Locale is a
|
|
329
329
|
user/global preference in this release.
|
|
330
330
|
|
|
331
|
+
## AI Resume Picker
|
|
332
|
+
|
|
333
|
+
The AI resume picker (`projmux ai split --agent resume`) lists the most recent
|
|
334
|
+
deduplicated Claude/Codex resume sessions. The number of rows it shows and how
|
|
335
|
+
far below the current directory it scans are both configurable; the defaults are
|
|
336
|
+
30 rows and depth 0 (the current directory only).
|
|
337
|
+
|
|
338
|
+
Preferred interactive path:
|
|
339
|
+
|
|
340
|
+
- `Settings > AI Settings > Resume picker`
|
|
341
|
+
|
|
342
|
+
Config paths (global and project both honored):
|
|
343
|
+
|
|
344
|
+
```text
|
|
345
|
+
~/.config/projmux/config.toml # global
|
|
346
|
+
<project>/.projmux/config.toml # project
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
Schema:
|
|
350
|
+
|
|
351
|
+
```toml
|
|
352
|
+
[ai]
|
|
353
|
+
resume_picker_limit = 30 # 1-100; how many recent sessions the picker lists
|
|
354
|
+
resume_scan_depth = 0 # 0-8; include sessions started in cwd child dirs
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
Resolution priority (each key resolves independently) is:
|
|
358
|
+
|
|
359
|
+
1. `PROJMUX_AI_RESUME_PICKER_LIMIT` / `PROJMUX_AI_RESUME_SCAN_DEPTH`
|
|
360
|
+
2. project `[ai]` key
|
|
361
|
+
3. global/user `[ai]` key
|
|
362
|
+
4. built-in default (`30` rows, depth `0`)
|
|
363
|
+
|
|
364
|
+
`resume_picker_limit` is clamped to `1`-`100`; a missing or non-positive value
|
|
365
|
+
falls back to the default. `resume_scan_depth` is clamped to `0`-`8`: depth `0`
|
|
366
|
+
lists only sessions whose recorded working directory matches the current one
|
|
367
|
+
(the historical behavior), while depth `N` also lists sessions started up to `N`
|
|
368
|
+
levels below it — useful from a monorepo or parent directory. The match is a
|
|
369
|
+
path-tree filter on each session's recorded cwd, so parent and sibling
|
|
370
|
+
directories are never included. At depth `>0` the picker adds a relative-cwd
|
|
371
|
+
column (`./`, `./web`, `./api`) so child-directory sessions are easy to tell
|
|
372
|
+
apart. A missing or zero depth is identical to the historical behavior. Settings
|
|
373
|
+
edits write the global config.
|
|
374
|
+
|
|
331
375
|
## Environment Variables
|
|
332
376
|
|
|
333
377
|
| Variable | Purpose |
|
|
@@ -337,6 +381,8 @@ user/global preference in this release.
|
|
|
337
381
|
| `TMUX_SESSIONIZER_ROOTS` | Legacy alias still honored at runtime for managed roots. |
|
|
338
382
|
| `PROJMUX_LOCALE` | UI locale override. `auto` resumes detection; `en-US` and `ko-KR` pin supported locales. Unsupported tags fall back to `en-US` and surface a Settings warning. |
|
|
339
383
|
| `PROJMUX_NOTIFY_HOOK` | External executable that receives AI desktop notifications instead of the built-in Linux/WSL sender. Separate from declarative `[hooks.send-noti]`. |
|
|
384
|
+
| `PROJMUX_AI_RESUME_PICKER_LIMIT` | Overrides the AI resume picker row count (`[ai] resume_picker_limit`). Clamped to 1-100; takes priority over project and global config. |
|
|
385
|
+
| `PROJMUX_AI_RESUME_SCAN_DEPTH` | Overrides the AI resume picker cwd-tree scan depth (`[ai] resume_scan_depth`). Clamped to 0-8; takes priority over project and global config. Depth 0 keeps the exact-cwd behavior. |
|
|
340
386
|
| `PROJMUX_NOTIFY_HOOK_DEPTH` | Internal recursion guard for `send-noti` hooks. Depth `>= 1` suppresses nested hook dispatch while still allowing the queue write itself. |
|
|
341
387
|
| `PROJMUX_NOTIFY_EXPIRE_MS` | AI desktop notification expiration in milliseconds. Defaults to `5000`; unset, zero, negative, and non-numeric values fall back to the default. |
|
|
342
388
|
| `PROJMUX_DESKTOP_NOTIFY_MODE` | OS desktop notification mode override. `none` / `notify` / `raise` (case insensitive). When set, this takes priority over every other resolution rung. The in-app notify queue is not affected. |
|
package/docs/hooks.md
CHANGED
|
@@ -634,10 +634,11 @@ include `conversationId`/`conversation_id`, `cwd`, `workspace.path`,
|
|
|
634
634
|
Antigravity ingest uses `conversationId` as pane thread metadata for matching
|
|
635
635
|
and as session-state resume metadata. Session restore uses
|
|
636
636
|
`agy --conversation <uuid>` only when that id is present and UUID-shaped;
|
|
637
|
-
otherwise preview and doctor render `resume unavailable`.
|
|
638
|
-
|
|
639
|
-
`context-window-only`
|
|
640
|
-
|
|
637
|
+
otherwise preview and doctor render `resume unavailable`. The statusline
|
|
638
|
+
`context_window` percentage is persisted to the usage state dir on ingest so
|
|
639
|
+
the usage HUD can surface it as a `context-window-only` row — Antigravity has
|
|
640
|
+
no 5-hour/weekly quota contract, so no quota bars are emitted. Raw payloads or
|
|
641
|
+
transcript contents are not stored.
|
|
641
642
|
|
|
642
643
|
## Ingest Debug Log
|
|
643
644
|
|
package/docs/keybindings.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
projmux is keyboard-driven, but the guaranteed launch contract is small:
|
|
4
4
|
fresh installs bind `Alt-1` through `Alt-5` as plain Meta sequences
|
|
5
|
-
(`M-1`..`M-5`, bytes `\x1b1`..`\x1b5`).
|
|
5
|
+
(`M-1`..`M-5`, bytes `\x1b1`..`\x1b5`). The AI resume picker ships with an
|
|
6
|
+
editable `Alt-7` default. Other actions remain discoverable in
|
|
6
7
|
Settings > Keybindings. Transport-dependent actions keep their built-in
|
|
7
8
|
transport default key, and Settings can add separate safe tmux plain keys to
|
|
8
9
|
the same action. They are not installed as terminal-specific User-key
|
|
@@ -84,6 +85,7 @@ Optional direct keys can be added for actions such as:
|
|
|
84
85
|
| `RecentWindows:Open` | Recent windows queue across projects |
|
|
85
86
|
| `ProjectSwitcherToggle` | Project switcher popup |
|
|
86
87
|
| `AISplitPickerToggle` | AI split popup picker; pressing again closes the picker popup |
|
|
88
|
+
| `AIResumePickerToggle` | AI resume session picker; default `Alt-7`; pressing again closes the picker popup |
|
|
87
89
|
| `ai-split-right` | Open a new direct AI split to the right |
|
|
88
90
|
| `ai-split-down` | Open a new direct AI split below |
|
|
89
91
|
| `new-window` | New tmux window in the current pane directory |
|
package/docs/testing.md
CHANGED
|
@@ -97,6 +97,7 @@ Observe:
|
|
|
97
97
|
- `Alt-3` opens Recent Windows.
|
|
98
98
|
- `Alt-4` opens the AI split picker.
|
|
99
99
|
- `Alt-5` opens Settings.
|
|
100
|
+
- `Alt-7` opens the AI resume session picker.
|
|
100
101
|
- Pressing the same launch key again closes the popup instead of typing escape
|
|
101
102
|
bytes into the shell or picker input.
|
|
102
103
|
|
package/docs/upgrading.md
CHANGED
|
@@ -25,10 +25,18 @@ projmux update apply
|
|
|
25
25
|
Use `--dry-run` to see the planned action and `--no-apply` to skip reloading
|
|
26
26
|
the live tmux config after the binary changes.
|
|
27
27
|
|
|
28
|
-
Shell Upgrade invokes only `projmux update apply
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
Shell Upgrade invokes only `projmux update apply`, then reports success or the
|
|
29
|
+
specific failure inline and continues into the shell either way (a failed
|
|
30
|
+
upgrade is never fatal to shell entry). Shell Skip until next stores the current
|
|
31
|
+
latest release tag in `update-skip.json`; the prompt appears again when the
|
|
32
|
+
cached latest tag changes. For `source` and unknown installer sources, Upgrade
|
|
33
|
+
prints guidance and continues shell entry without applying anything.
|
|
34
|
+
|
|
35
|
+
The installer is detected from an explicit `PROJMUX_INSTALLER` first, then
|
|
36
|
+
inferred from the running binary when unset (npm install tree → `npm`,
|
|
37
|
+
`go install …@latest` binary in `$GOBIN`/`$GOPATH/bin`/`~/go/bin` → `go`, a
|
|
38
|
+
local `go build`/`make install` `(devel)` binary → `source`). `github-release`
|
|
39
|
+
still requires an explicit `PROJMUX_INSTALLER=github-release`.
|
|
32
40
|
|
|
33
41
|
## Behavior Changes
|
|
34
42
|
|
|
@@ -118,12 +126,20 @@ npm install -g projmux
|
|
|
118
126
|
For npm-managed installs, `projmux update apply` runs:
|
|
119
127
|
|
|
120
128
|
```sh
|
|
121
|
-
npm
|
|
129
|
+
npm install -g projmux@latest
|
|
122
130
|
projmux tmux apply
|
|
123
131
|
```
|
|
124
132
|
|
|
133
|
+
`npm install -g projmux@latest` is used instead of `npm update -g projmux`
|
|
134
|
+
because `npm update -g` honors the installed semver range and frequently
|
|
135
|
+
refuses to move a global install across a newer minor/major release, leaving it
|
|
136
|
+
stuck on an old version. `install -g …@latest` always fetches the newest
|
|
137
|
+
published release and re-resolves the per-platform optional dependency.
|
|
138
|
+
|
|
125
139
|
The npm shim sets `PROJMUX_INSTALLER=npm` so projmux can detect this path
|
|
126
|
-
automatically.
|
|
140
|
+
automatically. Even when the shim is bypassed, projmux infers the npm install
|
|
141
|
+
from the binary path (`node_modules/@projmux/...`). You can also update manually
|
|
142
|
+
with `npm install -g projmux@latest`.
|
|
127
143
|
|
|
128
144
|
## Go Installs
|
|
129
145
|
|
package/docs/usage-tracking.md
CHANGED
|
@@ -122,11 +122,12 @@ claude is in backoff, try again in 30m (use --force to bypass)
|
|
|
122
122
|
|
|
123
123
|
When no AI agents are enabled, all-model table output contains no
|
|
124
124
|
provider rows and prints a short Settings hint. `--json` returns an
|
|
125
|
-
empty array. Explicit `--model claude
|
|
126
|
-
enabled-agent filter for read-only
|
|
127
|
-
the requested adapter.
|
|
128
|
-
|
|
129
|
-
|
|
125
|
+
empty array. Explicit `--model claude`, `--model codex` and
|
|
126
|
+
`--model antigravity` bypass the enabled-agent filter for read-only
|
|
127
|
+
inspection and collect/render only the requested adapter. Antigravity
|
|
128
|
+
exposes no 5h/weekly quota, so its adapter reports a single `context`
|
|
129
|
+
window row (context-window fullness, no `RESETS_AT`) sourced from the
|
|
130
|
+
latest statusline `context_window` observed via hook ingest.
|
|
130
131
|
|
|
131
132
|
### `projmux status usage`
|
|
132
133
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "projmux",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
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.7.
|
|
32
|
-
"@projmux/linux-arm64": "0.7.
|
|
33
|
-
"@projmux/darwin-x64": "0.7.
|
|
34
|
-
"@projmux/darwin-arm64": "0.7.
|
|
31
|
+
"@projmux/linux-x64": "0.7.3",
|
|
32
|
+
"@projmux/linux-arm64": "0.7.3",
|
|
33
|
+
"@projmux/darwin-x64": "0.7.3",
|
|
34
|
+
"@projmux/darwin-arm64": "0.7.3"
|
|
35
35
|
}
|
|
36
36
|
}
|