@mmmbuto/nexuscrew 0.9.0 → 0.9.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/CHANGELOG.md +60 -0
- package/README.md +22 -4
- package/frontend/dist/assets/index-Bu_-2-Uu.js +93 -0
- package/frontend/dist/index.html +1 -1
- package/frontend/dist/version.json +1 -1
- package/lib/cli/commands.js +14 -0
- package/lib/config.js +9 -0
- package/lib/live-host/routes.js +9 -3
- package/lib/nodes/commands.js +15 -4
- package/lib/nodes/store.js +43 -0
- package/lib/nodes/tunnel.js +19 -0
- package/lib/proxy/federation.js +25 -1
- package/lib/proxy/panel-auth.js +63 -33
- package/lib/proxy/panel-proxy.js +41 -10
- package/lib/server.js +128 -6
- package/lib/settings/pairing-coordinator.js +32 -0
- package/lib/settings/public-peering-routes.js +13 -1
- package/package.json +1 -1
- package/skills/aidesktop/SKILL.md +201 -0
- package/skills/aidesktop/docker/Dockerfile +21 -0
- package/skills/aidesktop/docker/custom-cont-init.d/10-cdp-relay.sh +20 -0
- package/skills/aidesktop/docker/docker-compose.example.yml +75 -0
- package/skills/live/SKILL.md +90 -0
- package/skills/nexuscrew/SKILL.md +113 -0
- package/frontend/dist/assets/index-zjL6kZ7J.js +0 -93
- package/skills/alibaba-token-media/SKILL.md +0 -152
- package/skills/alibaba-token-media/agents/openai.yaml +0 -4
- package/skills/alibaba-token-media/references/api-contract.md +0 -97
- package/skills/alibaba-token-media/scripts/alibaba_token_media.py +0 -550
- package/skills/fill-forms/SKILL.md +0 -177
- package/skills/fill-forms/agents/openai.yaml +0 -4
- package/skills/fill-forms/references/overlay-technique.md +0 -99
- package/skills/fill-forms/requirements.txt +0 -4
- package/skills/fill-forms/scripts/dump_docx.py +0 -70
- package/skills/fill-forms/scripts/fill_docx.py +0 -207
- package/skills/fill-forms/scripts/fill_pdf.py +0 -424
- package/skills/fill-forms/scripts/inspect_pdf.py +0 -188
- package/skills/fill-forms/scripts/prepare_signature.py +0 -171
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,66 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NexusCrew are tracked here.
|
|
4
4
|
|
|
5
|
+
## 0.9.1 — 2026-08-16 — "What the Guard Was Not Guarding"
|
|
6
|
+
|
|
7
|
+
- **The panel now lives on its own origin, so its JavaScript can no longer
|
|
8
|
+
reach the operator's token.** The panel was served from the same origin as
|
|
9
|
+
the control plane, in an iframe with no `sandbox` and no CSP, while the
|
|
10
|
+
token sat in `localStorage` — meaning a panel's own scripts could take it
|
|
11
|
+
and act as the operator. It is now served by a second loopback listener
|
|
12
|
+
(`NEXUSCREW_PANEL_PORT`, default 41821) that mounts `/panel/*` and nothing
|
|
13
|
+
else: no control API, no bearer. The port is part of the origin, so the
|
|
14
|
+
browser's same-origin policy does the enforcing rather than a convention.
|
|
15
|
+
For a **remote** node the port is negotiated during pairing
|
|
16
|
+
(`panelLocalPort`/`panelRemotePort`, as an obligatory pair) and travels on
|
|
17
|
+
its own forward. A node paired before this release keeps working on the old
|
|
18
|
+
path, and a remote cell without a negotiated port gets none — never a
|
|
19
|
+
borrowed local one.
|
|
20
|
+
|
|
21
|
+
- **A cookie set by a panel no longer reaches our origin — including through
|
|
22
|
+
the WebSocket handshake.** `Set-Cookie` was stripped on the HTTP path but
|
|
23
|
+
copied verbatim on the `101` upgrade, so the same property held on one route
|
|
24
|
+
and not the other. A panel could overwrite the legitimate viewing cookie and
|
|
25
|
+
break the user's own panel from the inside. Hop-by-hop headers still pass on
|
|
26
|
+
the upgrade — there they *are* the response.
|
|
27
|
+
|
|
28
|
+
- **Designating the Live cell works from a remote node.** The star now
|
|
29
|
+
commands the node that *owns* the cell rather than the one serving the page,
|
|
30
|
+
which was the main defect of 0.9.0. `liveHostAccess` is a per-peer
|
|
31
|
+
permission, denied by default, granted with `nexuscrew nodes live-host <node>
|
|
32
|
+
on`, and a refusal names its cause instead of failing silently. Turning the
|
|
33
|
+
star **off** across federation is now covered end to end, not just turning
|
|
34
|
+
it on.
|
|
35
|
+
|
|
36
|
+
- **"Retry" is offered only where retrying can change the outcome.** Any `403`
|
|
37
|
+
without a named reason — a read-only node refusing a federated mutation, for
|
|
38
|
+
instance — was classified as an expired ticket, so the interface said "your
|
|
39
|
+
ticket is no longer valid" and offered a button that could not succeed.
|
|
40
|
+
Permanent refusals and invalid credentials now have their own causes and
|
|
41
|
+
messages, with no button; transient ones keep it.
|
|
42
|
+
|
|
43
|
+
- **The published-tree guard no longer reports "clean" without having
|
|
44
|
+
looked.** Any blob it failed to read was silently skipped: with reads
|
|
45
|
+
failing, the gate stayed green having inspected nothing at all. An unreadable
|
|
46
|
+
blob is now a failure, and the number of inspected files must match the
|
|
47
|
+
tree — an empty result no longer counts as "no traces found".
|
|
48
|
+
|
|
49
|
+
- **The test suite stopped measuring the machine.** Five tests that raced a
|
|
50
|
+
millisecond budget turned red under load and green in isolation; each false
|
|
51
|
+
alarm cost three isolated re-runs to dismiss, and a gate that is sometimes
|
|
52
|
+
red for no reason teaches people to distrust red. They now wait for an
|
|
53
|
+
observable condition instead. Where time *is* the property — deadlines,
|
|
54
|
+
grace periods — the clock was already injectable and those tests were left
|
|
55
|
+
alone. No timeout was raised and no assertion was loosened.
|
|
56
|
+
|
|
57
|
+
- **New skills: `live`, `aidesktop`, and `nexuscrew` as the entry point.**
|
|
58
|
+
`aidesktop` ships a Docker recipe — Dockerfile, CDP relay, example compose —
|
|
59
|
+
for a desktop a browser-driving MCP can attach to. It documents the security
|
|
60
|
+
trade it makes rather than implying one it does not: the browser inside runs
|
|
61
|
+
unsandboxed, because the changes that would sandbox it are exactly the ones
|
|
62
|
+
that weaken the container, and on a loopback-only desktop the container is
|
|
63
|
+
the stronger boundary. What that costs you is stated plainly.
|
|
64
|
+
|
|
5
65
|
## 0.9.0 — 2026-08-15 — "The Star Keeps Its Promise"
|
|
6
66
|
|
|
7
67
|
- **A cell panel finally opens — through our own route, not the raw URL.** An
|
package/README.md
CHANGED
|
@@ -11,6 +11,12 @@ NexusCrew turns live tmux sessions, AI CLI workers and connected machines into
|
|
|
11
11
|
one local-first browser control plane. Your terminals stay real, your tools
|
|
12
12
|
stay yours, and your infrastructure stays under your control.
|
|
13
13
|
|
|
14
|
+
> **Reading this as an AI agent?** Start with
|
|
15
|
+
> **[`skills/nexuscrew`](skills/nexuscrew/SKILL.md)**. It is the entry point:
|
|
16
|
+
> what the system is, what you can actually do through it, which companion
|
|
17
|
+
> skill covers which capability, where the trust boundaries are, and the rules
|
|
18
|
+
> that hold across all of them. Every other NexusCrew skill assumes it.
|
|
19
|
+
|
|
14
20
|
<p align="center">
|
|
15
21
|
<img src="docs/img/fleet-deck-desktop.png" width="960" alt="NexusCrew desktop deck with multiple live tmux sessions">
|
|
16
22
|
</p>
|
|
@@ -143,10 +149,22 @@ product verifies a configured pool before it can rotate within it. See
|
|
|
143
149
|
| [Operations](docs/OPERATIONS.md) | CLI, boot, backup, updates and diagnostics |
|
|
144
150
|
| [Security](docs/SECURITY.md) | Trust boundaries, tokens and credential handling |
|
|
145
151
|
|
|
146
|
-
The repository also includes [MCP companion guidance](MCP_COMPANIONS.md)
|
|
147
|
-
the machine-readable [`mcp-companions.json`](mcp-companions.json)
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
The repository also includes [MCP companion guidance](MCP_COMPANIONS.md) and
|
|
153
|
+
the machine-readable [`mcp-companions.json`](mcp-companions.json).
|
|
154
|
+
|
|
155
|
+
Portable skills ship with the package, and
|
|
156
|
+
[`nexuscrew`](skills/nexuscrew/SKILL.md) is the one to read first:
|
|
157
|
+
|
|
158
|
+
| Skill | Covers |
|
|
159
|
+
|---|---|
|
|
160
|
+
| [`nexuscrew`](skills/nexuscrew/SKILL.md) | **Start here** — the whole system and the rules across it |
|
|
161
|
+
| [`nexuscrew-agent`](skills/nexuscrew-agent/SKILL.md) | Talking to the human, runtime discovery, delivery to cells |
|
|
162
|
+
| [`live`](skills/live/SKILL.md) | Designating and permitting a node's Live host cell |
|
|
163
|
+
| [`aidesktop`](skills/aidesktop/SKILL.md) | A cell's web panel, and the AI Desktop container recipe |
|
|
164
|
+
| [`memory`](skills/memory/SKILL.md) | Persistent agent state |
|
|
165
|
+
| [`vl-msa`](skills/vl-msa/SKILL.md) | Searchable document memory |
|
|
166
|
+
| [`crew`](skills/crew/SKILL.md) | Bounded worker delegation |
|
|
167
|
+
| [`mail-assistant`](skills/mail-assistant/SKILL.md) | Mailbox discovery, triage and reading |
|
|
150
168
|
|
|
151
169
|
## Platforms
|
|
152
170
|
|