Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ name: Release to Maven Central
# The parent must ship: module poms take their groupId from it, and Central rejects a
# bundle whose module coordinates cannot be resolved. samples is excluded from deployment
# via maven.deploy.skip, but the release gate still builds and tests the full main reactor
# (main has no vendor-jar dependency; the Eastcom adapter exists only on the dev branch).
# (main has no vendor-jar dependency; vendor-specific adapters remain outside this release branch).

on:
push:
Expand Down
16 changes: 15 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

## [Unreleased]

## [0.0.8] — 2026-09-13

- Scope task lifecycle callbacks to each `sendTask` invocation so concurrent workflow executions
cannot overwrite or receive one another's protocol events.
- Cancel pending task polls and acknowledgement timers when an invocation, subscription, client or
transport finishes; this prevents delayed callbacks from surviving resource shutdown.
- Track raw transport activity separately from decoded Notification-T business events. Standard SSE
comment heartbeats refresh `heartbeat().lastEventAt()` without increasing `eventCount`; use the
new `lastBusinessEventAt()` accessor for business-event liveness.
- Add configurable connection/read deadlines to `LoadPsop`, and reject ambiguous simultaneous
`credentialsConfigPath` and inline `credentialsConfig` configuration.
- Clarify `DefaultExtensionSender` ownership: its public constructor owns the supplied transport;
callers that share a transport must use `DefaultExtensionSender.nonOwning(...)`.

## [0.0.7] — 2026-09-13

- Set the source-build version to `0.0.7-SNAPSHOT`. Maven Central version `0.0.6` was published from the same source
Expand Down Expand Up @@ -84,4 +98,4 @@
- Keep documentation host-neutral; sample class and AgentCard identifiers remain unchanged.

Published Maven artifacts use the version selected by the release tag. The default source-build
`revision=0.0.7-SNAPSHOT` is not a Maven Central release version.
`revision=0.0.8-SNAPSHOT` is not a Maven Central release version.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ subscription remains open until the host-defined terminal event, explicit cancel

### 1. Add Maven dependency

The current engine release is `0.0.7` on [Maven Central](https://repo.maven.apache.org/maven2/net/openan/workflow/sdk/).
The current engine release is `0.0.8` on [Maven Central](https://repo.maven.apache.org/maven2/net/openan/workflow/sdk/).

A2A-T SDK `1.1.0` is published to Maven Central. Maven resolves it automatically; no SDK source checkout or local SDK
build is required. The engine depends only on
Expand All @@ -51,7 +51,7 @@ upgrade guidance.
<dependency>
<groupId>net.openan.workflow.sdk</groupId>
<artifactId>workflow-engine</artifactId>
<version>0.0.7</version>
<version>0.0.8</version>
</dependency>
```

Expand All @@ -61,7 +61,7 @@ For Spring Boot server-side integration:
<dependency>
<groupId>net.openan.workflow.sdk</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>0.0.7</version>
<version>0.0.8</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion docs/en/BUSINESS_CALLBACKS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Business callback integration contract

Initial-release API; A2A-T SDK `1.1.0`, A2A Java `1.2.0.Final`. The engine owns DAG scheduling, standard A2A envelopes,
Release `0.0.8` API; A2A-T SDK `1.1.0`, A2A Java `1.2.0.Final`. The engine owns DAG scheduling, standard A2A envelopes,
auth, transport and task waiting. The host owns content, schemas, templates, semantic validation and any LLM calls.
The business contracts are independent of the transport runtime.

Expand Down
4 changes: 2 additions & 2 deletions docs/en/DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ Add to your `pom.xml`:
<dependency>
<groupId>net.openan.workflow.sdk</groupId>
<artifactId>workflow-engine</artifactId>
<version>0.0.7</version>
<version>0.0.8</version>
</dependency>
```

Version `0.0.7` is published to Maven Central and contains the APIs documented in this guide.
Version `0.0.8` is published to Maven Central and contains the APIs documented in this guide.

The engine pulls in A2A protocol transports and a2a-t-core only. Host agents generating A2A-T content explicitly add
a2a-t-client; dispatched-agent services that validate received content also add a2a-t-server.
Expand Down
12 changes: 6 additions & 6 deletions docs/en/INTEGRATION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ callbacks own A2A-T generation, semantic validation, schemas and any LLM calls.
<dependency>
<groupId>net.openan.workflow.sdk</groupId>
<artifactId>workflow-engine</artifactId>
<version>0.0.7</version>
<version>0.0.8</version>
</dependency>
```

Version `0.0.7` is published to Maven Central and contains the APIs documented in this guide.
Version `0.0.8` is published to Maven Central and contains the APIs documented in this guide.

## 4. Quick Start

Expand Down Expand Up @@ -227,18 +227,18 @@ configuration without modifying system properties. Never log plaintext or the ke

**Encrypt a password**

Build the jar with `mvn -pl workflow-engine -am -Drevision=0.0.7 package`; commands below run from the repository root.
Build the jar with `mvn -pl workflow-engine -am "-Drevision=0.0.8" package`; commands below run from the repository root.
`set` is Windows cmd syntax (PowerShell: `$env:A2AT_CRED_KEY='...'`). This CLI needs only the SDK jar and JDK.
Use disposable example values here: command-line passwords/keys can appear in shell history and process listings.
For production, obtain secrets securely in the host and use the Java encryption API.

```bash
# Option 1: set env var first
set A2AT_CRED_KEY=4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
java -cp workflow-engine/target/workflow-engine-0.0.7.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123"
java -cp workflow-engine/target/workflow-engine-0.0.8.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123"

# Option 2: pass key as second argument
java -cp workflow-engine/target/workflow-engine-0.0.7.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123" 4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
java -cp workflow-engine/target/workflow-engine-0.0.8.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123" 4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
```

Output:
Expand All @@ -254,7 +254,7 @@ Paste the output into the `value` field of the credentials JSON.
1. Generate a new key: `openssl rand -hex 32`
2. Update the host secret store / explicit `credentialEncryptionKey`, or its OS/JVM `A2AT_CRED_KEY`
3. Re-encrypt all passwords:
`java -cp workflow-engine/target/workflow-engine-0.0.7.jar dev.openan.workflow.engine.client.CredentialCrypto "plaintext" new-key`
`java -cp workflow-engine/target/workflow-engine-0.0.8.jar dev.openan.workflow.engine.client.CredentialCrypto "plaintext" new-key`
4. Update the `enc:...` results in the credentials JSON file

> The `.env` file should not be committed to version control. Add it to `.gitignore`.
Expand Down
2 changes: 1 addition & 1 deletion docs/zh/BUSINESS_CALLBACKS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 业务回调集成契约

首发 API,A2A-T SDK `1.1.0`,A2A Java `1.2.0.Final`。 引擎负责 DAG、标准 A2A 信封、认证、传输和任务等待;宿主负责消息内容、schema、模板、语义校验和
`0.0.8` API,A2A-T SDK `1.1.0`,A2A Java `1.2.0.Final`。 引擎负责 DAG、标准 A2A 信封、认证、传输和任务等待;宿主负责消息内容、schema、模板、语义校验和
LLM。业务契约独立于具体传输实现。

## 1. 回调接口
Expand Down
4 changes: 2 additions & 2 deletions docs/zh/DEVELOPER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
<dependency>
<groupId>net.openan.workflow.sdk</groupId>
<artifactId>workflow-engine</artifactId>
<version>0.0.7</version>
<version>0.0.8</version>
</dependency>
```

`0.0.7` 已发布到 Maven Central,包含本文说明的接口。
`0.0.8` 已发布到 Maven Central,包含本文说明的接口。

引擎会传递性引入 A2A 协议 SDK(`a2a-java-sdk-client`,含 REST、JSON-RPC、gRPC 传输) 和最小 A2A-T 核心(`a2a-t-core`)。生成 A2A-T 内容的宿主智能体显式依赖 a2a-t-client,校验接收内容的被调度智能体服务另引入 a2a-t-server。

Expand Down
12 changes: 6 additions & 6 deletions docs/zh/INTEGRATION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ A2A-T 工作流执行引擎是一个 Java SDK,用于基于 A2A 协议和 A2A-T
<dependency>
<groupId>net.openan.workflow.sdk</groupId>
<artifactId>workflow-engine</artifactId>
<version>0.0.7</version>
<version>0.0.8</version>
</dependency>
```

`0.0.7` 已发布到 Maven Central,包含本文说明的接口。
`0.0.8` 已发布到 Maven Central,包含本文说明的接口。

## 4. 快速上手

Expand Down Expand Up @@ -217,17 +217,17 @@ A2AT_CRED_KEY=4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b

**加密密码**

先执行 `mvn -pl workflow-engine -am -Drevision=0.0.7 package`,以下命令在仓库根目录运行,仅需 SDK jar 和 JDK。
先执行 `mvn -pl workflow-engine -am "-Drevision=0.0.8" package`,以下命令在仓库根目录运行,仅需 SDK jar 和 JDK。
`set` 是 Windows cmd 语法,PowerShell 应使用 `$env:A2AT_CRED_KEY='...'`。
以下参数仅用于演示;命令行口令/密钥可能进入终端历史和进程参数。生产应由集成方安全读取密钥并调用 Java 加密 API。

```bash
# 方式一:先设置环境变量
set A2AT_CRED_KEY=4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
java -cp workflow-engine/target/workflow-engine-0.0.7.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123"
java -cp workflow-engine/target/workflow-engine-0.0.8.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123"

# 方式二:密钥作为第二个参数
java -cp workflow-engine/target/workflow-engine-0.0.7.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123" 4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
java -cp workflow-engine/target/workflow-engine-0.0.8.jar dev.openan.workflow.engine.client.CredentialCrypto "Admin@123" 4f8a2b1c3d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b
```

输出:
Expand All @@ -242,7 +242,7 @@ enc:uHQcTeKZMVNRM9Ga:o5vm4weRozBXBs04phrLq7j7+/yRVyDsrw==

1. 生成新密钥:`openssl rand -hex 32`
2. 更新集成方密钥存储及显式 `credentialEncryptionKey`,或 OS/JVM 的 `A2AT_CRED_KEY`;引擎不自动加载 `.env`
3. 用新密钥重新加密所有密码:`java -cp workflow-engine/target/workflow-engine-0.0.7.jar dev.openan.workflow.engine.client.CredentialCrypto "明文密码" 新密钥`
3. 用新密钥重新加密所有密码:`java -cp workflow-engine/target/workflow-engine-0.0.8.jar dev.openan.workflow.engine.client.CredentialCrypto "明文密码" 新密钥`
4. 将新的 `enc:...` 结果更新到凭证 JSON 文件

> `.env` 文件不应提交到版本库,建议加入 `.gitignore`。
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
</modules>

<properties>
<revision>0.0.7-SNAPSHOT</revision>
<revision>0.0.8-SNAPSHOT</revision>
<maven.compiler.release>17</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<a2a.java.sdk.version>1.2.0.Final</a2a.java.sdk.version>
Expand Down