@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 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.47.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.42.0"
49
+ "@nanobpm/urban": "^0.43.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@biomejs/biome": "^2.4.11",
@@ -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
  }