Skip to content

Fix/runner self report crashes#50

Merged
tarekziade merged 2 commits into
mainfrom
fix/runner-self-report-crashes
Jul 6, 2026
Merged

Fix/runner self report crashes#50
tarekziade merged 2 commits into
mainfrom
fix/runner-self-report-crashes

Conversation

@tarekziade

Copy link
Copy Markdown
Collaborator

No description provided.

tarekziade and others added 2 commits July 6, 2026 11:50
The nightly transformers triage was failing with "task runner exited
without reporting (exit code 1)" — the runner crashed during startup
(config/request build, checkout) before the LLM loop, and serge only saw
the opaque exit code with no cause.

- task_runner.run(): build config/request/clients *inside* the try so a
  startup exception self-reports a terminal error callback instead of
  exiting 1 silently; error now carries the exception + crashing frame.
- task_runner.main(): backstop that POSTs a terminal error for anything
  that still escapes run()/run_review().
- webapp: fold collect_task_result's pod log tail into the reconcile
  error (was fetched then discarded) so the crash cause shows on the job.
- webapp: TASK_DEBUG_MAX_TASKS caps /tasks per burst (debug knob) so a
  manual triage retrigger is a short crash-repro cycle, not the full
  batch. Set to 3 in prod.yaml temporarily; remove once diagnosed.
- deploy: Infisical-backed secret sync (externalSecret) replacing local
  --secret-file, validated by this deploy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The transformers-ci nightly triage opens a tracking issue then dispatches
one serge task per failure group, and refreshes the issue by polling open
PRs. Groups that end `no_fix` open no PR, so their row never updates — the
script has no way to learn a task's terminal status (it holds only a GitHub
Actions OIDC bearer, and /info requires a web session).

Add GET /tasks/{owner}/{repo}/{job_id}/status, authorized the same way as
POST /tasks (OIDC bearer, repo claim must match the path). Returns status /
result / error so the reconciler can mark no_fix (and error) groups in the
tracking issue instead of waiting on a PR that never comes.

Serge-side prerequisite only; the transformers-ci reconciler change to
consume it is a follow-up.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tarekziade tarekziade force-pushed the fix/runner-self-report-crashes branch from 2f1850a to c37bd8c Compare July 6, 2026 09:53
@tarekziade tarekziade merged commit 88ee410 into main Jul 6, 2026
2 checks passed
@tarekziade tarekziade deleted the fix/runner-self-report-crashes branch July 6, 2026 09:55
tarekziade added a commit that referenced this pull request Jul 6, 2026
* prod: drop TASK_DEBUG_MAX_TASKS cap so nightly triage runs the full batch

The debug cap (TASK_DEBUG_MAX_TASKS=3) was added alongside the runner
crash self-reporting (#50) to keep manual triage retriggers a short
crash-repro cycle. Now that the runner-startup crash is diagnosed and
self-reporting is in place, remove the temporary cap so serge executes
every /tasks request in a burst again.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* ci: drop invalid trim() from ai-review workflow if-condition

`trim()` is not a valid GitHub Actions expression function (the only
string helpers are contains/startsWith/endsWith/format/join). Using it
in the job `if:` made the workflow fail to compile — a startup failure
with zero jobs run (e.g. run 28783571654).

startsWith(comment.body, '@askserge ') already enforces "@askserge as
the first word" since it matches from the literal start of the body, so
dropping trim() keeps the #45 intent; we only lose tolerance for leading
whitespace before the mention, which is an acceptable edge case.



* ci: lint workflows with actionlint; fix trim() in docs example

Add an `actionlint` job to tests.yml that the test/helm jobs depend on,
so workflow files are statically checked on every PR. actionlint
validates ${{ }} expressions (including that called functions exist),
which catches errors like the invalid trim() that broke ai-review.yml —
those otherwise surface only as a startup failure with zero jobs run.

Also fix the same invalid trim() in the docs/github-action.md workflow
example so users don't copy a workflow that fails to compile.
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.

1 participant