Skip to content

v3.1.7

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Nov 17:30

Added

  • rai task complete command — CLI wrapper over the task-completion report, usable without the MCP server.
  • rai session topic and rai epic story create — CLI equivalents of the corresponding MCP tools for CLI-only workflows.
  • rai pipeline restore passive inspection — restore inspects a run without mutating it and anchors the working directory automatically.
  • Pipeline run guard — pipeline advance verifies the run_id against the caller before mutating run state.
  • rai pipeline advance --force-refetch — clears a frozen fan-out snapshot so scope.md is re-parsed.
  • Commit trailers via CLI — generated trailers preserve URLs and carry the parent session; the operation is idempotent.
  • CLI-first skills and settings — skills and default settings regenerated for CLI-only operation; the raise_docs_write MCP tool is restored and an existing .mcp.json is repaired.
  • Styled HTML docs output — FilesystemDocsTarget renders published pages with a styled HTML template.
  • MCP-aware provisioning — fleet MCP venv-scope checks and provisioning honour mcp.enabled; .mcp.json scaffolding is skipped when MCP is disabled; .raise/rai/sessions/ is added to the generated gitignore.
  • Worktree venv isolation — WorktreeProvisioner writes an .envrc exporting VIRTUAL_ENV and PATH; an existing .envrc propagated through .worktreeinclude is left untouched.
  • Research pipeline distribution — research registered as a first-class work type in the cost report and research.yaml shipped with the built-in pipelines.
  • Git staging respects .gitignore — _git_stage filters ignored paths instead of failing on them.

Changed

  • Skill visibility contract — raise.visibility added to SkillMetadata and validated for all skills; local migrated to internal (two-value contract); plugin skill copy excludes non-public skills.
  • rai skill sync no longer refreshes agent-generated artifacts — sync only updates skills; generated artifacts are refreshed by their own commands.

Fixed

  • Dependency security floor — mcp raised to >=1.30.0 (GHSA-84m7-p3x7-pcfv).
  • Pipeline token guard — rai-pipeline-run advances through --token-file; the guard checks the caller's worktree, normalises relative paths, isolates git calls from an inherited GIT_DIR, runs git with an allow-listed environment and fails closed; an explicit --token-file is validated before the run is created.
  • Lease takeover — reissue takeover is a single atomic acquire(); a lease held by a dead holder can be reissued once expired.
  • Backup pruning — the just-created backup is never pruned; -N collision suffixes sort correctly and .partial files are excluded.
  • rai-mr-create retrospective allowlist — restricted to the stories/ subdirectory and rejects nested paths; the skill is synced across all agent directories.
  • close_service epic directory — epic_dir is normalised so a leading epics-directory prefix no longer breaks epic close.
  • engine_owned guard — evaluated per key instead of globally.
  • Telemetry never blocks commands — emit-work, emit-session and emit-calibration warn and exit 0 on telemetry failure; the emitter SQLite timeout is capped at 2 s.
  • Confluence error handling — HTTP status_code propagated in mapped errors; ConfluenceError handled in rai docs get and rai docs search.
  • Skill and agent metadata — dead model: sonnet removed from rai-story-implement; read-only rai gate check permitted in the review agent; story documents read with explicit UTF-8.
  • Pipeline diagnostics — hook timeouts return an abort sentinel; the error renderer combines reason and message; artifact_missing lists the missing artifacts; pre-commit stderr is surfaced in task-complete remediation; the worktree_busy hint points to rai pipeline cancel.
  • rai session close --pattern-context — new flag; PatternValidationError is caught instead of surfacing a traceback.
  • Worktree unlock on cancel — CLI pipeline cancel and reconcile --apply release the git worktree lock (owner-aware) and stamp completed_at.
  • JQL watermark — the UTC offset is preserved when formatting the incremental-sync watermark.
  • SqliteRunStore lifecycle — close()/__del__ added; project_db()/global_db() context managers introduced and MCP lifecycle callers migrated.
  • MR creation timeout — GitHub and GitLab create_mr timeout extended to 300 s with an actionable retry message.
  • Backlog parent sentinel — parent values "" and "none" map to null in _wrap_field_value.
  • Main-branch guard — main is protected for every tier and merge_story enforces the guard itself.
  • Forward-merge resume — the resume recipe merges the hop's base ref, is printed when the hop branch already exists, and uses a uniform guard with compare-and-swap on every ref write.
  • Backlog batch transitions — batch_transition follows the transition_issue safety contract and skips the remote call for locally failed keys.
  • rai-bugfix-start-lean transition — standalone transition uses after:bugfix:diagnose.
  • Work-item retype — WorkItemStore.retype() added and wired into SQLitePMAdapter and the composite adapter mirror sync.