Skip to content

V1.0 port plan - #90

Open
psifunctiondev wants to merge 6 commits into
win4r:masterfrom
psifunctiondev:v1.0-port-plan
Open

psifunctiondev wants to merge 6 commits into
win4r:masterfrom
psifunctiondev:v1.0-port-plan

Conversation

@psifunctiondev

Copy link
Copy Markdown

No description provided.

phronesis added 6 commits August 6, 2026 11:20
Boots a v1.0 SDK server, exercises the canonical v1.0 wire format end to end:
- agent card with protocolVersion=1.0 and supportedInterfaces[JSONRPC]
- method 'SendMessage' is accepted; v0.3 'message/send' is rejected
- full round-trip via ClientFactory

Currently FAILS at import time because the fork is pinned to
@a2a-js/sdk ^0.3.13 which does not export ClientFactory /
DefaultRequestHandler / jsonRpcHandler from the top-level entry.
Phase 3 bumps the SDK to ^1.0.1 and this test should go green.

Baseline (pre-insertion): 513 passing, 0 failing, 5 cancelled
Post-insertion:           513 passing, 1 failing, 5 cancelled
The single failure is this test file — no collateral damage.
TAP outputs of:
- tests/wire-v1.0.test.ts alone (the new contract test)
- the full 27-file suite

Both show the v0.3 SDK cannot export v1.0 symbols, which is exactly
the contract violation the phase 3 SDK bump must resolve.

Phase 3 will land matching green artifacts in test_artifacts/phase3/.
…-viable-v1.0 plan)

Pivots the port from single-shot swap to add-v1.0-alongside-v0.3
per Doxa's addendum to the migration brief. Phases 2a-2d adopted
verbatim with the Part / event / enum / AgentCard split she
proposed, each test-gated.

Phronesis-side (inbound) prep items added in §3: outbound v0.3
fallback verification + audit-log v1.0-payload shape.

Coordination state: Phronesis pinged Doxa on #infrastructure;
Doxa is lead on the server-side port. Acceptance test is
/opt/data/a2a_ping_doxa.py going green.
The v1.0 SDK's outbound is v1.0-strict by design. The compat
shim (LegacyJsonRpcTransport) exists but is one-way — it
accepts v1.0 Part shapes and emits v0.3 envelopes, which
Doxa's v0.3 executor then rejects because she's parsing
v0.3 Part shapes from the body.

Conclusion: the v1.0 round-trip unblock is on Doxa's side
(advertise v1.0 in her card). Phronesis-side needs no code
change. Acceptance test: /opt/data/a2a_ping_doxa.py returns
a real Doxa reply.
The Hermes container is read-only at the kernel level, so
Phronesis can't apply this patch from the sandbox. The proposal
lives in docs/ as a diff + verification steps for whoever
applies it on a write-permitted shell (host, local install,
or Doxa's sub-agent on Belel).

Function signature unchanged: audit(direction, peer, task_id,
summary). New constant 'protocol_version': '1.0' field added
to the record. Backwards compatible with existing JSONL
consumers.
@doxapsifunction
doxapsifunction deleted the v1.0-port-plan branch August 9, 2026 22:43

@AliceLJY AliceLJY left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This adds tests/wire-v1.0.test.ts, which is RED by design (test_artifacts/phase2/phase2_wire_v1_red.tap: 1 test, 1 fail). Because npm test globs tests/*.test.ts, merging would turn master CI red. test_artifacts/ also adds about 4.2k lines of TAP output that will go stale. If the goal is to discuss the plan, #62/#95 are a better home for the docs. If they're meant to land, please drop test_artifacts/ and keep the failing test out of the default suite. Note #96 covers the same migration; @win4r should pick one direction before either gets more work.

@AliceLJY AliceLJY mentioned this pull request Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants