Remove firewall.effective-token-steering frontmatter key#32161
Conversation
… by default, negative max-effective-tokens to disable Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR removes the firewall.effective-token-steering opt-in and makes token steering default behavior, using negative max-effective-tokens values as the disable sentinel.
Changes:
- Removed
EnableTokenSteeringparsing/storage and derives AWF token steering from the effective token budget. - Updated schema/tests/docs for negative
max-effective-tokensand removed the top-levelfirewallschema key. - Removed the old frontmatter key from workflow files and refreshed corresponding lock metadata.
Show a summary per file
| File | Description |
|---|---|
pkg/workflow/engine.go |
Removes token-steering config field and updates ET parsing/default behavior. |
pkg/workflow/engine_config_test.go |
Updates engine config tests for negative ET sentinel. |
pkg/workflow/compiler_orchestrator_engine.go |
Preserves negative ET values through engine/import setup. |
pkg/workflow/compiler_orchestrator_engine_test.go |
Updates preservation test for negative ET values. |
pkg/workflow/awf_config.go |
Enables token steering by default and omits budget when disabled. |
pkg/workflow/awf_config_test.go |
Updates AWF config tests for default steering and negative disable. |
pkg/parser/schemas/main_workflow_schema.json |
Allows negative ET values and removes top-level firewall. |
pkg/parser/schema_test.go |
Updates schema validation test for negative ET values. |
docs/src/content/docs/reference/network.md |
Documents default token steering and disable sentinel. |
docs/src/content/docs/reference/frontmatter.md |
Documents negative max-effective-tokens. |
.github/workflows/daily-mcp-concurrency-analysis.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-mcp-concurrency-analysis.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-malicious-code-scan.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-malicious-code-scan.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-issues-report.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-issues-report.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-hippo-learn.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-hippo-learn.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-grafana-otel-instrumentation-advisor.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-grafana-otel-instrumentation-advisor.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-geo-optimizer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-geo-optimizer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-function-namer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-function-namer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-firewall-report.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-firewall-report.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-file-diet.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-file-diet.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-fact.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-fact.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-experiment-report.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-experiment-report.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-doc-updater.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-doc-updater.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-doc-healer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-doc-healer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-compiler-threat-spec-optimizer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-compiler-threat-spec-optimizer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-compiler-quality.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-compiler-quality.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-community-attribution.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-community-attribution.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-code-metrics.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-code-metrics.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-cli-tools-tester.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-cli-tools-tester.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-cli-performance.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-cli-performance.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-choice-test.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-choice-test.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-caveman-optimizer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-caveman-optimizer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-cache-strategy-analyzer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-cache-strategy-analyzer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-aw-cross-repo-compile-check.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-aw-cross-repo-compile-check.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-astrostylelite-markdown-spellcheck.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-assign-issue-to-user.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-assign-issue-to-user.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-architecture-diagram.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-architecture-diagram.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/daily-agentrx-trace-optimizer.md |
Removes old steering opt-in frontmatter. |
.github/workflows/daily-agentrx-trace-optimizer.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/cloclo.md |
Removes old steering opt-in frontmatter. |
.github/workflows/cloclo.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/brave.md |
Removes old steering opt-in frontmatter. |
.github/workflows/brave.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/archie.md |
Removes old steering opt-in frontmatter. |
.github/workflows/archie.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/approach-validator.md |
Removes old steering opt-in frontmatter. |
.github/workflows/approach-validator.lock.yml |
Refreshes lock metadata hash. |
.github/workflows/ace-editor.md |
Removes old steering opt-in frontmatter. |
.github/workflows/ace-editor.lock.yml |
Refreshes lock metadata hash. |
.changeset/patch-bump-awf-v0-25-44.md |
Updates release note text for token steering change. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 75/75 changed files
- Comments generated: 3
| if engineConfig.MaxEffectiveTokens == 0 && importsResult.MergedMaxEffectiveTokens != "" { | ||
| var importedMaxTokens any | ||
| if err := json.Unmarshal([]byte(importsResult.MergedMaxEffectiveTokens), &importedMaxTokens); err == nil { | ||
| if parsed := parseMaxEffectiveTokensValue(importedMaxTokens); parsed > 0 { |
| --- | ||
|
|
||
| Bump default `gh-aw-firewall` to `v0.25.44` and add compiler/frontmatter support for `firewall.effective-token-steering` mapped to AWF `apiProxy.enableTokenSteering`. | ||
| Bump default `gh-aw-firewall` to `v0.25.44`. Token steering (`apiProxy.enableTokenSteering`) is now enabled by default; the `firewall.effective-token-steering` frontmatter key has been removed. Set `max-effective-tokens` to a negative value to disable both budget enforcement and token steering. |
| "type": "integer", | ||
| "minimum": 1, | ||
| "description": "Maximum effective-token (ET) budget for AWF API proxy enforcement." | ||
| "not": {"enum": [0]}, |
|
@copilot review all comments and pull request review comments. Handle the boundary max-effective-tokens: 0, or negative should turn off the feature. |
…ero schema test; fix changeset Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Addressed all three review points in commit
|
✨ Enhancement
Token steering is now on by default — the opt-in
firewall.effective-token-steeringkey is removed. To disable budget enforcement and token steering together, setmax-effective-tokensto any negative value.What does this improve?
Eliminates a redundant knob — steering behaviour was already tied to the ET budget, so a separate boolean was unnecessary friction.
Implementation approach:
firewalltop-level key entirely;max-effective-tokensnow accepts negative integers (previouslyminimum: 1)EnableTokenSteeringfromEngineConfig,parseEffectiveTokenSteering, andextractEffectiveTokenSteering;awf_config.gonow derivesenableTokenSteeringfrommaxEffectiveTokens >= 0parseMaxEffectiveTokensValuepasses negatives through;GetMaxEffectiveTokensuses== 0(not<= 0) as the "not configured" sentinel; a negative value zeroes the AWF budget field (omitted viaomitempty) and suppresses steeringfirewall.effective-token-steering: truefrom 32 workflow files; refreshed all corresponding.lock.ymlfrontmatter hashesreference/network.mdandreference/frontmatter.md