Skip to content

fix(profiles): rename silently-ignored fields + wire Phase P in full-opti-v5#273

Merged
Destynova2 merged 1 commit intomainfrom
fix/full-opti-v5-phase-p
Apr 25, 2026
Merged

fix(profiles): rename silently-ignored fields + wire Phase P in full-opti-v5#273
Destynova2 merged 1 commit intomainfrom
fix/full-opti-v5-phase-p

Conversation

@Destynova2
Copy link
Copy Markdown
Contributor

Summary

The `profiles/full-opti-v5.toml` profile had five field names that serde silently ignored, so the profile shipped with default values for those keys instead of the values written. Discovered while wiring the new Phase P SimHash threshold.

Renames (silently dropped → operational)

Section Was Should be
`[router]` `web_search` `websearch`
`[cache]` `ttl_seconds` `ttl_secs`
`[cache]` `max_entries` `max_capacity`
`[budget]` `warning_threshold_percent` `warn_at_percent`
`[security]` `rate_limit_rpm = 120` `rate_limit_rps = 2` + `rate_limit_burst = 30`

The security split keeps the same sustained rate (2 rps × 60 = 120 rpm) but adds a 30-request burst tolerance — Claude Code routinely fires 5–10 parallel tool calls in a single turn.

Phase P additions

  • `cache.simhash_threshold = 4` — slightly more permissive than the default 3 to favor cache hits on paraphrases / whitespace edits without colliding unrelated prompts.
  • `cache.max_entry_bytes = 4 MiB` — explicit (was unset, falling back to 2 MiB default).
  • `cache.max_capacity` 1000 → 10000 — 10× window, ~20 MiB total memory.
  • `cache.ttl_secs` 3600 → 14400 — 4h covers a full Claude Code day.

Validation

```sh
grob --config profiles/full-opti-v5.toml doctor
```
returns `🎉 All checks passed!` and prints `rate_limit=2rps` — proof that the renamed field is now read by the parser (before this PR, the value was silently the default).

Test plan

  • `grob doctor` on the patched profile returns success
  • Doctor reports `rate_limit=2rps` (confirms the renamed field is parsed)
  • CI green (auto-merge enabled below)

…opti-v5

The profile had five field names that serde silently ignored, falling
back to defaults. Discovered while wiring the Phase P SimHash threshold.

Renames (silent → operational):

- router.web_search           → router.websearch
- cache.ttl_seconds           → cache.ttl_secs
- cache.max_entries           → cache.max_capacity
- budget.warning_threshold_percent → budget.warn_at_percent
- security.rate_limit_rpm     → security.rate_limit_rps + rate_limit_burst
                                 (2 rps + burst 30 ≈ 120 rpm sustained
                                 with tolerance for parallel tool calls)

Phase P additions:

- cache.simhash_threshold = 4 (default 3, slightly more permissive
  to favor hits on paraphrases without colliding unrelated prompts)
- cache.max_entry_bytes   = 4 MiB (was unset, default 2 MiB)
- cache.max_capacity 1000 → 10000 (10x window, ~20 MiB total)
- cache.ttl_secs    3600 → 14400 (4h — covers a full Claude Code day)

Validation: `grob --config profiles/full-opti-v5.toml doctor` returns
"All checks passed" and prints `rate_limit=2rps`, confirming the
renames are now read by the parser.
@Destynova2 Destynova2 enabled auto-merge April 25, 2026 21:03
@Destynova2 Destynova2 merged commit fda374d into main Apr 25, 2026
27 checks passed
@Destynova2 Destynova2 deleted the fix/full-opti-v5-phase-p branch April 25, 2026 21:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant