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
62 changes: 61 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -168,9 +168,69 @@ jobs:
- name: Verify a2a-antigravity npm package contents
run: npm pack -w a2a-antigravity --dry-run

- name: Publish to npm and create GitHub releases
- name: Publish to npm
# createGithubReleases: false suppresses this action's normal
# one-release-per-package behavior (it still tags each published
# package, since push-git-tags defaults to true and stays on) — the
# step below creates a single combined release instead.
id: changesets
uses: changesets/action@v1
with:
publish: npx changeset publish
createGithubReleases: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create combined GitHub release
# One release page per publish run, covering every package that
# actually published (from `publishedPackages` — packages with
# nothing new this run are absent, never mentioned). Body is
# assembled from each published package's own CHANGELOG.md section
# for its new version, so it matches what changesets already wrote
# rather than a second, hand-maintained description.
if: steps.changesets.outputs.published == 'true'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PUBLISHED_PACKAGES: ${{ steps.changesets.outputs.publishedPackages }}
run: |
set -euo pipefail

: > release-notes.md
echo "$PUBLISHED_PACKAGES" | jq -c '.[]' | while read -r entry; do
NAME=$(echo "$entry" | jq -r '.name')
VERSION=$(echo "$entry" | jq -r '.version')

DIR=""
for pkg_dir in packages/* a2a-*; do
[ -f "$pkg_dir/package.json" ] || continue
PKG_NAME=$(node -p "require('./$pkg_dir/package.json').name")
if [ "$PKG_NAME" = "$NAME" ]; then
DIR="$pkg_dir"
break
fi
done
if [ -z "$DIR" ]; then
echo "::warning::Could not find package directory for $NAME, skipping its changelog in the combined release"
continue
fi

{
echo "### $NAME@$VERSION"
echo
awk -v ver="## $VERSION" '
$0 ~ /^## / {
if (found) exit
if ($0 == ver || index($0, ver" ") == 1) { found = 1; next }
}
found { print }
' "$DIR/CHANGELOG.md"
echo
} >> release-notes.md
done

DATE=$(date -u +%Y-%m-%d)
TAG="release-${DATE}-${{ github.run_number }}"

gh release create "$TAG" \
--title "Release ${DATE}" \
--notes-file release-notes.md
10 changes: 2 additions & 8 deletions a2a-antigravity/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# a2a-antigravity

## 0.2.0
## Unreleased

### Minor Changes

Expand All @@ -25,13 +25,7 @@
### Patch Changes

- Updated dependencies [d6c2701]
- @a2a-wrapper/core@2.0.0

## Unreleased

### Minor Changes

- Native A2A v1.0 protocol support, fully backward compatible with v0.3.x clients — negotiated automatically per request via the `A2A-Version` header, no config changes needed. `createA2AServer()` is now a thin delegate to `@a2a-wrapper/core`'s server factory (upgraded to `@a2a-js/sdk@^1.0.0`) instead of duplicating Express/SDK wiring.
- @a2a-wrapper/core (unreleased)

## 0.1.1

Expand Down
10 changes: 2 additions & 8 deletions a2a-claude/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# a2a-claude

## 0.3.0
## Unreleased

### Minor Changes

Expand Down Expand Up @@ -35,13 +35,7 @@
### Patch Changes

- Updated dependencies [d6c2701]
- @a2a-wrapper/core@2.0.0

## Unreleased

### Minor Changes

- Native A2A v1.0 protocol support, fully backward compatible with v0.3.x clients — negotiated automatically per request via the `A2A-Version` header, no config changes needed. `createA2AServer()` is now a thin delegate to `@a2a-wrapper/core`'s server factory (upgraded to `@a2a-js/sdk@^1.0.0`) instead of duplicating Express/SDK wiring.
- @a2a-wrapper/core (unreleased)

## 0.2.0

Expand Down
10 changes: 2 additions & 8 deletions a2a-codex/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# a2a-codex

## 1.7.0
## Unreleased

### Minor Changes

Expand All @@ -25,13 +25,7 @@
### Patch Changes

- Updated dependencies [d6c2701]
- @a2a-wrapper/core@2.0.0

## Unreleased

### Minor Changes

- Native A2A v1.0 protocol support, fully backward compatible with v0.3.x clients — negotiated automatically per request via the `A2A-Version` header, no config changes needed. `createA2AServer()` is now a thin delegate to `@a2a-wrapper/core`'s server factory (upgraded to `@a2a-js/sdk@^1.0.0`) instead of duplicating Express/SDK wiring.
- @a2a-wrapper/core (unreleased)

## 1.6.1

Expand Down
14 changes: 2 additions & 12 deletions a2a-copilot/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## 1.8.0
## Unreleased

### Minor Changes

Expand All @@ -25,17 +25,7 @@
### Patch Changes

- Updated dependencies [d6c2701]
- @a2a-wrapper/core@2.0.0

## Unreleased

### Added

- Native A2A v1.0 protocol support, fully backward compatible with v0.3.x clients — negotiated automatically per request via the `A2A-Version` header, no config changes needed. Upgraded to `@a2a-js/sdk@^1.0.0`.

### Changed

- `createA2AServer()` is now a thin delegate to `@a2a-wrapper/core`'s server factory instead of duplicating Express/SDK wiring. The local `copilot/event-publisher.ts` (a duplicate of core's protocol-event construction) was removed — `publishStatus`/`publishFinalArtifact`/etc. are now imported directly from `@a2a-wrapper/core`. No change to the public `createA2AServer(config)` API.
- @a2a-wrapper/core (unreleased)

## 1.7.0

Expand Down
14 changes: 2 additions & 12 deletions a2a-opencode/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## 1.7.0
## Unreleased

### Minor Changes

Expand All @@ -25,17 +25,7 @@
### Patch Changes

- Updated dependencies [d6c2701]
- @a2a-wrapper/core@2.0.0

## Unreleased

### Added

- Native A2A v1.0 protocol support, fully backward compatible with v0.3.x clients — negotiated automatically per request via the `A2A-Version` header, no config changes needed. Upgraded to `@a2a-js/sdk@^1.0.0`.

### Changed

- `createA2AServer()` is now a thin delegate to `@a2a-wrapper/core`'s server factory instead of duplicating Express/SDK wiring. The local `opencode/event-publisher.ts` (a duplicate of core's protocol-event construction) was removed — `publishStatus`/`publishFinalArtifact`/etc. are now imported directly from `@a2a-wrapper/core`. No change to the public `createA2AServer(config)` API.
- @a2a-wrapper/core (unreleased)

## 1.6.1

Expand Down
13 changes: 1 addition & 12 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## 2.0.0
## Unreleased

### Major Changes

Expand All @@ -22,17 +22,6 @@
- `a2a-copilot` and `a2a-opencode` no longer ship their own local `event-publisher.ts`; both now use `@a2a-wrapper/core`'s (v1.0-aware) event publisher.
- `@a2a-js/sdk` dependency bumped to `^1.0.0` (previously an inconsistent mix of `^0.3.9`/`^0.3.13`).

## Unreleased

### Major Changes

- **Native A2A protocol v1.0 support, backward compatible with v0.3.x.** Built on `@a2a-js/sdk@^1.0.0` and its `compat/v0_3` translation layer.
- `buildAgentCard()` now produces the native v1.0 `AgentCard` shape (`supportedInterfaces[]` instead of `url`/`additionalInterfaces`/`protocolVersion`; `capabilities.extendedAgentCard` instead of `supportsAuthenticatedExtendedCard`; `stateTransitionHistory` removed). **Breaking** for any caller reading the old v0.3 fields directly off the return value — the server itself still serves a fully v0.3-shaped card to legacy clients.
- `createA2AServer()`'s JSON-RPC/REST transports and the `/.well-known/agent-card.json` route negotiate protocol version per-request via the `A2A-Version` header. `ServerOptions.protocolVersion` default changed from `"0.3"` to `"1.0"`.
- New `ServerOptions.onListening` hook and `ServerOptions.agentCardSigning` option (Signed Agent Cards, RFC 7515 JWS, opt-in via `AgentCardConfig.signing` or the programmatic option).
- New `extractUserText(message)` export centralizing inbound `Part` parsing for the v1.0 proto-oneof `Part` shape.
- `TaskState` is now re-exported as a value (real numeric enum in v1.0, was a string-literal type in v0.3).

## 1.7.0

### Minor Changes
Expand Down
Loading