docs(adr): ADR 0021's D57–D63 as built
All checks were successful
CI / check (push) Successful in 36m13s
CI / deploy (push) Successful in 2m18s

How the budgets, handles, the operator's screens and effort read where the
decisions left something open: optional limits, money stopping only
priced assistants, a handle typed whole as one suggested, 50 at a time
with no search where lists stay short, lists changed in place after an
action, the effort's ceiling on output, and own keys without effort.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-26 16:05:49 +01:00
commit 5d95d41ef1
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -405,6 +405,41 @@ assistants' effort work:
one above the highest. Effort spends more tokens at the same price per token, so the one above the highest. Effort spends more tokens at the same price per token, so the
budget (D58) still bounds what it costs. budget (D58) still bounds what it costs.
As built on 26 Oct, for v0.22.0 (build 25, which the server needs: `minimumAppBuild` 25,
as older apps read limits per grant), D57–D63 read so where they left something open:
- **Budgets** (D58, D59): each of the four limits may be empty, and all four empty
leaves the person no budget; granting someone who has one replaces it, which the sheet
says first, naming whose. Money stops only an assistant with prices: one without counts
its tokens, which the token limits stop, and the sheet offers money limits only while an
assistant set up has prices. A change that leaves out an assistant no longer set up
drops its grant, which the sheet says.
- **Handles** (D61): Grant and Appoint take a handle picked among those suggested, or
typed whole as an account's (Enter picks it); any other is refused before anything is
asked.
- **The operator's screens** (D62): read 50 at a time from where the list stands, the
next 50 once the person scrolls to within 600 pixels of its end. Accounts and the
assistants' people are searched by their handle's start; Waiting and Operators aren't,
as at most 10 accounts wait at once (point 3) and operators are few. After an action the
list changes in place (approved, refused and taken back leave it; suspended and named
change their row; a changed grant reads its person anew) rather than reading everything
again.
- **Effort** (D63): `_MAX_EFFORT` without `_EFFORT` stops the server as it starts, as any
other setting it can't read. A question asks for its effort's ceiling on output, which
the instance holds it to (`low` 8,192 tokens to `max` 65,536; the model's own effort
16,384), since the thinking counts towards it. The level chosen in the field is the
person's for that assistant on that device (`askEfforts`): a conversation continued from
the history asks at it too, while the flashcards proposed, Explain and Why? ask at the
assistant's own, as nobody chose one there. A person's own key gets no effort, as its
provider's levels aren't known, and keeps the ceiling of 4,096 tokens it had.
- **The migration** moves each person's grants' limits into one budget (per unit, their
sum; a grant without a limit leaves that limit empty) and then drops the grants' three
limit columns. Unlike Learn's other migrations, it doesn't keep the old server working
until the switch: in the minute between them, the old server's assistant calls fail
(asking, granting, the figures), everything else serving on. The developer accepted
this (26 Oct), as assistants went live that day with one person using them, over
keeping the columns unused for a release and dropping them in the next.
## Proposal ## Proposal
1. **Who signs up, per instance:** `SIGN_UP`: `open` (as today), `approval`, or 1. **Who signs up, per instance:** `SIGN_UP`: `open` (as today), `approval`, or