This repository has no description
bez tasks rig-batch-absolute.md
4.4 kB
Markdown
at main


enabled: true touches: [crates/layout/src/generated/, crates/generation/, docs/model-first-cost.md, docs/rig-capacity.md, roadmap.md, corpus/**] depends-on: [repair-loop-live-run] #

Draw a large free batch from the rig for the absolute seam's unsolved categories #

The absolute seam's committed candidate (crates/layout/src/generated/absolute.rs header line, 74/108) leaves four categories at 0: BottomHeightTopAuto, OffsetsDefineSize, OverConstrainedRtl, PercentageOffsetsAndSizes (docs/model-first-cost.md → the absolute batch narrative). Every batch so far drew eight candidates from a paid or subscription model. The rig's own gateway alias (qwen3.8-flash-next, one TabbyAPI replica per Spark on all four Sparks, docs/rig-capacity.md → "Serving — four single-Spark replicas") costs nothing per token, draws up to 32 candidates concurrently across the four replicas (each saturates at eight in flight), and has already produced an admitted width candidate at a 32-candidate width (14 of 32 compiled, best 140/227, 7 m 49 s wall, over the previous 132/227 from claude-opus-5). This track runs the same free-hardware batch against the absolute seam's four unsolved categories.

The model endpoint and keys are read from the environment, and the binaries do not load .env themselves. Before every run: set -a; source .env; set +a in the worktree (.env is a symlink installed by tracks.json). Never print or commit any value from it. GENERA_MODEL_URL names the rig gateway; confirm it answers (curl its models list with the bearer key, output discarded) before drawing, and if it does not, record that in the handoff and stop rather than switching provider: GENERA_PROVIDER stays unset for this track (the rig path), never anthropic.

Steps, each as cargo run --release -p generation --bin <name>:

  1. absolute_ground_truth_cache and absolute_generation_loop if corpus/absolute-ground-truth/ and corpus/absolute-regression-set.json are not present in this worktree (they are gitignored and do not survive a worktree's removal); the seeded-wrong fixtures must still be rejected.
  2. GENERA_MODEL=qwen3.8-flash-next GENERA_CANDIDATES=32 GENERA_CONCURRENCY=32 absolute_real_model_run. The loop's stop condition (two batches without per-category improvement, or six batches) applies unchanged; each batch is 32 candidates instead of 8. If absolute_real_model_run.rs still hard-codes CANDIDATE_COUNT = 8 rather than reading orchestrate::candidate_count() the way the width, margin and percentage binaries do, switch it to candidate_count() first (the automated-repair-iteration track recorded leaving that as-is), with a unit test in the style of orchestrate.rs's candidate_count_reads_env_unset_valid_and_invalid.
  3. Record, per batch, in docs/model-first-cost.md → "Batch scores and token totals": candidates compiled of drawn, null-content replies (the fast alias returned 3 of 8 last time), best score, per-category tally, prompt and output tokens (the rig path reports them), and wall-clock. Add a row to docs/rig-capacity.md → "Measured — real batches through the gateway" for the 32-candidate batch shape.

The committed candidate is replaced only through crates/generation/src/admit.rs beats_committed: a candidate scoring strictly above the committed score on the same 108-case corpus, committed byte for byte as crates/layout/src/generated/absolute.rs with the header line naming candidate, model and score, and absolute.provenance.json beside it. Anything lower is reported, not committed.

Write the comparison that is the point of this track into docs/model-first-cost.md as a short subsection: the paid eight-candidate batches' best per-category tally versus the free 32-candidate batches', with the wall-clock and token cost of each, and one sentence on whether free volume from the rig solved any category the paid batches did not. roadmap.md → "Phase 1 — Engine bootstrap" step 4 gets one line pointing at it.

cargo test --workspace must pass. fragment_check on the seeded-random recipe corpus (cargo run --release --bin fragment_check -p layout -- --random) must still report at least 216/227; an admitted candidate that lowers it is not committed, and the discrepancy is recorded instead.