Changelog
All notable changes to Dual AI Verifier are documented here.
[Unreleased]
- Publish the plugin source, usage documentation, project log, and CI checks.
- Keep the reviewer result available as
report_markdownfor Codex's Outputs panel.
[0.1.0] - 2026-07-19
Added
- A single
ai_reviewMCP tool with Gemini-first provider selection. - Automatic DeepSeek fallback when Gemini has no usable credential or cannot complete a request.
- JSON review contract with
pass,revise, andblockedverdicts. - Evidence, fixes, missing-test, and open-question fields for each review.
- Chinese-friendly Markdown rendering through
report_markdown. - Skill workflow that mirrors each review to
outputs/ai-review.md. - macOS Keychain credential loading for both providers.
- Local unit tests, plugin validation, and shell/Python syntax checks.
Security and reliability
- Provider credentials are read through inherited file descriptors instead of being copied into command arguments.
- DeepSeek credential loading no longer uses a FIFO or a temporary directory.
- Gemini credentials are sent in the
x-goog-api-keyheader rather than a URL query string. - Review responses fail closed when required JSON fields are missing or empty.
- MCP parameter errors return JSON-RPC errors instead of terminating the server.
- Request, summary, context, tests, and combined input limits are enforced.
- The default Gemini model was moved from the retired
gemini-2.5-flashtogemini-3.1-flash-lite.
Known boundaries
- This is provider failover, not independent dual-model consensus: DeepSeek is not called when Gemini succeeds.
- Codex has no universal post-final-message interception hook; enforcement occurs at the skill workflow boundary.
- Review content is sent to the selected third-party provider. Do not include secrets or unnecessary private data in the context.
- A missing provider credential or blocked network request yields an explicit unavailable/blocked result and never an invented pass.