Skip to content

docs(tasks): scope the vtc-client / messaging-layer migration (blocked, not a drop-in) - #341

Merged
stormer78 merged 1 commit into
mainfrom
worktree-followup-consume-vtc-client
Sep 18, 2026
Merged

stormer78 merged 1 commit into
mainfrom
worktree-followup-consume-vtc-client

Conversation

@stormer78

Copy link
Copy Markdown
Contributor

Scoping doc (no implementation) for the last backlog follow-up, "consume vtc-client for VTC interactions and delete the hand-built path."

Why a scoping doc instead of a PR that does it

The backlog treated this as an unblocked consumer change once VTI #1399 shipped. Verifying against vtc-client 0.6.7 / vta-sdk 0.42.1 source, it is not a drop-in — two independent walls:

  1. vtc-client's DIDComm/TSP verbs open their own mediator socket per DID. VtcClient::connect_didcomm/connect_tspvta_sdk connect_didcomm → a fresh DIDCommSession ("each client gets its own mediator websocket; one socket per DID"). OpenVTC already holds one listener per persona (and fix(vetting): guide to creating a persona in-panel, and bring a new persona online at runtime #337 installs one at runtime), so a second socket for the same DID displaces it and breaks inbound — the stored-mail-never-collected / listener-socket-leak failure class.
  2. The REST verbs avoid the socket but regress transport support. submit_join_as over HTTPS needs a VTC REST base URL, but the join flow addresses a VTC by DID over DIDComm/TSP and never discovers one. Many VTCs are DIDComm/TSP-only; REST-only submit drops them.

Root cause is an architectural mismatch, not an upstream gap: vtc-client is built for a caller that owns its VTC sessions through vta-sdk; OpenVTC owns its transports through affinidi-messaging-delivery (one per identity + durable outbox, #194). So the true deliverable is migrating OpenVTC's whole messaging layer onto vta-sdk sessions — its own initiative.

What this PR adds

  • tasks/vtc-client-migration-scoping.md — mirrors d4-scoping.md: the two walls with source evidence, the coupled surface (join verbs incl. the fix(join): fail loudly on an oversized join submit instead of a silent drop #339 guard and feat(relationships): honor a community's relationshipIdentifierDefault (#241) #335 profile-show, the transport, session tracking, inbound dispatch, the durable outbox), the options (recommend: keep the hand-built path; do reply-proof verification as a separate conflict-free piece; pursue the full migration only as a scheduled initiative), a C.0–C.5 work breakdown, and the stale-REST comment correction to carry.
  • tasks/follow-ups.md — both affected items ("consume vtc-client", "verify reply proofs") now point at the doc and record the blocker; the companion-docs header lists both scoping docs.

Docs only — no code, no behaviour change.

…d, not a drop-in)

The backlog framed "consume vtc-client and delete the hand-built join path" as an
unblocked consumer change once VTI #1399 shipped. Verifying against vtc-client
0.6.7 / vta-sdk 0.42.1 source shows it is not a drop-in: vtc-client's session
verbs open their own mediator socket per DID (displacing OpenVTC's per-identity
listener and breaking inbound), and the REST verbs need a VTC REST base URL the
join flow never discovers (regressing DIDComm/TSP-only VTC support). The real
deliverable is migrating OpenVTC's whole messaging layer onto vta-sdk sessions.

Add `tasks/vtc-client-migration-scoping.md` (mirrors `d4-scoping.md`): the two
walls with source evidence, the coupled surface, the options (recommend keeping
the hand-built path; do reply-proof verification as a separate conflict-free
piece), a work breakdown if the full migration is scheduled, and the stale-REST
comment correction to carry. Update `follow-ups.md` to point both affected items
at the doc and record the blocker.

Signed-off-by: Glenn Gore <glenn.g@affinidi.com>
@stormer78
stormer78 requested a review from a team as a code owner September 18, 2026 06:53
@stormer78
stormer78 merged commit 7b1f108 into main Sep 18, 2026
15 checks passed
@stormer78
stormer78 deleted the worktree-followup-consume-vtc-client branch September 18, 2026 11:28
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.

1 participant