feat: v0.15.0 — CLI compatibility and read-only agent tools - #91
Merged
Conversation
subinium
force-pushed
the
release/v0.15.0
branch
from
September 5, 2026 17:49
dc8ce8d to
975ab5e
Compare
This was referenced Sep 5, 2026
Owner
Author
|
Release verification complete: v0.15.0 is published at https://github.com/subinium/agf/releases/tag/v0.15.0 . Release workflow 33982590150 passed 17/17 jobs, including exact crates.io archive provenance and a registry-installed JSON/MCP smoke. All five public archive checksums passed; macOS ARM64 JSON/MCP and Linux x86_64 version/capabilities were also executed independently. Homebrew follow-up #92 is merged, the public tap is updated, actual formula install/test and installed JSON/MCP smoke passed. Final main bc49196 passed CI 33983718119 (9/9). Physical OS IME and real provider-account execution remain outside the automated fixture evidence; remaining #75/#79 scope is recorded separately. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implement the requested items 1, 2, 4 and 5 from the AGF compatibility plan.
The release is 0.15.0. No Copilot scanner or browser port is included;
the existing 14 providers remain.
Changes And Effects
agentbinaries are not assumed to be Cursor. Gemini direct deletion is disabled in favor of native sidecar-aware cleanup.Review Corrections
discovery, cached TUI selection and direct CLI resume. Shell quoting alone is
not protection against native option parsing.
secret values through API warnings/errors or settings diagnostics.
map. POSIX assignment-prefix invocation requires no external
envhelper;PowerShell restores previously set/unset variables.
fixture uses a relative PATH valid only before changing cwd, with no
envbinary, to verify real handoff behavior rather than command-string appearance.
native failure being masked after
finallycleanup. Dedicated child shellsnow preserve native failure codes and report PowerShell errors; parent-shell
wrappers remain a separate path.
during JSON serialization. Pure path checks cover Unix/Windows; the actual
invalid-byte filesystem fixture is Linux-specific because APFS rejects it.
First CI Follow-Up
Run
33980938025exposed two test-harness defects; neither is waived or skipped:All (0)and then updated only its digit to1. Matching anANSI-stripped transcript could not recognize the correct
All (1)screen.The PTY harness now uses pinned pyte/wcwidth terminal parsing and snapshots
only completed synchronized frames. Eight deterministic regressions cover
the original count update, partial/stale frames, coexisting anchors, resize
invalidation and bytewise UTF-8. The original anchors and deadlines remain.
canonical verbatim paths. Test-only comparisons now require absolute paths
and equal existing canonical identities. First-executable/root selection,
quoting, scoped environment and missing-executable fallback checks remain.
The production part of
src/config.rsis byte-identical to the first CI run.Unix CI installs the pinned Python test dependencies; they are not application
runtime dependencies. The screen regressions also run from normal Cargo tests.
Validation
All 18 local gate stages passed on an unchanged source snapshot using
Rust 1.98.1, plus explicit Rust 1.88 check and all-target Clippy:
Each Unix suite includes the eight deterministic terminal-screen replays
through one Cargo integration test, plus two actual native PTY scenarios.
and Clippy, fmt, RustSec, warning-denying rustdoc and package verification.
actionlint and diff checks.
without installation or modification of user shell profiles.
Exact-head remote CI
33982178200passed 9/9 on975ab5e3d3646977d7a4c611923c486485a03715: Linux, macOS, Windows,no-default features, MSRV 1.88, Clippy, formatting, package and security audit.
The previous Linux screen-matching and Windows path-spelling failures are
resolved by the test-only corrections above; neither was skipped.
The native PTY tests use a disposable HOME and a synthetic provider, never a
real account/session. They cover populated rendering, resize, UTF-8/paste,
single-Escape exit, terminal/fd restoration and exact argv/cwd/env handoff.
Darwin's kernel-written fd bookkeeping flag is measured by a same-binary
--versioncontrol; flags are compared exactly, not masked.MCP tests cover current
2026-07-28discovery and legacy2025-11-25/2025-06-18lifecycles, scope enforcement, four read-only tools, errors,oversized/partial input, cancellation capacity and EOF. This is bounded stdio
interoperability, not blanket conformance or live invocation by every client.
The release workflow reuses quality checks before artifact builds and makes
registry publication/provenance and an installed JSON/MCP consumer mandatory
before GitHub release creation. Homebrew checksums are updated after the actual
release archives exist, never invented before publication.
Remaining Boundaries
protocol/PTY fixtures. Windows console PTY behavior is separate from Windows
Rust/CLI tests.
remain outside this release's validated root-resolution scope.
untrusted values as text.
edge cases in hardening: post-v0.14 I/O, setup, and edge-case follow-ups #79 are not declared fixed. Session-title UX session names/titles #48 is not included.
Fixes #83. Fixes #84. Fixes #85. Fixes #86.
Fixes #87. Fixes #88. Fixes #89. Fixes #90.
Refs #75, #79.