The assistant's draft-a-block flow has been through two refactors of its module handling without a live run: it first harvested ambient auto-fill results, and now solves once, adopts the per-row suggested fills as the draft's explicit module picks (pinning the machine they were sized for), and re-solves so counts/power/imports reflect them (buildBlockDraft in app/src/server/agent-tools.server.ts).
Types and unit tests pass but nothing exercises the path against a real model. Needs a live OpenRouter session: draft a block, confirm the draft arrives with sensible modules (prod where allowed, speed/efficiency split elsewhere), machines pinned to match, and rates consistent with the filled solve. General live pass on the other assistant flows (plan drafting, revise-rate) is also still outstanding since the solver v2 and suggestion changes landed underneath them.
The assistant's draft-a-block flow has been through two refactors of its module handling without a live run: it first harvested ambient auto-fill results, and now solves once, adopts the per-row suggested fills as the draft's explicit module picks (pinning the machine they were sized for), and re-solves so counts/power/imports reflect them (buildBlockDraft in app/src/server/agent-tools.server.ts).
Types and unit tests pass but nothing exercises the path against a real model. Needs a live OpenRouter session: draft a block, confirm the draft arrives with sensible modules (prod where allowed, speed/efficiency split elsewhere), machines pinned to match, and rates consistent with the filled solve. General live pass on the other assistant flows (plan drafting, revise-rate) is also still outstanding since the solver v2 and suggestion changes landed underneath them.