117 lines
7.2 KiB
Markdown
117 lines
7.2 KiB
Markdown
# Deferred admin portal knobs
|
|
Status: reference -- Tracker for knobs outside current admin gate
|
|
|
|
This file tracks config knobs that are outside the admin portal's current
|
|
gate. The coverage test in `tests/test_admin_knob_coverage.py` enforces that
|
|
every knob in a section the portal reaches is either covered or excused with a
|
|
reason. Sections the portal has not reached are out of scope for that test,
|
|
but they still need a recorded home so the first control added under a section
|
|
does not leave half its siblings orphaned.
|
|
|
|
Rows use four columns:
|
|
|
|
| Column | Meaning |
|
|
|---|---|
|
|
| Knob | Dotted config path in `config/config.yaml`. |
|
|
| Section | Top-level config section. |
|
|
| Disposition | `deferred` (future admin page) or `excused-with-reason` (deployment wiring or file path). |
|
|
| Future Home | The page or surface that should own this knob when the portal reaches the section. |
|
|
|
|
## Outside-gate knobs
|
|
|
|
These are `RouterConfig` scalars in sections the portal has not reached yet.
|
|
They fall into two buckets:
|
|
|
|
- Sections not yet reached: `context`, `database`, `dispatch_settings`,
|
|
`escalation`, `exploration`, `freshness`, `iteration`, `local_energy`,
|
|
`proficiency`, `tiering`.
|
|
- Deployment wiring inside those sections: endpoints, model ids, credentials,
|
|
filesystem paths, and device names.
|
|
|
|
| Knob | Section | Disposition | Future Home |
|
|
|---|---|---|---|
|
|
| `context.default_output_reserve_tokens` | context | deferred | Context page |
|
|
| `context.max_output_reserve_fraction` | context | deferred | Context page |
|
|
| `context.safety_factor` | context | deferred | Context page |
|
|
| `database.path` | database | excused-with-reason | N/A (file path) |
|
|
| `dispatch_settings.default_provider` | dispatch_settings | deferred | Providers page |
|
|
| `escalation.enabled` | escalation | deferred | Routing page |
|
|
| `escalation.max_tier` | escalation | deferred | Routing page |
|
|
| `escalation.min_confidence_before_bump` | escalation | deferred | Routing page |
|
|
| `escalation.preemptive_on_low_confidence` | escalation | deferred | Routing page |
|
|
| `exploration.enabled` | exploration | deferred | Routing page |
|
|
| `exploration.epsilon` | exploration | deferred | Routing page |
|
|
| `exploration.max_cost_ratio` | exploration | deferred | Routing page |
|
|
| `exploration.max_tier` | exploration | deferred | Routing page |
|
|
| `freshness.exclude_deprecated` | freshness | deferred | Catalog page |
|
|
| `freshness.exclude_stale` | freshness | deferred | Catalog page |
|
|
| `freshness.repoll_after_allowlist_change_seconds` | freshness | deferred | Catalog page |
|
|
| `freshness.stale_after_days` | freshness | deferred | Catalog page |
|
|
| `iteration.enabled` | iteration | deferred | Routing page |
|
|
| `iteration.max_attempts_interactive` | iteration | deferred | Routing page |
|
|
| `iteration.max_rebill_prompt_tokens` | iteration | deferred | Routing page |
|
|
| `local_energy.enabled` | local_energy | deferred | Local Hardware page |
|
|
| `local_energy.grid_intensity_g_per_kwh` | local_energy | deferred | Local Hardware page |
|
|
| `local_energy.meter` | local_energy | excused-with-reason | N/A (deployment wiring) |
|
|
| `local_energy.sample_interval_seconds` | local_energy | deferred | Local Hardware page |
|
|
| `local_energy.tariff_usd_per_kwh` | local_energy | deferred | Local Hardware page |
|
|
| `proficiency.leaderboard_weight` | proficiency | deferred | Proficiency page |
|
|
| `proficiency.outcome_prior_strength` | proficiency | deferred | Proficiency page |
|
|
| `proficiency.self_eval_min_samples` | proficiency | deferred | Proficiency page |
|
|
| `proficiency.self_eval_weight` | proficiency | deferred | Proficiency page |
|
|
| `tiering.cheap_completion_max` | tiering | deferred | Routing page |
|
|
| `tiering.tier1_context_max` | tiering | deferred | Routing page |
|
|
|
|
## Objective warning knobs
|
|
|
|
These 31 `objective.*` knobs are currently excused from the admin portal in
|
|
`tests/test_admin_knob_coverage.py`. They tune `/metrics` warnings and report
|
|
series rather than dispatch behavior. Their natural future home is a
|
|
**Warnings page** that collects all alarm and report thresholds in one place.
|
|
|
|
| Knob | Section | Disposition | Future Home |
|
|
|---|---|---|---|
|
|
| `objective.adoption_window_seconds` | objective | deferred | Warnings page |
|
|
| `objective.assumed_cache_rate` | objective | deferred | Warnings page |
|
|
| `objective.assumed_completion_tokens` | objective | deferred | Warnings page |
|
|
| `objective.billing_reset_day` | objective | deferred | Warnings page |
|
|
| `objective.cache_rate_warn_margin` | objective | deferred | Warnings page |
|
|
| `objective.cache_rate_warn_min_observations` | objective | deferred | Warnings page |
|
|
| `objective.cache_rate_window_hours` | objective | deferred | Warnings page |
|
|
| `objective.cost_calibration_min_observations` | objective | deferred | Warnings page |
|
|
| `objective.cost_calibration_window_hours` | objective | deferred | Warnings page |
|
|
| `objective.credit_attenuation.enabled` | objective | deferred | Warnings page |
|
|
| `objective.credit_attenuation.max_multiplier` | objective | deferred | Warnings page |
|
|
| `objective.credit_attenuation.refresh_seconds` | objective | deferred | Warnings page |
|
|
| `objective.credit_attenuation.soft_floor_usd` | objective | deferred | Warnings page |
|
|
| `objective.credit_attenuation.zero_floor_usd` | objective | deferred | Warnings page |
|
|
| `objective.cumulative_spend_warn_min_rows` | objective | deferred | Warnings page |
|
|
| `objective.cumulative_spend_warn_usd` | objective | deferred | Warnings page |
|
|
| `objective.incumbent_rate_min_observations` | objective | deferred | Warnings page |
|
|
| `objective.incumbent_rate_refresh_seconds` | objective | deferred | Warnings page |
|
|
| `objective.latency_min_observations` | objective | deferred | Warnings page |
|
|
| `objective.latency_window_hours` | objective | deferred | Warnings page |
|
|
| `objective.plan_pace_warn_ratio` | objective | deferred | Warnings page |
|
|
| `objective.proficiency_depth_warn_min_rows` | objective | deferred | Warnings page |
|
|
| `objective.proficiency_depth_warn_min_samples` | objective | deferred | Warnings page |
|
|
| `objective.quota_burn_min_segment_hours` | objective | deferred | Warnings page |
|
|
| `objective.quota_burn_min_segment_samples` | objective | deferred | Warnings page |
|
|
| `objective.quota_burn_window_hours` | objective | deferred | Warnings page |
|
|
| `objective.quota_runway_warning_hours` | objective | deferred | Warnings page |
|
|
| `objective.rejection_warning_baseline_hours` | objective | deferred | Warnings page |
|
|
| `objective.rejection_warning_min_count` | objective | deferred | Warnings page |
|
|
| `objective.rejection_warning_window_hours` | objective | deferred | Warnings page |
|
|
| `objective.selection_coverage_window_hours` | objective | deferred | Warnings page |
|
|
|
|
## Notes
|
|
|
|
- A section moves from "outside gate" to "in scope" the moment the portal adds
|
|
its first control there. At that point every scalar under it must be covered,
|
|
excused, or removed from this tracker into `DELIBERATELY_NOT_IN_ADMIN`.
|
|
- Deployment wiring (endpoints, model ids, credentials, paths, devices) is
|
|
deliberately off the admin allowlist. Those knobs should stay
|
|
`excused-with-reason` even after their section is reached.
|
|
- The Warnings page is not built yet. When it is, these `objective.*` knobs
|
|
should move from `DELIBERATELY_NOT_IN_ADMIN` into registry or allowlist
|
|
entries, and this table should shrink.
|