@nanobpm/nano-workforce 0.179.0 → 0.179.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,9 @@
1
+ ## [0.179.1](https://github.com/nanobpm/nano-workforce/compare/v0.179.0...v0.179.1) (2026-09-04)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **tasks:** route Tasks-page completion through the canonical complete-user-task door ([#732](https://github.com/nanobpm/nano-workforce/issues/732)) ([98b59a5](https://github.com/nanobpm/nano-workforce/commit/98b59a5a30fb6c6038466da9ec71fc0557eb72e5)), closes [461/#484](https://github.com/461/nano-workforce/issues/484) [nano-ide#552](https://github.com/nanobpm/nano-ide/issues/552) [#728](https://github.com/nanobpm/nano-workforce/issues/728)
6
+
1
7
  ## [0.179.0](https://github.com/nanobpm/nano-workforce/compare/v0.178.5...v0.179.0) (2026-09-04)
2
8
 
3
9
  ### Features
@@ -39,6 +39,11 @@ test("Tasks grid completes each row via its engine-declared form (nano-ide#457),
39
39
  assert(detail?.engineForm, "the grid detail must opt into engineForm rendering");
40
40
  assertEquals(detail.engineForm.formKeyField, "form_key");
41
41
  assertEquals(detail.engineForm.userTaskKeyField, "user_task_key");
42
+ // Completion routes through nwf's canonical completion door (operations/completeUserTask.ts,
43
+ // issue #728 / nano-ide#552) — NOT the runtime's generic `/app/actions/complete` seam — so it
44
+ // records `task_completions` attribution, enforces HUMAN_COMPLETABLE_ELEMENTS, and drops the
45
+ // answered `user_tasks` row immediately instead of after a poll cycle.
46
+ assertEquals(detail.engineForm.completePath, "/app/api/actions/complete-user-task");
42
47
  // The seven bespoke per-type detail.form blocks (each a copy of a deployed `.form`) are gone.
43
48
  for (const g of grids) assert(!g.props.detail?.form, "no grid may carry a page-local detail.form");
44
49
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanobpm/nano-workforce",
3
- "version": "0.179.0",
3
+ "version": "0.179.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",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "@nanobpm/agentic": "^0.12.0",
68
- "@nanobpm/urban": "^0.90.1",
68
+ "@nanobpm/urban": "^0.91.0",
69
69
  "bpmn-auto-layout": "^2.0.0-alpha.2"
70
70
  },
71
71
  "devDependencies": {
@@ -74,7 +74,7 @@
74
74
  "type": "text",
75
75
  "id": "subtitle",
76
76
  "props": {
77
- "text": "Every open native user-task escalation awaiting a human decision — feature runs, epics, PR review/merge loops, conformance reviews, and delivery-graph human/escalation gates — in one list. The \"Type\" column tells them apart; open a row to complete it via the process's own deployed form, on the same canonical path Urban's task inbox uses. This list is exactly the set the nav badge counts, so a badge always maps to a visible, completable row. Rows disappear once completed (here, via the inbox, or out-of-band).",
77
+ "text": "Every open native user-task escalation awaiting a human decision — feature runs, epics, PR review/merge loops, conformance reviews, and delivery-graph human/escalation gates — in one list. The \"Type\" column tells them apart; open a row to complete it via the process's own deployed form, through the nwf canonical completion door (operations/completeUserTask.ts) recording who answered and dropping the row immediately. This list is exactly the set the nav badge counts, so a badge always maps to a visible, completable row. Rows disappear once completed (here, or out-of-band).",
78
78
  "variant": "sub"
79
79
  }
80
80
  },
@@ -116,7 +116,8 @@
116
116
  ],
117
117
  "engineForm": {
118
118
  "formKeyField": "form_key",
119
- "userTaskKeyField": "user_task_key"
119
+ "userTaskKeyField": "user_task_key",
120
+ "completePath": "/app/api/actions/complete-user-task"
120
121
  }
121
122
  },
122
123
  "refreshMs": 5000