Repository navigation
v0.4.0
Added
budget.usdper run: every session row carries an estimatedusd; at 80% one warning, at 100% no new session starts
(fail closed if the spend cannot be read).reportshows running totals for open blocks and per run;run status
shows spent and budget;ledger add coder --usdrecords cloud or manual coder spend.code-forge run reload --run <r>: re-read.code-forge.ymlmid-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 signedrun.reloadrow lists the
changed key paths (never values). Coders may not run it.block close --report <file>: a coder report without areviewed <path> ticket <id>line for every changed file
counts as FAILED (newskill/templates/coder-brief.md).- Error reports:
logs report --with-doctoradds 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 bylogsandlogs summary, and included in a report only with--include-warnings.
CODE_FORGE_NO_ERROR_LOG=1turns all of it off. - Known fixes:
logs reportchecks a shipped table of fixed errors and, on an older version, tells you to upgrade
instead of filing (--forcefiles anyway). Anerror-triageGitHub Action labels error reports by fingerprint,
comments once when the error is already fixed, and writes a weekly count. Maintainers record fixes withnpm 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 unlessreview.multimodel_for_docsis set. plan checkrefuses a block whose level does not match its recorded lane (jev ask lane --block <id> [--plan <file>], or--ruleswithout 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 asknow writes to the
project's ledger slug (it used to default tocode-forge).
Fixed
validaterejects an effort the level's provider cannot take (for examplexhighon 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_snow 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--nworked). 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,resolveanddoctorsay so. Setreview.allow_open_book_codex: trueto 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