Keep a record of each run's tool calls so bots can't claim work they never did

The wrap-up turn now gets the run's actual tool calls, each bot message
keeps them as bot_messages.tool_log, and history follows recorded bot
messages with an [App record] line. The coordinator also gets update_bot
in workspaces, so it can fill a bot's core prompt from there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-25 11:32:56 +01:00
co-authored by Claude Opus 5.5
parent 93896646c7
commit d7f88d8dd3
22 changed files with 293 additions and 19 deletions
+6
View File
@@ -1,5 +1,6 @@
import type { BUN_SQLITE_COBBLE_BOTS_QUEUE } from "@/db/types/db";
import type { TextLoopStep } from "@/src/harness/text/run-text-loop";
import type { HarnessToolUse } from "@/src/harness/types";
export type BotJobContext = {
job: BUN_SQLITE_COBBLE_BOTS_QUEUE;
@@ -45,6 +46,11 @@ export type BotJobOutcome = {
* ids), attached to the result message.
*/
attachments?: number[];
/**
* Every tool call the run made (`runTextLoop`'s `tool_uses`), kept on
* the result message as `tool_log`.
*/
tool_log?: HarnessToolUse[];
};
export type BotJobRunner = (context: BotJobContext) => Promise<BotJobOutcome>;