Skip to content

chore(release): prepare v0.8.0 - #25

Merged
arcobaleno64 merged 1 commit into
mainfrom
codex/release-v0.8.0
Jul 15, 2026
Merged

chore(release): prepare v0.8.0#25
arcobaleno64 merged 1 commit into
mainfrom
codex/release-v0.8.0

Conversation

@arcobaleno64

Copy link
Copy Markdown
Owner

Summary

  • force every Git helper call through shell:false so repository-derived refs stay literal on Windows
  • report installed AGY authentication as unknown/unverifiable instead of inferring Gemini OAuth
  • position Gemini CLI and AGY as first-class conditional engines while preserving Gemini→AGY auto-routing order
  • prepare all version sources, install examples, changelog, skills, setup guidance, and attribution for v0.8.0

Compatibility

  • Gemini-only and AGY-only installations remain supported; users do not need both CLIs
  • agyFallbackAvailable remains as a compatibility alias and agyAvailable is additive
  • no slash-command flags, permission policy, transcript recovery, timeout, or task/review result structure changed
  • real macOS AGY 1.1.2 validation remains not run and is not claimed

Validation

  • npm test: 238 tests, 235 passed, 0 failed, 3 expected POSIX-only skips on Windows
  • npm run check-version: pass for 0.8.0
  • npm run verify-contracts: pass
  • git diff --check: pass
  • real local AGY 1.1.2 setup smoke: agyAvailable:true, authState:"unknown", authVerifiable:false

Closes #18

Harden Git subprocesses on Windows, report AGY authentication as unverifiable instead of inferring Gemini OAuth, and position AGY as a first-class conditional engine across runtime and documentation.

Constraint: Keep Gemini-only and AGY-only installations valid

Rejected: Make AGY a universal hard dependency | It would break existing Gemini-only installations

Confidence: high

Scope-risk: moderate

Not-tested: Real macOS AGY 1.1.2
Copilot AI review requested due to automatic review settings July 15, 2026 02:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the v0.8.0 release by hardening Git invocation on Windows (shell:false for all Git helper calls), promoting AGY from “fallback” to a first-class supported engine (while keeping Gemini→AGY ordering for auto), and making AGY authentication reporting explicitly “unknown/unverifiable” instead of inferred from Gemini OAuth. It also updates tests and documentation to reflect the new engine/auth semantics and bumps all version sources to 0.8.0.

Changes:

  • Force all Git helper invocations through shell:false and add a regression test to ensure repository-derived refs with shell metacharacters remain literal.
  • Change AGY auth reporting to state:"unknown" / verifiable:false and update setup rendering/tests/docs accordingly.
  • Bump release/version artifacts to 0.8.0 and update release notes, skills, and setup guidance for first-class AGY.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/runtime.test.mjs Updates setup/runtime assertions for AGY availability, new auth state fields, and new non-JSON labels.
tests/render.test.mjs Updates rendered setup report expectations to include AGY auth detail line.
tests/helpers.mjs Allows explicit shell override to support Git security regression tests.
tests/git.test.mjs Adds regression test ensuring default-branch auto-detection doesn’t enable shell metacharacter execution.
tests/fake-gemini-fixture.mjs Renames fixture comments from “fallback” framing to “availability” framing.
tests/commands.test.mjs Updates setup command documentation tests for first-class engine wording and curl allowance.
README.zh-TW.md Updates Traditional Chinese docs for first-class AGY framing, auth guidance, and v0.8.0 pinning.
README.md Updates English docs for first-class AGY framing, auth guidance, and v0.8.0 pinning.
plugins/gemini/skills/gemini-prompting/references/gemini-prompt-antipatterns.md Clarifies AGY stdout behavior differences across versions while keeping transcript recovery authoritative.
plugins/gemini/skills/gemini-cli-runtime/SKILL.md Updates skill guidance to reflect first-class engines and revised engine-routing wording.
plugins/gemini/scripts/lib/render.mjs Updates setup status label from “AGY fallback only” to “AGY available”.
plugins/gemini/scripts/lib/process.mjs Updates security comment to remove Git from bare-name shell-fallback list.
plugins/gemini/scripts/lib/git.mjs Forces shell:false for all Git helper calls to prevent shell reinterpretation on Windows.
plugins/gemini/scripts/lib/gemini.mjs Changes AGY auth reporting to unknown/unverifiable and renames runtime label from fallback to plain AGY.
plugins/gemini/scripts/lib/failures.mjs Updates “binary missing” guidance to treat both engines as supported options.
plugins/gemini/scripts/lib/engine.mjs Updates auto routing commentary and adjusts “no engine found” error text.
plugins/gemini/scripts/gemini-companion.mjs Adds agyAvailable + keeps compatibility alias, updates next steps text (but has a readiness logic bug for --engine gemini).
plugins/gemini/NOTICE Updates attribution wording from “fallback handling” to “engine handling”.
plugins/gemini/commands/setup.md Updates setup command guidance for first-class engines and allows curl installer tool usage.
plugins/gemini/CHANGELOG.md Adds v0.8.0 release notes covering Git hardening, engine status changes, and auth semantics.
plugins/gemini/.claude-plugin/plugin.json Bumps plugin version to 0.8.0.
package.json Bumps package version to 0.8.0.
package-lock.json Bumps lockfile package version entries to 0.8.0.
.claude-plugin/marketplace.json Bumps marketplace metadata/plugin versions to 0.8.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 192 to +196
const agySelected = requestedEngine === "agy";
const geminiReady = geminiStatus.available && geminiAuth.loggedIn;
const agyFallbackAvailable = agyStatus.available;
const agyAvailable = agyStatus.available;
// Backward-compatible alias retained for existing JSON consumers. AGY is a
// first-class supported engine; "fallback" describes only auto-routing order.
Comment on lines 229 to 233
if (agySelected && agyStatus.available) {
nextSteps.push(
"AGY is installed, but its authentication state cannot be verified non-interactively. Run an `--engine agy` command to confirm it is logged in."
);
}
@arcobaleno64
arcobaleno64 merged commit dbe7582 into main Jul 15, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Security parity: force shell:false for Git helpers on Windows

2 participants