Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:06
· 1417 commits to main since this release

Added

  • budget.usd per run: every session row carries an estimated usd; at 80% one warning, at 100% no new session starts
    (fail closed if the spend cannot be read). report shows running totals for open blocks and per run; run status
    shows spent and budget; ledger add coder --usd records cloud or manual coder spend.
  • code-forge run reload --run <r>: re-read .code-forge.yml mid-run without stopping blocks. Queued reviews keep the
    old config, new ones use the new one; keys fixed for the run are refused by name; a signed run.reload row lists the
    changed key paths (never values). Coders may not run it.
  • block close --report <file>: a coder report without a reviewed <path> ticket <id> line for every changed file
    counts as FAILED (new skill/templates/coder-brief.md).
  • Error reports: logs report --with-doctor adds a cleaned setup check; each logged error lists the names of the last 5
    commands (no flags or values); recovered problems are logged as warnings (1Password retry, review retry, System 1
    fallback, budget at 80%), shown by logs and logs summary, and included in a report only with --include-warnings.
    CODE_FORGE_NO_ERROR_LOG=1 turns all of it off.
  • Known fixes: logs report checks a shipped table of fixed errors and, on an older version, tells you to upgrade
    instead of filing (--force files anyway). An error-triage GitHub Action labels error reports by fingerprint,
    comments once when the error is already fixed, and writes a weekly count. Maintainers record fixes with npm run known-fix -- add.

Changed

  • Escalation and review cost rules from the first real run: after one review round that leaves 2+ warnings (or any
    critical), the next fix climbs one level (escalation.*); docs and contract blocks code at L1 or higher
    (levels.coder_floor_docs); risk 0–1 gets a single reviewer (review.single_reviewer_max_risk); docs blocks skip
    multimodel review unless review.multimodel_for_docs is set.
  • plan check refuses a block whose level does not match its recorded lane (jev ask lane --block <id> [--plan <file>], or --rules without Jev) and prints the lane per block. The plan author gets the exact required headings
    from one shared list; a close heading at the right position is accepted with a WARN. jev ask now writes to the
    project's ledger slug (it used to default to code-forge).

Fixed

  • validate rejects an effort the level's provider cannot take (for example xhigh on an openai level), for levels and
    fallback entries, instead of failing when the session starts. The builders share one list of allowed efforts, and
    messages never repeat an unknown value.
  • Stuck review sessions: a session that times out is retried once before the review is reported unavailable;
    review.session_timeout_s now defaults to 300; the ledger note keeps a cleaned stderr tail and the stdout event types
    (never stdout text) so a hang can be diagnosed; a live worker with a fresh heartbeat is never reported as
    worker_down.
  • ledger tail -n <count> limits the output (only --n worked). Jev score criteria keys must be exactly 0..n, with a
    clear error otherwise.

Security

  • Codex (openai) is refused for closed-book roles — reviewer, judge, S2 and plan author — because it always has a shell
    that can read files. validate, resolve and doctor say so. Set review.allow_open_book_codex: true to accept
    that risk and keep using it (with warnings). Codex coders are unchanged.

npm: https://www.npmjs.com/package/@codedology/code-forge/v/0.4.0
Full changelog: https://github.com/ricardov03/code-forge/blob/v0.4.0/CHANGELOG.md