Commit Graph

211 Commits

Author SHA1 Message Date
EugeneTes
1817272b73 test(telegram): A2A server sessions never get the a2a tool 2026-10-08 14:39:56 +00:00
EugeneTes
5e50d902af docs(a2a): A2A client guide, configuration and Telegram notes 2026-10-08 14:34:02 +00:00
EugeneTes
8eea09baba fix(a2a-client): delivery set before polling, flushes respect stop, restore re-arms first 2026-10-08 14:28:31 +00:00
EugeneTes
81f4ffe02b fix(docker): restore the A2A server and client projects in the restore layer 2026-10-08 14:21:34 +00:00
EugeneTes
4a20ff4635 feat(telegram): A2A client per chat behind A2AClient__Enabled, watch results as follow-ups, /a2a lists agents 2026-10-08 14:21:34 +00:00
EugeneTes
adee225fcb fix(a2a-client): stopped registry starts no watch loops 2026-10-08 14:16:05 +00:00
EugeneTes
ab714a24ce refactor(a2a-client): no runtime-internal native calls for attachments 2026-10-08 14:09:18 +00:00
EugeneTes
0d2583ab01 fix(a2a-client): no orphaned remote tasks, bounded tool calls, safer file reads 2026-10-08 14:07:21 +00:00
EugeneTes
173b7dfc18 feat(a2a-client): the a2a tool with agents, send, status and cancel, and per-session wiring 2026-10-08 13:49:06 +00:00
EugeneTes
d7f5e0b900 fix(a2a-client): no leaked claim on a failed store, retry a flush that skipped a failing delivery, accurate StopAsync doc 2026-10-08 13:49:06 +00:00
EugeneTes
e1e0f35bb9 fix(a2a-client): deliver outside the workspace lock 2026-10-08 13:31:27 +00:00
EugeneTes
24e2ad9877 fix(a2a-client): sturdier watches — transient agents.json errors, bounded remote calls, single delivery 2026-10-08 13:15:40 +00:00
EugeneTes
8ba99b1477 feat(a2a-client): watch long remote tasks by push, subscribe or poll and deliver the results 2026-10-08 12:58:53 +00:00
EugeneTes
4fc523f86c feat(a2a-client): connect to remote agents through their cards with the configured key 2026-10-08 12:48:39 +00:00
EugeneTes
24747858eb fix(a2a-client): fake MCP server on the ASP.NET framework, question-first results, safer file names 2026-10-08 12:46:32 +00:00
EugeneTes
ef906b34dd chore(a2a-client): drop test package references the ASP.NET framework provides 2026-10-08 12:39:48 +00:00
EugeneTes
1fe9bfe4e8 feat(a2a-client): persist watches in pending.json 2026-10-08 12:36:29 +00:00
EugeneTes
fcc0191319 feat(a2a-client): describe remote tasks and save their files to the inbox 2026-10-08 12:36:12 +00:00
EugeneTes
168e8fc80d feat(a2a-client): read remote agents from agents.json on every call 2026-10-08 12:35:47 +00:00
EugeneTes
76e465ed2a feat(a2a-client): scaffold the A2A client extension behind A2AClient__Enabled 2026-10-08 12:35:26 +00:00
EugeneTes
e70557725a docs(plan): A2A client implementation plan; spec revisions 2026-10-08 12:29:29 +00:00
EugeneTes
b8be0f82ab docs(spec): task files carry caller and push configs only 2026-10-07 14:38:10 +00:00
EugeneTes
3360c320e7 docs(a2a): security reach, ports and limits 2026-10-07 14:32:33 +00:00
EugeneTes
fdb0bde798 fix(a2a): review polish 2026-10-07 14:31:35 +00:00
EugeneTes
0d1ddcc4df fix(a2a): unambiguous session scopes and validated context ids 2026-10-07 14:29:50 +00:00
EugeneTes
d542fcfe42 docs(a2a): A2A server guide, architecture, Telegram and Docker notes
Add docs/a2a.md (concepts, file formats, endpoints, sessions, task
lifecycle, configuration, security notes, curl examples) describing
what src/Volcanic.AgenticCore.A2A.Server actually does. Add an A2A
project paragraph to architecture.md, an "A2A" section to
telegram-bot.md (/a2a, notify_owner, isolated sessions, port 8080),
A2A_ENABLED/A2A_PUBLIC_URL and the aspnet image to docker.md, and
project-map/test-command updates to CLAUDE.md.

Mark the A2A server design spec implemented and record the deviations
found while building it (A2AHostOptions, synchronous
IA2ACallerDirectory.Find, generic WorkspaceCallerDirectory, per-status
push payload, split file-part error handling, the outbound guarded
handler, the per-caller server/router architecture, the restart grace
period, the owner= log field, the aspnet image, and the actual push
retry schedule). Note the aspnet image in the docker-deployment spec
too, without rewriting its historical decisions.
2026-10-07 14:20:19 +00:00
EugeneTes
f87a8dd8c1 chore(docker): rely on the aspnet image's port setting
mcr.microsoft.com/dotnet/aspnet:10.0-noble already sets ASPNETCORE_HTTP_PORTS=8080;
also setting ASPNETCORE_URLS made Kestrel log an override warning on every start.
2026-10-07 14:11:56 +00:00
EugeneTes
b53c339bf3 chore(docker): aspnet runtime image, port 8080 and A2A settings 2026-10-07 14:08:11 +00:00
EugeneTes
372c600503 fix(telegram): clean exit on A2A bind failure, log listen URLs, /a2a polish 2026-10-07 14:02:49 +00:00
EugeneTes
a3aee939d4 feat(telegram): /a2a lists a chat's A2A callers and recent tasks 2026-10-07 13:53:47 +00:00
EugeneTes
c1a8744eb7 feat(telegram): serve A2A from the bot, callers per chat workspace, notify_owner into the chat 2026-10-07 13:50:54 +00:00
EugeneTes
93a4504607 feat(a2a): standalone A2A sample host 2026-10-07 13:45:53 +00:00
EugeneTes
baddd320c7 fix(a2a): fresh response artifact per run, atomic continuation, sturdier e2e tests
- Each run's first text delta replaces the response artifact (append:false) and a resumed task
  drops the previous run's response, so a failed/canceled continuation never keeps old text.
- Resumed is built from a fresh store read, history chronological (question, then answer),
  timestamps on the TaskUpdater clock.
- Pool.Track refuses a second unfinished run of the same task; the pre-check rejects
  continuations of a running task with UnsupportedOperation.
- Tests: continuation history, streaming continuation, response replacement, concurrent
  continuation; busy test waits for the model call; TimeoutException in waits; push test
  matches TASK_STATE_COMPLETED; harness cleans up on failed start.
2026-10-07 13:38:36 +00:00
EugeneTes
ebdf4a1aa4 test(a2a): push delivery, URL guard and push receiver 2026-10-07 13:25:33 +00:00
EugeneTes
7b044c5437 test(a2a): streaming, input-required, busy contexts, cancel, subscribe, files and hops 2026-10-07 13:25:33 +00:00
EugeneTes
7d4b6ae119 fix(a2a): continuations emit the resumed task, guarded clients bypass proxies
A continued task (input-required -> new message) produced only status updates, so the SDK
answered 'Agent handler did not produce any response events'. The handler now enqueues the
resumed task (caller message and question in history, working) as the first event.
The guarded SocketsHttpHandler sets UseProxy = false: a proxy would make the connection and
skip the ConnectCallback address check.
2026-10-07 13:25:33 +00:00
EugeneTes
098ab9f5ac test(a2a): end-to-end server flows through the SDK client 2026-10-07 13:22:09 +00:00
EugeneTes
0ae8fdd19f fix(a2a): dedicated guarded HTTP clients, context-checked continuations, request-scoped card URL 2026-10-07 13:19:04 +00:00
EugeneTes
9c51c97c93 feat(a2a): per-caller SDK servers behind a key filter, cards and push receiver 2026-10-07 13:10:19 +00:00
EugeneTes
f925eaaafd fix(a2a): track live runs from the start, atomic eviction, token-based cancel and safe final writes 2026-10-07 13:05:06 +00:00
EugeneTes
e932a44877 feat(a2a): map one A2A task to one agent session run 2026-10-07 12:51:32 +00:00
EugeneTes
79079ea6ba feat(a2a): pool one agent session per caller context 2026-10-07 12:50:04 +00:00
EugeneTes
2c9f18a7bd feat(a2a): request_input, notify_owner and an artifact chat channel for server sessions 2026-10-07 12:49:09 +00:00
EugeneTes
ab4af2cc21 fix(a2a): reject malformed file part URLs as prompt errors 2026-10-07 12:41:55 +00:00
EugeneTes
ee06e84cd5 feat(a2a): build session prompts from A2A messages, save file parts to the inbox 2026-10-07 12:35:53 +00:00
EugeneTes
2bfa76e0be feat(a2a): per-caller task files with lazy restart recovery 2026-10-07 12:34:01 +00:00
EugeneTes
a2e6a1ac9c feat(a2a): read callers.json from workspaces on every request 2026-10-07 12:18:36 +00:00
EugeneTes
39c9c2467f feat(a2a): scaffold the A2A server library and its tests 2026-10-07 12:18:18 +00:00
EugeneTes
99528d003f docs(plan): A2A server implementation plan 2026-10-07 11:26:18 +00:00
EugeneTes
3569f25eb0 docs(spec): A2A server and client designs 2026-10-07 10:11:57 +00:00