mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-02 02:13:49 +00:00
Step 0 of .ai/plans/pebble-absorbs-embedder-concerns.md. Pebble's fabro-exec-sink-max-turns branch is merged into its main (pebble 4db661c, on the embedder-concerns branch until it lands), so fabro and petri pin one line. Both prompt budgets survive the merge because they count different things. - Agent hooks use `with_max_tool_rounds`, which is what the `max_tool_rounds` setting names and what petri does: `max_tool_rounds` model turns may run, and the hook proceeds on a turn that still asks for tools, so pebble gets `max_tool_rounds - 1` rounds and `ToolRoundsExhausted` fails open. Zero rounds proceeds without an agent, as the old loop did. Agent stages set no turn budget; the stage timeout and stall watchdog bound them. - Prompt stages load project memory through pebble's `ProjectMemory`, the loader agent stages already run over `with_memory_files`, instead of a hand-rolled copy of its budget, deduplication, and truncation. - `fabro_sandbox::SecretRedactor` puts fabro's secret scanner on pebble's text seams (process output tails, failed tool messages) for agent stages, Ask Fabro, hook evaluators, and `fabro exec`. The final redaction pass over every stored `RunEvent` stays; this does not replace it. - Agent stages state their compaction policy explicitly: the 80 percent threshold and six preserved turns fabro's own agent loop applied. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| llm | ||
| agent.rs | ||
| command.rs | ||
| conditional.rs | ||
| exit.rs | ||
| fan_in.rs | ||
| human.rs | ||
| manager_loop.rs | ||
| mod.rs | ||
| parallel.rs | ||
| prompt.rs | ||
| start.rs | ||
| structured_output.rs | ||
| wait.rs | ||