Skip to content

Debug GitHub cache warm controls return skipped: disabled without guidance #358

Description

@shuv1337

Problem / Context

On /debug/github-cache, both Quick warm and Full warm return skipped: disabled with no explanation of which env vars or config are missing, and no remediation steps for local dev.

This prevented validating the planned "Warmed via debug" benchmark scenario during cache dogfood. Last Warm stayed empty; no sync jobs were enqueued.

Source: dogfood-output/cache-dogfood-report.md (ISSUE-003)

Reproduction

  1. Authenticate locally
  2. Open http://127.0.0.1:3000/debug/github-cache
  3. Click Full warm or Quick warm
  4. Observe * warm skipped: disabled with no further detail

Acceptance Criteria

  • When warm is disabled, the UI explains why (which flag/env is off) and how to enable it for local dev
  • When warm is enabled (GITHUB_CACHE_WARM_INLINE=1 or prod Inngest path), buttons enqueue work and Last Warm updates
  • Skipped state is distinguishable from accepted/error states in the debug UI
  • Local dev path documented inline or linked (per AGENTS.md: inline warm via GITHUB_CACHE_WARM_INLINE=1)

Evidence

  • dogfood-output/benchmarks/warm-control-response.txt
  • dogfood-output/screenshots/cache-debug-warmer-after-click.png
  • dogfood-output/screenshots/cache-debug-warmer-quick-warm.png

Implementation Notes

Per AGENTS.md:

  • Local/dev warm may run inline with GITHUB_CACHE_WARM_INLINE=1
  • Production warm requires GITHUB_CACHE_WARM_PROD_ENABLED=1 and Inngest
  • Browser warm gated by NEXT_PUBLIC_GITHUB_CACHE_WARM_ENABLED

The debug page should surface which gate is blocking and the relevant env var names — not a bare disabled string.

Observation: /debug/github-cache has no access gate beyond authentication (may warrant a separate hardening issue).

Tasks

  • Trace why warm returns skipped: disabled in local dev
  • Add actionable skip reason to debug UI (env var names + doc link)
  • Verify Full warm works with GITHUB_CACHE_WARM_INLINE=1 locally
  • Update debug page copy so operators know how to enable warming

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions