@nanobpm/nano-workforce 0.47.0 → 0.48.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 +14 -0
- package/package.json +2 -2
- package/pages/home.page.json +1 -152
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.48.1](https://github.com/nanobpm/nano-workforce/compare/v0.48.0...v0.48.1) (2026-08-12)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **ui:** remove duplicate "Plans (agent fleet)" section from the Convergence page ([#136](https://github.com/nanobpm/nano-workforce/issues/136)) ([7eb836a](https://github.com/nanobpm/nano-workforce/commit/7eb836a47888d5c29a716d15596bd8a2b29e448c))
|
|
7
|
+
|
|
8
|
+
# [0.48.0](https://github.com/nanobpm/nano-workforce/compare/v0.47.0...v0.48.0) (2026-08-12)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **pages:** render PR incident as a red badge on the home grid ([#132](https://github.com/nanobpm/nano-workforce/issues/132)) ([7a58015](https://github.com/nanobpm/nano-workforce/commit/7a58015676b8d0ca6ec7b28c7943504b5f3dfb0e)), closes [#94](https://github.com/nanobpm/nano-workforce/issues/94)
|
|
14
|
+
|
|
1
15
|
# [0.47.0](https://github.com/nanobpm/nano-workforce/compare/v0.46.2...v0.47.0) (2026-08-12)
|
|
2
16
|
|
|
3
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanobpm/nano-workforce",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.1",
|
|
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",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"lint:fix": "biome check --write app operations workers pages components scripts e2e main.ts"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@nanobpm/urban": "^0.
|
|
49
|
+
"@nanobpm/urban": "^0.43.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@biomejs/biome": "^2.4.11",
|
package/pages/home.page.json
CHANGED
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"columns": [
|
|
88
88
|
{ "field": "pr_key", "header": "PR", "linkField": "url" },
|
|
89
89
|
{ "field": "status", "header": "Status", "link": { "kind": "processExplorer", "keyField": "process_key" } },
|
|
90
|
-
{ "field": "incident_message", "header": "Incident" },
|
|
90
|
+
{ "field": "incident_message", "header": "Incident", "badge": { "tone": "danger", "label": "1" } },
|
|
91
91
|
{ "field": "current_round", "header": "Round" },
|
|
92
92
|
{ "field": "active_worker", "header": "Agent" },
|
|
93
93
|
{ "field": "updated_at", "header": "Updated" }
|
|
@@ -172,157 +172,6 @@
|
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"type": "dataGrid",
|
|
178
|
-
"id": "plans",
|
|
179
|
-
"props": {
|
|
180
|
-
"title": "Plans (agent fleet)",
|
|
181
|
-
"rowKey": "plan_key",
|
|
182
|
-
"refreshMs": 5000,
|
|
183
|
-
"data": {
|
|
184
|
-
"kind": "datasource",
|
|
185
|
-
"source": "app",
|
|
186
|
-
"table": "plans",
|
|
187
|
-
"orderBy": { "field": "updated_at", "dir": "desc" },
|
|
188
|
-
"filter": [{ "field": "status", "in": ["planning", "dispatched"] }]
|
|
189
|
-
},
|
|
190
|
-
"tabs": [
|
|
191
|
-
{
|
|
192
|
-
"label": "Active",
|
|
193
|
-
"filter": [{ "field": "status", "in": ["planning", "dispatched"] }]
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
"label": "History",
|
|
197
|
-
"filter": [{ "field": "status", "in": ["done", "failed", "abandoned"] }]
|
|
198
|
-
}
|
|
199
|
-
],
|
|
200
|
-
"columns": [
|
|
201
|
-
{ "field": "plan_key", "header": "Issue" },
|
|
202
|
-
{ "field": "status", "header": "Status", "link": { "kind": "processExplorer", "keyField": "process_key" } },
|
|
203
|
-
{ "field": "task_count", "header": "Tasks" },
|
|
204
|
-
{ "field": "updated_at", "header": "Updated" }
|
|
205
|
-
],
|
|
206
|
-
"rowActions": [
|
|
207
|
-
{
|
|
208
|
-
"label": "Cancel",
|
|
209
|
-
"confirm": "Cancel this plan's fan-out run?",
|
|
210
|
-
"showWhenField": "process_key",
|
|
211
|
-
"action": { "path": "/app/actions/cancel", "body": { "processInstanceKey": "{{row.process_key}}" } }
|
|
212
|
-
}
|
|
213
|
-
],
|
|
214
|
-
"detail": {
|
|
215
|
-
"linkField": "issue_url",
|
|
216
|
-
"fields": [
|
|
217
|
-
{ "field": "repo", "label": "Repository" },
|
|
218
|
-
{ "field": "issue_number", "label": "Issue number" },
|
|
219
|
-
{ "field": "task_count", "label": "Tasks" },
|
|
220
|
-
{ "field": "outcome", "label": "Outcome" }
|
|
221
|
-
],
|
|
222
|
-
"children": [
|
|
223
|
-
{
|
|
224
|
-
"title": "Tasks",
|
|
225
|
-
"source": "app",
|
|
226
|
-
"table": "plan_tasks",
|
|
227
|
-
"parentField": "plan_key",
|
|
228
|
-
"childField": "plan_key",
|
|
229
|
-
"orderBy": { "field": "task_index", "dir": "asc" },
|
|
230
|
-
"columns": [
|
|
231
|
-
{ "field": "task_id", "header": "Task" },
|
|
232
|
-
{ "field": "title", "header": "Title" },
|
|
233
|
-
{ "field": "status", "header": "Status" },
|
|
234
|
-
{ "field": "pr_key", "header": "PR" },
|
|
235
|
-
{ "field": "summary", "header": "Summary" }
|
|
236
|
-
]
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
"title": "Plan reviews",
|
|
240
|
-
"source": "app",
|
|
241
|
-
"table": "plan_reviews",
|
|
242
|
-
"parentField": "plan_key",
|
|
243
|
-
"childField": "plan_key",
|
|
244
|
-
"orderBy": { "field": "round", "dir": "asc" },
|
|
245
|
-
"columns": [
|
|
246
|
-
{ "field": "round", "header": "Round" },
|
|
247
|
-
{ "field": "approved", "header": "Approved? (1/0)" },
|
|
248
|
-
{ "field": "findings", "header": "Reviewer findings" },
|
|
249
|
-
{ "field": "created_at", "header": "Recorded" }
|
|
250
|
-
]
|
|
251
|
-
},
|
|
252
|
-
{
|
|
253
|
-
"title": "Escalations",
|
|
254
|
-
"source": "app",
|
|
255
|
-
"table": "plan_escalations",
|
|
256
|
-
"parentField": "plan_key",
|
|
257
|
-
"childField": "plan_key",
|
|
258
|
-
"orderBy": { "field": "id", "dir": "asc" },
|
|
259
|
-
"columns": [
|
|
260
|
-
{ "field": "task_id", "header": "Task" },
|
|
261
|
-
{ "field": "question", "header": "Question" },
|
|
262
|
-
{ "field": "status", "header": "Status" },
|
|
263
|
-
{ "field": "draft_pr_key", "header": "Draft PR" },
|
|
264
|
-
{ "field": "answer", "header": "Answer" }
|
|
265
|
-
]
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
"title": "Coordination blackboard",
|
|
269
|
-
"source": "app",
|
|
270
|
-
"table": "plan_blackboard",
|
|
271
|
-
"parentField": "plan_key",
|
|
272
|
-
"childField": "plan_key",
|
|
273
|
-
"orderBy": { "field": "id", "dir": "asc" },
|
|
274
|
-
"columns": [
|
|
275
|
-
{ "field": "author_task", "header": "Agent" },
|
|
276
|
-
{ "field": "kind", "header": "Kind" },
|
|
277
|
-
{ "field": "files", "header": "Files" },
|
|
278
|
-
{ "field": "body", "header": "Note" },
|
|
279
|
-
{ "field": "created_at", "header": "Posted" }
|
|
280
|
-
]
|
|
281
|
-
},
|
|
282
|
-
{
|
|
283
|
-
"title": "Reported changes",
|
|
284
|
-
"source": "app",
|
|
285
|
-
"table": "plan_task_deltas",
|
|
286
|
-
"parentField": "plan_key",
|
|
287
|
-
"childField": "plan_key",
|
|
288
|
-
"orderBy": { "field": "id", "dir": "asc" },
|
|
289
|
-
"columns": [
|
|
290
|
-
{ "field": "task_id", "header": "Task" },
|
|
291
|
-
{ "field": "contract_change", "header": "Contract change" },
|
|
292
|
-
{ "field": "newly_touches", "header": "Newly touches" },
|
|
293
|
-
{ "field": "affects_tasks", "header": "Affects tasks" },
|
|
294
|
-
{ "field": "constraint_note", "header": "Constraint" }
|
|
295
|
-
]
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
"title": "Merge exclusions",
|
|
299
|
-
"source": "app",
|
|
300
|
-
"table": "plan_merge_exclusions",
|
|
301
|
-
"parentField": "plan_key",
|
|
302
|
-
"childField": "plan_key",
|
|
303
|
-
"orderBy": { "field": "id", "dir": "asc" },
|
|
304
|
-
"columns": [
|
|
305
|
-
{ "field": "task_a", "header": "Task A" },
|
|
306
|
-
{ "field": "task_b", "header": "Task B" },
|
|
307
|
-
{ "field": "files", "header": "Shared files" },
|
|
308
|
-
{ "field": "source", "header": "Source" }
|
|
309
|
-
]
|
|
310
|
-
}
|
|
311
|
-
],
|
|
312
|
-
"form": {
|
|
313
|
-
"showWhenField": "open_task_escalation_id",
|
|
314
|
-
"title": "Answer the open task escalation",
|
|
315
|
-
"promptField": "open_task_question",
|
|
316
|
-
"inputKey": "answer",
|
|
317
|
-
"inputLabel": "Your answer",
|
|
318
|
-
"submitLabel": "Send answer",
|
|
319
|
-
"action": {
|
|
320
|
-
"path": "/app/api/actions/message",
|
|
321
|
-
"body": { "name": "feature-escalation-answered", "correlationKey": "{{row.open_task_corr_key}}", "variables": "{{form}}" }
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
175
|
}
|
|
327
176
|
]
|
|
328
177
|
}
|