projmux 0.5.3 → 0.6.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/roadmap.md DELETED
@@ -1,109 +0,0 @@
1
- # Roadmap
2
-
3
- ## Done (0.4.x)
4
-
5
- The 0.4 line filled in the operational surface around the session-management
6
- core that 0.3 had landed.
7
-
8
- ### Setup and install
9
-
10
- - `projmux setup` — TTY raw-mode probe that reports which projmux key
11
- sequences (`Alt-1..5`, `Ctrl-N`, `Ctrl-Shift-{R,L,M}`, `Ctrl-M`,
12
- `Alt-Shift-{Left,Right}`) reach the process and which the terminal
13
- swallows.
14
- - `projmux init [terminal]` — auto-merges projmux's CSI-u + chord
15
- bindings into a terminal config. Adapters: Ghostty (with the
16
- `config` / `config.ghostty` candidate split and symlink guard) and
17
- Windows Terminal (WSL + native).
18
-
19
- ### Diagnostics
20
-
21
- - `projmux doctor` — runtime dependency report. Enforces minimum tmux
22
- 3.4 and checks workflow dependencies such as `git` and `stty`.
23
-
24
- ### Focus
25
-
26
- - `projmux focus` — unified switch-client dispatch. Resolves a target
27
- session against the live tmux inventory, redirects an existing client
28
- if one is attached, otherwise emits a desktop notification. Used by
29
- the status-bar notify click and by the AI reply-ready handler.
30
-
31
- ### Notify queue
32
-
33
- - `projmux notify push|list|ack` — persistent JSON-backed queue at
34
- `<state>/projmux/notify.json` with TTL, severity, source, and target
35
- metadata.
36
- - `projmux notify reconcile` — back-fills the queue from live pane
37
- state by walking `tmux list-panes -a`.
38
- - Producer wired to the attention state machine: a pane transitioning
39
- to `reply` with an AI agent option set pushes an `ai:<session>:<pane>`
40
- entry; the matching `clear` acks it.
41
-
42
- ### Usage tracking
43
-
44
- - `projmux usage` (and `status usage`) — authoritative 5h + weekly
45
- utilisation for both Claude (OAuth `api/oauth/usage` endpoint with
46
- 401 token refresh) and Codex (latest rollout `rate_limits` JSONL).
47
- - Per-adapter throttle (Claude `5m`, default `30s`), 429 backoff
48
- (`30m`–`60m` exponential), `--force` to bypass both. Snapshots
49
- preserved on failure so a 429 does not erase prior rows.
50
-
51
- ### Statusbar and HUD
52
-
53
- - Two-line clickable status bar: row 0 is the existing
54
- session/window/path/git/kube row, row 1 splits notify (left) and
55
- usage (right), with a row-0 settings click fallback.
56
- - `projmux statusbar click` — single dispatcher for both mouse clicks
57
- and the `prefix s {u,n,g,k,p,s}` keyboard chord. Window-list clicks
58
- on tabs short-circuit to native `select-window`.
59
- - `pwd` status click copies the current pane path into the tmux paste
60
- buffer and shows a compact path popup instead of a transient
61
- warning-coloured toast.
62
- - HUD-style notify segment with severity+agent badge, midpoint dot
63
- separators, and an age field.
64
- - HUD-style usage segment with bars, last-sync age indicator (Claude),
65
- and graceful degradation through six tiers as `--max-width` shrinks.
66
-
67
- ## Next (0.5+)
68
-
69
- Carried forward from earlier milestones — items still outstanding when
70
- v0.4 shipped.
71
-
72
- ### Picker UI
73
-
74
- - Picker-domain model separate from row rendering. Done in the 0.5 picker
75
- contract slice.
76
- - Native picker backend for multi-line card rows and title-focused search.
77
- Done in the 0.5 picker contract slice, later promoted to the only picker
78
- backend.
79
- - Port switcher popup/sidebar surfaces after parity tests cover
80
- selection, preview, and key actions.
81
-
82
- ### Picker dismissal
83
-
84
- - Picker-agnostic popup close/toggle handling so AI picker dismissal
85
- does not depend on backend-specific key bindings. Done in the 0.5 picker
86
- contract slice; the native runner consumes shared close action keys.
87
-
88
- ### Keybindings
89
-
90
- - In-app Settings editor for tmux keymap entries. Done in the 0.5 keybinding
91
- M4 slice: Settings > Keybindings lists actions, opens action detail rows,
92
- accepts typed `plain`/`prefix` tmux chord strings, supports disable/reset,
93
- writes `~/.config/projmux/keymap.toml`, regenerates the app tmux config, and
94
- hot-reloads the live tmux config when Settings is running inside tmux.
95
- - M6 progress: Settings > Labs now exposes a Keybinding Lab that reuses the
96
- setup probe and init merge engines for per-action diagnostics, single-key
97
- plain/CSI-u/unknown/timeout outcomes, and supported terminal fallback
98
- preview/apply actions.
99
- - Still outstanding for later milestones: broader terminal-specific fallback
100
- remediation for changed/custom fallback mappings beyond the supported init
101
- adapters.
102
-
103
- ### Docker install and E2E harness
104
-
105
- - Initial Docker-backed Linux smoke suites are available through
106
- `make test-integration`, `make test-install-smoke`, and `make test-e2e`.
107
- They cover install/runtime substrate checks against real `tmux`; host-only
108
- terminal, WSL, macOS, and GUI checks remain separate in
109
- [docs/testing.md](testing.md).