docs(decisions): 83, row 54 may add a rows() read to packages/queue

Dewey's row 54 stop: store.show costs ~450 ms a row. Row 54 adds
export function rows(opts) plus a test; queue suites join its gate.
Path redaction and Dewey's recorded view choices accepted.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-10 12:36:25 -05:00
co-authored by Claude Opus 5.5
parent bbfded43c7
commit 52c5a1f8e2
+32
View File
@@ -1734,3 +1734,35 @@ which stay with him. Each item names who decided it and what happened.
Sage's one-off `agents/sage/work/vikunja-setup/` scripts, which
don't run during the window. Seats run no live tracker probes from
2026-10-11T15:00Z until the hold ends.
83. **Row 54 may add one read to `packages/queue` (2026-10-10).** The
row 54 brief says the views change nothing in `packages/queue`,
`packages/business` or `packages/cli`, and to stop and ask if a
module lacks a read. Dewey stopped. `store.list` returns only id,
state, owner and piece, and `store.show` replays the log and spawns
git on every call: about 450 ms a row, 19.8 s for all 61 rows.
- Row 54 adds `export function rows(opts)` to
`packages/queue/src/store.mjs`. It returns
`rowsArray(readState(opts).state)` with the notes, writes nothing
and takes the same lock-free read path as `list`. A test goes in
`packages/queue/tests`, and `packages/queue/README.md` names the
export. The `packages/queue` node suite and `scripts/test-queue.sh`
join row 54's gate. Nothing else in `packages/queue` changes, and
`packages/business` and `packages/cli` stay untouched.
- Why here and not a separate row: three lines and a test, no other
open row changes `packages/queue/src` (row 13's candidate
fd72d268 touches only `packages/ledger`), and the package is not
under the Q14 freeze. Dropping reviewers and the brief link from
the list view (Dewey's option b) is the fallback if review finds
a problem with the export.
- The brief file is not edited, since rows 53 to 61 pin its blob.
This decision is the amendment, and row 54's packet cites it.
- Refusal text that reaches the browser has absolute paths replaced
by `<config>/`, `<dataRoot>/` and `<path>`, and a test proves the
test's tmp directory never appears in a response. The brief's
no-path rule stands.
- Dewey's recorded choices stand: the Business view shows project
ids without roots; no bot ids or `human.discordUserId`;
credentials show service, account, role instance and expiry,
never a file path or env name; the business is `--business`, else
the live bus host's business; `rolesDir` is the checkout's
`roles/`.