Skip to content

0.74.0

Choose a tag to compare

@github-actions github-actions released this 16 Oct 02:46
· 86 commits to main since this release

Added

  • drivers/releases/source.yaml (releases/source, for release/source/1) cuts this repository's release with command and operator steps only, in the order AGENTS.md (Releases and commits) gives: aep drive run --map releases/source --input version=<x.y.z> --input date=<YYYY-MM-DD> --pause-on-approval. Every step that changes Git state, a ref or the planning store declares retries: 0; the full gate is the last step of qualify, so nothing is pushed before it passes and a person grants release-create; opening and merging each pull request is an operator step. Its four verification claims are read from records written by cargo xtask release check <claim>, which a later release provides. A read-only command step in verify mints the diff record provenance-tracking requires, from git diff --stat between the previous tag and the new one.
  • aep plan artifact spend [--kind <k>] [--since <YYYY-MM-DD>] [--baseline <n>] prints, per task kind and figure (model_calls, total_tokens, cost_micro_usd, wall_time_ms, llm_steps_run), how many artifacts have a task_spend record, how many of them leave the figure unknown, the lower median over the rest (unknown when none states it, never 0), the project's baseline and target (none when undeclared), and whether the median is under, at or over the target. An artifact counts once: its records are summed, and of records sharing a source_input only the latest by at counts. --since keeps records from 00:00 UTC of that day and refuses a value that is not a calendar date; --baseline <n> takes each median over the first n artifacts of each kind and refuses 0. It writes nothing. .engineering/project.yaml gains an optional spend.<kind>.<figure>: { baseline, target }; an unknown figure, a missing value, a value that is not a non-negative integer or a target not strictly below its baseline refuses the project file, naming the kind, the figure and the values, and spend or a kind written with no value is refused naming it.
  • A step map state may declare concurrent: true: each run of consecutive command steps in it runs at once, and its results are submitted in map order once every step has ended. An llm or operator step is a barrier between batches; steps naming the same depends_on still run one after another; retries are spent inside the batch, and a failed step cancels none of its siblings. A step is charged its attempt when it is put to run, after the circuit breaker is read, and a batch has one in-flight marker, so aep drive resume --retry-in-flight <id> reruns the batch under the attempts already charged; a resume after a batch stopped runs only the steps whose verdicts were not yet submitted. Two command steps of one concurrent state writing the same output: are refused at load with unsupported_construct. A state without the key runs, and digests, as before.
  • workflows/bugfix/standard.yaml (bugfix/standard/1: reproduce, diagnose, fix, verify, then the terminal fixed, with verify -> fix on a failing regression or gate suite) and its step map drivers/bugfix/standard.yaml (bugfix/standard). A run names its inputs with --input repro=<command> --input logs=<file> --input traces=<file> --input artifact=<artifact id> --input gate=<command>. reproduce runs the reproduction once with expect: failure, keeping its output as repro.txt; one that exits 0 is a failing reproduction record noted nothing reproduced, and the run stops blocked there. diagnose (concurrent: true) collects logs.txt, traces.txt and artifact.txt (aep plan artifact show) at once, then hands all four files to one llm step; fix is the other llm step; verify reruns the reproduction as suite regression and the gate as suite gate. The workflow is rendered as generated/instructions/bugfix/standard.md.

Changed

  • The release.source profile no longer requires the verify-after-action principle; completion still requires verification.source-release.passed. release.progressive, release.dependency-chain and incident.standard keep the principle.

Fixed

  • A calendar date (findings_required_since, --since) written with a signed part, such as 2026-+1-+2, is refused as not written in digits instead of being read as 2026-01-02.