Repository navigation
fix: harden workflow execution and refresh release integration guidance - #30
Merged
Merged
Conversation
Protobuf-JSON also escapes angle brackets and ampersands as unicode escapes for HTML safety, so authorization and notification prompts still displayed sequences like <授权策略的操作类型> as escaped text after the non-ASCII decoding. The display now decodes every printable non-structural escape; quotes, backslashes and control characters stay escaped so the displayed JSON remains readable. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
… display Restores the URI guard in WireLog.sensitive() and its redaction test: extension-URI keys (e.g. the Authorization-T extension URI in message metadata) are protocol identifiers, not credential fields, so their values are business content and stay visible; HTTP Authorization headers and credential-shaped keys remain masked. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
The demo subscription passed an empty subscription condition. The fromData rendering collapses the blank slot to a bare section header, and real-LLM semantic validation rejects that prompt as a missing parameter (code=content.param_missing), so the pre-positioned Notification-T subscription never validated. The offline E2E provider never flagged this because its canned responses do not judge section content. Carry an explicit subnet constraint so the rendered section is complete and validates against a real LLM. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
…ments The offline E2E provider answers from the observed prompt source, but its verdict accepted a Notification-T subscription whose rendered condition section was blank - a gap a real provider rejects as a missing parameter, which is exactly how the empty demo condition went unnoticed until a real-LLM run. The verdict now rejects a blank rendered subscription condition, and a dead hardcoded negotiation fromText acceptance branch (unreachable: the samples only use fromData negotiation generation) is removed so no SDK response shape is stubbed in the offline provider. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Lists every a2a-t-sdk invocation in the SpringSpnDemo business chain in business-time order (inbound Task-T validation, per-city Task-T generation, the negotiation propose/accept loop, pre-positioned authorization and notification, and subscription validation), with the calling role and the sample class implementing each step. States the coverage explicitly: all 8 validate interfaces and all 7 fromData generation interfaces are exercised with real calls; fromText generation is not used by the samples. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Authorization and notification are pre-positioned operations: the workbench generates both payloads before dispatching the workflow tasks and sends them alongside the Task-T message, and the OMC validates them on receipt before diagnosis runs. Move those four steps ahead of the Task-T dispatch and negotiation loop so the inventory reflects when the calls actually happen. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
…th Task-T The inventory wording implied the pre-positioned authorization and notification payloads travel with the Task-T message. They do not: the authorization rides its own one-shot channel and the notification its own long-lived subscription channel, both sent before the workflow tasks are dispatched. Pair each operation's generation with the OMC-side validation and drop the piggyback wording. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Semicolons are statement separators in mermaid, so the message labels 'Validate proposal; generate reply' and 'Same task/context; final reply content' broke the diagram parser (Expecting arrow, got NEWLINE). Reword the two labels; the same lines appeared in the workbench integration guide and both language versions of the design doc. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
- SseNormalization and its test: the javadoc still claimed the default workflow client calls it after deserializing each response, but the ProtocolResponses refactor took over response assembly and no production code references the class anymore. - AgentAuthManager.extractExtensionUris: private helper with no call sites. - A2ATransport.getAgentNames and updateAgentCards: public methods with no callers in main or test sources and no documentation references; the initial release keeps no speculative surface. RegistryClient stays: it is the documented registry-center integration point (API reference and architecture diagram). Full reactor verify passes 271/271 after the removal. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
…napshot The stream map with a method reference over List<Part<?>> makes some IDE inference engines resolve the mapper's return as a capture of the wildcard instead of the declared Part<?>, surfacing a false List<? extends Part<?>> mismatch even though javac accepts the code. Rewrite the snapshot as an explicit loop so the element type is stated at every step and no inference is required. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Lombok @value makes fields private and final by default, so the explicit private modifier on TaskRequest and TaskResult field declarations is redundant; the bytecode visibility is unchanged (verified via javap). Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
A2ATErrorCodes is Deprecated(forRemoval) in A2A-T SDK 1.1.0; its constants delegate to the ErrorCatalog enum. Compare the retryable validation codes against ErrorCatalog.NEGOTIATION_SEMANTIC_REJECTED and ErrorCatalog.SLOT_RULE_VIOLATION directly - identical runtime codes, no deprecated reference left in the engine. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Same formatter pass the dev branch already carries: consistent indentation, import ordering, and javadoc line wrapping across the workflow-engine, samples, and spring-boot-starter sources. No behavioral change; brings the common files byte-identical to dev so future dev-to-main cherry-picks no longer conflict on formatting. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
…iles Dev's second formatting pass also applied code cleanup to four common files: null-safe required-flag check in A2ATransport, the concise ByteArrayOutputStream-to-string conversion in WireLog, an obsolete cast removal in ExecutePsopTest, and wildcard assertion imports in A2ATransportHeaderTest. Take dev's versions so the common files are byte-identical across branches. Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
…handling Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
Signed-off-by: Zhoujie628 <zhoujie628@users.noreply.github.com>
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
Scope and review notes
This PR targets the common/direct implementation on main. Vendor-specific forwarding code and configuration remain on dev and are not included.
The comparison includes earlier committed Java formatting and cleanup work as well as the functional changes above. The final hardening and ignore-rule cleanup were committed separately; no additional whole-file formatting was applied in those changes.
The supported baseline remains A2A-T SDK 1.1.0 and A2A Java SDK 1.2.0.Final. No older-SDK compatibility layer is introduced.
Validation
mvn -o -B -Dstyle.color=never clean verifyon main: 229 tests, zero failures, errors or skips.git diff --checkpassed.These results use the released SDK artifacts with an offline LLM provider and local protocol simulators. They do not constitute live-model or production OMC acceptance. Cross-worktree end-to-end runs must execute sequentially because they share local server ports.
No release publication, tag or automatic merge is requested.