Skip to content

Commit b3b6832

Browse files
committed
chore(release): v0.9.91
Cut v0.9.91: July 15, 2026 Play policy tracking, dependency health, and a docs/SEO refresh. - bump @gpc-cli/cli 0.9.90 -> 0.9.91, @gpc-cli/core 0.9.75 -> 0.9.76 (changed packages only; api/auth/config/plugins unchanged) - stamp version and test count (2,498) across README, docs, config JSON-LD, CLAUDE.md, and the LLM-facing files; historical entries left as-is - add v0.9.91 changelog entries (root, docs, cli package) Feature work landed in the prior commits this cycle: July 15 policy preflight + verify checklist, safe dependency minors, e2e assertion fix, and the docs/SEO pass.
1 parent f16ff68 commit b3b6832

18 files changed

Lines changed: 57 additions & 24 deletions

File tree

.changeset/july-2026-policy-update.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ Versioning: `0.9.x` pre-release series → `1.0.0` public launch.
77

88
---
99

10+
## v0.9.91
11+
12+
Google Play July 15, 2026 policy update, dependency health, and a docs refresh.
13+
14+
- feat: `gpc preflight` and `gpc verify checklist` track Google's July 15, 2026 policy update. The `READ_CALL_LOG` finding notes that account verification via phone call is no longer an accepted use case and points to the Digital Credentials API (or SMS Retriever API). A new advisory and checklist step cover the mandate that every app on your account be registered in Play Console, since unregistered apps risk removal.
15+
- chore: safe dependency updates (google-auth-library, protobufjs, yauzl, and dev tooling).
16+
- docs: outcome-led homepage, answer-first intros on the Games and Android CLI pages, and benefit-led page metadata.
17+
18+
---
19+
1020
## v0.9.90
1121

1222
Release readiness, review insight, and Play Games sync.

CLAUDE.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ e2e/ → End-to-end tests
4444
- Phase 9 ✓ — Security audit, interactive mode, VitePress docs, standalone binary, Homebrew tap, npm publish, README/CHANGELOG
4545
- Phase 10 ✓ — `gpc preflight` pre-submission compliance scanner (9 scanners, offline AAB policy checks)
4646
- Published to npm: `npm install -g @gpc-cli/cli`
47-
- Current version: v0.9.90 — pre-release series (`0.9.x``1.0.0` public launch)
47+
- Current version: v0.9.91 — pre-release series (`0.9.x``1.0.0` public launch)
48+
- v0.9.91: Google Play July 15, 2026 policy update + dependency health + docs/SEO refresh. Preflight's `READ_CALL_LOG` finding now notes that account verification via phone call is no longer an accepted use case (points to the Digital Credentials API + SMS Retriever API); the `policy-developer-verification` advisory and `gpc verify checklist` add the mandate that every app on your account be registered in Play Console (unregistered apps risk removal). Safe dev/prod dependency minor bumps (google-auth-library 10.9, protobufjs 8.6.5, yauzl 3.4.0, eslint/vitest/turbo/tsx/prettier). Docs: outcome-led homepage, answer-first AEO intros, benefit-led meta. Dep majors (typescript 6, commander 15, ai 7) held to post-1.0.0. 2,498 tests.
4849
- v0.9.90: release readiness, review insight, and Play Games sync. `gpc doctor --score` (A–F release-readiness grade) + `--badge` (shareable shields.io README badge). `gpc reviews list --sort newest|oldest|rating` presets + `gpc status --full` local review topic/sentiment breakdown. Games icon upload (`gpc games … set-icon`) and directory bulk sync (`gpc games … push/pull`); Games Management reset deferred (needs player-consent OAuth). Developer-verification advisory in preflight + `gpc verify checklist` (Sept 30 2026 enforcement). CI: Socket scan skips Dependabot PRs. Pre-soak security audit passed (Claude senior-security skill, this cycle). Last release before the stability soak. 2,495 tests.
4950
- v0.9.89: preflight scanner reliability fix (GH #89). `gpc preflight` (and `preflight manifest` / `preflight permissions`) crashed with a `TypeError` and then hung when scanning an AAB/APK on the standalone (Homebrew) binary — yauzl's file-descriptor reader was handed a null fd under the Bun-compiled binary. The offline reader now loads the archive with `yauzl.fromBuffer` (no fd), so the standalone binary behaves the same as the npm (Node) install, and the ZIP read is guaranteed to settle with a bounded timeout backstop so it can never hang. 2,421 tests.
5051
- v0.9.88: preflight compliance refresh for Google Play's October 28 2026 sensitive-permission deadlines (apps targeting Android 17/API 37+). Contacts check now cites the Oct 28 2026 date + Android Contact Picker (`Intent.ACTION_PICK_CONTACTS`); new `location-minimal-scope` rule flags `ACCESS_FINE_LOCATION` (info; warning at API 37+); geofencing date corrected from the stale May 15 2026 to Oct 28 2026; `gpc init` scaffolds `targetSdkMinimum: 36` (was 35, below the current Play floor). 2,418 tests.
@@ -66,7 +67,7 @@ e2e/ → End-to-end tests
6667
- v0.9.72: API compliance patch (error reports endpoint, input validation).
6768
- v0.9.71: `gpc doctor` quota proximity check (warns at >80% daily/per-minute API usage) and plugin health check (discovers, loads, reports each plugin).
6869
- v0.9.70: `--in-app-update-priority <0-5>` and `--retain-version-codes <csv>` flags on upload, `default.txt` Fastlane-style changelog fallback via `--notes-dir`, promote preserves `inAppUpdatePriority` + `name`, GitHub Actions Node.js 22.
69-
- 2,495 total tests, 7 packages building, 90%+ line coverage on all core packages
70+
- 2,498 total tests, 7 packages building, 90%+ line coverage on all core packages
7071
- Changelog-generation series (v0.9.61 → v0.9.64): complete. `gpc changelog generate --target play-store --locales auto --ai --apply` does commit → translated Play Store notes → written into draft release, one command.
7172
- v0.9.63 highlight: AI-assisted Play Store translation. `gpc changelog generate --target play-store --locales auto --ai` translates non-source locales via the user's own LLM key. Auto-detects env priority `AI_GATEWAY_API_KEY``ANTHROPIC_API_KEY``OPENAI_API_KEY``GOOGLE_GENERATIVE_AI_API_KEY`. Non-reasoning model defaults. Gateway path unlocks cost-per-run in USD. All 4 AI SDK deps lazy-loaded (cold-start preserved).
7273
- v0.9.62 highlight: multilingual Play Store release notes. `gpc changelog generate --target play-store --locales <csv|auto>` emits per-locale "What's new" text with 500-char budget enforcement.
@@ -76,7 +77,7 @@ e2e/ → End-to-end tests
7677

7778
## Testing
7879

79-
- Vitest for all tests (2,495 total across 7 packages + e2e)
80+
- Vitest for all tests (2,498 total across 7 packages + e2e)
8081
- Tests in `tests/` directory per package
8182
- Mock external APIs — never call real Google APIs in tests
8283
- Mock fetch with `vi.stubGlobal("fetch", mockFn)` for API tests

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ GPC covers the **entire Google Play Developer API** in one CLI. 227 endpoints. N
8484
| CI/CD native | JSON + exit codes + env vars | Partial | Gradle tasks | No |
8585
| Preflight scanner | **9 offline policy checks** | No | No | No |
8686
| Interactive mode | Yes (guided prompts) | No | No | N/A |
87-
| Test suite | 2,495 tests, 90%+ coverage | | | |
87+
| Test suite | 2,498 tests, 90%+ coverage | | | |
8888

8989
Already on Fastlane? See the [migration guide](https://yasserstudio.github.io/gpc/migration/from-fastlane) — most commands map one-to-one.
9090

apps/docs/.vitepress/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ export default defineConfig({
353353
codeRepository: "https://github.com/yasserstudio/gpc",
354354

355355
programmingLanguage: "TypeScript",
356-
softwareVersion: "0.9.90",
356+
softwareVersion: "0.9.91",
357357
releaseNotes: "https://yasserstudio.github.io/gpc/reference/changelog",
358358
documentation: "https://yasserstudio.github.io/gpc/",
359359
author: {
@@ -491,7 +491,7 @@ export default defineConfig({
491491
name: "Is it stable enough for production CI/CD?",
492492
acceptedAnswer: {
493493
"@type": "Answer",
494-
text: "2,495 tests across 7 packages at 90%+ line coverage. Every write operation supports --dry-run. Semantic exit codes for CI branching.",
494+
text: "2,498 tests across 7 packages at 90%+ line coverage. Every write operation supports --dry-run. Semantic exit codes for CI branching.",
495495
},
496496
},
497497
{

apps/docs/alternatives/fastlane.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ If you are evaluating alternatives to Fastlane for Google Play automation, here
2121
| Plugin system | Yes (lifecycle hooks) | Actions (different) |
2222
| Interactive mode | Yes (guided prompts) | No |
2323
| Release notes generator | **`gpc changelog generate`** (clusters, lints, LLM prompt) | No |
24-
| Test suite | 2,495 tests, 90%+ coverage | -- |
24+
| Test suite | 2,498 tests, 90%+ coverage | -- |
2525

2626
## What GPC Covers That Fastlane Does Not
2727

apps/docs/alternatives/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ This page compares every actively maintained option as of May 2026.
2727
| CI/CD integration | JSON + exit codes (0-6) | Partial | Gradle tasks | Basic |
2828
| Plugin system | Yes (lifecycle hooks, SDK) | Actions | No | No |
2929
| SDK / library use | Yes (@gpc-cli/api) | No | No | No |
30-
| Test suite | 2,495 tests, 90%+ coverage | Community-maintained | Kotlin tests | Minimal |
30+
| Test suite | 2,498 tests, 90%+ coverage | Community-maintained | Kotlin tests | Minimal |
3131
| Image sync (SHA-256 diffing) | Yes (shipped v0.9.69) | Yes | No | No |
3232
| Upload progress reporting | Yes (shipped v0.9.69) | No | Yes (progress callbacks) | No |
3333

apps/docs/commands/utility.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ Run: gpc update
255255
**Already on latest:**
256256

257257
```
258-
Already on latest version: v0.9.90
258+
Already on latest version: v0.9.91
259259
```
260260

261261
**`--output json` (update available):**

apps/docs/guide/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ See the [CI/CD guide](../ci-cd/) for copy-pasteable GitHub Actions, GitLab CI, B
7777

7878
### Is it stable enough for production CI/CD?
7979

80-
2,495 tests across 7 packages. 90%+ line coverage on all core packages. Every write operation supports `--dry-run`. Semantic exit codes for CI branching. Validated against production apps. The CLI is in a pre-release stability soak before v1.0.
80+
2,498 tests across 7 packages. 90%+ line coverage on all core packages. Every write operation supports `--dry-run`. Semantic exit codes for CI branching. Validated against production apps. The CLI is in a pre-release stability soak before v1.0.
8181

8282
## Configuration
8383

apps/docs/guide/free-to-use.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Not required. You may display a "Uses GPC" badge if you want (see `/users/` once
9797

9898
### What happens if the maintainer stops shipping?
9999

100-
The source is on GitHub. Forks are permitted for internal use. The current approach is single-maintainer by design — that gives us quality control today and succession risk tomorrow. We mitigate the succession risk by keeping the project fully documented, heavily tested (2,495 tests at 90%+ coverage), and publicly versioned.
100+
The source is on GitHub. Forks are permitted for internal use. The current approach is single-maintainer by design — that gives us quality control today and succession risk tomorrow. We mitigate the succession risk by keeping the project fully documented, heavily tested (2,498 tests at 90%+ coverage), and publicly versioned.
101101

102102
### Can I sponsor the project?
103103

0 commit comments

Comments
 (0)