Add update-check endpoint support (v0.2.1)

Implement /update-check endpoint aligned with remote OpenAPI spec:
- Add checkForUpdates() method to LicenseClientInterface
- Add UpdateInfo DTO for update check responses
- Add ProductNotFoundException for product_not_found error
- Update local openapi.json to v0.4.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-27 20:52:12 +01:00
parent 5e4b5a970f
commit 760e1e752a
11 changed files with 633 additions and 7 deletions

View File

@@ -29,10 +29,6 @@ This project is proudly **"vibe-coded"** using Claude.AI - the entire codebase w
No known bugs at the moment
### Version 0.2.1
No pending tasks at the moment.
### Version 0.3.0
No pending tasks at the moment.
@@ -237,3 +233,27 @@ When editing CLAUDE.md or other markdown files, follow these rules to avoid lint
- Version tagging with `git tag -a` creates annotated tags with messages
- CHANGELOG.md follows Keep a Changelog format (MD024 duplicate headings are expected)
- Roadmap in CLAUDE.md should be updated after each release to reflect next versions
### 2026-01-27 - Version 0.2.1 (Update Check Endpoint)
**Completed:**
- Compared local `openapi.json` against remote server specification
- Discovered new `/update-check` endpoint in remote spec
- Added `UpdateInfo` DTO for update check responses
- Added `ProductNotFoundException` for `product_not_found` error code
- Implemented `checkForUpdates()` method in `LicenseClientInterface`
- Implemented `checkForUpdates()` in both `LicenseClient` and `SecureLicenseClient`
- Updated local `openapi.json` with `/update-check` endpoint (now v0.4.0)
- Updated `LicenseException::fromApiResponse()` to handle `product_not_found`
- Added encoded constant `ENCODED_UPDATE_CHECK` to `SecureLicenseClient`
- Updated documentation: README.md and docs/client-implementation.md
- All 66 tests pass
**Learnings:**
- Remote OpenAPI spec at server repo may have newer endpoints than local copy
- Update check endpoint returns WordPress-compatible plugin info (tested, requires, requires_php)
- `UpdateInfo` DTO supports both `download_url` and `package` fields (WordPress compatibility)
- Package hash format uses `sha256:hexstring` prefix for integrity verification
- StringEncoder can generate encoded constants for obfuscated endpoint names