feat: ~1M context floor for role picks; docs, tests, dead-sort removal #1

Merged
crooy merged 2 commits from context-floor-and-role-picks into main 2026-09-30 06:50:16 +02:00
Owner

Adds a real context-window constraint to the analyzer and records the rules the
2026-09-11 role cut was actually made on.

Tool

  • context_length from the models API was being fetched and thrown away; it is
    now used. New --min-context (1m / 256k / raw int) filters before the
    Pareto and knee maths, a Ctx column shows every row's window, and
    min_context is echoed in --json.
  • Models absent from the models API have unknown context and count as below the
    floor, so they drop out rather than silently topping the frontier.

Tests / CI

  • test_openrouter_pareto.py: offline self-check for the size helpers
    (suffixes, case, floats, junk rejection, inclusive floor). Wired into the
    smoke workflow, which stays network-free by design.

Docs + skill

  • The ~1M context floor for every role except smol.
  • The per-role axis rule: agency ranks slow/task; intelligence ranks
    plan/advisor, with tau2 only a floor for the advisor since it reads
    tool-use transcripts. Rank on marginal $ per intelligence point, and compare
    in-family variants before paying a tier up.
  • A guard for the OMP config trap: a settings block mis-indented under another
    key (e.g. inside retry:) is parsed as that key's child and silently ignored,
    so the file reads correct while OMP uses defaults. Verify the effective value
    with omp config get, never the file.
  • Corrected the sample advisor pick in the skill, which contradicted the
    decision it was illustrating.

Cleanup: removed an unused re-sort in compute_pareto_frontier.

Verified: py_compile, test_openrouter_pareto.py, --help, a live
--json run, and -b hle --cost-metric task --min-context 1m all pass.

Adds a real context-window constraint to the analyzer and records the rules the 2026-09-11 role cut was actually made on. **Tool** - `context_length` from the models API was being fetched and thrown away; it is now used. New `--min-context` (`1m` / `256k` / raw int) filters **before** the Pareto and knee maths, a `Ctx` column shows every row's window, and `min_context` is echoed in `--json`. - Models absent from the models API have unknown context and count as below the floor, so they drop out rather than silently topping the frontier. **Tests / CI** - `test_openrouter_pareto.py`: offline self-check for the size helpers (suffixes, case, floats, junk rejection, inclusive floor). Wired into the smoke workflow, which stays network-free by design. **Docs + skill** - The ~1M context floor for every role except `smol`. - The per-role **axis rule**: agency ranks `slow`/`task`; intelligence ranks `plan`/`advisor`, with tau2 only a floor for the advisor since it reads tool-use transcripts. Rank on marginal \$ per intelligence point, and compare in-family variants before paying a tier up. - A guard for the OMP config trap: a settings block mis-indented under another key (e.g. inside `retry:`) is parsed as that key's child and silently ignored, so the file reads correct while OMP uses defaults. Verify the effective value with `omp config get`, never the file. - Corrected the sample `advisor` pick in the skill, which contradicted the decision it was illustrating. **Cleanup**: removed an unused re-sort in `compute_pareto_frontier`. **Verified**: `py_compile`, `test_openrouter_pareto.py`, `--help`, a live `--json` run, and `-b hle --cost-metric task --min-context 1m` all pass.
feat: ~1M context floor for role picks; keep the axe, drop the dead sort
All checks were successful
smoke / smoke (push) Successful in 11s
smoke / smoke (pull_request) Successful in 7s
880d7d3455
- openrouter_pareto.py: use the models API context_length (was fetched and
  discarded), add --min-context (1m/256k/raw), a Ctx column in the table and
  min_context in --json; models missing from the API count as below the floor
  and are filtered out before the Pareto/knee maths
- test_openrouter_pareto.py: offline self-check for the size helpers, wired
  into the CI smoke workflow (no network)
- docs: the ~1M floor for every role except smol, the per-role axis rule
  (agency ranks slow/task, intelligence ranks plan/advisor with tau2 as a
  floor), rank on marginal $ per point, and a guard for the OMP config trap
  where a mis-indented settings block is silently ignored
- fix the sample advisor pick in the skill (it did not match the decision)
- drop an unused re-sort in compute_pareto_frontier
docs: remove references to private setup kit
All checks were successful
smoke / smoke (push) Successful in 7s
smoke / smoke (pull_request) Successful in 8s
2bfaa88a78
crooy merged commit 0ee2ff8aa8 into main 2026-09-30 06:50:16 +02:00
crooy deleted branch context-floor-and-role-picks 2026-09-30 06:50:16 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crooy/omp-pareto-models!1
No description provided.