Repository navigation
feat: turn budget notices on by default - #11486
Conversation
…hat Completions and Gemini (#11449) * Initial plan * fix(api-proxy): add budget notices at the end of the conversation on every API Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com> * docs(api-proxy): note extended-thinking cache limitation for Messages notices Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com> * docs(api-proxy): scope pending-warning skip rule to Messages, Chat Completions and Gemini Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
…ting Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
…own notice entry Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
…is crossed Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…rivation Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
…otice-once-per-conversation Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The documentation misleadingly implies that maxAiCredits enables both notice types, although notices are enabled independently and runtime notices require container.agentTimeout.
1 open issue
What changed in this PR
This PR enables AI-credit and time-budget notices by default for AWF CLI runs. Explicit opt-outs remain supported, while callers that construct WrapperConfig directly retain their existing behavior.
Changes:
- Default budget steering to on and remove the alias flag’s implicit
falsedefault. - Update tests for the new default, explicit disabling, and unset alias behavior.
- Align CLI help, schema descriptions, and documentation with the new default.
| File | Description |
|---|---|
src/types/rate-limit-options.ts |
Clarifies CLI versus direct-config behavior in documentation. |
src/parsers/rate-limit-parsers.ts |
Changes the steering fallback to true. |
src/parsers/rate-limit-parsers.test.ts |
Tests the enabled default and explicit alias opt-out. |
src/commands/build-config.test.ts |
Updates configuration expectations for the new default. |
src/cli-options.ts |
Removes the alias’s false default and updates help text. |
src/cli-options.test.ts |
Expects an unset alias to remain undefined. |
src/awf-config-schema.json |
Updates generated steering descriptions. |
docs/awf-config.schema.json |
Documents the enabled default and opt-out forms. |
docs/awf-config-spec.md |
Revises budget-steering configuration guidance. |
docs/api-proxy-sidecar.md |
Updates default behavior and usage examples. |
docs-site/src/content/docs/reference/cli-reference.md |
Aligns CLI reference defaults and flag descriptions. |
Review effort: Max
Co-authored-by: rabeckett <5445735+rabeckett@users.noreply.github.com>
|
Smoke Cloud Hypervisor completed. Cloud Hypervisor + Copilot passed.
|
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded. Smoke ChrootOutcome: The agent completed and reported one or more actions. The no-op output is a completion signal, not a claim that no action was taken. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
📡 Smoke OTel Tracing completed. All tracing scenarios validated. ✅ Smoke OTel TracingOutcome: The agent completed and reported one or more actions. The no-op output is a completion signal, not a claim that no action was taken. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤
|
|
✅ Build Test Suite completed successfully!
|
|
🛡️ Smoke Copilot Network Isolation confirmed the egress allowlist is enforced. ✅ Smoke Copilot Network IsolationOutcome: The agent completed and reported one or more actions. The no-op output is a completion signal, not a claim that no action was taken. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟 Smoke CodexOutcome: The agent completed and reported one or more actions. The no-op output is a completion signal, not a claim that no action was taken. Agent messages are omitted from this comment. The category uses structured run status, not interpretation of agent prose.
|
|
🔌 Smoke Services — All services reachable! ✅
|
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓
|
|
Cloud Hypervisor + Copilot smoke test
Overall: PASS
|
🏗️ Build Test Suite Results
Overall: 6/8 ecosystems passed — FAIL Failures
The
|
Smoke Test: Claude Engine
Overall result: PASS
|
|
OTEL smoke test
|
|
Services smoke test: PASS
|
|
Smoke Copilot: PR "feat: turn budget notices on by default"
Overall: PASS —
|
Chroot Version Comparison
Result: ❌ Not all tests passed. Node.js differs between host and chroot, so the
|
|
Smoke Test: Copilot BYOK (Direct Mode) ✅ PASS
Running in direct BYOK mode. All tests passed.
|
|
EGRESS_RESULT allow=pass deny=pass
|
|
Smoke test
|

Makes
apiProxy.steering.budget(aliasenableTokenSteering/--enable-token-steering) default totruewhen neither the config file nor the CLI sets it. gh-aw already turns notices on for every workflow with a credit budget, so this mainly changes runs outside gh-aw.Stacked on #11479 (#11445). It should not merge before #11443 and #11445 have shipped.
Resolution
resolveSteeringBudget(src/parsers/rate-limit-parsers.ts) now falls back totrueinstead offalse.--enable-token-steeringno longer has a built-infalsedefault. With that default, an unset alias would read as an explicit "off" and the new default would never apply.steering.budget: false,enableTokenSteering: falseand--no-steering-budget.WrapperConfig.enableTokenSteeringstill means off when unset. Only the CLI path turns it on, so callers that build the config directly keep their current behaviour.containers/api-proxyis not touched (Make budget notices say how much is left and what to do #11446 is changing it in parallel).apiProxy: {}--no-steering-budgetsteering.budget: falseorenableTokenSteering: falsesteering.budget: false--steering-budget--enable-token-steering --no-steering-budgetTo turn notices off:
Docs and help text
--steering-budgetand--no-steering-budget.steering.budgetandenableTokenSteering(docs/awf-config.schema.json, regenerated intosrc/awf-config-schema.json).docs/awf-config-spec.md: the option list and §10.1 no longer call budget steering opt-in.docs/api-proxy-sidecar.md, "Runtime and AI-credit steering".docs-siteCLI reference, which also called it opt-in.Tests
false.