Repository navigation
feat(forward): align contracts and complete resource APIs - #7
Merged
Merged
Conversation
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.
Change
Java Forward callers currently need raw requests for resource Search, Dreams, Decision evaluation and Pairing management; typed Outcome rubrics also serialize the obsolete
textfield. This change adds 15 synchronous/asynchronous resource operations and updates the existing contracts against the official documentation checked on 2026-10-28.auto_memory_store, independent mount access and cursor pagination, Schedule file resources, optional Run input snapshots and Session event Credits accessors. Preserve the existing boxed mounthasMore()signature and raw event accessors.content; retain the oldtextmethods as deprecated aliases. Raw JSON callers must migrate the old key themselves.__qca_sdk_created,__qca_sdk_language=javaand the actual JAR version into typed Session creation. Preserve custom metadata and caller maps; reject conflicting exact reserved keys before HTTP. These three entries count toward the service metadata limit.The Forward inventory now includes 146 HTTP operations plus Realtime WebSocket, including the previously merged, unreleased Webhook work. Official contract links, migration notes and API coverage are in
docs/forward-parity.mdanddocs/forward-api-coverage.md. An executable example and independent JAR consumer tests cover the new surface. Go/Python/TypeScript are unchanged; Managed is outside this Java Forward change.Validation
make qualitypasses on JDK 17: formatting, repository/link checks and 38 maintenance tests.For each of Java 8 / 11 / 17 / 21 / 25, ran these commands against the same frozen source snapshot:
Each runtime passed 686 SDK tests and 67 independent consumer tests, with zero failures, errors or skips: 3,765 test executions across the matrix. Package checks include the main, sources and Javadoc JARs and Java 8 bytecode. The committed files match the tested snapshot hashes.
Also ran
python3 .github/scripts/check_central_bundle.pyon JDK 17. Disposable-key signing and SDK/POM/sources/Javadoc digest comparison passed; Central upload was skipped by the signing-only build. No package was published.Regression coverage includes all 15 operations through sync/async and response wrappers, empty POST search, opaque/repeated cursors, backward mount pagination, query ownership, Beta/header retention, cancellable page fetches, exact numeric types, Decision request-byte/idempotency preservation, non-retried conflicts, metadata collisions and immutability, and current Outcome/Schedule wire fields.
No new live CN/Global scenarios, real channel pairing or Dream execution were run. Internal integration, pipeline QA-package acceptance and human approval remain separate follow-up gates; these offline checks are not production verification.