@nanobpm/nano-workforce 0.59.0 → 0.60.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
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [0.60.0](https://github.com/nanobpm/nano-workforce/compare/v0.59.0...v0.60.0) (2026-08-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **pages:** mark required form fields for inline validation hints ([#199](https://github.com/nanobpm/nano-workforce/issues/199)) ([15f0038](https://github.com/nanobpm/nano-workforce/commit/15f003809d0ec3294415161a79d73ef53c2703f2)), closes [nano-ide#223](https://github.com/nano-ide/issues/223) [nano-ide#223](https://github.com/nano-ide/issues/223)
|
|
7
|
+
|
|
1
8
|
# [0.59.0](https://github.com/nanobpm/nano-workforce/compare/v0.58.1...v0.59.0) (2026-08-13)
|
|
2
9
|
|
|
3
10
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanobpm/nano-workforce",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.60.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",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@nanobpm/agentic": "^0.1.0",
|
|
54
|
-
"@nanobpm/urban": "^0.
|
|
54
|
+
"@nanobpm/urban": "^0.47.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@biomejs/biome": "^2.4.11",
|
package/pages/epic.page.json
CHANGED
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"submitLabel": "Plan & implement",
|
|
39
39
|
"action": { "path": "/app/api/actions/start/plan-fanout", "body": "{{form}}" },
|
|
40
40
|
"fields": [
|
|
41
|
-
{ "key": "issue", "label": "owner/repo#123 or a GitHub issue URL", "type": "text" },
|
|
42
|
-
{ "key": "baseBranch", "label": "Base branch
|
|
41
|
+
{ "key": "issue", "label": "owner/repo#123 or a GitHub issue URL", "type": "text", "required": true, "requiredMessage": "An issue reference is required (owner/repo#123 or an issue URL)" },
|
|
42
|
+
{ "key": "baseBranch", "label": "Base branch: e.g. epic/agent-protocol to land the whole epic on an integration branch. A missing epic/* branch is auto-created off default HEAD; a non-epic/* branch must already exist.", "type": "text", "required": true, "requiredMessage": "Name the branch the PR targets (e.g. main or epic/agent-protocol)" },
|
|
43
43
|
{ "key": "confirmDefaultBase", "label": "Confirm landing on the default branch \u2014 required only when the base above IS the repository default (every task lands directly on it, with any merge-to-default side effect firing per task)", "type": "checkbox" },
|
|
44
44
|
{ "key": "allowSharedBase", "label": "Allow sharing a custom integration branch with another active epic \u2014 required only when another in-flight epic already targets this same custom base", "type": "checkbox" }
|
|
45
45
|
]
|
package/pages/feature.page.json
CHANGED
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"submitLabel": "Implement & raise PR",
|
|
39
39
|
"action": { "path": "/app/api/actions/start/feature", "body": "{{form}}" },
|
|
40
40
|
"fields": [
|
|
41
|
-
{ "key": "issue", "label": "owner/repo#123 or a GitHub issue URL", "type": "text" },
|
|
42
|
-
{ "key": "baseBranch", "label": "Base branch
|
|
41
|
+
{ "key": "issue", "label": "owner/repo#123 or a GitHub issue URL", "type": "text", "required": true, "requiredMessage": "An issue reference is required (owner/repo#123 or an issue URL)" },
|
|
42
|
+
{ "key": "baseBranch", "label": "Base branch: the branch the PR targets, e.g. main. A missing epic/* branch is auto-created off default HEAD; a non-epic/* branch must already exist.", "type": "text", "required": true, "requiredMessage": "Name the branch the PR targets (e.g. main or epic/agent-protocol)" },
|
|
43
43
|
{ "key": "converge", "label": "Converge \u2014 hand the raised PR to the review-convergence loop", "type": "checkbox" },
|
|
44
44
|
{ "key": "autoMerge", "label": "Auto-merge \u2014 after convergence, drive the merge-loop (only applies when Converge is on)", "type": "checkbox" },
|
|
45
45
|
{ "key": "confirmDefaultBase", "label": "Confirm landing on the default branch \u2014 required only when the base above IS the repository default", "type": "checkbox" },
|
package/pages/home.page.json
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
<nano:extend name="status" type="string" optional="true" />
|
|
30
30
|
<nano:extend name="summary" type="string" optional="true" />
|
|
31
31
|
</nano:shape>
|
|
32
|
-
<nano:shape id="
|
|
32
|
+
<nano:shape id="EscalationIn" name="Record escalation — input">
|
|
33
33
|
<nano:extend name="prKey" type="string" />
|
|
34
34
|
<nano:extend name="round" type="integer" />
|
|
35
35
|
<nano:extend name="status" type="string" optional="true" />
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
<nano:extend name="question" type="string" optional="true" />
|
|
38
38
|
<nano:extend name="recordRound" type="boolean" optional="true" />
|
|
39
39
|
</nano:shape>
|
|
40
|
-
<nano:shape id="
|
|
40
|
+
<nano:shape id="EscalationOut" name="Record escalation — result">
|
|
41
41
|
<nano:extend name="escalationId" type="integer" optional="true" />
|
|
42
42
|
<nano:extend name="escalated" type="boolean" optional="true" />
|
|
43
43
|
<nano:extend name="question" type="string" optional="true" />
|
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
<bpmn:extensionElements>
|
|
135
135
|
<zeebe:taskDefinition type="pr.persist-escalation" />
|
|
136
136
|
<zeebe:properties>
|
|
137
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="
|
|
138
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="
|
|
137
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
|
|
138
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
|
|
139
139
|
</zeebe:properties>
|
|
140
140
|
<zeebe:ioMapping>
|
|
141
141
|
<zeebe:input source="="blocked"" target="status" />
|
|
@@ -150,8 +150,8 @@
|
|
|
150
150
|
<bpmn:extensionElements>
|
|
151
151
|
<zeebe:taskDefinition type="pr.persist-escalation" />
|
|
152
152
|
<zeebe:properties>
|
|
153
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="
|
|
154
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="
|
|
153
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
|
|
154
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
|
|
155
155
|
</zeebe:properties>
|
|
156
156
|
</bpmn:extensionElements>
|
|
157
157
|
<bpmn:incoming>f_escalate</bpmn:incoming>
|
|
@@ -166,8 +166,8 @@
|
|
|
166
166
|
<bpmn:extensionElements>
|
|
167
167
|
<zeebe:taskDefinition type="pr.persist-escalation" />
|
|
168
168
|
<zeebe:properties>
|
|
169
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="
|
|
170
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="
|
|
169
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
|
|
170
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
|
|
171
171
|
</zeebe:properties>
|
|
172
172
|
<zeebe:ioMapping>
|
|
173
173
|
<zeebe:input source="="blocked"" target="status" />
|
|
@@ -47,16 +47,6 @@
|
|
|
47
47
|
<nano:extend name="status" type="string" optional="true" />
|
|
48
48
|
<nano:extend name="question" type="string" optional="true" />
|
|
49
49
|
</nano:shape>
|
|
50
|
-
<nano:shape id="MergeEscalationIn" name="Record merge escalation — input">
|
|
51
|
-
<nano:extend name="prKey" type="string" />
|
|
52
|
-
<nano:extend name="round" type="integer" />
|
|
53
|
-
<nano:extend name="status" type="string" optional="true" />
|
|
54
|
-
<nano:extend name="summary" type="string" optional="true" />
|
|
55
|
-
<nano:extend name="question" type="string" optional="true" />
|
|
56
|
-
</nano:shape>
|
|
57
|
-
<nano:shape id="MergeEscalationOut" name="Record merge escalation — result">
|
|
58
|
-
<nano:extend name="escalationId" type="integer" />
|
|
59
|
-
</nano:shape>
|
|
60
50
|
<nano:shape id="MarkMergedIn" name="Mark merged — input">
|
|
61
51
|
<nano:extend name="prKey" type="string" />
|
|
62
52
|
</nano:shape>
|
|
@@ -186,8 +176,8 @@
|
|
|
186
176
|
<bpmn:extensionElements>
|
|
187
177
|
<zeebe:taskDefinition type="pr.persist-escalation" />
|
|
188
178
|
<zeebe:properties>
|
|
189
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="
|
|
190
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="
|
|
179
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
|
|
180
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
|
|
191
181
|
</zeebe:properties>
|
|
192
182
|
<zeebe:ioMapping>
|
|
193
183
|
<zeebe:input source="="blocked"" target="status" />
|
|
@@ -203,8 +193,8 @@
|
|
|
203
193
|
<bpmn:extensionElements>
|
|
204
194
|
<zeebe:taskDefinition type="pr.persist-escalation" />
|
|
205
195
|
<zeebe:properties>
|
|
206
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="
|
|
207
|
-
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="
|
|
196
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.in" value="EscalationIn" />
|
|
197
|
+
<zeebe:property name="io.nanobpm.dataEnvelope.out" value="EscalationOut" />
|
|
208
198
|
</zeebe:properties>
|
|
209
199
|
</bpmn:extensionElements>
|
|
210
200
|
<bpmn:incoming>f_m_gBlocked</bpmn:incoming>
|