Skip to content

rename daily_effective_workflow_* → daily_ai_credits_*#38611

Open
Copilot wants to merge 7 commits into
mainfrom
copilot/rename-daily-effective-tokens
Open

rename daily_effective_workflow_* → daily_ai_credits_*#38611
Copilot wants to merge 7 commits into
mainfrom
copilot/rename-daily-effective-tokens

Conversation

Copilot AI commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Completes the rename from "daily effective tokens" to "daily AI credits" terminology across all wiring layers.

Compiler output/condition wiring

  • compiler_activation_job_builder.go: output keys daily_effective_workflow_{exceeded,total_effective_tokens,threshold}daily_ai_credits_*
  • compiler_main_job.go: activation guard condition updated
  • notify_comment.go: env var names GH_AW_DAILY_EFFECTIVE_WORKFLOW_*GH_AW_DAILY_AI_CREDITS_* and output property accesses

Actions

  • check_daily_aic_workflow_guardrail.cjs: all core.setOutput(...) keys renamed
  • handle_agent_failure.cjs: env var reads + context key daily_effective_workflow_exceeded_contextdaily_ai_credits_exceeded_context
  • Markdown failure templates: {daily_effective_workflow_exceeded_context}{daily_ai_credits_exceeded_context}

Tests & fixtures

  • daily_aic_workflow_guardrail_test.go: assertions updated to new key names
  • check_daily_aic_workflow_guardrail.test.cjs: same
  • 9 golden fixtures updated
  • daily_aic_workflow.go: logger tag workflow:daily_effective_workflowworkflow:daily_ai_credits

Lock files

All 245 .lock.yml files regenerated via make recompile.



✨ PR Review Safe Output Test - Run 27355692552

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 57.6 AIC · ⌖ 9.03 AIC ·


Changeset

  • Type: patch
  • Description: Renamed the daily workflow guardrail and notification wiring from daily_effective_workflow_* to daily_ai_credits_*.

Generated by 📋 Changeset Generator for issue #38611 ·

…er, actions, and golden fixtures

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title rename daily_effective_workflow_* to daily_ai_credits_* rename daily_effective_workflow_* → daily_ai_credits_* Jun 11, 2026
Copilot AI requested a review from pelikhan June 11, 2026 13:05
@pelikhan pelikhan marked this pull request as ready for review June 11, 2026 13:05
Copilot AI review requested due to automatic review settings June 11, 2026 13:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Renames the “daily effective workflow” guardrail output/env/context keys to the “daily AI credits” terminology across the workflow compiler (Go), runtime scripts (JS), templates (MD), tests, golden fixtures, and regenerated compiled .lock.yml workflows.

Changes:

  • Updated compiler wiring to emit/read daily_ai_credits_* activation outputs and guard conditions instead of daily_effective_workflow_*.
  • Updated setup/runtime scripts and failure templates to use the new env/context key names.
  • Regenerated golden fixtures and compiled workflow lockfiles to reflect the renamed keys.
Show a summary per file
File Description
pkg/workflow/compiler_activation_job_builder.go Renames activation job output keys to daily_ai_credits_*.
pkg/workflow/compiler_main_job.go Updates main job guard condition to check daily_ai_credits_exceeded.
pkg/workflow/notify_comment.go Renames env vars passed into failure handling and updates activation-guard failure condition wiring.
pkg/workflow/daily_aic_workflow.go Updates logger tag to workflow:daily_ai_credits.
pkg/workflow/daily_aic_workflow_guardrail_test.go Updates assertions to match new daily_ai_credits_* output/env names.
actions/setup/js/handle_agent_failure.cjs Renames daily-guardrail failure category and env/context keys to daily_ai_credits_*.
actions/setup/js/check_daily_aic_workflow_guardrail.test.cjs Updates tests to assert daily_ai_credits_exceeded output.
actions/setup/md/daily_workflow_aic_exceeded.md Updates documentation to reference daily_ai_credits_exceeded output.
actions/setup/md/agent_failure_issue.md Renames template placeholder to {daily_ai_credits_exceeded_context}.
actions/setup/md/agent_failure_comment.md Renames template placeholder to {daily_ai_credits_exceeded_context}.
actions/setup/js/check_daily_aic_workflow_guardrail.cjs Renames core.setOutput(...) keys to daily_ai_credits_* (note: also emits an extra unwired output key; see comments).
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/with-imports.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/smoke-copilot.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/playwright-cli-mode.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_CompileFixtures/basic-copilot.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_AllEngines/pi.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_AllEngines/gemini.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_AllEngines/copilot.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_AllEngines/codex.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
pkg/workflow/testdata/TestWasmGolden_AllEngines/claude.golden Updates expected compiled outputs/conditions to daily_ai_credits_*.
.github/workflows/workflow-skill-extractor.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/workflow-generator.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/weekly-safe-outputs-spec-review.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/weekly-issue-summary.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/weekly-editors-health-check.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/video-analyzer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/uk-ai-operational-resilience.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/ubuntu-image-analyzer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/typist.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/tidy.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/test-workflow.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/test-dispatcher.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/test-create-pr-error-handling.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/terminal-stylist.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/step-name-alignment.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/static-analysis-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/spec-extractor.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/spec-enforcer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/semantic-function-refactor.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/schema-feature-coverage.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/schema-consistency-checker.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/safe-output-health.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/research.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/repository-quality-improver.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/repo-tree-map.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/repo-audit-analyzer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/release.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/python-data-charts.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/prompt-clustering-analysis.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/org-health-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/objective-impact-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/mcp-inspector.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/lockfile-stats.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/linter-miner.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/lint-monster.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/layout-spec-maintainer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/jsweep.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/issue-arborist.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/instructions-janitor.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/gpclean.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/go-logger.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/go-fan.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/github-remote-mcp-auth-test.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/github-mcp-tools-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/github-mcp-structural-analysis.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/functional-pragmatist.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/firewall.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/example-workflow-analyzer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/example-permissions-warning.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/duplicate-code-detector.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/docs-noob-tester.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/dictation-prompt.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/dev.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/dependabot-worker.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/dependabot-repair.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/dead-code-remover.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-workflow-updater.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-token-consumption-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-team-status.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-security-red-team.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-security-observability.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-secrets-analysis.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-safe-output-optimizer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-safe-output-integrator.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-reliability-review.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-regulatory.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-performance-summary.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-observability-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-issues-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-function-namer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-experiment-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-doc-updater.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-doc-healer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-compiler-quality.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-cli-tools-tester.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-choice-test.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/daily-architecture-diagram.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/copilot-pr-merged-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/copilot-opt.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/contribution-check.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/constraint-solving-potd.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/commit-changes-analyzer.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/code-simplifier.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/cli-version-checker.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/ci-coach.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/changeset.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/blog-auditor.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/aw-failure-investigator.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/artifacts-summary.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/api-consumption-report.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.
.github/workflows/ai-moderator.lock.yml Regenerated lockfile to use daily_ai_credits_* outputs/envs and guard conditions.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 264/264 changed files
  • Comments generated: 3

Comment thread actions/setup/js/check_daily_aic_workflow_guardrail.cjs
Comment thread actions/setup/js/check_daily_aic_workflow_guardrail.cjs
Comment on lines +145 to 147
if !strings.Contains(lockStr, "if: needs.activation.outputs.daily_ai_credits_exceeded != 'true'") {
t.Fatal("expected the agent job to be skipped when the daily workflow ET guardrail is exceeded")
}
@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

PR Code Quality Reviewer completed the code quality review.

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Design Decision Gate 🏗️ completed the design decision gate check.

No ADR enforcement needed: PR #38611 does not have the "implementation" label and has 52 new lines of code in business logic directories, which is at or below the 100-line threshold (requires_adr_by_default_volume=false).

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel completed test quality analysis.

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🧠 Matt Pocock Skills Reviewer was skipped during the skills-based review.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

COMMENT — rename is mechanically correct end-to-end; two non-blocking test-quality findings.

Review summary

What was verified

  • All 264 lock files, Go compiler source (compiler_activation_job_builder.go, compiler_main_job.go, notify_comment.go, daily_aic_workflow.go), JS guardrail + failure handler, golden test fixtures, and template markdown are consistently renamed from daily_effective_workflow_* / GH_AW_DAILY_EFFECTIVE_WORKFLOW_* to daily_ai_credits_* / GH_AW_DAILY_AI_CREDITS_*.
  • avenger.lock.yml collapses a multiline if: > to a single line — semantically equivalent, no functional change.
  • Compiler outputs, activation job conditions, conclusion job env wiring, and failure-match category strings are all updated consistently.
  • No instances of the old names remain in source files.

Non-blocking findings (inline comments)

  1. daily_aic_workflow_guardrail_test.go lines 142–149: Two issues flagged inline — a vacuous negative assertion (line 142) and 10+ stale "ET" / "daily workflow ET" error messages (line 149 and throughout the file).

Pre-existing notes (not re-raised)

Inline comments from prior review at lines 297 and 454 of check_daily_aic_workflow_guardrail.cjs regarding the unwired daily_ai_credits_total_ai_credits output remain open and are not duplicated here.

🔎 Code quality review by PR Code Quality Reviewer · ⌖ 13.3 AIC

}
if !strings.Contains(lockStr, "GH_AW_DAILY_EFFECTIVE_WORKFLOW_EXCEEDED: ${{ needs.activation.outputs.daily_effective_workflow_exceeded }}") {
if !strings.Contains(lockStr, "GH_AW_DAILY_AI_CREDITS_EXCEEDED: ${{ needs.activation.outputs.daily_ai_credits_exceeded }}") {
t.Fatal("expected the conclusion job to receive the daily workflow ET guardrail output")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale "ET" terminology in test assertion messages: this t.Fatal and at least 9 others in the file still say "daily workflow ET" / "daily ET" instead of "AI Credits", making test failures confusing to diagnose.

💡 All stale messages (beyond the one already flagged at line 147)

Every t.Fatal below will print old "effective tokens" / "ET" language when it fires, even though the wired outputs now use daily_ai_credits_* terminology. This will cause engineers to waste time chasing a renamed concept on a red test.

Line Current stale message Suggested replacement
125 "expected activation job to include the daily workflow ET guardrail step" "...daily AI Credits guardrail step"
140 "expected activation job to expose the aggregated ET total output" "...aggregated AI Credits total output"
143 "expected activation job to avoid surfacing a separate daily workflow ET issue URL" "...daily AI Credits issue URL"
149 "expected the conclusion job to receive the daily workflow ET guardrail output" "...daily AI Credits guardrail output"
158 "expected activation permissions to avoid issues: write for the daily ET guardrail" "...daily AI Credits guardrail"
197 "expected activation job to emit the daily ET guardrail step even when threshold is unset" "...daily AI Credits guardrail step..."
200 "expected emitted daily ET guardrail step to be dynamically skipped when threshold is unset" "...daily AI Credits guardrail step..."
203 "expected workflows to continue wiring daily ET outputs when guardrail step is emitted" "...daily AI Credits outputs..."
244 "expected activation job to include the daily ET guardrail step when env var is configured" "...daily AI Credits guardrail step..."
247 "expected daily ET guardrail step to gate execution on GH_AW_MAX_DAILY_AI_CREDITS" "...daily AI Credits guardrail step..."
250 "expected setup step to conditionally install artifact client when daily ET guardrail is env-configured" "...daily AI Credits guardrail..."

A single sed -i pass replacing daily (workflow )?ET guardraildaily AI Credits guardrail and aggregated ET totalaggregated AI Credits total in this file would fix all of them.

if !strings.Contains(lockStr, "daily_ai_credits_total_effective_tokens: ${{ steps.daily-effective-workflow-guardrail.outputs.daily_ai_credits_total_effective_tokens || '' }}") {
t.Fatal("expected activation job to expose the aggregated ET total output")
}
if strings.Contains(lockStr, "daily_effective_workflow_issue_url") {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Negative assertion is now vacuous: after the rename, daily_effective_workflow_issue_url no longer exists anywhere in the codebase, so this guard can never trip — the design invariant it was meant to enforce is silently unenforced.

💡 Why this matters and what to fix

The original intent was: "make sure the compiler does not emit a separate issue-URL output for the daily guardrail". After the rename, the old string daily_effective_workflow_issue_url is permanently gone, so the strings.Contains check always returns false and t.Fatal never fires — regardless of what the compiler actually emits.

If a future change accidentally introduces daily_ai_credits_issue_url as a compiler output, this test will not catch it.

Fix: update the search string to match the new naming:

// was: "daily_effective_workflow_issue_url"
if strings.Contains(lockStr, "daily_ai_credits_issue_url") {
    t.Fatal("expected activation job to avoid surfacing a separate daily AI Credits issue URL")
}

@github-actions

Copy link
Copy Markdown
Contributor

🧪 Test Quality Sentinel Report

Test Quality Score: 90/100 — Excellent

Analyzed 3 test(s) across 1 Go file and 1 JavaScript file: 3 design tests (behavioral contracts), 0 implementation tests, 0 guideline violations. All changes are string-literal renames tracking the daily_effective_workflow_*daily_ai_credits_* identifier rename.

📊 Metrics & Test Classification (3 tests analyzed)
Metric Value
New/modified tests analyzed 3
✅ Design tests (behavioral contracts) 3 (100%)
⚠️ Implementation tests (low value) 0 (0%)
Tests with error/edge cases 3 (100%)
Duplicate test clusters 0
Test inflation detected ⚠️ Yes — Go test: 7 additions vs 1 in daily_aic_workflow.go (7:1); expected for a rename PR
🚨 Coding-guideline violations 0 (no mock libraries · build tag present · assertion messages present)

Test Classification Details

Test File Classification Issues Detected
TestDailyAICWorkflowGuardrailInCompiledWorkflow pkg/workflow/daily_aic_workflow_guardrail_test.go:84 ✅ Design None
TestDailyETGuardrailDynamicGate pkg/workflow/daily_aic_workflow_guardrail_test.go:165 ✅ Design None
main() does not fail the step when GitHub API calls throw actions/setup/js/check_daily_aic_workflow_guardrail.test.cjs:174 ✅ Design None

Language Support

Tests analyzed:

  • 🐹 Go (*_test.go): 2 tests — unit (//go:build !integration)
  • 🟨 JavaScript (*.test.cjs): 1 test (vitest)

Verdict

Check passed. 0% of new/modified tests are implementation tests (threshold: 30%). The 10-point score deduction reflects the 7:1 Go test/production line ratio — contextually expected for this rename PR.

📖 Understanding Test Classifications

Design Tests (High Value) verify what the system does:

  • Assert on observable outputs, return values, or state changes
  • Cover error paths and boundary conditions
  • Would catch a behavioral regression if deleted
  • Remain valid even after internal refactoring

Implementation Tests (Low Value) verify how the system does it:

  • Assert on internal function calls (mocking internals)
  • Only test the happy path with typical inputs
  • Break during legitimate refactoring even when behavior is correct
  • Give false assurance: they pass even when the system is wrong

Goal: Shift toward tests that describe the system's behavioral contract — the promises it makes to its users and collaborators.

References: §27348883517

🧪 Test quality analysis by Test Quality Sentinel · 563.9 AIC · ⌖ 41.6 AIC ·

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Test Quality Sentinel: 90/100. Test quality is acceptable — 0% of new/modified tests are implementation tests (threshold: 30%).

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot run pr-finisher skill

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@copilot run pr-finisher skill

Done. I ran the PR-finisher pass and pushed follow-up fixes in 8ca7a8a.

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot review issue title and reprhase "effective workflow" to AI Credits terminology.
run pr-finisher skill

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@copilot review issue title and reprhase "effective workflow" to AI Credits terminology.
run pr-finisher skill

Updated in 19e323e: the failure issue title path now uses AI Credits terminology (exceeded daily AI credits budget) in actions/setup/js/handle_agent_failure.cjs and matching test expectations in actions/setup/js/handle_agent_failure.test.cjs. I also ran the PR-finisher validation pass locally (make fmt, make lint, make test-unit, make test, make recompile, make agent-report-progress).

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot is now investigating this pull request. Sources say the story is developing...

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Pi MISSION COMPLETE! Pi delivered. 🥧

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

⚠️ Smoke Gemini failed. Gemini encountered unexpected challenges...

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🚀 Smoke Antigravity MISSION COMPLETE! Antigravity has spoken. ✨

@github-actions

Copy link
Copy Markdown
Contributor

📰 BREAKING: Smoke Copilot - AOAI (apikey) is now investigating this pull request. Sources say the story is developing...

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

✨ The prophecy is fulfilled... Smoke Codex has completed its mystical journey. The stars align. 🌟

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

🎬 THE ENDSmoke Claude MISSION: ACCOMPLISHED! The hero saves the day! ✨

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

✅ All tools validated successfully! Agent Container Smoke Test confirms agent container is ready.

@github-actions

Copy link
Copy Markdown
Contributor

Agent Container Tool Check

Tool Status Version
bash 5.2.21
sh available
git 2.54.0
jq 1.7
yq v4.53.3
curl 8.5.0
gh 2.93.0
node v22.22.3
python3 3.11.15 (PyPy 7.3.23)
go 1.24.13
java 21.0.11 (Temurin)
dotnet 10.0.300

Result: 12/12 tools available ✅

Overall Status: PASS

🔧 Tool validation by Agent Container Smoke Test · 39.5 AIC · ⌖ 12.6 AIC ·

@github-actions

Copy link
Copy Markdown
Contributor

🤖 Smoke Test: Claude — Run 27355692552

Core #1-12: ✅ all passed
PR Review #13:#14: ✅ #15: ✅ #16: ⚠️ #17: ✅ #18: ✅ #19: ⚠️

Overall: PARTIAL (16 & 19 skipped)
Run

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 57.6 AIC · ⌖ 9.03 AIC ·

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💥 Automated smoke test review - all systems nominal!

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

💥 [THE END] — Illustrated by Smoke Claude · 57.6 AIC · ⌖ 9.03 AIC


When the aggregated AI Credits usage across all completed runs of this workflow in the last 24 hours exceeds the threshold, the activation job sets the `daily_effective_workflow_exceeded` output to `true` and the agent job is skipped for that run. The conclusion job still runs and creates this report.
When the aggregated AI Credits usage across all completed runs of this workflow in the last 24 hours exceeds the threshold, the activation job sets the `daily_ai_credits_exceeded` output to `true` and the agent job is skipped for that run. The conclusion job still runs and creates this report.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice clear rename to daily_ai_credits_exceeded — consistent with the new naming convention. 👍

@@ -40,7 +40,7 @@ Commit and push the updated `.lock.yml` file.

The `max-daily-ai-credits` frontmatter option sets a per-workflow spending cap measured in *AI Credits* across the 24-hour window before the current run. The cap is scoped to the repository and workflow — it aggregates usage across all runs of this workflow regardless of who triggered them.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good documentation of the max-daily-ai-credits frontmatter option and its repository/workflow scope.

@github-actions

Copy link
Copy Markdown
Contributor

Commit pushed: adc9bb2

Generated by Changeset Generator

@github-actions

Copy link
Copy Markdown
Contributor

Smoke tests run: 1-15 ❌. Overall status: FAIL

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot - AOAI (apikey) · 50.2 AIC · ⌖ 7.64 AIC ·

@github-actions

Copy link
Copy Markdown
Contributor

rename daily_effective_workflow_* → daily_ai_credits_*
1❌ 2✅ 3✅ 4✅ 5❌
6✅ 7✅ 8✅ 9✅ 10❌
11✅ 12✅ 13✅ 14✅ 15✅
Overall: FAIL — author @app/copilot-swe-agent — assignees @pelikhan @Copilot

Warning

Firewall blocked 6 domains

The following domains were blocked by the firewall during workflow execution:

  • accounts.google.com
  • android.clients.google.com
  • clients2.google.com
  • contentautofill.googleapis.com
  • safebrowsingohttpgateway.googleapis.com
  • www.google.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "accounts.google.com"
    - "android.clients.google.com"
    - "clients2.google.com"
    - "contentautofill.googleapis.com"
    - "safebrowsingohttpgateway.googleapis.com"
    - "www.google.com"

See Network Configuration for more information.

📰 BREAKING: Report filed by Smoke Copilot · 203.3 AIC · ⌖ 21.5 AIC ·

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot the ambient context measure is missing from the generated footers

Investigate the logs in https://github.com/github/gh-aw/actions/runs/27355745225/job/80833046748 to determine why and fix. Or add more logging to debug.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

@copilot the ambient context measure is missing from the generated footers

Investigate the logs in https://github.com/github/gh-aw/actions/runs/27355745225/job/80833046748 to determine why and fix. O...

Investigated run/job logs and found the configured footer template only used {ai_credits_suffix}{history_link}, while ambient context was exposed separately as {ambient_context_suffix}. I fixed footer rendering so {ai_credits_suffix} now includes ambient context for custom templates, and added focused tests to cover it (including agent failure comment footers).

Fixed in 5be6277.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants