Skip to content

Releases: gauthierdmn/nominal-code

0.30.0 - Deprecate Workflow to Update Model Prices

Choose a tag to compare

@gauthierdmn gauthierdmn released this 18 Jun 09:02
eb44e27

Remove Workflow to update model prices JSON file automatically as this is not a robust enough solution.

0.29.0 — GitLab CI support and full CI configurability

Choose a tag to compare

@gauthierdmn gauthierdmn released this 22 May 17:04
9918056

What's new

  • GitLab CI template at ci/templates/gitlab-ci.yml (include via remote:).
  • Feature parity across action and template — explorer provider / model / max_turns, all prompt overrides (inline + _file), language_guidelines_dir, and behavior toggles (inline_suggestions, ignore_existing_comments, dry_run).
  • Full pipeline cost in CI output — new aggregate_cost_summary sums reviewer + sub-agent usage.
  • AGENT_MAX_TURNS / AGENT_EXPLORER_MAX_TURNS — per-mode turn budgets. CLI/webhook default to unlimited; CI defaults to 8 / 32.

Breaking changes

  • coding_guidelines is now inline content; use coding_guidelines_file for the path. Rename existing coding_guidelines: path/to.mdcoding_guidelines_file: path/to.md.
  • INPUT_MODEL, INPUT_MAX_TURNS, INPUT_CODING_GUIDELINES removed. Use AGENT_MODEL, AGENT_MAX_TURNS, CODING_GUIDELINES_FILE.
  • Empty env vars now uniformly mean "no override" across all types. Use INLINE_SUGGESTIONS=false (not "") to force off.

Fixes

  • GitHub Action now actually supports the Google provider (google_api_key input + GOOGLE_API_KEY forwarding were missing).

0.28.0 — Structured agent and review errors

Choose a tag to compare

@gauthierdmn gauthierdmn released this 29 Apr 23:44
e8d9cb6

Replace the flat is_error / error_type / error_message fields on AgentResult and ReviewResult with a single optional InvocationError value object, so failure classification and message can never drift out of sync.
Rename exhausted_without_review → max_turns_reached so the signal is honest about what actually happened.

0.27.0 - Fetch PR State

Choose a tag to compare

@gauthierdmn gauthierdmn released this 29 Apr 20:59
9b2a16c

Add interface to fetch PR state: open, closed, merged, unknown

0.26.0 — Filter files from review with ignore patterns

Choose a tag to compare

@gauthierdmn gauthierdmn released this 26 Apr 05:35
808370f

Adds a per-org config option to drop file paths matching glob patterns from the diff before they reach the reviewer agent.

What's new

  • ignore_patterns — new field on ReviewerSettings (env: REVIEWER_IGNORE_PATTERNS, YAML: reviewer.ignore_patterns). Comma-separated list of fnmatch shell-glob patterns; matching files are excluded from ReviewContext.changed_files before the reviewer agent runs. Defaults to [] (no filtering). * matches across path separators, so vendor/** matches recursively (note: this is fnmatch semantics, not gitignore — *.lock matches Cargo.lock but not pnpm-lock.yaml).
  • filter_changed_files — new helper in nominal_code/review/diff.py returning (kept, removed_paths). Sits next to filter_findings and is applied at both ReviewContext construction sites in _prepare_review_context.

0.25.0 - Codebase Scope Review

Choose a tag to compare

@gauthierdmn gauthierdmn released this 25 Apr 01:23
7a189c8

Add ReviewScope to control what the reviewer receives and how findings are validated.

0.24.0 — Skip existing PR comments on demand

Choose a tag to compare

@gauthierdmn gauthierdmn released this 22 Apr 21:17
b413347

Adds a config flag to keep prior PR comments out of the reviewer prompt.

What's new

  • ignore_existing_comments — new top-level config option (env: IGNORE_EXISTING_COMMENTS, YAML: ignore_existing_comments). When true, _prepare_review_context skips platform.fetch_pr_comments and builds the prompt without the "Existing discussions" section. Defaults to false.

0.23.0 - Fail reviews on empty diff

Choose a tag to compare

@gauthierdmn gauthierdmn released this 22 Apr 20:17
bede0d6

run_review now raises when platform.fetch_pr_diff returns an empty list — covering both truly empty PRs and silent fetch failures (GitHub/GitLab's fetch_pr_diff swallows HTTPError and returns []).

What's new

  • Empty-diff guardrun_review checks review_context.changed_files immediately after the context is built and raises ValueError with the platform name and PR ref if the list is empty.
  • Test fixture default fixed_make_platform() in the review tests previously returned [] from fetch_pr_diff, which only "worked" under the old silent-empty behavior. Updated to return one file by default.

0.22.0 — Separate inline and file-based prompt overrides

Choose a tag to compare

@gauthierdmn gauthierdmn released this 22 Apr 19:17
cb4f342

Replaces the dual-mode prompt override env vars (file path OR inline, detected via Path(value).is_file()) with two explicit siblings per prompt.

What's new

  • Split env varsREVIEWER_SYSTEM_PROMPT, EXPLORER_SYSTEM_PROMPT, and CODING_GUIDELINES are inline-only. File-based overrides go through the new *_FILE siblings. Same split for the YAML fields.
  • Clear precedence_FILE wins with a warning if both are set. Missing _FILE paths raise ValueError instead of silently falling back.

0.21.0 — Explicit account ID for platform auth

Choose a tag to compare

@gauthierdmn gauthierdmn released this 22 Apr 02:19
035c7c8

This release lets callers pass an explicit account_id to Platform.authenticate() instead of always deriving it from the raw webhook body

What's new

  • account_id kwarg on Platform.authenticate() — new optional account_id: int | None parameter on the Platform protocol. When provided, it takes precedence over any context extracted from webhook_body.
  • GitHub platform — if account_id is set, the installation ContextVar is populated from it directly; otherwise behavior is unchanged (extract from webhook body, fall back to configured default).
  • GitLab platform — accepts the kwarg for protocol compatibility but does not use it (GitLab's PAT auth has no per-account context).