Strict goal verification, approval hardening, retrieval eval, work limits, sandbox caps (1.38.0)

- Approval: re-prompt unknown answers (max 3), shell-only affirmative
  guidance recovery; destructive actions stay strict
- GoalVerifier subagent with strict JSON verdicts, bounded follow-up
  rounds, nonzero exit plus open turn on unverified one-shots
- Retrieval eval (Hit@K/MRR/nDCG/Context Precision), FTS cascade with
  title weighting, query/read event logging, --eval-retrieval CLI
- Supervisor caps (8 parallel, 64 records) and scheduler hardening
  (4 fires/tick, per-schedule lease, stated misfire policy)
- Sandbox box resource trio: 2g/2.0/256 at create, best-effort
  update for existing boxes, rm -f recovery pointer
- Research archive: 12 subjects, 667 sources, 27 conclusions;
  suites 979 + 16 green
This commit is contained in:
2026-10-18 12:13:24 +02:00
parent fb72ab8a7f
commit af080fe68e
157 changed files with 8503 additions and 70 deletions
+7
View File
@@ -101,6 +101,10 @@ renderer of the chat scene (headings, bold, inline and fenced code, lists, quote
than 30 minutes passed, `NEW` marks what you have not read. Under the newest bot message, and under any message you
select, sit copy, good, bad and try again; steps fold open with Enter.
A pending approval is also asked at once as a dialog (Deny, Allow once, Always allow for the browser tool) the moment it arrives or the chat opens, without blocking anything: Esc leaves the card, a decision made elsewhere closes the dialog.
A running command that goes quiet on a prompt-like last row (a password, a `?`, `[y/N]`) opens its terminal by itself, so the prompt reaches the user and the answer is typed into the command; Esc leaves it.
Cards: approvals (Allow once, Deny, Always allow in browser for the browser tool, then the state), questions (lettered
options and Skip), files (Enter opens the viewer: text with line numbers, anything else is saved and opened by the
desktop), several files, templates (publish, copy link, details), and live process cards. A running command's card
@@ -184,6 +188,9 @@ Every limit is a constant in `tai.py`.
| `GRR_COMPOSER_MAX_ROWS` | 6 | rows the composer grows to |
| `GRR_VIEWER_MAX_BYTES` | 2097152 | bytes the file viewer reads |
| `GRR_DRAFT_KEEP` | 64 | chats with a kept draft |
| `GRR_PROMPT_QUIET` | 0.8 | seconds of silence on a prompt-like last row before a running command opens its terminal |
| `GRR_PROMPT_ASKS` | 20 | times one process card opens its terminal by itself |
| `GRR_PROMPT_MAX` | 8 | pending approvals asked at once as dialogs in one chat |
| `GRR_LIST_MORE` | 12 | rows Show more adds |
| `GRR_MENU_MAX_H` | 14 | rows of a menu before it scrolls |
| `GRR_CONTROL_JOBS` | 64 | control jobs kept (finished ones drop oldest first) |