@nanobpm/nano-workforce 0.76.0 → 0.77.0
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 +7 -0
- package/app/manifest-network.test.ts +22 -0
- package/nano.app.json +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [0.77.0](https://github.com/nanobpm/nano-workforce/compare/v0.76.0...v0.77.0) (2026-08-17)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* bind the app to all interfaces so a remote worker fleet can reach it ([#224](https://github.com/nanobpm/nano-workforce/issues/224)) ([#255](https://github.com/nanobpm/nano-workforce/issues/255)) ([5968717](https://github.com/nanobpm/nano-workforce/commit/5968717416e13ff739b797822eb0d44ff51cc9cb)), closes [12778/#828](https://github.com/nanobpm/nano-workforce/issues/828) [12801/#252](https://github.com/nanobpm/nano-workforce/issues/252) [#228](https://github.com/nanobpm/nano-workforce/issues/228)
|
|
7
|
+
|
|
1
8
|
# [0.76.0](https://github.com/nanobpm/nano-workforce/compare/v0.75.0...v0.76.0) (2026-08-17)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Guard for the app's network posture (nano.app.json). nano-workforce drives a distributed LAN
|
|
2
|
+
// worker fleet: remote `senior:*` agents must reach the capability hooks (`/app/api/hooks/abandon`,
|
|
3
|
+
// `/app/api/hooks/blackboard`) over the app's hostname. Urban's runtime bind default is loopback
|
|
4
|
+
// (secure by default), which silently makes those hooks unreachable off-box — the failure mode
|
|
5
|
+
// behind the wedged review agents (jwulf/c8ctl-plugin-nano#76, issue #224): an agent parked on a
|
|
6
|
+
// wait-answer escalation it could not resolve because the abandon endpoint refused hostname
|
|
7
|
+
// connections. The manifest must therefore declare `network.bind: "all"` so nwf is reachable by
|
|
8
|
+
// its fleet out of the box. The LOCAL agentic-channel token is loopback-guarded independently
|
|
9
|
+
// (#228) so binding wide does not expose it.
|
|
10
|
+
import { test } from "node:test";
|
|
11
|
+
import { assert, assertEquals } from "#test-assert";
|
|
12
|
+
import { readFileSync } from "node:fs";
|
|
13
|
+
|
|
14
|
+
test("nano.app.json binds to all interfaces so a remote worker fleet can reach the capability hooks", () => {
|
|
15
|
+
const manifest = JSON.parse(readFileSync(new URL("../nano.app.json", import.meta.url), "utf8"));
|
|
16
|
+
assert(manifest.network, "nano.app.json must declare a network block (fleet reachability)");
|
|
17
|
+
assertEquals(
|
|
18
|
+
manifest.network.bind,
|
|
19
|
+
"all",
|
|
20
|
+
"network.bind must be \"all\": loopback silently makes the capability hooks unreachable off-box for the distributed fleet",
|
|
21
|
+
);
|
|
22
|
+
});
|
package/nano.app.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanobpm/nano-workforce",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.77.0",
|
|
4
4
|
"description": "Nano Workforce — an Agent Graph Orchestration application for Agentic SDLC: durable BPMN processes that coordinate a graph of AI agents across the software delivery lifecycle.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "main.ts",
|