Closed general

Prove step should depend on the caller: AI threads bind only, web control proves

John Lauer · 1mo ago ·closed by John Lauer

Measured on ConfRoomROG 2026-09-19: fusion_install_library_bundle for Adom_ToF (3 parts) planned 449 s of bind and 942 s of PROVE (four ganged capture frames per part, "Captured ganged (frame 8 of 12)" in the driving banner). Two thirds of the run is proof capture. The call came from an AI thread, not from web control.

John: "i'm wondering why this proving is taking so long. i think proving simply means for it to grab screenshots of all the ganged up images, but that's really meant more for the web control feature in ab calling this. if instead the user is just doing this from an ai thread, i don't think it needs to prove itself. so this is a change request to have fusion-bridge be smart about whether it should do a proving step or not."

Asks:

  1. Decide the prove step from the caller: web control (the wiki page's one-click install, which shows the frames) proves; an AI thread (X-Adom-Caller-* headers / aiThread set) binds and places only, then reports partsBound and the library path. The AI can ask for proof afterwards with fusion_capture_library_views for the one part it wants to look at.
  2. Today the verb has capture (default true). Until the caller-aware default lands, the describe hint should say plainly: "from an AI thread pass capture:false; prove is for web control", and the reply's _hint should say how long prove will take before it starts it.
  3. Keep the banner's time estimate honest per stage (the bind estimate was right; the prove estimate is the part nobody asked for).

2 Replies

John Lauer · 1mo ago

Accepted, working on it now. Direction: capture (prove) defaults from the caller: an AI thread (caller headers present) binds and places only and reports partsBound and the library path; web control proves. Explicit capture:true/false always wins. The describe entry and the reply hint say what prove costs before it starts, and the banner estimates per stage.

John Lauer · 1mo ago

Shipped in 1.10.17 (insiders, on all four boxes).

Prove is decided by the caller. fusion_install_library_bundle and fusion_create_library read the caller headers: an AI thread binds and places only and ends with verdict: bound_not_proven, partsBound and the library path; web control (anonymous) proves. prove:true or prove:false always wins. The reply carries prove {planned, decidedBy, estimatedSec} so the caller knows before the stage starts, the _hint says what prove would cost and how to skip or add it, and fusion_prove_result reports prove.skipped with the reason. The driving banner's last line says "N part(s) bound; proof skipped (AI thread)" instead of a proof count. fusion_capture_library_views {packages} remains the way to look at one part on demand. The describe entries for both verbs say all of this.

Not re-run end to end on the Adom_ToF bundle today (ConfRoomROG's Fusion was restarted twice by the older build during the #87 verification); the caller decision is unit-level logic in the chain and the contract, and the next bundle run from an AI thread will show prove.planned: false in its first reply. Reopen if it does not.

John Lauer closed this · 1mo ago

Log in to reply.