Settings: what the web costs, written down — Web Search + Research Mode (v0.21.267) - #70
Merged
Merged
Conversation
Web Search and Research Mode, 31 keys, written to the golden standard. Both screens are about the same thing — how much of the web an agent may read and what that is allowed to cost — so they were written together and cross- reference each other. The help carries the cost story concretely rather than gesturing at it: a budget window opens per turn and closes with it, call counts and dollar ceilings bind together with whichever runs out first ending the spending, and **only interactive turns are metered** — work running under delegation or the planner is not inside a window at all, which is not obvious and matters. Tavily credit arithmetic is stated where it decides something (an `advanced` search bills 2 credits, so setting it halves how far a call budget stretches in money). `source_policy` gets the asymmetry it turns on: blocked is a hard floor the model cannot widen past, preferred is a soft seed that a model's own explicit scope overrides — because silently over-narrowing is how a research turn comes back empty. **A mis-section the refit caught.** `search.research_per_turn_limit` claimed the Web Search screen, inheriting it from its config root, while it has always rendered on Research Mode with the rest of that budget. Declared onto the screen it actually appears on — the same class of lie `memory.project_channels` told, and the second time this cadence has caught one. **Six keys were writable over the API with no control anywhere.** Rather than document them as unreachable: `brave_context_max_tokens_per_url`, whose sibling total budget was already on screen and made no sense alone, and the whole deep-research tuning group — the output floor, cache, poll bounds, and the budget weight that the search-budget help points the reader at. Writing help that says "see the weight below" and then not showing it would have been worse than either. Two fixes on the way: The generic round-trip test **skipped** constrained keys, so its coverage shrank every time a section declared bounds — it fell to 43 and tripped its own floor of 50. Backwards: it exists to catch a declared key that silently fails to persist, and constrained keys are no less prone to that. Constrained keys are now probed within their declared range, coverage is up, and the floor rises with it. A toggle row lays out as [control + label + chrome] [hint], and the hint was winning the width fight — long labels wrapped to three lines, which got worse once labels gained a help affordance. Secondary text wraps now. `advanced` in the generated reference no longer claims to be "behind the disclosure in Settings"; that was true of the one section this started with and is not a promise every screen keeps. 76 of 208 settings now documented, up from 45. Assisted-by: Opus 5
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wave 3.3 of the settings campaign. 31 keys across two screens, written to the golden standard. 76 of 208 settings now documented, up from 45.
Both screens are about the same thing — how much of the web an agent may read and what that is allowed to cost — so they were written together and cross-reference each other.
The cost story, stated rather than gestured at
advancedsearch bills 2 credits, so setting it as the default halves how far a call budget stretches in money while the count looks unchanged.source_policygets the asymmetry it turns on. Blocked is a hard floor the model cannot widen past. Preferred is a soft seed that a model's own explicit scope overrides — because silently over-narrowing is how a research turn comes back empty, and the agent reads that as "no such information exists".A mis-section the refit caught
search.research_per_turn_limitclaimed the Web Search screen — inherited from its config root — while it has always rendered on Research Mode, with the rest of that budget. Now declared onto the screen it actually appears on.Same class of lie
memory.project_channelstold in Wave 3.1. Second one this cadence has caught, which is roughly the point of writing the help against the code.Six keys had no control anywhere
Writable over the API, rendered nowhere. Rather than documenting them as unreachable:
brave_context_max_tokens_per_url— its sibling total budget was already on screen, and a total with no per-page share is half a control.The Research Mode cost projection now reads the live budget weight instead of assuming 3.
Two fixes on the way
The generic round-trip test was shrinking. It skipped keys that declare constraints, so its coverage fell every time a section was refit — down to 43, tripping its own floor of 50. That is backwards: the test exists to catch a declared key that silently fails to persist, and a constrained key is no less prone to that. Constrained keys are now probed within their declared range; coverage is up and the floor rises with it.
Toggle labels wrapped to three lines. A toggle row lays out as
[control + label + chrome] [hint]and the hint was winning the width fight — which got worse once labels gained a help affordance beside them. Secondary text wraps now. Verified live across Web Search, Recall and Conversation Context.Also:
advancedin the generated reference no longer claims to be "behind the disclosure in Settings". That was true of the one section this started with and is not a promise every screen keeps.Verification
task test:sterile1243 OKtsccleanruff check api/clean; pyright baseline 0task docs:checkgreen, zero warnings; production build OKconfig:search.research_per_turn_limiton the screen it belongs to. Manifest confirms the section move, the constraints and the tiers. 375px pass, no horizontal overflow.Assisted-by: Opus 5