projmux 0.6.5 → 0.6.7
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 +23 -15
- package/docs/ai-agent-shortcuts.md +20 -1
- package/docs/cli.md +109 -44
- package/docs/configuration.md +71 -34
- package/docs/hooks.md +38 -1
- package/docs/install.md +8 -8
- package/docs/keybindings.md +36 -17
- package/docs/native-picker-parity.md +13 -7
- package/docs/notify-queue.md +45 -9
- package/docs/npm-distribution.md +5 -3
- package/docs/session-restore.md +8 -4
- package/docs/settings-ia.md +21 -8
- package/docs/statusbar.md +25 -2
- package/docs/testing.md +125 -0
- package/docs/theme-palette.md +13 -3
- package/docs/upgrading.md +10 -4
- package/docs/usage-tracking.md +42 -13
- package/package.json +7 -7
package/docs/agent-workflow.md
CHANGED
|
@@ -29,46 +29,54 @@
|
|
|
29
29
|
- `make fmt`: repository formatting for Go, shell snippets, and generated docs where applicable.
|
|
30
30
|
- `make fix`: safe automatic fixes such as `go fix` and repository-approved cleanup steps.
|
|
31
31
|
- `make npm-pack`: local npm binary package staging and `npm pack --dry-run` for the root package plus platform packages.
|
|
32
|
-
- `make test`: fast unit coverage for app-layer AI split native agent launch/selective popup-toggle/settings/status/notification parity including AI pane option metadata, watcher metadata bootstrap for existing panes, capture-backed reply detection, missing-pane watcher shutdown, armed focus-only reply badge clearing, busy attention preservation on focus clear, manual AI topic preservation while watcher status still updates, agent-labeled desktop notification message context with pane-title-first body text, global/project-local lifecycle hook dispatch for post-create/pre-create/post-attach/send-noti with project hook and `.projmux/config.toml` trust-store hashing plus env/settings kill-switch gating, declarative startup command and hook run coverage, `send-noti` stdin JSON delivery plus `PROJMUX_NOTIFY_*` env payload, notify queue write success/failure/depth-guard dispatch rules, notify/statusbar/sidebar origin-client focus routing, project config env/kube session environment application, Settings project config env/kube/startup form writes with trust-store refresh and preserved hook commands, startup command send-keys orchestration plus startup pane replay markers, pre-create abort behavior, and shared projmux notification icon paths, and scoped even row/column resizing after shell and agent splits, status-bar git/kube segment parity including muted git branch block styling and compact dirty/staged/ahead/behind state colors, statusbar pwd display-only native-framed path popup with shared popup-wait-key/no-extra-payload-line command coverage, no clipboard or tmux buffer copy, and popup-wait-key cursor/raw-mode restore coverage, statusbar usage native HUD popup alignment/height-budget/threshold palette/muted sync-staleness/fallback coverage without raw CLI popup or popup-toggle stacking, statusbar settings click popup fallback and settings chip right-edge rendering without default trailing space, popup-toggle stale marker recovery, isolated `projmux shell` tmux app launch/config generation including home fallback plus project-context default session targeting from `PROJMUX_CWD` or nearest project marker, app-owned project-name statusbar layout, distinct project badge color, and quiet debounced session-state autosave command/app-config trigger,
|
|
33
|
-
- `make test` also covers
|
|
34
|
-
- `make test` also covers
|
|
32
|
+
- `make test`: fast unit coverage for app-layer AI split native agent launch/selective popup-toggle/settings/status/notification parity including AI pane option metadata, watcher metadata bootstrap for existing panes, capture-backed reply detection, missing-pane watcher shutdown, armed focus-only reply badge clearing, busy attention preservation on focus clear, manual AI topic preservation while watcher status still updates, agent-labeled desktop notification message context with pane-title-first body text, global/project-local lifecycle hook dispatch for post-create/pre-create/post-attach/send-noti with project hook and `.projmux/config.toml` trust-store hashing plus env/settings kill-switch gating, declarative startup command and hook run coverage, `send-noti` stdin JSON delivery plus `PROJMUX_NOTIFY_*` env payload, notify queue write success/failure/depth-guard dispatch rules, notify/statusbar/sidebar origin-client focus routing, project config env/kube session environment application, Settings project config env/kube/startup form writes with trust-store refresh and preserved hook commands, startup command send-keys orchestration plus startup pane replay markers, pre-create abort behavior, and shared projmux notification icon paths, and scoped even row/column resizing after shell and agent splits, status-bar git/kube segment parity including muted git branch block styling and compact dirty/staged/ahead/behind state colors, statusbar pwd display-only native-framed path popup with shared popup-wait-key/no-extra-payload-line command coverage, no clipboard or tmux buffer copy, and popup-wait-key cursor/raw-mode restore coverage, statusbar usage native HUD popup alignment/height-budget/threshold palette/muted sync-staleness/fallback coverage without raw CLI popup or popup-toggle stacking, statusbar settings click popup fallback and settings chip right-edge rendering without default trailing space, popup-toggle stale marker recovery, isolated `projmux shell` tmux app launch/config generation including home fallback plus project-context default session targeting from `PROJMUX_CWD` or nearest project marker, app-owned project-name statusbar layout, distinct project badge color, and quiet debounced session-state autosave command/app-config trigger, shell-entry welcome release prompt and inline update handling, shell update skip-by-latest-tag behavior plus best-effort stale-cache refresh, pane/window keybindings, keymap.toml tmux override rendering/stale unbinds including retired direct/UserKey cleanup, Settings Keybindings root/list/detail capture flows including parse-error rows, unsafe raw capture and timeout guards, disable/reset writes, app config regeneration, live tmux source-file reload, and no-live-tmux save behavior, window rename bindings, pane rename helper/binding, pane-exit rebalance command/hooks, hook-pane and after-select-pane based attention focus hooks, attention badge toggle/clear/list/window rendering, attach/current/kill/pin/preview/prune/sessions/session-popup/settings commands, switch, tag, tmux helper commands, update status/check/apply cache and installer detection including GitHub Release binary asset selection/extraction/replacement, doctor install-missing command selection, AI notify integration diagnostics, and Session State resume metadata diagnostics, Settings AI notify integration diagnostics read-only status/conflict/CLI guidance, and Settings About update status/check action wiring, untitled standalone popup-toggle marker close/config install, direct popup minimum sizing, AI picker minimum width and height, sidebar minimum width and compact badge spacing, preview select writes, popup render output after cycling, switch picker pin action behavior without inline settings rows, nested settings hub sections for AI defaults, project picker filesystem scan/pin actions, Project Root settings source/shadowing/set/current/clear flows, app/keybinding info including Ctrl-M rename forwarding, and About version/source rendering, switch picker focused-session kill, switch picker launcher-key abort bindings, switch explicit project-root, unconfigured-root, and weak managed-root heuristic parity, switch popup hiding new-session candidates while sidebar keeps create-capable rows, switch row project-name display with `~` pinned to the top and live-session-first sorting, pretty-path, preview-context including kube context/namespace, switch settings subcommand flows including add-current-pin, interactive add-pin picker, and settings label/preview polish including Phase 2 Settings/hookmaker/project-startup/trust/quit destructive row color regression strings, native preview wiring, baseline picker surface parity including prompt/footer/header fallback without app-name filler and search-key scoped card matching, sidebar compact action-only key footer, sidebar preview-window/start-position behavior without focus-time session switching, sidebar row/window ANSI styling with pane-aggregated attention badge state and AI topic labels, Alt+2/Alt+3 legacy popup row, preview-window, pane metadata, and pane-snapshot parity, switch read0 card rows with active/inactive title styling, right-side status badges, combined directory/git metadata with muted inactive branch styling, statusbar-matched block window tabs with window attention badges, read0 expect-key action parsing, restored pin/tag card badges, and restrained selected-row marker styling, switch preview metadata without duplicated directory/git rows, preview metadata rendering, popup pane display names for AI agents, AI topics, and shell commands, switch preview cycle bindings, sessions picker preview/cycle/open/kill wiring including attached-session fallback behavior, sessions picker launcher-key abort bindings, popup/switch preview summary formatting, popup sessions tmux entry helpers, switch/popup/session rendering, session identity, session-state Claude/Codex/Antigravity resume and declarative startup replay, session snapshot capture/autosave recipe classification including save/autosave pre-capture resume metadata refresh from live AI session ids including Antigravity conversation ids, Claude transcript paths, and Codex rollout log cwd matching/ambiguity skips, candidate discovery, config path derivation, popup preview read-models, and pure state rules including preview, tag, and lifecycle stores.
|
|
33
|
+
- `make test` also covers Settings > AI Settings > Enabled agents Phase 0 config behavior: missing config enables Claude, Codex, and Antigravity, unknown saved provider names are ignored without disabling known providers, Settings toggles persist Claude/Codex/Antigravity only, shell/selective are absent from enabled-agent rows, and a saved default split mode warns when its provider is disabled.
|
|
34
|
+
- `make test` also covers native Alt-1 sidebar `Sidebar:KillSession` mutable refresh: the action kills through the focused-session safety path, keeps the native picker session open, refreshes rows and preview with `picker.Action.Mutate`/`DeferredUpdate`, and preserves the previous-live-session guard.
|
|
35
|
+
- `make test` also covers the AI provider metadata registry for Claude/Codex/Antigravity launch providers: registry-derived enabled-agent defaults and ordering, Settings enabled-agent rows, AI picker visibility for disabled providers, ambient usage model scope derivation for quota-supported providers, hook diagnostic provider metadata, Antigravity session-state support metadata, and explicit diagnostics for disabled providers without adding unsupported quota adapters.
|
|
36
|
+
- `make test` also covers usage HUD/all-model filtering from Settings > AI Settings > Enabled agents: ambient `status usage` and `usage --model all` scope collection/rendering to enabled Claude/Codex providers, all-disabled all-model output shows a Settings fallback without refreshing adapters, disabled cached rows/backoff do not leak into ambient output, and explicit `usage --model claude|codex` still collects/renders the requested provider even when disabled.
|
|
37
|
+
- `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.
|
|
38
|
+
- `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.
|
|
39
|
+
- `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, simplified action detail rows, Labs compatibility redirect to the Keybindings root, capture/add-alias flows, unsafe raw capture, reset behavior, stale guide docs guards, and welcome/runtime footer copy that avoids hardcoded launch-key guides.
|
|
40
|
+
- `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.
|
|
35
41
|
- `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.
|
|
36
|
-
- `make test` also covers direct `projmux ai split --agent <claude|codex|shell|selective>` launches, 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,
|
|
37
|
-
- `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, Delivery sources command-row clipboard copy, and Labs Project Hooks overview-first rows.
|
|
38
|
-
- `make test` also covers AI desktop notification dedupe precedence (env override > Settings saved value > default), 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.
|
|
42
|
+
- `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 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.
|
|
44
|
+
- `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.
|
|
39
45
|
- `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.
|
|
40
|
-
- `make test` also covers Settings > Session State as global settings-only UI with default-off auto-save and no window/pane tree, Settings > Project > Session State project-derived identity plus project auto-save override/effective source rows and distinct Save latest snapshot / Save named snapshot labels, closed-project save disabled reasons, named snapshot portable path conversion, project/global auto-save precedence, Projects > Sessions > State read-only latest/named snapshot overview with window/pane cwd/recipe/agent-resume health, user-facing `projmux session-state` status/save/delete/restore dry-run actions including explicit manual save bypass of disabled autosave and agent resume status/confidence preview, and Project open sidebar startup coverage for
|
|
46
|
+
- `make test` also covers Settings > Session State as global settings-only UI with default-off auto-save, Sidebar startup picker relocation/compatibility, and no window/pane tree, Settings > Project > Session State project-derived identity plus project auto-save override/effective source rows and distinct Save latest snapshot / Save named snapshot labels, closed-project save disabled reasons, named snapshot portable path conversion, project/global auto-save precedence, Projects > Sessions > State read-only latest/named snapshot overview with window/pane cwd/recipe/agent-resume health, user-facing `projmux session-state` status/save/delete/restore dry-run actions including explicit manual save bypass of disabled autosave and agent resume status/confidence preview, and Project open sidebar startup coverage for Session State opt-in `Start project`, default-off empty creation, Latest snapshot, Named snapshot, Empty session, Back, saved-at row metadata, existing-session skip, startup-before-trust ordering, detached sidebar open continuation before client-scoped separate trust popup handoff without sidebar inline trust UI, trust approve continuation, and trust deny/cancel no-session sidebar refresh behavior.
|
|
41
47
|
- `make test` also covers `projmux shell` usage without startup selector flags, project-context default target lookup from `PROJMUX_CWD` or nearest project marker, explicit `--session` separation from project-derived defaults, and direct empty attach behavior without shell startup picker/replay.
|
|
42
48
|
- `make test` also covers app tmux naming metadata policy: pane border and automatic window rename share the visible pane label expression, AI topic panes feed window tab labels through `@projmux_ai_topic`, shell panes prefer the visible shell command label such as `zsh`, and `projmux shell` disables program-driven window renames while keeping automatic rename enabled.
|
|
43
49
|
- `make test` also covers manual Session State Save snapshot and restore dry-run preview actions, title-first pane preview labels with legacy snapshot fallback, missing-snapshot messaging, and the absence of the removed statusbar State shortcut.
|
|
44
50
|
- `make test` also covers legacy named-snapshot storage compatibility for `.projmux/layouts/*.toml`, supported interpolation validation, malformed-file list warnings, portable conversion helpers, dry-run conversion to the session-state restore preview with source labels, missing current-session failure, destructive live replay helper behavior with fresh/internal source marking and fresh saved-snapshot cleanup, and the session-state live replay helper that stages windows, moves them by tmux ID, and removes extra live windows.
|
|
45
51
|
- `make test` also covers `projmux ai integrate codex` default hooks install/idempotence/dry-run/removal, compatibility legacy Codex notify mode install/idempotence, dry-run preview, unmanaged `notify = ...` conflict refusal, managed-block removal, catalog-driven Codex hook event installation with local override merging, nested inline Codex hook schema, `[features]` merge/preservation, preservation of unrelated Codex/Claude config and unmanaged hook entries, Settings Codex `/hooks` review notice and tested-version rows, and remove-all behavior for projmux-managed Codex blocks.
|
|
46
|
-
- `make test` also covers `projmux ai ingest codex-hook` event parsing, PermissionRequest critical queue rows with tool/action metadata, Stop info queue rows, UserPromptSubmit busy/no-queue behavior, quiet/no-notify diagnostics for non-firing Codex hook events including override-added catalog events, cataloged hook notification body formatting, hook-active pane marking, topic preservation without hook candidate writes, and mutable resume metadata writes for `@projmux_ai_resume_id`, source, and updated-at.
|
|
52
|
+
- `make test` also covers `projmux ai ingest codex-hook` event parsing, PermissionRequest critical queue rows with tool/action metadata, Stop info queue rows, UserPromptSubmit busy/no-queue behavior, pane-level semantic badge kind writes that keep permission, response complete, and in-progress states distinct, quiet/no-notify diagnostics for non-firing Codex hook events including override-added catalog events, cataloged hook notification body formatting, hook-active pane marking, topic preservation without hook candidate writes, and mutable resume metadata writes for `@projmux_ai_resume_id`, source, and updated-at.
|
|
47
53
|
- `make test` also covers `projmux ai integrate claude` user-level Claude Code hook settings install/idempotence, dry-run preview, unmanaged projmux ingest command conflict refusal across all settings events, managed-command removal by marker even for stale events outside the current catalog, preservation of unrelated settings/hooks, catalog-driven Claude hook event installation with local override merging, and managed wiring for the 29 Claude Code 2.1.140 events in the embedded default catalog.
|
|
48
|
-
- `make test` also covers `projmux ai ingest claude-hook` core and extra Claude Code hook ingest for event parsing, transcript fallback, cataloged hook notification body formatting, permission summary formatting, UserPromptSubmit busy/no-queue behavior, Notification severity/text mapping, StopFailure/TeammateIdle text/severity/metadata mapping, SubagentStop quiet/no-notify diagnostics, unknown future-event quiet fallback, hook-active pane marking, topic preservation without hook candidate writes, mutable resume metadata writes for `@projmux_ai_resume_id`, source, and updated-at, and Claude transcript path preservation.
|
|
54
|
+
- `make test` also covers `projmux ai ingest claude-hook` core and extra Claude Code hook ingest for event parsing, transcript fallback, cataloged hook notification body formatting, permission summary formatting, UserPromptSubmit busy/no-queue behavior, Notification severity/text mapping, pane-level semantic badge kind writes for permission, input, response complete, and in-progress states, StopFailure/TeammateIdle text/severity/metadata mapping, SubagentStop quiet/no-notify diagnostics, unknown future-event quiet fallback, hook-active pane marking, topic preservation without hook candidate writes, mutable resume metadata writes for `@projmux_ai_resume_id`, source, and updated-at, and Claude transcript path preservation.
|
|
49
55
|
- `make test` also covers the Globalization Phase 0 English baseline for AI desktop notification summaries/bodies and hook-ingest queue text while preserving agent names, tool names, commands, paths, and provider payload values as literals/data.
|
|
50
56
|
- `make test` also covers the Globalization Phase 1 message catalog foundation: locale resolver priority and normalization, `ko-KR` to `en-US` fallback, missing fallback-key errors, `en-US` completeness for foundation keys, and plain-text versus ANSI/tmux-styled fragment API separation.
|
|
51
57
|
- `make test` also covers the Globalization Phase 2 formatter foundation: compact/full relative age and duration formatting, locale-specific just-now text, notification count plural/count preservation, list joins that preserve payload items, status token and target label localization, terminal cell-width measurement/truncation, and ANSI/tmux style wrappers treated as zero-width.
|
|
52
58
|
- `make test` also covers the Globalization Phase 3 notify runtime migration: AI notify category rendering for `en-US`/`ko-KR`, Codex/Claude hook literal preservation for agent names, tool names, commands, paths, URLs, provider messages, subagent and teammate payloads, desktop notification and in-app queue display parity, notify sidebar/statusbar locale formatter output, and raw queue storage schema preservation.
|
|
59
|
+
- `make test` also covers statusbar notify width fallbacks that preserve normal INFO/WARN/CRIT badges at readable widths, use dotless clipped text/count at very narrow widths, and keep hard truncation closed with `#[default]`.
|
|
53
60
|
- `make test` also covers the Globalization Phase 4 Settings and popup guidance migration: `en-US`/`ko-KR` Settings root title/chips/rows/footer rendering, native picker search/empty/footer rendering without overflow, Settings row padding by terminal cell width, shell welcome guide catalog rendering, and long Korean ANSI/tmux-styled guide truncation safety while preserving key/command/path literals.
|
|
54
61
|
- `make test` also covers the Globalization Phase 5 locale settings surface: `PROJMUX_LOCALE` > global `[ui].locale` > `LC_ALL` > `LC_MESSAGES` > `LANG` > `en-US` priority, Settings > Appearance > Language / Locale row/detail visibility, `auto` current-locale/source display, unsupported locale fallback warnings, global config writes, and preserved command/config/env/path literals.
|
|
55
62
|
- `make test` also covers the Globalization Phase 6 governance guard: Go string-literal audit classification for hardcoded Korean candidates, English user-facing candidates, and ignored literal/data/debug examples; no unapproved runtime Korean literals outside catalog/formatter/test fixtures; `en-US` coverage for every embedded default catalog key; and required `ko-KR` coverage for migrated notify, Settings, picker, welcome, update, and help surfaces.
|
|
56
63
|
- `make test` also covers `projmux ai integrate tmux-bell` dry-run/install/remove tmux command planning, managed `alert-bell` hook append/idempotence/removal, preservation of unmanaged bell hooks, and `projmux ai ingest bell --pane` queue push/metadata/dedupe behavior for non-AI-managed panes.
|
|
57
64
|
- `make test` also covers `projmux ai ingest log` tail/path rendering and bounded JSONL log trimming for ingest diagnostics.
|
|
58
|
-
- `make test` also covers welcome revisit policy:
|
|
65
|
+
- `make test` also covers welcome revisit policy: legacy `skip_version` readability without shell suppression, `s` Skip until next vs Enter continue, Settings > About > Welcome native viewer, best-effort shell update cache refresh, and attach-popup no-duplicate/no-op behavior.
|
|
59
66
|
- `make test` also covers `projmux quit` action-picker rows, cancel/close no-op behavior, explicit quit of only app-owned mux runtimes marked by `@projmux_app=1` on the selected `tmux`/`psmux -L projmux` backend, missing/default runtime no-ops, dispatcher wiring, and `Settings > About > Quit projmux` routing through the same picker before any shutdown side effect.
|
|
60
|
-
- `make test` also covers the built-in semantic palette foundation: non-empty fallback truecolor/tmux tokens, distinct action/attention/AI/progress/danger roles, native picker chip/current/titlebar render strings, statusbar git/notify/usage/settings palette regressions, attention/pane-border/popup/switch progress color guards, renderer-only lead-mode topic prefix styling, settings/trust/destructive row color guards, Theme settings Phase 0/1 resolver behavior for project/global/fallback source labels, preset fill, explicit token override, invalid-layer warnings, and truecolor-to-tmux mapping, Phase 2 fallback render parity and project/global color isolation for native picker and tmux status/window background adapters, Phase 3 desired font config save/resolve plus unsupported `not applied` status without breaking no-adapter fallback rendering, and Phase 4 Settings theme editing boundaries for project/global resets, project inherit-vs-override labels, effective source labels, and project config theme values feeding the native project popup render path.
|
|
67
|
+
- `make test` also covers the built-in semantic palette foundation: non-empty fallback truecolor/tmux tokens, distinct action/attention/AI/progress/danger roles, native picker chip/current/titlebar render strings including titlebar frame background/foreground inheritance without separate overlay ANSI, statusbar git/notify/usage/settings palette regressions, attention/pane-border/popup/switch progress color guards, renderer-only lead-mode topic prefix styling, settings/trust/destructive row color guards, Theme settings Phase 0/1 resolver behavior for project/global/fallback source labels, preset fill, explicit token override, invalid-layer warnings, and truecolor-to-tmux mapping, Phase 2 fallback render parity and project/global color isolation for native picker and tmux status/window background adapters, native popup-toggle `display-popup -s` body style propagation from the effective theme without touching global popup/shell/status styles, Phase 3 desired font config save/resolve plus unsupported `not applied` status without breaking no-adapter fallback rendering, and Phase 4 Settings theme editing boundaries for project/global resets, project inherit-vs-override labels, effective source labels, and project config theme values feeding the native project popup render path.
|
|
61
68
|
- Current focused unit coverage also includes strict notify SOT behavior
|
|
62
69
|
(TTL does not remove rows, focus success and target-gone clicks ack,
|
|
63
70
|
reconcile reports stale rows), `notify list --live` queue/live explanations, notify sidebar
|
|
64
71
|
two-line card rendering with age/project/window/pane metadata plus focus/ack/non-critical-clear/clear-all
|
|
65
72
|
actions, notify/statusbar/sidebar attention-vs-AI palette assertions including muted stale/gone rows,
|
|
66
|
-
|
|
67
|
-
focusing, non-critical `x` bulk clear that preserves critical rows,
|
|
68
|
-
state rendering after all visible non-critical rows are cleared, and
|
|
73
|
+
native picker-session-local `a` ack that refreshes the sidebar without
|
|
74
|
+
focusing or restarting the picker, non-critical `x` bulk clear that preserves critical rows, empty
|
|
75
|
+
state rendering after all visible non-critical rows are cleared, and notify queue-write refresh events
|
|
76
|
+
that update an open native sidebar best-effort without failing queue pushes, and `focus` dispatch diagnostics for session fallback, unresolved
|
|
69
77
|
targets, window fallback, pane fallback, explicit id failures as unresolved exits, and
|
|
70
78
|
notify-only fallback.
|
|
71
|
-
- Picker focused unit coverage includes backend-neutral picker item/action mapping, native title-focused filtering, numeric selection, shared close actions including raw native custom actions, deprecated picker backend value normalization, AI picker title chrome and stable search-key ordering, Settings title chrome and root section order, Settings Labs shell without backend choices plus
|
|
79
|
+
- Picker focused unit coverage includes backend-neutral picker item/action mapping, native title-focused filtering, numeric selection, shared close actions including raw native custom actions, deprecated picker backend value normalization, AI picker title chrome and stable search-key ordering, Settings title chrome and root section order, Settings Labs shell without backend choices plus keybindings compatibility redirect, environment override normalization, compact multi-line metadata gutters with one-column-indented metadata, proportional native scrollbar thumb rendering, native row width clamps that preserve ANSI resets and Korean/wide-cell frame geometry with matched scrollbar/no-scrollbar row budgets including Settings > Appearance AI badge preview rows and parent long emoji preview rows, native app-background and semantic selected/muted/accent/warning/critical role coverage for fallback/effective themes across content padding, empty no-footer rows, footer rows, scrollbars, split-preview gaps, reset-to-padding continuation, and Korean Settings > Appearance AI badge style chips/prompt/emoji rows, multiline partial next/previous item row rendering with rendered-row scrollbar units, fixed split-preview and sidebar list viewports with scrollbar tracks, native up/down-family navigation wrap with empty-list safety and PageUp/PageDown/Home/End clamp regression coverage, native mouse down/follow-drag/release behavior, deferred native row updates that preserve filter/selection state and can repeat from event triggers, preview tab/control normalization before width clipping, optional native frame titlebars without same-line rule fill and with title/chip gap inheritance guards, titled native Alt-1 sidebar chrome, statusbar-preserving sidebar popup height, native-only compact project sidebar popup sizing, cheap Alt-1 first-paint rows with deferred git/window/attention/preview enrichment, fixed three-line Alt-1 sidebar row geometry across cheap/enriched paints, bulk switch existing-session classification with per-candidate fallback, and notify sidebar title/popup sizing.
|
|
72
80
|
- Doctor focused unit coverage includes native Windows psmux dependency policy, Windows `stty` skip behavior, Linux tmux required/stale behavior, and native Windows tmux bell fallback skip diagnostics.
|
|
73
81
|
- psmux focused unit coverage includes Windows native command rendering policy: PowerShell-generated config callbacks quote `projmux.exe` and argv without POSIX shell quoting, direct CreateProcess/C-runtime command-line rendering remains separate from PowerShell and `cmd.exe /c`, and paths/args containing spaces, quotes, backtick, dollar, ampersand, pipe, redirect characters, semicolon, parentheses, braces, caret, percent, and exclamation are pinned as data.
|
|
74
82
|
- psmux app/session foundation focused unit coverage includes `PROJMUX_MUX_BACKEND` and platform-default backend selection, psmux `-L projmux` session create/attach/switch/ephemeral marker command args, list-sessions/list-windows/list-panes minimal inventory parsing, selected-backend app command wiring, and the explicit absence of pane-scoped metadata in psmux inventory rows.
|
|
@@ -6,7 +6,7 @@ the same split contract.
|
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
8
|
projmux ai split --agent <agent> <right|down>
|
|
9
|
-
projmux ai split --agent <agent> <right|down> -- <extra args...>
|
|
9
|
+
projmux ai split --agent <agent> [--force-agent] <right|down> -- <extra args...>
|
|
10
10
|
```
|
|
11
11
|
|
|
12
12
|
Use this page for shareable registration patterns. Keep machine-local policy,
|
|
@@ -22,6 +22,11 @@ projmux ai split --agent codex right
|
|
|
22
22
|
projmux ai split --agent claude down
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
+
Every direct AI split invocation creates a new managed AI pane for the selected
|
|
26
|
+
agent. Existing Codex, Claude, or Antigravity panes in the same project/session
|
|
27
|
+
are left in place and are not selected by the shortcut. `right` and `down`
|
|
28
|
+
choose where the new pane is created.
|
|
29
|
+
|
|
25
30
|
Add the separator only when you have extra arguments for the selected agent:
|
|
26
31
|
|
|
27
32
|
```sh
|
|
@@ -41,6 +46,20 @@ your user-level config. Avoid treating placeholder flags in this guide as
|
|
|
41
46
|
project defaults or current recommendations. If there are no private extra
|
|
42
47
|
arguments, omit the separator entirely; do not leave a trailing bare `--`.
|
|
43
48
|
|
|
49
|
+
Settings > AI Settings > Enabled agents is the source of truth for whether
|
|
50
|
+
Claude, Codex, and Antigravity may be launched. Disabled agents do not appear in the
|
|
51
|
+
selective picker, and direct shortcut commands such as
|
|
52
|
+
`projmux ai split --agent codex right` fail clearly instead of launching. This
|
|
53
|
+
is intentional: shortcuts are thin direct CLI wrappers and must respect the
|
|
54
|
+
same disabled state as hand-written commands.
|
|
55
|
+
|
|
56
|
+
`--force-agent` is the only override, and it is explicit CLI policy for direct
|
|
57
|
+
`--agent claude|codex|antigravity` launches. Do not put it in shared picker,
|
|
58
|
+
default-mode, or general shortcut registrations. Use it only in a private
|
|
59
|
+
one-shot command when you deliberately want to launch a disabled agent without
|
|
60
|
+
changing Settings. If every AI agent is disabled, `--agent selective` still
|
|
61
|
+
offers a plain `shell` split and guidance to re-enable Claude/Codex/Antigravity.
|
|
62
|
+
|
|
44
63
|
`shell` and `selective` are not targets for extra agent arguments. Use them
|
|
45
64
|
without a tail:
|
|
46
65
|
|
package/docs/cli.md
CHANGED
|
@@ -19,13 +19,13 @@ projmux <command> [args...]
|
|
|
19
19
|
|
|
20
20
|
| Command | Purpose |
|
|
21
21
|
| --- | --- |
|
|
22
|
-
| `ai` | Manage tmux AI splits (Codex/Claude) and per-pane status. |
|
|
22
|
+
| `ai` | Manage tmux AI splits (Codex/Claude/Antigravity) and per-pane status. |
|
|
23
23
|
| `attention` | View and manage live tmux pane attention state. |
|
|
24
24
|
| `attach` | Open tmux lifecycle entry helpers. |
|
|
25
25
|
| `current` | Resolve the active tmux pane path. |
|
|
26
26
|
| `doctor` | Diagnose runtime dependencies. |
|
|
27
27
|
| `focus` | Switch the active client to a session/window/pane target. |
|
|
28
|
-
| `init` |
|
|
28
|
+
| `init` | Preview or apply supported terminal key delivery mappings. |
|
|
29
29
|
| `kill` | Terminate tagged tmux sessions. |
|
|
30
30
|
| `notify` | Manage the pending AI notify queue (push/list/ack/reconcile). |
|
|
31
31
|
| `pin` | Manage pinned project directories. |
|
|
@@ -71,13 +71,15 @@ selection has been retired. The native picker is always used.
|
|
|
71
71
|
projmux setup [--timeout DURATION] [--non-interactive]
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
Probes the guaranteed launch defaults (`Alt-1..5`) plus
|
|
75
|
-
|
|
76
|
-
`Alt-Shift-{Left,Right}`. Reports
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
`
|
|
80
|
-
|
|
74
|
+
Probes the guaranteed launch defaults (`Alt-1..5`) plus transport candidates
|
|
75
|
+
such as `Ctrl-N`, `Ctrl-Shift-{R,L,M}`, `Ctrl-M`, and
|
|
76
|
+
`Alt-Shift-{Left,Right}`. Reports whether each key arrived as the expected
|
|
77
|
+
plain bytes, an unsupported legacy/app-specific sequence, an unknown sequence,
|
|
78
|
+
or a timeout. `--non-interactive` skips the TTY probe and prints the expected
|
|
79
|
+
key map. Default `--timeout` is `5s`. Run it outside tmux after trying
|
|
80
|
+
`projmux shell`; `Alt-1..5` are the only guaranteed zero-config defaults.
|
|
81
|
+
Settings > Keybindings edits in-app action aliases; terminal delivery
|
|
82
|
+
diagnostics stay in this CLI flow.
|
|
81
83
|
|
|
82
84
|
## init
|
|
83
85
|
|
|
@@ -86,9 +88,9 @@ projmux init [terminal] [--apply | --dry-run] [--config <path>]
|
|
|
86
88
|
[--allow-symlink]
|
|
87
89
|
```
|
|
88
90
|
|
|
89
|
-
|
|
90
|
-
reports
|
|
91
|
-
`$TERM_PROGRAM`/`$TERMINAL_EMULATOR`.
|
|
91
|
+
Previews or applies terminal-specific key delivery mappings for supported
|
|
92
|
+
terminals when `projmux setup` reports swallowed shortcuts. When `terminal` is
|
|
93
|
+
omitted, autodetects from `$TERM_PROGRAM`/`$TERMINAL_EMULATOR`.
|
|
92
94
|
Known terminals: `ghostty`, `windows-terminal`. Default is dry-run; pass
|
|
93
95
|
`--apply` to write (timestamped `.bak.<timestamp>` is created). Refuses to
|
|
94
96
|
write through a symlink unless `--allow-symlink` is passed (dotfiles repos).
|
|
@@ -127,9 +129,9 @@ with `--json`. Doctor does not diagnose terminal key delivery; use `projmux
|
|
|
127
129
|
setup` for that.
|
|
128
130
|
|
|
129
131
|
`Settings > Notifications > Delivery sources` shows active Codex hooks, Claude,
|
|
130
|
-
and tmux statuses, conflicts, config paths, and
|
|
131
|
-
|
|
132
|
-
Codex, Claude, or tmux notify wiring.
|
|
132
|
+
Antigravity manual hook ingest, and tmux statuses, conflicts, config paths, and
|
|
133
|
+
copyable AI integration commands where available. Settings does not install or
|
|
134
|
+
remove external Codex, Claude, Antigravity, or tmux notify wiring.
|
|
133
135
|
|
|
134
136
|
## focus
|
|
135
137
|
|
|
@@ -150,6 +152,10 @@ client is attached on that socket, it emits the configured desktop
|
|
|
150
152
|
notification instead. `--socket` is explicit; when omitted, the socket is
|
|
151
153
|
derived from `$TMUX`.
|
|
152
154
|
|
|
155
|
+
After a successful tmux focus, `projmux focus` dispatches host-terminal
|
|
156
|
+
osfocus only when Desktop notification mode is `raise`. Modes `off` /
|
|
157
|
+
`none` and `notify` keep focus in tmux without a host-window raise.
|
|
158
|
+
|
|
153
159
|
`--client` is a preferred origin tmux client. In-app consumers such as the
|
|
154
160
|
status bar and notify sidebar pass the clicked client so focus redirects that
|
|
155
161
|
display first. If that client is gone, focus falls back to an attached client
|
|
@@ -200,10 +206,13 @@ projmux notify reconcile [--json]
|
|
|
200
206
|
- `push` — append (or refresh, with `--id`) one entry. `--ttl` defaults to
|
|
201
207
|
`600` seconds as freshness metadata; it does not remove rows from
|
|
202
208
|
`notify list`. `--text` is hard-capped to 80 runes (longer text is
|
|
203
|
-
truncated server-side). After a successful queue write, projmux
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
209
|
+
truncated server-side). After a successful queue write, projmux sends a
|
|
210
|
+
best-effort refresh event to open native notify sidebars and fires
|
|
211
|
+
declarative `[hooks.send-noti]` asynchronously if configured. Event delivery
|
|
212
|
+
failure does not fail the queue write; reopening the sidebar still shows the
|
|
213
|
+
latest queue. The hook gets a JSON payload on stdin plus
|
|
214
|
+
`PROJMUX_NOTIFY_*` env vars, and it does not replace the normal desktop
|
|
215
|
+
notification path.
|
|
207
216
|
- `list` — newest-first pending queue table `ID AGE SEV SRC TARGET TEXT`
|
|
208
217
|
(or JSON). `--severity` and `--source` are repeatable filters.
|
|
209
218
|
`--live` adds a non-mutating explanation table (or JSON report) that
|
|
@@ -213,10 +222,13 @@ projmux notify reconcile [--json]
|
|
|
213
222
|
queue entries whose live pane no longer matches. `--ui=sidebar` opens the
|
|
214
223
|
compact interactive notify list where Enter focuses and acks a target, `a`
|
|
215
224
|
acks the selected row, `x` clears non-critical rows, and `Ctrl-X` clears all;
|
|
216
|
-
opening or navigating the sidebar does not ack.
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
225
|
+
opening or navigating the sidebar does not ack. While open, the native
|
|
226
|
+
sidebar refreshes its row list on successful queue-write events without an
|
|
227
|
+
Alt-2 close/reopen toggle, using the same deferred refresh path as `a` and
|
|
228
|
+
`x`. The sidebar uses two-line cards with notification text first and
|
|
229
|
+
compact age/project/window/pane metadata below. Hidden queue ids remain
|
|
230
|
+
action values, but the sidebar has no search input. `--client` is used by
|
|
231
|
+
tmux popup launchers to keep row-select focus on the clicked client.
|
|
220
232
|
- `ack <id>` removes one entry; `--all` flushes the queue.
|
|
221
233
|
- `reconcile` — walks `tmux list-panes -a` and back-fills entries for
|
|
222
234
|
panes whose attention state is `reply` AND whose AI agent option is
|
|
@@ -232,7 +244,7 @@ Authoritative AI token usage. See [usage-tracking.md](usage-tracking.md)
|
|
|
232
244
|
for adapter detail.
|
|
233
245
|
|
|
234
246
|
```
|
|
235
|
-
projmux usage [--model codex|claude|all] [--window 5h|weekly|all]
|
|
247
|
+
projmux usage [--model codex|claude|antigravity|all] [--window 5h|weekly|all]
|
|
236
248
|
[--json] [--force|-f]
|
|
237
249
|
```
|
|
238
250
|
|
|
@@ -243,6 +255,11 @@ Codex shares the global `30s`). `--json` emits the snapshot array; when
|
|
|
243
255
|
backoff is active the wrapper `{snapshots, backoff}` object is emitted
|
|
244
256
|
instead.
|
|
245
257
|
|
|
258
|
+
Antigravity has no supported 5-hour/weekly quota adapter. `--model
|
|
259
|
+
antigravity` renders an explicit unsupported note: the stable Antigravity
|
|
260
|
+
signal is `context-window-only` statusline data, which is not mixed into the
|
|
261
|
+
Claude/Codex quota HUD.
|
|
262
|
+
|
|
246
263
|
## status
|
|
247
264
|
|
|
248
265
|
Per-segment status-bar renderers. All four are silent on failure — the
|
|
@@ -319,7 +336,7 @@ supplied window.
|
|
|
319
336
|
## ai
|
|
320
337
|
|
|
321
338
|
```
|
|
322
|
-
projmux ai split [--agent <claude|codex|shell|selective>] [right|down] [-- <extra-arg>...]
|
|
339
|
+
projmux ai split [--agent <claude|codex|antigravity|shell|selective>] [--force-agent] [right|down] [-- <extra-arg>...]
|
|
323
340
|
projmux ai picker --inside <right|down>
|
|
324
341
|
projmux ai settings
|
|
325
342
|
projmux ai status set <thinking|waiting|idle> [--pane <id>]
|
|
@@ -327,6 +344,7 @@ projmux ai notify <reset|notify> [--pane <id>]
|
|
|
327
344
|
projmux ai watch-title [--pane <id>]
|
|
328
345
|
projmux ai ingest codex-hook < payload.json
|
|
329
346
|
projmux ai ingest claude-hook < payload.json
|
|
347
|
+
projmux ai ingest antigravity-hook < payload.json
|
|
330
348
|
projmux ai ingest bell --pane <pane_id>
|
|
331
349
|
projmux ai ingest log [--tail N] [--json] [--path]
|
|
332
350
|
projmux ai integrate codex [--dry-run] [--remove]
|
|
@@ -340,14 +358,34 @@ the `attention` badge, the `notify` queue producer, and the desktop
|
|
|
340
358
|
notifier. `status set waiting` is the trigger that flips a pane to the
|
|
341
359
|
reply-ready state — that transition pushes an `ai:<session>:<pane>`
|
|
342
360
|
entry into the notify queue.
|
|
361
|
+
The durable semantic status badge is stored separately in
|
|
362
|
+
`@projmux_ai_badge_kind` as `approval_required`, `input_required`,
|
|
363
|
+
`response_complete`, `in_progress`, or unset. The live status surfaces color
|
|
364
|
+
those values with action-required amber-orange, success green, and progress
|
|
365
|
+
yellow respectively. That palette is independent from notify queue
|
|
366
|
+
`--severity` and from OS desktop notification urgency; a critical approval row
|
|
367
|
+
can still render a non-red action-required status badge.
|
|
343
368
|
|
|
344
369
|
`ai split right|down` uses the configured default split mode. Add
|
|
345
|
-
`--agent claude`, `--agent codex`, `--agent
|
|
346
|
-
a one-shot launch without changing that default.
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
370
|
+
`--agent claude`, `--agent codex`, `--agent antigravity`, `--agent shell`, or
|
|
371
|
+
`--agent selective` for a one-shot launch without changing that default.
|
|
372
|
+
Concrete `--agent claude|codex|antigravity` invocations create a new managed
|
|
373
|
+
agent pane every time; existing managed AI panes in the same project/session are
|
|
374
|
+
not selected or reused.
|
|
375
|
+
`--agent selective` opens the existing picker flow; `--agent shell` opens the
|
|
376
|
+
existing plain shell split. Arguments after `--` are extra arguments appended to
|
|
377
|
+
the resolved `claude`, `codex`, or `agy` executable inside the managed wrapper;
|
|
378
|
+
projmux still sets the context directory, tmux title, AI pane metadata, title
|
|
379
|
+
watcher, and split layout.
|
|
380
|
+
Settings > AI Settings > Enabled agents controls Claude/Codex/Antigravity launch
|
|
381
|
+
visibility. Disabled agents are hidden from the selective picker and from the
|
|
382
|
+
default-mode picker. A saved default that later becomes disabled fails clearly
|
|
383
|
+
instead of falling back to another agent. Direct
|
|
384
|
+
`--agent claude|codex|antigravity` launches also fail when disabled, including
|
|
385
|
+
shortcuts that call the same command. For a deliberate one-shot direct CLI
|
|
386
|
+
launch, pass `--force-agent`; picker and saved default paths do not use this
|
|
387
|
+
override. If all AI agents are disabled, the selective picker still offers the
|
|
388
|
+
plain `shell` split and shows guidance to re-enable Claude/Codex/Antigravity.
|
|
351
389
|
For user-level skill, slash-command, editor, or launcher registrations that
|
|
352
390
|
call this contract, see [AI Agent Shortcuts](ai-agent-shortcuts.md).
|
|
353
391
|
|
|
@@ -407,6 +445,28 @@ precedence over catalog `action` for known Claude events too; for example a
|
|
|
407
445
|
noisy notify event can be made state-only or quiet without changing installed
|
|
408
446
|
Claude hook commands.
|
|
409
447
|
|
|
448
|
+
`ingest antigravity-hook` is the manual hook/statusline entrypoint for
|
|
449
|
+
Antigravity CLI `agy` payloads observed in the Phase 0b smoke. Projmux does not
|
|
450
|
+
provide `projmux ai integrate antigravity`, does not install Antigravity hooks,
|
|
451
|
+
and does not mutate Antigravity user config. If users wire Antigravity manually,
|
|
452
|
+
the hook/statusline command should call an absolute `projmux` path or run from a
|
|
453
|
+
known cwd because relative command paths failed smoke.
|
|
454
|
+
|
|
455
|
+
The default known Antigravity catalog is intentionally narrow:
|
|
456
|
+
`PostInvocation` is quiet/log-only, `Stop` is notify, and `Statusline` is notify
|
|
457
|
+
only when manually wired and `tool_confirmation_pending=true`. `Stop` with
|
|
458
|
+
`error` or a non-normal `terminationReason` pushes a critical error row; `Stop`
|
|
459
|
+
without those error signals pushes an info completion row. Accepted identity
|
|
460
|
+
fields include `conversationId`/`conversation_id`, `cwd` or `workspace.path`,
|
|
461
|
+
`transcriptPath`, `fullyIdle`, `agent_state`, and `context_window`.
|
|
462
|
+
Antigravity notify metadata uses `agent=antigravity`. Phase 3 session-state
|
|
463
|
+
restore is included: Antigravity ingest stores `conversationId` as pane thread
|
|
464
|
+
metadata for matching and as session-state resume metadata. Restore uses
|
|
465
|
+
`agy --conversation <uuid>` when that id is present and UUID-shaped; otherwise
|
|
466
|
+
session-state preview/doctor render `resume unavailable`. Usage quota HUD
|
|
467
|
+
support remains unsupported because the only stable usage signal is
|
|
468
|
+
`context-window-only` statusline data. Transcript contents are not read.
|
|
469
|
+
|
|
410
470
|
`ingest bell --pane <pane_id>` is the narrow tmux-bell fallback ingest path.
|
|
411
471
|
It does not require the pane to be AI-managed. Projmux resolves session,
|
|
412
472
|
window, pane, title, command, and socket metadata from tmux, pushes an info
|
|
@@ -619,10 +679,13 @@ latest/update/cache result. `--json` emits the same machine-readable
|
|
|
619
679
|
status shape for both subcommands.
|
|
620
680
|
|
|
621
681
|
`projmux shell` reads the same cache before opening the isolated tmux app.
|
|
622
|
-
When the cache is
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
682
|
+
When the cache is missing or stale, shell startup attempts a bounded
|
|
683
|
+
best-effort refresh, then continues even if the network check fails. When a
|
|
684
|
+
fresh cached update is available, the shell welcome uses Enter=Continue,
|
|
685
|
+
`u`=Upgrade, and `s`=Skip until next. Upgrade invokes only
|
|
686
|
+
`projmux update apply`; Skip until next writes the latest release tag to
|
|
687
|
+
`${XDG_CACHE_HOME:-~/.cache}/projmux/update-skip.json` and suppresses that tag
|
|
688
|
+
until a newer latest release appears.
|
|
626
689
|
|
|
627
690
|
Installer detection honors
|
|
628
691
|
`PROJMUX_INSTALLER=npm|go|github-release|source`. When unset or invalid,
|
|
@@ -657,9 +720,8 @@ installs.
|
|
|
657
720
|
projmux welcome [--popup [--force]]
|
|
658
721
|
```
|
|
659
722
|
|
|
660
|
-
Prints the
|
|
661
|
-
|
|
662
|
-
walkthrough at any time.
|
|
723
|
+
Prints the shell-entry release prompt and bootstrap reminder without starting
|
|
724
|
+
tmux. This is useful when you want to revisit the welcome view at any time.
|
|
663
725
|
|
|
664
726
|
`--popup` is the tmux attach-helper form. It shows the popup only when a
|
|
665
727
|
pending attach welcome marker exists. `--popup --force` opens the popup without
|
|
@@ -692,7 +754,7 @@ flags with the top-level `switch` UX:
|
|
|
692
754
|
tmux default shell when set, otherwise `/bin/sh`. `shell` starts or attaches
|
|
693
755
|
the app session directly after resolving the target app session name and
|
|
694
756
|
startup directory. Alt-1 sidebar project open defaults to `Empty session`; the
|
|
695
|
-
|
|
757
|
+
Session State `Sidebar startup picker` opt-in shows `Latest snapshot`, `Named
|
|
696
758
|
snapshot`, and `Empty session` before creating a closed project session.
|
|
697
759
|
`Latest snapshot` is auto-saved; named snapshots are fixed until the user
|
|
698
760
|
saves or replaces them.
|
|
@@ -707,9 +769,11 @@ flags with the top-level `switch` UX:
|
|
|
707
769
|
- `settings` — interactive configuration UI for the project picker, AI
|
|
708
770
|
splits, Notifications, Appearance mode, Project Root management, the
|
|
709
771
|
switcher's saved workdirs list, Labs (experimental), Settings > Keybindings,
|
|
710
|
-
and About/Update status. The keybinding flow
|
|
711
|
-
`Settings > Keybindings` with
|
|
712
|
-
|
|
772
|
+
and About/Update status. The keybinding flow is a single
|
|
773
|
+
`Settings > Keybindings` action list with simplified action details for
|
|
774
|
+
aliases and reset. Terminal diagnostics and terminal mapping application stay
|
|
775
|
+
in the `projmux shell` -> `projmux setup` -> `projmux init` remediation path.
|
|
776
|
+
The About section includes the `Welcome` entry. In Project
|
|
713
777
|
Picker, `Project Root` manages the saved
|
|
714
778
|
primary root (`~/.config/projmux/projdir`) and displays whether the effective
|
|
715
779
|
value comes from `PROJMUX_PROJDIR`, tmux `@projmux_projdir`, saved config, or
|
|
@@ -725,8 +789,9 @@ flags with the top-level `switch` UX:
|
|
|
725
789
|
`projmux update apply`, and Welcome opens a Settings-native viewer
|
|
726
790
|
independent of shell skip state. `Settings > About > Quit projmux` routes
|
|
727
791
|
through the same `projmux quit` action picker. The same About section also
|
|
728
|
-
lists the keybinding diagnostic path:
|
|
729
|
-
`init` for supported terminal mappings, and
|
|
792
|
+
lists the keybinding diagnostic path: try `projmux shell` first, use `setup`
|
|
793
|
+
for swallowed keys, use `init` for supported terminal mappings, and use
|
|
794
|
+
`doctor` for dependencies.
|
|
730
795
|
|
|
731
796
|
## See also
|
|
732
797
|
|