Skip to content

v2.4.0 — Workflow Discovery, Framework Picker, Host-LLM Migration

Choose a tag to compare

@bstevenski-capillary bstevenski-capillary released this 27 May 16:52
· 94 commits to main since this release
0d94d5b

What's New

🔍 Project Workflow Discovery

Never hardcode Jira status names again. Oracle now discovers per-project issue workflows and persists them locally.

  • oracle workflow discover [--project <key>] [--refresh] [--dry-run] — fetches Jira issue types, statuses, and transitions via the Jira REST API (ATLASSIAN_URL / ATLASSIAN_USER / ATLASSIAN_TOKEN); synthesizes open/closed for GitHub repos without a project board
  • oracle workflow show [--project <key>] [--roles-only] [--json] — inspect the cached mapping at a glance
  • Semantic-role heuristics map status names to roles (qa_passed, ready_to_deploy, in_review, in_qa, in_progress, blocked) with priority ordering
  • resolve_role(project_key, role) module-level shortcut for downstream consumers — returns the status name or None; callers must never fall back to a hardcoded string
  • Cache-first: reads .oracle/workflow-<key>.json; only calls Jira/GitHub when missing or --refresh is passed
  • Reads project keys from .oracle/company.json jira_projects when --project is omitted

🎯 Framework Picker (Stages 1–3, #128#130)

  • 16 categories — expanded registry covering synthetic_data, accessibility, contract, snapshot, visual_regression, and more
  • Ranked recommendationsrecommend() returns a sorted candidate list with per-framework confidence scores
  • Observability-sink routing — Stage 2 matches suites with reporting destinations (Datadog, Prometheus, etc.)
  • Enterprise license gate — Stage 3 strips commercially-licensed tools (Tricentis Tosca, NeoLoad, LambdaTest) unless the matching ORACLE_LICENSE_* env var is set; OSS defaults always remain

🤖 Host-LLM Migration (Phases 1–2)

  • Phase 1oracle-test-author no longer requires an API key; runs in the Claude Code host session
  • Phase 2oracle-heal-test self-heal loop as a keyless /oracle-heal-test slash command
  • oracle generate marked deprecated (removed in v3.0); ADR-0003 documents the migration path

🗣 Voice Profiles

Named tone presets (concise, pedagogical, assertive, …) configurable per-project via .oracle/voice.json

🔢 Magic-Number Detection

QualityScorer now flags hardcoded numeric literals in generated tests as a quality gate

🛠 oracle skills run + CLI/entry Loader

  • oracle skills run <name> [args…] invokes skills with a cli: or entry: field
  • --allow-executable-skills required for non-interactive / CI contexts

🔌 Plugin Lifecycle Hooks

block-no-verify, protect-config, quality-gate, and pre-compact-state hooks wired into .claude/settings.json

🧹 Cleanups

  • Removed obsolete API-key setup modules (env_setup, setup_wizard) — no API key required for core workflows
  • oracle version now derived from package metadata

Upgrading

pipx upgrade oracle-test-ai
oracle version  # should show 2.4.0

Stats since v2.1.0

515 unit tests passing · 39 new tests for workflow discovery · no regressions