@nanobpm/nano-workforce 0.189.0 → 0.189.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,15 @@
1
+ ## [0.189.2](https://github.com/nanobpm/nano-workforce/compare/v0.189.1...v0.189.2) (2026-09-18)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **poller:** fetch newest GitHub reviews ([#797](https://github.com/nanobpm/nano-workforce/issues/797)) ([c488410](https://github.com/nanobpm/nano-workforce/commit/c488410645d1df55ca5121448364c8f89ed4a7a6)), closes [#793](https://github.com/nanobpm/nano-workforce/issues/793)
6
+
7
+ ## [0.189.1](https://github.com/nanobpm/nano-workforce/compare/v0.189.0...v0.189.1) (2026-09-17)
8
+
9
+ ### Bug Fixes
10
+
11
+ * **convergence:** persist wait-answer human adjudications so an already-answered question does not re-escalate ([#807](https://github.com/nanobpm/nano-workforce/issues/807)) ([9dfeacd](https://github.com/nanobpm/nano-workforce/commit/9dfeacd4c4dffdbb8da02acf1beb5ea5d62aa1ea)), closes [#800](https://github.com/nanobpm/nano-workforce/issues/800) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#256](https://github.com/nanobpm/nano-workforce/issues/256) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806) [#806](https://github.com/nanobpm/nano-workforce/issues/806)
12
+
1
13
  ## [0.189.0](https://github.com/nanobpm/nano-workforce/compare/v0.188.1...v0.189.0) (2026-09-17)
2
14
 
3
15
  ### Features
package/SPEC.md CHANGED
@@ -139,6 +139,22 @@ step, then retry the same round with the human's `answer`. They differ only by e
139
139
  which the UI uses to label the card. Neither ends the run — a human always gets
140
140
  a chance to unblock and resume.
141
141
 
142
+ **Durable adjudication auto-resume (issue #806).** A human's answer to a `wait-answer`
143
+ is remembered durably, keyed by `(PR, canonical question fingerprint)` — the
144
+ `record-answer` step persists it (`pr_adjudications`), and before the poller surfaces a
145
+ *new* `wait-answer` it checks for a settled adjudication of the **same** question. On a
146
+ match it auto-resumes the round with the recorded answer through the canonical
147
+ `completeUserTaskAttributed` door — attributed to the original adjudicator, marked
148
+ `auto_applied` and recorded reversible so a human can still override — instead of
149
+ re-parking a human on an already-settled question (PR #800 saw the same design question
150
+ escalate at round 2 and again at round 13). This is the one exception to "every
151
+ `needs_input`/`blocked` parks `wait-answer`": a question with an existing adjudication for
152
+ this PR resumes without a fresh human park. A *materially different* question still
153
+ escalates, resolution failure fails open to the human, and re-submitting the PR
154
+ (`submitPr`) invalidates its adjudications so a fresh run re-decides. Only the convergence
155
+ loop feeds and reads this memory — a merge-loop answer (same `pr.answer-escalation` step)
156
+ is tagged `answerContext = "merge"` and never recorded as a convergence adjudication.
157
+
142
158
  Guard: after progress classification, a **progressing** round with round ≥
143
159
  MAX_ROUNDS forces an escalation ("not converged after N rounds") so a human
144
160
  decides rather than looping forever. The guard sits *after* `check-progress`