@mmmbuto/nexuscrew 0.8.4 → 0.8.6

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.md CHANGED
@@ -16,7 +16,7 @@ panes, windows. tmux does the work; the browser is just a faithful client.
16
16
 
17
17
  ---
18
18
 
19
- ## What it is (v0.8.4 "Simple and Clean")
19
+ ## What it is (v0.8.6 "Connected Fleet")
20
20
 
21
21
  - Runs a small server on the host where your tmux sessions live.
22
22
  - Each attach spawns a real PTY running `tmux attach` and bridges its bytes over a WebSocket
@@ -33,8 +33,12 @@ panes, windows. tmux does the work; the browser is just a faithful client.
33
33
  management use the selected location through a scoped single-origin route.
34
34
  - **Settings and wizard**: manage roles, nodes, token rotation, and service regeneration
35
35
  from the UI; a skippable first-run wizard guides initial setup.
36
- - **Session lifecycle from the UI**: create sessions (name + cwd + an allowlisted preset)
37
- and terminate generic ones with confirmation. Protected session names are always refused.
36
+ - **Cell lifecycle from the UI**: the primary `+` creates a managed Fleet cell at Local or
37
+ any reachable node. Power opens one shared launch sheet where engine, model, permission
38
+ policy and boot can be reviewed before every start; deletion lives in Settings → Fleet.
39
+ - **Legacy session adoption**: Settings → Fleet lists managed and unmanaged tmux sessions on
40
+ every route. A live unmanaged session can be explicitly imported as a managed cell without
41
+ inventing its engine, provider or model.
38
42
  - **Rich cards**: last activity, current command, a sanitized one-line preview per session.
39
43
  - **Fleet control**: a built-in schema-driven fleet manager handles cells, engines, model
40
44
  selection, and boot persistence; an existing external `fleet` CLI can take ownership through
@@ -65,19 +69,34 @@ over a real PTY. On the right, a `codex-vl` session running inside the browser c
65
69
  ## Fleet integration
66
70
 
67
71
  A clean install includes the built-in, schema-driven fleet manager. Its safe defaults contain
68
- three engine templates — **Claude Native**, **Codex Native**, and **Codex-VL Native** — and no cells, prompts,
69
- API keys, or machine-specific paths. Add cells and enable optional managed providers from the
70
- Fleet settings. The managed matrix covers Claude Code, Codex, Codex-VL, and Pi with their
71
- documented native/local providers plus renameable custom providers. Custom Codex adapters are
72
- Responses-only. New custom credentials are read only from the environment variable named in
73
- the PWA; NexusCrew never stores the secret value. Existing Z.AI A/P and Ollama Cloud profiles
74
- retain their backwards-compatible credential loading.
75
-
76
- Managed engines expose a permission selector. New Claude engines (native, Z.AI, Ollama, or
77
- custom) default to **Bypass permissions** and launch with
78
- `--dangerously-skip-permissions`; choose **Standard permissions** to disable it. New Codex and
79
- Codex-VL engines default to Standard and offer an explicit opt-in for
80
- `--dangerously-bypass-approvals-and-sandbox`. Pi keeps its native permission behavior.
72
+ four CLI adapters — **Claude Code**, **Codex**, **Codex-VL**, and **Pi** — and no cells,
73
+ prompts, API keys, or machine-specific paths. Provider, credential-variable name and reusable
74
+ engine definitions live in Settings Fleet. When a cell is off, its shared launch sheet lets
75
+ you choose the engine, model, permission policy and boot state before starting it; the last
76
+ model and permission choice is remembered separately for each cell and engine.
77
+
78
+ The concise provider catalog is scoped per CLI:
79
+
80
+ - **Claude Code:** Anthropic account, Amazon Bedrock, Google Vertex AI, Microsoft Foundry,
81
+ Ollama Cloud, local Ollama, Z.AI, and a renameable Anthropic-compatible endpoint.
82
+ - **Codex / Codex-VL:** OpenAI/ChatGPT account, OpenAI API, Ollama Cloud, local Ollama,
83
+ LM Studio, and a renameable custom endpoint using the real Responses wire API only.
84
+ - **Pi:** its configured default, Anthropic, OpenAI API, OpenAI Codex OAuth, Google Gemini,
85
+ GitHub Copilot, OpenRouter, local Ollama, DeepSeek, Z.AI, and a custom provider.
86
+
87
+ Provider credentials are resolved from the selected CLI's native login or from an environment
88
+ variable named in the PWA; NexusCrew never stores a new secret value. Legacy Z.AI A/P engines
89
+ remain launch-compatible for existing fleets but are not provider choices for new engines.
90
+ Model discovery is used where the CLI/provider documents it, with a manual model field as the
91
+ portable fallback.
92
+
93
+ Managed engines expose a permission selector both in their definition and in the cell launch
94
+ sheet. New Claude engines (native, Z.AI, Ollama, or custom) default to **Bypass permissions**
95
+ and launch with `--dangerously-skip-permissions`; choose **Standard permissions** to disable
96
+ it. New Codex and Codex-VL engines default to Standard and offer an explicit opt-in for
97
+ `--dangerously-bypass-approvals-and-sandbox`. Pi is always launched with its native Standard
98
+ permission behavior. Claude-compatible managed models also receive matching context and
99
+ auto-compaction window variables, including one-million-token profiles where declared.
81
100
 
82
101
  Custom argv-based engines remain supported. Their command, environment, cwd, and prompt are
83
102
  validated against a strict trust boundary and launched without a shell.
@@ -95,14 +114,19 @@ trusted executable (default `~/.local/bin/fleet`, configurable via `fleet.bin` i
95
114
  "engines":[{"id":"native","label":"Claude","rc":true},{"id":"my-engine","label":"My Engine"}]}
96
115
  ```
97
116
 
98
- `engines` is optional: it declares the engine picker shown when powering a cell on — `id` is
99
- what `up --engine <id>` receives, `label` is what the UI displays, and `rc: true` marks engines
100
- that support your remote-control path. In external mode the external CLI owns its engine list.
117
+ `engines` is optional: it declares the configured engine inventory — `id` is the stable
118
+ identifier, `label` is what the UI displays, and `rc: true` marks engines that support your
119
+ remote-control path. In external mode the external CLI owns its engine list and configuration;
120
+ the NexusCrew power control starts or stops the cell without changing that configuration.
101
121
 
102
122
  and accepts `up <Cell> [--engine E] [--boot]`, `down <Cell> [--boot]`, `engine <Cell> <E>`,
103
123
  `boot|noboot <Cell>`. The binary is trust-checked (regular file, not a symlink, not
104
124
  world-writable) and the schema is validated strictly — anything else and the feature stays
105
- off. Set `NEXUSCREW_FLEET=0` to disable it entirely.
125
+ off. Automatic discovery checks the configured path, Termux's `$PREFIX/bin/fleet`, then
126
+ `~/.local/bin/fleet`; startup-service ownership uses the same resolver so built-in and external
127
+ boot managers cannot both take ownership. An explicitly pinned external binary fails closed
128
+ instead of silently switching to another executable. Set `NEXUSCREW_FLEET=0` to disable Fleet
129
+ entirely.
106
130
 
107
131
  ## Requirements
108
132
 
@@ -134,9 +158,16 @@ token travels in the URL **fragment** (`#token=…`), so it never reaches the se
134
158
  ## Federated Hydra nodes (configured from the PWA)
135
159
 
136
160
  Every installation is always the local node and can join other NexusCrew nodes. Open
137
- **Settings → Nodes**, create a ten-minute pairing link/QR on one device, then paste or scan it
138
- on the other together with an OpenSSH Host alias. That single pairing creates a reciprocal,
139
- loopback-only link and both sides exchange a redacted topology automatically.
161
+ **Settings → Nodes** and create a ten-minute pairing link/QR. The creator supplies the
162
+ OpenSSH target or Host alias through which that installation is reachable; the v2 link carries
163
+ that routing information, its display label, route slug and optional SSH port. Paste or scan the
164
+ single link on the other device, review the pre-filled fields, then choose **Test and connect**.
165
+ Older v1 links remain accepted and simply require the missing routing fields to be entered.
166
+
167
+ The link never contains an SSH key, identity file, API key or PWA token. Its only credential is
168
+ the random, one-time pairing invite; SSH routing fields are non-secret configuration. A
169
+ successful pairing creates a reciprocal loopback-only link and both sides exchange a redacted
170
+ topology automatically.
140
171
 
141
172
  NexusCrew does not create SSH keys or edit `authorized_keys`. OpenSSH remains authoritative for
142
173
  identity files, agents, host keys, ports, ProxyJump and forwarding policy. NexusCrew uses
@@ -292,7 +323,7 @@ node bin/nexuscrew.js serve
292
323
 
293
324
  ## Status
294
325
 
295
- The current stable release is **v0.8.4**, published on npm under the **`latest`** dist-tag.
326
+ The current stable release is **v0.8.6**, published on npm under the **`latest`** dist-tag.
296
327
 
297
328
  ## License
298
329