Skip to content

feat: human-friendly dashboard reports for cron summary issues (#432) - #433

Merged
ocots merged 5 commits into
mainfrom
dev/cron-issue-ergonomics
Nov 8, 2026
Merged

ocots merged 5 commits into
mainfrom
dev/cron-issue-ergonomics

Conversation

@ocots

@ocots ocots commented Nov 8, 2026 •

Copy link
Copy Markdown
Member

Summary

Closes #432.

Replaces the raw, repetitive issue bodies with human-friendly, pedagogical dashboard reports that make it effortless for developers and maintainers to understand solver convergence and regressions at a glance.

Key improvements

  1. Pedagogical Header & Clear Guidance:

    • Explains the purpose of the tracking (numerical convergence is reported to detect silent regressions and parameter sensitivity, not a failing CI unit test).
    • Clear, step-by-step guidance on what to do when an alert (⚠️) appears (how to reproduce, check data files, verify legitimate solver/guess changes).
  2. Overall Scope Status Dashboard Table:

    • A single top-level table of contents listing all tracked scopes, their focus, cadence, and current status (✅ Clean, ⚠️ N findings, or *Awaiting run*).
    • Links directly to each scope's detailed section.
  3. Contextualized Scope Sections:

    • Clear titles (e.g. ## JuMP — Solver Robustness, ## JuMP — Nominal Convergence).
    • Each section explicitly describes its Focus (e.g., perturbed IPOPT barrier parameters vs standard grids) and Cadence & runners.
    • Direct links to the GitHub Actions run, its UTC timestamp, the full scope report on the results branch, and the previous run for comparison.
  4. Actionable Investigation Block:

    • Includes a formatted Julia reproduction command (using Pkg; Pkg.test(...)).
    • Links directly to problem data files (problems/<problem>/result.json), the run report, and the env/ Manifest directory.
    • Clarifies outcome statuses (converged → not_converged, relative objective shifts, new solutions).
  5. Bounded History & Notifications:

    • Retains a clean <details>Recent history</details> log of the last 10 changes per scope across runs.
    • Automatically posts an issue comment whenever a scope's finding set changes (notifications + timeline).
    • Pre-populates all known scopes when an issue is created so the complete testing landscape is visible immediately.

Test plan

  • python3 -m unittest discover -s tools/cron/test -p 'test_*.py' -v — 31 tests passing (units, mocks, integration).
  • Live dispatch and verification of generated issues on GitHub.

Generated with Devin

Every section was titled `## cron-<kind>` with the scope only in a hidden
marker, runs were bare undated URLs, a finding said `lost` without the
previous value, and the body was rewritten silently — no notification,
no history, and no previous report to compare with since the `results`
tip is rewritten each run.

Each scope section now names the scope (a stable anchor for the table of
contents regenerated on top), shows its `note`, links the run, the scope
report and the previous run, and keeps a bounded history fed by the same
finding diff that posts a comment. Finding rows show before → after.
ocots added 3 commits November 8, 2026 14:25
The live run showed three gaps: the `note` was inlined into the bash
script, so its backticks ran as a command substitution (env var instead);
a missing-report row produced a `problem=workflow` reproduce hint; and
sections written by the older report had no `cron-status` marker, so the
table of contents ignored their findings until their scope ran again —
rows are now counted from the tables themselves.
…rts (#432)

- Restructure the issue with an explanatory pedagogical header and an
  Overall Scope Status dashboard table linking each scope directly.
- Scope sections now carry human-readable titles (e.g. 'JuMP — Solver
  Robustness'), an explicit Focus and Cadence description, and clean
  badges for status.
- New summary issues pre-populate all known scopes so the full test
  landscape is visible from day one.
- Findings tables format outcomes clearly (e.g. 'converged → not_converged')
  and provide an actionable 'How to investigate' details block with
  copy-pasteable Julia reproduction commands and direct data links.
- Tests updated to verify the new report layout and lifecycle.
…are clean

Unlike failure or draft tracking which only need an issue when an action
is required, the convergence report acts as an ongoing dashboard tracking
status across all scopes.
@ocots ocots changed the title ci: make the cron summary issues readable (#432) feat: human-friendly dashboard reports for cron summary issues (#432) Nov 8, 2026
@ocots
ocots merged commit e59de4d into main Nov 8, 2026
24 checks passed
@ocots
ocots deleted the dev/cron-issue-ergonomics branch November 8, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make the cron summary issues readable (scope-named sections, before→after findings, summary, change comments)

1 participant