v2.4.0 — Workflow Discovery, Framework Picker, Host-LLM Migration
·
94 commits
to main
since this release
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 boardoracle 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 orNone; callers must never fall back to a hardcoded string- Cache-first: reads
.oracle/workflow-<key>.json; only calls Jira/GitHub when missing or--refreshis passed - Reads project keys from
.oracle/company.jsonjira_projectswhen--projectis omitted
🎯 Framework Picker (Stages 1–3, #128–#130)
- 16 categories — expanded registry covering
synthetic_data,accessibility,contract,snapshot,visual_regression, and more - Ranked recommendations —
recommend()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 1 —
oracle-test-authorno longer requires an API key; runs in the Claude Code host session - Phase 2 —
oracle-heal-testself-heal loop as a keyless/oracle-heal-testslash command oracle generatemarked 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 acli:orentry:field--allow-executable-skillsrequired 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 versionnow derived from package metadata
Upgrading
pipx upgrade oracle-test-ai
oracle version # should show 2.4.0Stats since v2.1.0
515 unit tests passing · 39 new tests for workflow discovery · no regressions