@webappwiz/arbor 0.0.29 → 0.0.31
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/README.md +30 -10
- package/dev.d.ts +3 -2
- package/index.js +374 -378
- package/package.json +2 -2
- package/snapshot.d.ts +5 -1
- package/todo.d.ts +41 -7
package/README.md
CHANGED
|
@@ -105,7 +105,8 @@ configures none.
|
|
|
105
105
|
|
|
106
106
|
A merge onto trunk ends by recommending what to do next: the open todo highest
|
|
107
107
|
on the list that came up in the task that landed, since its context is
|
|
108
|
-
freshest,
|
|
108
|
+
freshest, then one sharing a tag with the todos the task settled, the same
|
|
109
|
+
area of work, or failing that the open todo highest on the list, plus any todo older than `todoStalenessMs` (30 days) offered for
|
|
109
110
|
removal instead. The todos the task
|
|
110
111
|
took up, with `--todo` or `todo take`, leave the list, since that work is now
|
|
111
112
|
done; release one first to keep what is left of it.
|
|
@@ -148,7 +149,7 @@ down the listing; a record whose worktree vanished shows as `orphaned`.
|
|
|
148
149
|
|
|
149
150
|
`--files` adds, under each task, every path it has changed (committed or
|
|
150
151
|
not) and every path its `ARBOR.md` plans under `## Files` that it has not
|
|
151
|
-
touched yet. This is the overlap check an agent runs
|
|
152
|
+
touched yet. This is the overlap check an agent runs once it has planned: its own
|
|
152
153
|
list of files against everyone else's.
|
|
153
154
|
|
|
154
155
|
```
|
|
@@ -229,24 +230,34 @@ the only thing that remembers a task landed at all. The last 1000 are kept
|
|
|
229
230
|
The todos and the tasks in a browser, on `http://localhost:4269`, reloading
|
|
230
231
|
themselves as anything changes. Built for a phone first.
|
|
231
232
|
|
|
233
|
+
One page, tasks above the todos.
|
|
234
|
+
|
|
232
235
|
Todos are cards in list order: drag one to reorder the list (a short press
|
|
233
236
|
on a phone, or Space on its grip and the arrow keys), or tap it to reword,
|
|
234
237
|
attach files to, or remove. A card shows its subject, two lines of its
|
|
235
|
-
detail rendered as markdown, and badges for its files and staleness, and a green edge with
|
|
238
|
+
detail rendered as markdown, and badges for its files, tags and staleness, and a green edge with
|
|
236
239
|
"Taken by <task>" once a task has taken it; its
|
|
237
240
|
`#7` copies `[ARBOR TODO #7]`, which the agent skill reads as that todo, for
|
|
238
241
|
pasting into a chat. An opened todo shows its detail rendered, with Write and
|
|
239
242
|
Preview to switch between the markdown and how it reads. Typing `@` in a todo offers the files and
|
|
240
243
|
directories in the main tree, tracked or new but not ignored, and writes the
|
|
241
244
|
one picked as `@path/from/root`; picking a directory keeps the list open on
|
|
242
|
-
what is inside.
|
|
245
|
+
what is inside. An opened todo's tags are edited there too, comma separated,
|
|
246
|
+
and its `#7` copies the same reference as the card's.
|
|
247
|
+
|
|
248
|
+
Tasks lists every task with a bar for its progress through its plan, counted
|
|
249
|
+
from the checkboxes under `## Done` and `## Next` in its `ARBOR.md`, flagging
|
|
250
|
+
only an escalated or broken status; tapping one opens its details and whole
|
|
251
|
+
plan in a dialog.
|
|
243
252
|
|
|
244
|
-
|
|
245
|
-
|
|
253
|
+
A row of tags over the todos filters them, the way a mail client filters by
|
|
254
|
+
label: All, then every tag a todo has. Tapping one there, or on a card, shows
|
|
255
|
+
only its todos. Dragging a card while filtered moves it to the place in the
|
|
256
|
+
whole list of the card it is dropped on, so the todos hidden between them
|
|
257
|
+
shift around it.
|
|
246
258
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
it is offline, since what the page shows may be stale.
|
|
259
|
+
If the server stops answering, the header says it is offline, since what the
|
|
260
|
+
page shows may be stale.
|
|
250
261
|
|
|
251
262
|
Todo writes are the same functions as `arbor todo add`, `update` and
|
|
252
263
|
`remove`. Questions are answered in the agent's chat, not here. Merging,
|
|
@@ -333,7 +344,7 @@ imports, a signature changed on one side and its callers on the other) and
|
|
|
333
344
|
unreliable when both sides restructured the same logic, because then there is no
|
|
334
345
|
correct merge, only a decision.
|
|
335
346
|
|
|
336
|
-
### `arbor todo add <subject> [text] [--position <n>] [--file <path>]`, `arbor todo list [--json]`, `arbor todo show <id> [--json]`, `arbor todo update <id> [text] [--subject <subject>] [--position <n>] [--file <path>] [--remove-file <name>]`, `arbor todo take <id...>`, `arbor todo release <id...>`, `arbor todo remove <id>`
|
|
347
|
+
### `arbor todo add <subject> [text] [--position <n>] [--file <path>] [--tag <tag>]`, `arbor todo list [--json] [--open] [--tag <tag>]`, `arbor todo show <id> [--json]`, `arbor todo update <id> [text] [--subject <subject>] [--position <n>] [--file <path>] [--remove-file <name>] [--tag <tag>] [--remove-tag <tag>]`, `arbor todo tags [--json]`, `arbor todo take <id...>`, `arbor todo release <id...>`, `arbor todo remove <id>`
|
|
337
348
|
|
|
338
349
|
Work deferred for later. When something outside the task comes up (a bug next
|
|
339
350
|
door, a follow-up the reviewer asked for, a question that turns out to be its
|
|
@@ -360,6 +371,8 @@ run from a worktree, adds them to the task already under way, all or none.
|
|
|
360
371
|
A task can hold any number. `release` puts them back on the list, from a
|
|
361
372
|
worktree only its own task's: a task landing with one half done rewords it to
|
|
362
373
|
what is left with `update`, then releases it, so the merge leaves it open.
|
|
374
|
+
`list --open` shows only those no task holds, which is what an agent
|
|
375
|
+
looking for work to pick up wants.
|
|
363
376
|
`update` rewords one, its detail as the argument and its subject with
|
|
364
377
|
`--subject`, and keeps its number; `remove` drops one done some other way or
|
|
365
378
|
no longer wanted.
|
|
@@ -369,6 +382,13 @@ no longer wanted.
|
|
|
369
382
|
one, named by path or by its stored file name (`todo show` lists them). They
|
|
370
383
|
go when the todo does.
|
|
371
384
|
|
|
385
|
+
`--tag uploads,merge` tags a todo with the areas or goals it belongs to; a
|
|
386
|
+
todo can have several tags and a tag many todos. A tag is a lowercase word,
|
|
387
|
+
or a few joined by hyphens, and anything else is refused, so one area never
|
|
388
|
+
splits into two spellings. `update --tag` adds tags, `--remove-tag` drops them,
|
|
389
|
+
`list --tag` shows only one tag's todos, and `todo tags` lists every tag in
|
|
390
|
+
use with how many todos have it.
|
|
391
|
+
|
|
372
392
|
### `arbor retry <task>`
|
|
373
393
|
|
|
374
394
|
Grants an escalated task another `mergeRetryCount` merge attempts and puts it
|
package/dev.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AsyncResource } from "webappwiz/disposable";
|
|
2
2
|
import type { Logger } from "webappwiz/log";
|
|
3
|
-
import { type Fs, type PortProvider } from "webappwiz/system";
|
|
3
|
+
import { type Fs, type PortProvider, type Ps } from "webappwiz/system";
|
|
4
4
|
import type { Assets } from "./dev/assets.js";
|
|
5
5
|
import type { Journal } from "./journal.js";
|
|
6
6
|
import type { Todos } from "./todo.js";
|
|
@@ -31,9 +31,10 @@ export interface DevServer extends AsyncResource {
|
|
|
31
31
|
* todos. Anything that moves a task (merge, remove, claim) stays in the CLI,
|
|
32
32
|
* so a page that should not have been reachable can at worst change a todo.
|
|
33
33
|
*/
|
|
34
|
-
export declare function dev({ service, fs, journal, todos, log, assets, }: {
|
|
34
|
+
export declare function dev({ service, fs, ps, journal, todos, log, assets, }: {
|
|
35
35
|
service: WorktreeService;
|
|
36
36
|
fs: Fs;
|
|
37
|
+
ps: Ps;
|
|
37
38
|
journal: Journal;
|
|
38
39
|
todos: Todos;
|
|
39
40
|
log: Logger;
|