@brokkai/brokk-town-linux-x64 0.3.3 → 0.4.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/BUILD.json +1 -1
- package/README.md +57 -20
- package/bin/bt +0 -0
- package/package.json +1 -1
package/BUILD.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"commit": "
|
|
1
|
+
{"commit": "dccebd2104fe778f604673386d71bcfa88cc4603", "tag": "v0.4.1", "target": "linux-amd64"}
|
package/README.md
CHANGED
|
@@ -8,8 +8,11 @@ hosts the towns and shares a configurable pool of agent worker slots between
|
|
|
8
8
|
them (four by default, from one to 64).
|
|
9
9
|
|
|
10
10
|
The browser shows worker houses, wheelbarrows carrying completed handoffs, trucks
|
|
11
|
-
bringing external issues and PRs, and shipments leaving the release depot.
|
|
12
|
-
|
|
11
|
+
bringing external issues and PRs, and shipments leaving the release depot. Every
|
|
12
|
+
house label names the harness, model and effort that house runs, so a bot on a
|
|
13
|
+
different harness or a higher effort is visible without opening it; the terminal
|
|
14
|
+
panel carries the same profile in its house table. Visit a house to inspect its
|
|
15
|
+
queue, activity, errors, and controls. Town hall holds
|
|
13
16
|
repo-bot's reports. The all-towns overview shows activity and attention counts
|
|
14
17
|
without visiting each repository.
|
|
15
18
|
|
|
@@ -150,7 +153,7 @@ for tag rules, pipeline steps, and recovery.
|
|
|
150
153
|
Install and authenticate `git`, GitHub CLI (`gh`), Node.js/npm, and your chosen
|
|
151
154
|
coding agent. Town does not require a separate bot installation: each dispatch
|
|
152
155
|
uses `npx --yes` with an exact compatible release of bug-bot, feature-bot,
|
|
153
|
-
issue-bot, review-bot, or
|
|
156
|
+
issue-bot, review-bot, release-bot, or simplifier-bot, then communicates with it over a private
|
|
154
157
|
Unix socket. Town never selects an ambient or floating bot version.
|
|
155
158
|
Each bot's Settings panel shows its current pin. **Check for bot update** reads
|
|
156
159
|
npm's stable tag, and **Use VERSION** stages that exact version for the Mayor to
|
|
@@ -194,11 +197,11 @@ GitHub reconciliation.
|
|
|
194
197
|
|
|
195
198
|
Town starts and manages the bot libraries internally; the standalone bot CLIs are
|
|
196
199
|
not companion processes. New towns start with Bug Bot, Feature Bot, Issue Bot,
|
|
197
|
-
Review Bot, and
|
|
200
|
+
Review Bot, Release Bot, and Simplifier Bot **paused**. Repo Bot starts its read-only inventory.
|
|
198
201
|
The town header shows whether the town is paused, awake,
|
|
199
202
|
or partly awake, and its button offers the action that changes that state.
|
|
200
203
|
Inspect the town, then start individual workers or choose **Wake the town**, which
|
|
201
|
-
enables all
|
|
204
|
+
enables all six automation workers (except Release Bot under manual merge policy).
|
|
202
205
|
Starting workers authorizes their real work: filing issues,
|
|
203
206
|
creating and repairing PRs, posting reviews, merging under the configured policy,
|
|
204
207
|
and publishing releases. Agents and verification commands run with your local
|
|
@@ -218,7 +221,8 @@ Pause finishes active work and stops scheduling more. Stop also cancels active
|
|
|
218
221
|
work. Enabled/paused settings survive restarts. A restart resumes enabled workers;
|
|
219
222
|
uncertain external writes retain their saved intent and are reconciled first.
|
|
220
223
|
|
|
221
|
-
Stopping or restarting the service (Ctrl+C, SIGTERM,
|
|
224
|
+
Stopping or restarting the service (Ctrl+C, SIGTERM, SIGHUP from a closed
|
|
225
|
+
terminal or dropped SSH session, `bt service restart`, or
|
|
222
226
|
an in-app upgrade) does not stop the external bots. Each bot process runs detached, and Town commits its handle (PID,
|
|
223
227
|
socket, and exact task) before requesting work. The next `bt serve` reconnects to
|
|
224
228
|
those processes before scheduling anything new. Bots that advertise the `detach`
|
|
@@ -237,11 +241,16 @@ where `N` is an integer from 1 through 64.
|
|
|
237
241
|
|
|
238
242
|
Visit a town and choose **Settings**, then use **Configure agent for** to select
|
|
239
243
|
the bot and configure its agent, model, and reasoning effort independently. Bug,
|
|
240
|
-
feature, issue, review, and
|
|
244
|
+
feature, issue, review, release, and simplifier bots can each use a different profile. Bots
|
|
241
245
|
without a profile inherit **Town defaults**. Choose **Use town defaults** and save
|
|
242
246
|
to remove a bot's independent profile. Save each changed profile before closing
|
|
243
247
|
Settings. Repo-bot only reports repository state and does not use an agent.
|
|
244
248
|
|
|
249
|
+
**Simplifier decisions** selects `suggest` (the default) or `auto`. Suggest keeps
|
|
250
|
+
the Mayor as decision maker and shows Simplifier Bot's advice on every pending
|
|
251
|
+
arrival. Auto lets the bot's assessment route routine work without a separate
|
|
252
|
+
Mayoral decision, including closing low-value complex issues.
|
|
253
|
+
|
|
245
254
|
For each profile, select any agent from the
|
|
246
255
|
[official ACP registry](https://agentclientprotocol.com/get-started/registry),
|
|
247
256
|
plus **Anvil**, **Muse ACP**, **Draupnir**, or a custom ACP command. The full
|
|
@@ -348,6 +357,7 @@ finish before restoring a town.
|
|
|
348
357
|
| --- | --- |
|
|
349
358
|
| Bug greenhouse | Runs bug-bot's investigation and verification; observed filed issues travel to issue-bot. |
|
|
350
359
|
| Feature study | Runs feature-bot to discover useful new capabilities, independently review their value and feasibility, and compare existing requests; confirmed feature issues travel to issue-bot. |
|
|
360
|
+
| Simplifier clarifier | Reviews every incoming issue/PR for disproportionate complexity or low value, advises the Mayor, and discovers removal/replacement proposals. |
|
|
351
361
|
| Issue workshop | Runs issue-bot on eligible issues, opens implementation-ready PRs, and repairs Town-owned PR branches from review feedback. |
|
|
352
362
|
| Review observatory | Runs review-bot, independently checks the full change and every retained finding, then returns fixes or waits for merge requirements. |
|
|
353
363
|
| Release depot | Runs release-bot's batching and publishing policy. Confirmed merged/direct commits accumulate here; a published stable release ships only commits proven to be its ancestors. |
|
|
@@ -360,12 +370,18 @@ Animation never initiates a GitHub write. Reconnecting does not replay previousl
|
|
|
360
370
|
seen deliveries. External PRs receive reviews but their branches are left to their
|
|
361
371
|
authors; only locally recorded Town-created branches enter automatic repair.
|
|
362
372
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
373
|
+
Every new issue and PR first waits at Simplifier Bot (including work filed by
|
|
374
|
+
Bug Bot and Feature Bot and implementation PRs created by Issue Bot). In the
|
|
375
|
+
default **suggest** mode, its bounded assessment is attached to the resulting
|
|
376
|
+
durable Mayoral decision: **Admit** sends the work to Issue Bot or Review Bot;
|
|
377
|
+
**Decline** keeps Town from acting on it. In **auto** mode, Simplifier Bot can
|
|
378
|
+
admit routine work and decline low-value complex work itself; a declined issue is
|
|
379
|
+
closed through Repo-bot, while a declined PR is ignored rather than closed.
|
|
380
|
+
Simplifier Bot's own marked proposals do not recursively pass through intake.
|
|
381
|
+
Between arrivals, the same worker scans the repository and may file marked
|
|
382
|
+
proposals to remove or replace subsystems that add disproportionate complexity
|
|
383
|
+
for little value.
|
|
384
|
+
The browser provides the primary decision UX; scripts may use
|
|
369
385
|
`bt admit --repo OWNER/REPO --task issue:123` or `bt decline ...`. Offered bot
|
|
370
386
|
upgrades use the same commands with `--task upgrade:feature` (or another bot
|
|
371
387
|
role), plus `bt delay ...` to be asked again in a day.
|
|
@@ -397,19 +413,24 @@ bot profiles, verification command, and policy, then run:
|
|
|
397
413
|
|
|
398
414
|
Configuration is a JSON array for town-only files. Each entry supplies `repo`, optional `branch` and
|
|
399
415
|
`harness`, `agent`, optional `bot_agents`, optional `verify` argument vector,
|
|
400
|
-
`merge_policy`, `
|
|
416
|
+
`merge_policy`, `simplifier_mode`, `poll_seconds`, `report_seconds`, and
|
|
401
417
|
`max_cycles`. The example
|
|
402
418
|
lists all required values. To persist global capacity alongside the town list,
|
|
403
419
|
use the object form `{"max_workers": 2, "towns": [...]}`; the legacy array form
|
|
404
420
|
remains accepted. When `serve --config` includes `max_workers`, that value
|
|
405
421
|
overrides the persisted service setting in the same atomic state update; an
|
|
406
422
|
array config without it preserves the saved limit. Town
|
|
407
|
-
uses the repository's default branch when omitted
|
|
408
|
-
|
|
423
|
+
uses the repository's default branch when omitted, and keeps following it: the
|
|
424
|
+
observed default is recorded as repository state, so renaming it moves the town
|
|
425
|
+
with it and never overwrites a branch you chose. An initialized town's branch
|
|
426
|
+
cannot be changed in place. A town saved by an older Town has the branch observed
|
|
427
|
+
at its first inventory pinned in its configuration; setting `"branch": ""`
|
|
428
|
+
explicitly releases that pin so the town follows the repository default again,
|
|
429
|
+
while omitting the field keeps whatever the town already uses. Omitted towns are retained when loading a config.
|
|
409
430
|
Agent configuration uses acp-go's `command`, `environment`, `auth_method`, `mode`, `model`, and `effort` fields.
|
|
410
431
|
|
|
411
432
|
The top-level `harness` and `agent` define town defaults. `bot_agents` maps any of
|
|
412
|
-
`bug`, `feature`, `issue`, `review`, and `
|
|
433
|
+
`bug`, `feature`, `issue`, `review`, `release`, and `simplifier` to a complete profile containing
|
|
413
434
|
its own `harness` and `agent`, with an optional saved `harness_definition`.
|
|
414
435
|
An absent role follows the town defaults. A configured role is independent:
|
|
415
436
|
blank model or effort uses its harness default, and omitted agent fields do not
|
|
@@ -420,7 +441,7 @@ authenticating each harness. Verification and scheduling settings remain shared
|
|
|
420
441
|
at town level.
|
|
421
442
|
|
|
422
443
|
Repo-bot and issue/review scheduling use `poll_seconds` (default 60). Quiet reports
|
|
423
|
-
use `report_seconds` (1800). Bug-bot and
|
|
444
|
+
use `report_seconds` (1800). Bug-bot, feature-bot, and simplifier-bot run at most every 30 minutes; release-bot
|
|
424
445
|
checks every five minutes and retains its own quiet window, minimum gap, and
|
|
425
446
|
batching decisions. Each worker attempt has a two-hour deadline. Repair cycles
|
|
426
447
|
default to five; failed PR attempts back off and block after three failures.
|
|
@@ -448,6 +469,10 @@ Private state defaults to `$XDG_STATE_HOME/brokk-town` or
|
|
|
448
469
|
appends `demo`. A single writer lock, atomic snapshots, per-role bot state, and
|
|
449
470
|
private worktrees keep towns separate. Events, logs, and repo-bot reports have
|
|
450
471
|
bounded recent histories; task, intent, and automation outcome history persists.
|
|
472
|
+
A worker's own log lines and phase changes are committed in batches of at most a
|
|
473
|
+
couple of seconds, because every commit rewrites and fsyncs the whole snapshot;
|
|
474
|
+
the newest line and phase always win, and everything buffered is committed before
|
|
475
|
+
a run's result is.
|
|
451
476
|
Browser access uses a per-service
|
|
452
477
|
local key in a URL fragment. `connection.json` and state snapshots are mode 0600.
|
|
453
478
|
Private agent commands, environment, and authentication configuration are omitted
|
|
@@ -505,6 +530,18 @@ Retry explicitly permits another attempt after fresh checks. For an uncertain
|
|
|
505
530
|
repair push, it reuses and verifies the saved commit; it does not rerun the agent.
|
|
506
531
|
If the PR moved, the saved worktree is retained for inspection. A retry also resets
|
|
507
532
|
an exhausted repair budget. Never delete an uncertain intent to force progress.
|
|
533
|
+
Retry clears that one task's block; it never starts a paused house. If the house
|
|
534
|
+
is paused, the task says so and waits for you to start it.
|
|
535
|
+
|
|
536
|
+
An uncertain repair is settled by ancestry, not only by an equal revision: once
|
|
537
|
+
the commit Town pushed is proven to be in the pull request's history, the push
|
|
538
|
+
landed, the intent is closed, and the newer revision goes back for review. Town
|
|
539
|
+
never republishes the saved commit over work that built on it.
|
|
540
|
+
|
|
541
|
+
A worktree is kept only while a saved intent still needs it. Repairs that fail
|
|
542
|
+
before anything is pushed release their worktree and its `town-repair-*` branch
|
|
543
|
+
immediately, and the issue house collects worktrees whose intent has since been
|
|
544
|
+
confirmed, so an unattended town does not accumulate them.
|
|
508
545
|
|
|
509
546
|
When the release house reports that Release Bot's retry budget is exhausted, fix
|
|
510
547
|
the reported failure and ask Town to lift the budget:
|
|
@@ -526,9 +563,9 @@ browsers use the ordinary interface.
|
|
|
526
563
|
|
|
527
564
|
## Keyboard and development
|
|
528
565
|
|
|
529
|
-
Browser: `0` overview, `1
|
|
566
|
+
Browser: `0` overview, `1` Bug, `2` Issue, `3` Review, `4` Release, `5` Repo, `6` Town Hall, `7` Feature, `8` Simplifier, `?` help, Escape closes
|
|
530
567
|
the inspector. Motion follows reduced-motion preferences and can be switched off.
|
|
531
|
-
Terminal: `0` overview, Tab next town, `1`–`
|
|
568
|
+
Terminal: `0` overview, Tab next town, `1`–`7` or `j`/`k` select a house, `s` start,
|
|
532
569
|
`p` pause, `x` stop, `a` wake the selected town, `d` delete with `y`/`n` confirmation,
|
|
533
570
|
`q` detach. Use `bt settings` and `bt request` for agent settings and new work, or
|
|
534
571
|
the forms in the browser. Bracketed paste is
|
package/bin/bt
CHANGED
|
Binary file
|
package/package.json
CHANGED