Commit Graph

8091 Commits

Author SHA1 Message Date
Katia Bulatova 263b32467d feat(dashboard-agent): give the golden runs their own eval sample rate
The CI lane reads its own variable and defaults to every turn, so neither lane can change
the other's rate.
2026-08-06 00:11:25 +00:00
Katia Bulatova a4b4ef1b55 feat(webapp): let an organization turn off judging of its agent turns
A per-org feature flag the agent checks before every judged turn, and a turn is judged only
on an explicit yes.
2026-08-06 00:11:23 +00:00
Katia Bulatova 3c5b2d5d6b feat(dashboard-agent): never judge a turn that read source 2026-08-06 00:11:22 +00:00
Katia Bulatova 42ddcffef0 feat(dashboard-agent): keep customer data out of the judged-turn row and the judge
Payloads, outputs, query rows and file contents are replaced by their shape before a turn
reaches the judge, and the row now keeps the derived verdict only.
2026-08-06 00:11:22 +00:00
Katia Bulatova 7f13add1a0 feat(webapp): retire judged-turn rows after 30 days
The table is append-only quality data with no reader, so the sweep now drops rows past
the period in one bounded statement per run.
2026-08-06 00:11:21 +00:00
Katia Bulatova 08dc7ba732 fix(webapp): keep the watch card in step with its draft, and frozen while it submits 2026-08-05 23:48:03 +00:00
Katia Bulatova c3ee6a4dbe perf(webapp): resolve the agent card's links in one request 2026-08-05 23:48:02 +00:00
Katia Bulatova ebad471b43 fix(webapp): cap the size of a message to the agent 2026-08-05 23:48:01 +00:00
Katia Bulatova a0d06e4eec fix(webapp): send the agent wake signal to a browser that has never opened the panel 2026-08-05 23:48:01 +00:00
Katia Bulatova 18dffa6364 refactor(dashboard-agent): give the watch tests their own file
The wake narration and watch investigation cases move verbatim to
watch-actions.test.ts; the scaffolding both test files use moves to
test-support.ts. Same 146 passed / 2 skipped.
2026-08-05 23:42:35 +00:00
Katia Bulatova 46290d1ca6 refactor(dashboard-agent): move the watch wake and investigate lanes out of the agent
Pure move. The wake narration and the consented investigation now live in
watch-actions.ts, reached from one call in onAction; the runtime they share with
the agent's own hooks moves to agent-runtime.ts. Every export is re-exported from
dashboard-agent.ts, so no import path changes.
2026-08-05 23:42:35 +00:00
Katia Bulatova 2ed5d52260 refactor(dashboard-agent-db): move the watch tables into their own schema module
Pure move, re-exported from schema.ts so drizzle-kit reads the same six tables
and the generated SQL is unchanged.
2026-08-05 23:42:34 +00:00
Katia Bulatova 30ec754a37 refactor(dashboard-agent-db): move the watch queries into their own module
Pure move: the watch, wake and batch-chain queries leave queries.ts for
watch-queries.ts, re-exported so every import path still resolves.
2026-08-05 23:42:33 +00:00
Katia Bulatova d6debe8fb7 test(webapp): cover the user-actor token's environment scope on every route that accepts one 2026-08-05 23:34:45 +00:00
Katia Bulatova 5b5a25882f fix(webapp): scope a delegated user-actor token to the environment it was minted for 2026-08-05 23:34:44 +00:00
Katia Bulatova b6ebe55500 fix(dashboard-agent): escape the prefix separator so the file reviews as text 2026-08-05 23:23:40 +00:00
Katia Bulatova a88228c838 chore(webapp): move the agent storybook gallery out to a follow-up
The gallery pages, their fixtures and the screenshot script only exist to
look at the agent UI, so they ship separately. The fixtures two unit tests
read — the report view models and the page contexts — stay here.
2026-08-05 22:30:45 +00:00
Katia Bulatova cafd920060 chore: keep the release notes as one 2026-08-05 22:18:03 +00:00
Katia Bulatova be1cb0458e perf(dashboard-agent-db): index the open investigations the sweep scans 2026-08-05 22:17:43 +00:00
Katia Bulatova 8b042bed30 perf(webapp): skip the admin read on the watch authorization path 2026-08-05 22:17:43 +00:00
Katia Bulatova 1dd85367b7 perf(webapp): answer the wake poll with one narrow read per database 2026-08-05 22:17:42 +00:00
Katia Bulatova d26a28b0e6 perf(webapp): only poll the wake feed for a browser that knows a watch exists 2026-08-05 22:17:41 +00:00
Katia Bulatova e109a243f5 fix(webapp): read the alert channel and the watch target on the primary 2026-08-05 22:17:41 +00:00
Katia Bulatova fc4381d50e fix(webapp): keep the agent wake poll to one chain per tab 2026-08-05 22:17:40 +00:00
Katia Bulatova 9b4e4734a1 perf(dashboard-agent): share one 1h-TTL prompt cache between head start and the agent
Head start passed `system` as a bare string, so Anthropic neither wrote nor read
the cache: the ~18.4k-token prefix was billed in full and the agent's step 2 then
paid for a fresh write. Both breakpoints now carry a 1-hour TTL.

The two prefixes were also not identical — `get_run` sat in a different position in
the agent's tool set than in the canonical schema-only one, so they could never have
shared a cache. Reordered, and a fingerprint over system text + tool definitions is
logged per model call alongside the provider's cache-write, cache-read and uncached
input token counts, so a future drift is visible instead of silent.
2026-08-05 22:16:30 +00:00
Katia Bulatova 893b9e866c chore(dashboard-agent): oxfmt 2026-08-05 22:16:29 +00:00
Katia Bulatova e8d35fab8c perf(dashboard-agent): cap read_file at 48KB / 1500 lines
A single read could put ~65k tokens in the transcript, paid for on every later
turn. The truncation notice points at the line range, and the range is now applied
before the cap so a read past the ceiling returns the lines asked for.
2026-08-05 22:16:29 +00:00
Katia Bulatova 7850289107 perf(dashboard-agent): stop echoing the panel's view model back to the model
render_view and get_report both return the panel's view model. Their toModelOutput
now gives the model an acknowledgement and the graded summary respectively, while
the client still receives the blocks and the full report. Errors pass through
verbatim, so the fix-and-render-again loop is unchanged.
2026-08-05 22:16:28 +00:00
Katia Bulatova dd1f309bae perf(dashboard-agent): cap the judge's tool payload and stop pretty-printing it
Each tool output is capped at 1500 characters with a truncation marker, and the
prompt no longer indents the whole turn of tool traffic.
2026-08-05 22:16:27 +00:00
Katia Bulatova 02debc62d9 perf(dashboard-agent): sample a tenth of turns for the judge by default
The per-turn LLM judge was billing every turn, and an unparseable
DASHBOARD_AGENT_EVAL_SAMPLE_RATE fell back to full rate too. Nothing reads
chat_turn_evals yet, so 10% loses no signal we consume.
2026-08-05 22:16:27 +00:00
Katia Bulatova 6a6fa1f4fd chore: keep the release notes as one 2026-08-05 22:13:07 +00:00
Katia Bulatova d4f0357ac1 chore(webapp): move the gallery's transcripts into the storybook fixtures and drop demo-chats 2026-08-05 22:12:44 +00:00
Katia Bulatova a7a29f368f chore: add a server-changes note for the report card fixes 2026-08-05 22:12:43 +00:00
Katia Bulatova 0760f1b55d refactor(webapp): give the agent cards one card primitive 2026-08-05 22:12:42 +00:00
Katia Bulatova 3f85acc2a7 fix(webapp): give the diagnosis card links a focus ring via a TextLink variant 2026-08-05 22:12:41 +00:00
Katia Bulatova 5a80876b16 fix(webapp): ring the unread dot against the navbar surface 2026-08-05 22:12:40 +00:00
Katia Bulatova 9b32bfda66 fix(webapp): let agent chips follow the interface-contrast control 2026-08-05 22:12:39 +00:00
Katia Bulatova fd83288906 fix(webapp): drop the metric sparkline to its own line on a narrow panel 2026-08-05 22:12:38 +00:00
Katia Bulatova 3773f31d22 fix(webapp): route the report's stale-data badge through AgentBadge 2026-08-05 22:12:37 +00:00
Katia Bulatova 5800e8929d chore: drop the unrendered demo cards and fold the release notes back into one 2026-08-05 21:49:37 +00:00
Katia Bulatova 8d3676a874 chore: oxfmt the lines the removed comments let collapse 2026-08-05 21:38:32 +00:00
Katia Bulatova f9eb9c0896 chore(dashboard-agent-db,contracts): cut the query and wire-contract comments 2026-08-05 21:38:25 +00:00
Katia Bulatova 9270caf715 chore(webapp): cut the watch service and route comments to their invariants 2026-08-05 21:38:24 +00:00
Katia Bulatova 42749c9772 chore(dashboard-agent): cut the agent, tool and watch-tick comments to their invariants 2026-08-05 21:38:23 +00:00
Katia Bulatova 5153cca045 chore: restore the comments an off-by-one over-trimmed 2026-08-05 21:38:13 +00:00
Katia Bulatova 9b7ca8c1de chore: bring the last three-line comments down to two 2026-08-05 21:37:46 +00:00
Katia Bulatova e6ec1d2d11 chore(webapp): delete the agent panel and view rationale comments 2026-08-05 21:37:45 +00:00
Katia Bulatova a4f8ed1906 chore(webapp): trim the seed-script narration 2026-08-05 21:37:09 +00:00
Katia Bulatova 0739337c24 chore: cut the report, waiting-run and package comments to their facts 2026-08-05 21:37:08 +00:00
Katia Bulatova 93bc6c158d chore(webapp): clear the demo fixture and storybook commentary 2026-08-05 21:36:19 +00:00