@nanobpm/nano-workforce 0.35.1 → 0.35.2

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 CHANGED
@@ -1,3 +1,10 @@
1
+ ## [0.35.2](https://github.com/nanobpm/nano-workforce/compare/v0.35.1...v0.35.2) (2026-08-10)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **pages:** route-driven page actions via @nanobpm/urban@0.33.0 ([#106](https://github.com/nanobpm/nano-workforce/issues/106)) ([0ee4ab2](https://github.com/nanobpm/nano-workforce/commit/0ee4ab29aa8cfca6a04af6eb141a96d7878a6b1a))
7
+
1
8
  ## [0.35.1](https://github.com/nanobpm/nano-workforce/compare/v0.35.0...v0.35.1) (2026-08-10)
2
9
 
3
10
 
package/README.md CHANGED
@@ -133,15 +133,15 @@ app emits, then put it to work:
133
133
  c8ctl nano hire \
134
134
  --name fleet \
135
135
  --rank senior \
136
- --capabilities pr-review plan plan-review feature fix-ci \
136
+ --capabilities pr-review plan plan-review feature trial-merge fix-ci rebase retro \
137
137
  --command 'copilot -p - --allow-all-tools' \
138
138
  --model <your-model>
139
139
 
140
140
  c8ctl nano work fleet # polls every senior:* agent task below until Ctrl-C
141
141
  ```
142
142
 
143
- `--rank senior` × those five capabilities subscribes the worker to exactly the agent
144
- task types the three workflows emit (one `senior:<capability>` job type per
143
+ `--rank senior` × those eight capabilities subscribes the worker to exactly the agent
144
+ task types the four workflows emit (one `senior:<capability>` job type per
145
145
  capability):
146
146
 
147
147
  | Capability | Job type | Workflow | Task |
@@ -150,7 +150,10 @@ capability):
150
150
  | `plan` | `senior:plan` | `plan-fanout` | Plan an issue into levelized tasks |
151
151
  | `plan-review` | `senior:plan-review` | `plan-fanout` | Review the plan before fan-out |
152
152
  | `feature` | `senior:feature` | `plan-fanout` | Implement one planned task → open a PR |
153
+ | `trial-merge` | `senior:trial-merge` | `plan-fanout` | Integration gate: trial-merge a wave, catch semantic conflicts CI can't see |
153
154
  | `fix-ci` | `senior:fix-ci` | `merge-loop` | Green a `blocked` PR's failing checks |
155
+ | `rebase` | `senior:rebase` | `merge-loop` | Rebase a conflicting PR up to date with its base |
156
+ | `retro` | `senior:retro` | `retro` | Synthesize a finished epic's learnings and promote the recurring ones |
154
157
 
155
158
  - `--command 'copilot -p - --allow-all-tools'` starts the Copilot CLI reading its
156
159
  prompt from **stdin** (`-p -`). The harness pipes the whole job JSON (prompt +
@@ -169,9 +172,12 @@ whichever PRs/tasks are ready — that is the idle time you reclaim. Run more th
169
172
  job per worker with `--max-parallel 2`. The app-hosted `pr.*` workers (record-plan,
170
173
  select-wave, finalize, merge, …) run **inside** the app, not on an agent worker.
171
174
 
172
- Already have a narrower worker? Extend it in place instead of re-hiring — `c8ctl nano
173
- assign <name> plan plan-review feature fix-ci` unions the roles onto the profile,
174
- then restart its worker.
175
+ Already have a narrower worker? Extend it in place instead of re-hiring — this unions
176
+ the roles onto the profile, then restart its worker:
177
+
178
+ ```sh
179
+ c8ctl nano assign <name> pr-review plan plan-review feature trial-merge fix-ci rebase retro
180
+ ```
175
181
 
176
182
  ---
177
183
 
package/deno.json CHANGED
@@ -6,7 +6,7 @@
6
6
  ]
7
7
  },
8
8
  "imports": {
9
- "@nanobpm/urban": "npm:@nanobpm/urban@^0.32.0"
9
+ "@nanobpm/urban": "npm:@nanobpm/urban@^0.33.0"
10
10
  },
11
11
  "tasks": {
12
12
  "start": "deno run --allow-net --allow-read --allow-write --allow-run=gh --allow-env main.ts",
package/deno.lock CHANGED
@@ -1756,11 +1756,11 @@
1756
1756
  },
1757
1757
  "workspace": {
1758
1758
  "dependencies": [
1759
- "npm:@nanobpm/urban@0.32"
1759
+ "npm:@nanobpm/urban@0.33"
1760
1760
  ],
1761
1761
  "packageJson": {
1762
1762
  "dependencies": [
1763
- "npm:@nanobpm/urban@0.32",
1763
+ "npm:@nanobpm/urban@0.33",
1764
1764
  "npm:@semantic-release/changelog@^6.0.3",
1765
1765
  "npm:@semantic-release/git@^10.0.1",
1766
1766
  "npm:@semantic-release/npm@^13.1.5",
package/nano.app.json CHANGED
@@ -141,7 +141,6 @@
141
141
  },
142
142
  "api": {
143
143
  "spec": "openapi.json",
144
- "base": "/app/api",
145
144
  "dir": "operations",
146
145
  "validateResponses": "dev"
147
146
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanobpm/nano-workforce",
3
- "version": "0.35.1",
3
+ "version": "0.35.2",
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",
@@ -40,7 +40,7 @@
40
40
  "test": "deno test -A"
41
41
  },
42
42
  "dependencies": {
43
- "@nanobpm/urban": "^0.32.0"
43
+ "@nanobpm/urban": "^0.33.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@semantic-release/changelog": "^6.0.3",
@@ -33,7 +33,7 @@
33
33
  "props": {
34
34
  "title": "Hand an issue to the fleet",
35
35
  "submitLabel": "Plan & implement",
36
- "action": { "kind": "startProcess", "process": "plan-fanout" },
36
+ "action": { "path": "/app/api/actions/start/plan-fanout" },
37
37
  "fields": [
38
38
  { "key": "issue", "label": "owner/repo#123 or a GitHub issue URL", "type": "text" }
39
39
  ]
@@ -33,7 +33,7 @@
33
33
  "props": {
34
34
  "title": "Submit a pull request",
35
35
  "submitLabel": "Start review",
36
- "action": { "kind": "startProcess", "process": "convergence-loop" },
36
+ "action": { "path": "/app/api/actions/start/convergence-loop" },
37
37
  "fields": [
38
38
  { "key": "pr", "label": "owner/repo#123 or a GitHub PR URL", "type": "text" },
39
39
  { "key": "maxRounds", "label": "Max review rounds (blank = fleet default)", "type": "number" }
@@ -82,7 +82,7 @@
82
82
  "label": "Cancel",
83
83
  "confirm": "Cancel this PR's review run?",
84
84
  "showWhenField": "process_key",
85
- "action": { "kind": "cancelProcess", "keyField": "process_key" }
85
+ "action": { "path": "/app/actions/cancel", "body": { "processInstanceKey": "{{row.process_key}}" } }
86
86
  }
87
87
  ],
88
88
  "detail": {
@@ -149,9 +149,8 @@
149
149
  "inputLabel": "Your answer",
150
150
  "submitLabel": "Send answer",
151
151
  "action": {
152
- "kind": "publishMessage",
153
- "message": "escalation-answered",
154
- "correlationKeyField": "pr_key"
152
+ "path": "/app/api/actions/message",
153
+ "body": { "name": "escalation-answered", "correlationKey": "{{row.pr_key}}", "variables": "{{form}}" }
155
154
  }
156
155
  }
157
156
  }
@@ -192,7 +191,7 @@
192
191
  "label": "Cancel",
193
192
  "confirm": "Cancel this plan's fan-out run?",
194
193
  "showWhenField": "process_key",
195
- "action": { "kind": "cancelProcess", "keyField": "process_key" }
194
+ "action": { "path": "/app/actions/cancel", "body": { "processInstanceKey": "{{row.process_key}}" } }
196
195
  }
197
196
  ],
198
197
  "detail": {
@@ -301,9 +300,8 @@
301
300
  "inputLabel": "Your answer",
302
301
  "submitLabel": "Send answer",
303
302
  "action": {
304
- "kind": "publishMessage",
305
- "message": "feature-escalation-answered",
306
- "correlationKeyField": "open_task_corr_key"
303
+ "path": "/app/api/actions/message",
304
+ "body": { "name": "feature-escalation-answered", "correlationKey": "{{row.open_task_corr_key}}", "variables": "{{form}}" }
307
305
  }
308
306
  }
309
307
  }