Skip to content

feat(calibration): register the slop gate score as the registry's first ceiling knob, report-only#8275

Merged
JSONbored merged 1 commit into
mainfrom
feat/slop-knob-report-only
Jul 23, 2026
Merged

feat(calibration): register the slop gate score as the registry's first ceiling knob, report-only#8275
JSONbored merged 1 commit into
mainfrom
feat/slop-knob-report-only

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

Closes #8224 (per its recorded re-scope: quality stays out, slop enters via the orientation axis).

  • Orientation axis: LoosenableKnob gains orientation: "floor" | "ceiling" — a floor knob (every prior entry) loosens DOWNWARD toward hardMinimum; a ceiling knob loosens UPWARD toward a new hardMaximum. The classifier math is unchanged (both knob families fire on value ≥ threshold — verified against the calibration: capture writers + corpus mappings for the slop and quality gate scores #8223 capture: confidence = slopRisk/100, block at ≥ threshold), so only the candidate direction, the bound, and the drift direction LABEL branch (above-live is looser for a ceiling — the inverted label the issue's design finding flagged as the blocker to registering slop honestly).
  • slop_gate_score enters report-only: shipped 0.60 (DEFAULT_SLOP_BLOCK_THRESHOLD / 100, now exported with the matching engine-twin edit), raises [0.65, 0.70], hard ceiling 0.70, the registry's strictest 50/12 sample floors — written bounds rationale in the entry comment. The generic report-only proposals path picks it up with zero new plumbing (pinned by a test seeding a real signal store and running the shipped default-registry path).
  • Structural invariants: ceiling entries must declare hardMaximum, stay report_only, and carry no tightening ladder until the live storage generalizes; defensive nullish arms proven to refuse rather than treat a missing bound as infinity.
  • Knobs endpoint: now lists EVERY registry knob labeled by a new applyMode field (loadAllKnobStatuses), so operators see report-only evidence surfaces before any flip-to-live exists. The advisor's reliability recs stay live-only by design.
  • quality_gate_score stays out (no global shipped default to anchor on) — recorded in the registry comment; the flip-to-live issue gets filed only after proposals with real evidence exist, per the issue's boundary.

Validation

  • Full local gate npm run test:ci on the pre-rebase base: green except (a) three engine-parity tests that were correctly demanding the matching gate-decision twin edit — now committed (gate-advisory.ts mirrors the export; parity suite 14/14 green) — and (b) the known satisfaction-floor-loosening-run first-test load-timeout flake, 23/23 standalone. npm audit --audit-level=moderate clean.
  • Rebased onto current main (engine 3.11.0); post-rebase typecheck clean; parity + both loosening suites green.
  • 100% line+branch on every changed range in loosening-knobs.ts, knob-loosening-run.ts, advisory.ts, and the routes line (lcov vs exact diff hunks), including both defensive nullish arms and the orientation branches on both sides.

…st ceiling knob, report-only (#8224)

The registry gains the orientation axis #8224's design finding called for:
a floor knob (every prior entry) loosens DOWNWARD toward hardMinimum; a
ceiling knob — the slop gate blocks when risk/100 >= the value — loosens
UPWARD toward a declared hardMaximum, with the classifier math unchanged
(both knob families fire on value >= threshold). evaluateKnobLoosening and
evaluateKnobDrift branch on orientation (including the drift direction
label: above-live is LOOSER for a ceiling), and the structural invariants
pin ceiling entries to report_only with no tightening ladder until the live
storage generalizes.

slop_gate_score enters report-only: shipped 0.60 (the gate constant /100),
two raises [0.65, 0.70], hard ceiling 0.70, the registry's strictest 50/12
sample floors — bounds rationale in the entry comment. The generic
report-only proposals path picks it up with zero new plumbing, and the
knobs endpoint now lists EVERY registry knob labeled by applyMode.

quality_gate_score stays out (no global shipped default to anchor on),
recorded in the registry comment; the flip-to-live issue gets filed only
after proposals with real evidence exist.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 23, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
loopover-ui d875094 Commit Preview URL

Branch Preview URL
Jul 23 2026, 10:22 PM

@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@github-actions

Copy link
Copy Markdown
Contributor

Logic backtest

Replayed 0 historical case(s) for linked_issue_scope_mismatch through the base (9733791) and head (d875094) versions of its detection logic (corpus checksum 4f53cda18c2b).

Backtest comparison: linked_issue_scope_mismatch

Verdict: unchanged — no comparable axis moved.

Advisory only — this check never blocks merge (#8105).

@JSONbored JSONbored self-assigned this Jul 23, 2026
@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.16%. Comparing base (9733791) to head (d875094).
⚠️ Report is 2 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8275      +/-   ##
==========================================
- Coverage   92.16%   92.16%   -0.01%     
==========================================
  Files         788      788              
  Lines       79164    79173       +9     
  Branches    23926    23932       +6     
==========================================
+ Hits        72962    72968       +6     
  Misses       5062     5062              
- Partials     1140     1143       +3     
Flag Coverage Δ
shard-1 58.54% <20.00%> (-0.04%) ⬇️
shard-2 49.97% <73.33%> (+<0.01%) ⬆️
shard-3 54.05% <66.66%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...ages/loopover-engine/src/advisory/gate-advisory.ts 97.56% <100.00%> (ø)
src/api/routes.ts 95.29% <100.00%> (ø)
src/rules/advisory.ts 98.10% <100.00%> (ø)
src/services/knob-loosening-run.ts 100.00% <100.00%> (ø)
src/services/loosening-knobs.ts 100.00% <100.00%> (ø)

... and 2 files with indirect coverage changes

@loopover-orb loopover-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 23, 2026
@JSONbored
JSONbored merged commit 112ead6 into main Jul 23, 2026
17 checks passed
@JSONbored
JSONbored deleted the feat/slop-knob-report-only branch July 23, 2026 22:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

calibration: register slop + quality score knobs (report-only) in LOOSENABLE_KNOBS

1 participant