@nanobpm/nano-workforce 0.171.3 → 0.171.5
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.171.5](https://github.com/nanobpm/nano-workforce/compare/v0.171.4...v0.171.5) (2026-09-01)
|
|
2
|
+
|
|
3
|
+
### Performance Improvements
|
|
4
|
+
|
|
5
|
+
* **agents:** warm the build cache once, then build module-scoped — never a cold `-am` reactor build ([#682](https://github.com/nanobpm/nano-workforce/issues/682)) ([338057b](https://github.com/nanobpm/nano-workforce/commit/338057b7f65cbf4e61cf4d74efaa596b3422532b)), closes [#681](https://github.com/nanobpm/nano-workforce/issues/681)
|
|
6
|
+
|
|
7
|
+
## [0.171.4](https://github.com/nanobpm/nano-workforce/compare/v0.171.3...v0.171.4) (2026-09-01)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **cockpit:** remove nested transcript scrollbar inside App-View iframe ([#680](https://github.com/nanobpm/nano-workforce/issues/680)) ([2660f38](https://github.com/nanobpm/nano-workforce/commit/2660f382386665f44308f1e719cee253e81fc891)), closes [#679](https://github.com/nanobpm/nano-workforce/issues/679)
|
|
12
|
+
|
|
1
13
|
## [0.171.3](https://github.com/nanobpm/nano-workforce/compare/v0.171.2...v0.171.3) (2026-08-31)
|
|
2
14
|
|
|
3
15
|
### Code Refactoring
|
package/docs/agent-guide.md
CHANGED
|
@@ -154,6 +154,30 @@ Track a plan the same way you track PRs — its `process_key` is an engine insta
|
|
|
154
154
|
can inspect in §5, and the PRs it opens show up in `/status` as ordinary convergence
|
|
155
155
|
loops.
|
|
156
156
|
|
|
157
|
+
### Build hygiene — implementation agents warm up once, then build module-scoped
|
|
158
|
+
|
|
159
|
+
Implementation and CI-fix agents run on **stateless / ephemeral workers**: the
|
|
160
|
+
workspace, including its build outputs, is thrown away between runs, so each worker pays any
|
|
161
|
+
cold whole-reactor build tax independently. To keep iterations fast, the implementation
|
|
162
|
+
prompts (`resources/prompts/feature.md`, `resources/prompts/fix-ci.md`) instruct every
|
|
163
|
+
agent to, **before iterating on a build in the target repo**:
|
|
164
|
+
|
|
165
|
+
1. **Read the target repo's own `AGENTS.md` / `CONTRIBUTING.md` build section** — the
|
|
166
|
+
recipe is authored there, never duplicated into nano-workforce (a per-repo copy here
|
|
167
|
+
would rot as the target's build changes).
|
|
168
|
+
2. **Run the prescribed dependency warm-up once**, right after checkout. For a Maven
|
|
169
|
+
monorepo that ships the fast path (e.g. camunda), that is
|
|
170
|
+
`./mvnw install -Dquickly -T1C` — it installs every reactor SNAPSHOT into `~/.m2`.
|
|
171
|
+
3. **Then build only the changed module, offline, without `-am`** —
|
|
172
|
+
`./mvnw -Dquickly -o -pl <module> <goals>`. Never run a cold `-am` reactor build per
|
|
173
|
+
iteration.
|
|
174
|
+
|
|
175
|
+
The repo-agnostic infra levers behind this — a host-persisted `~/.m2` and a shared
|
|
176
|
+
remote Maven build cache for JVM-capable worker hosts — live in worker-host config, not
|
|
177
|
+
in per-repo files here. The retro loop (`resources/prompts/retro.md`) promotes any
|
|
178
|
+
durable "warm the cache, then build module-scoped" lesson into the *target repo's*
|
|
179
|
+
`AGENTS.md`, keeping each target's recipe sharp without nano-workforce owning it.
|
|
180
|
+
|
|
157
181
|
---
|
|
158
182
|
|
|
159
183
|
## 3. Answer escalations (unblock a human-in-the-loop wait)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nanobpm/nano-workforce",
|
|
3
|
-
"version": "0.171.
|
|
3
|
+
"version": "0.171.5",
|
|
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",
|
|
@@ -310,13 +310,15 @@
|
|
|
310
310
|
terminal shows for both a live drill and a past-session replay, in place of a raw nwfTranscriptEvent
|
|
311
311
|
dump. Mounted into `.cockpit-terminal-host` by renderDerivedTranscript(). */
|
|
312
312
|
|
|
313
|
+
/* No own scroll container: the transcript grows with its content and the single
|
|
314
|
+
outer scroller — the `appView` iframe viewport (fill: min(80vh,48rem)), or the
|
|
315
|
+
phone page in the standalone shell — scrolls it. A `max-height`/`overflow` here
|
|
316
|
+
nested a second scrollbar inside the already-bounded iframe (scroll-in-scroll). */
|
|
313
317
|
.cockpit-transcript-derived {
|
|
314
318
|
display: grid;
|
|
315
319
|
gap: 12px;
|
|
316
320
|
padding: 8px;
|
|
317
321
|
font: 12.5px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
|
|
318
|
-
max-height: 60vh;
|
|
319
|
-
overflow: auto;
|
|
320
322
|
}
|
|
321
323
|
|
|
322
324
|
.cockpit-transcript-empty {
|
|
@@ -91,6 +91,28 @@ against the wrong base will not be merged into the epic.
|
|
|
91
91
|
pointing at an issue).
|
|
92
92
|
5. Clean up any scratch clone/worktree you created outside the commit.
|
|
93
93
|
|
|
94
|
+
## Build hygiene — warm up once, then build module-scoped; never a cold `-am` reactor build
|
|
95
|
+
|
|
96
|
+
Before you iterate on a build in the target repo,
|
|
97
|
+
**read its `AGENTS.md` / `CONTRIBUTING.md` build section** and run the prescribed
|
|
98
|
+
**dependency warm-up exactly once** right after checkout, then scope every
|
|
99
|
+
subsequent build to the module you changed. Do **not** run a cold whole-reactor /
|
|
100
|
+
all-modules build on each iteration — a stateless worker that skips the warm-up
|
|
101
|
+
pays the upstream reactor-compile tax inline on every run, which can block for
|
|
102
|
+
many minutes.
|
|
103
|
+
|
|
104
|
+
- **Warm up once (blocking, right after branching).** For a Maven monorepo that
|
|
105
|
+
ships this fast path (e.g. camunda), that is
|
|
106
|
+
`./mvnw install -Dquickly -T1C` — it installs every reactor SNAPSHOT into
|
|
107
|
+
`~/.m2` so later module builds resolve them instead of recompiling them.
|
|
108
|
+
- **Then build only the changed module, offline, without `-am`.** e.g.
|
|
109
|
+
`./mvnw -Dquickly -o -pl <module> test-compile`. Dropping `-am` after the
|
|
110
|
+
warm-up is what keeps each iteration to seconds; a per-iteration
|
|
111
|
+
`-am <goals>` (e.g. `-am clean test-compile`) re-compiles the upstream modules from source.
|
|
112
|
+
- **The recipe lives in the target repo, not here.** Always defer to that repo's
|
|
113
|
+
own `AGENTS.md` / `CONTRIBUTING.md` build section for the exact commands — the
|
|
114
|
+
Maven lines above are the common case, not a substitute for reading it.
|
|
115
|
+
|
|
94
116
|
## Closing keywords vs. scope splits — don't close a broader-scoped parent
|
|
95
117
|
|
|
96
118
|
The convergence loop runs a **scope-integrity classifier** on your PR before it
|
|
@@ -50,6 +50,14 @@ the PR's checks yourself (`gh pr checks`, `gh run view`).
|
|
|
50
50
|
3. Apply the **minimal, correct** fix. Keep it scoped to what the failing checks
|
|
51
51
|
demand — do not refactor unrelated code.
|
|
52
52
|
4. Run the relevant check locally to confirm it now passes.
|
|
53
|
+
**Build module-scoped, not cold.** Before iterating, read the target repo's
|
|
54
|
+
`AGENTS.md` / `CONTRIBUTING.md` build section and run its prescribed
|
|
55
|
+
**dependency warm-up once** (for a Maven monorepo that ships it, e.g. camunda,
|
|
56
|
+
`./mvnw install -Dquickly -T1C`), then scope the build to the changed module
|
|
57
|
+
and drop `-am` (`./mvnw -Dquickly -o -pl <module> <goals>`). Never run a cold
|
|
58
|
+
whole-reactor `-am` build per iteration — a stateless worker that skips the
|
|
59
|
+
warm-up pays the upstream reactor-compile tax inline and can block for many
|
|
60
|
+
minutes.
|
|
53
61
|
5. Commit (sign off with `-s` if the repo enforces DCO) and push to the branch.
|
|
54
62
|
6. **Make CI re-validate your fix.** Some repos deliberately run CI only when a
|
|
55
63
|
PR is *opened* (to keep review cheap), so a follow-up push does **not**
|
|
@@ -44,7 +44,11 @@ You have `gh` / git authenticated for the target repository.
|
|
|
44
44
|
4. **Choose the right home for each promoted lesson** — the whole point is to make the knowledge
|
|
45
45
|
*load-bearing*, not just written down:
|
|
46
46
|
- **`AGENTS.md`** (or `CONTRIBUTING.md`) — a convention, a "before you build, run X", a
|
|
47
|
-
non-obvious constraint. The default home.
|
|
47
|
+
non-obvious constraint. The default home. A **build recipe** is the textbook case:
|
|
48
|
+
a durable "warm the dependency cache once, then build module-scoped — never a cold
|
|
49
|
+
whole-reactor build" lesson (e.g. Maven's `./mvnw install -Dquickly -T1C` warm-up,
|
|
50
|
+
then `-pl <module>` without `-am`) belongs in the *target repo's* `AGENTS.md`
|
|
51
|
+
build section, never duplicated into nano-workforce.
|
|
48
52
|
- **A script** — if the lesson is "always run these steps in this order", encode it as a
|
|
49
53
|
script (or a `make`/`npm`/`deno task` target) so it can't be forgotten.
|
|
50
54
|
- **A CI step** — if the lesson is "this class of mistake should never merge", add a guard/gate
|