Skip to content

fix(a2a): let one JSON-RPC envelope define the wire at every edge - #535

Open
yordis wants to merge 2 commits into
mainfrom
yordis/task-oriented-response
Open

fix(a2a): let one JSON-RPC envelope define the wire at every edge#535
yordis wants to merge 2 commits into
mainfrom
yordis/task-oriented-response

Conversation

@yordis

@yordis yordis commented Aug 13, 2026

Copy link
Copy Markdown
Member
  • A2A streaming clients had no way to correlate SSE frames to the call that started them: chunks left the bridge as named SSE events carrying no JSON-RPC id, so a spec client saw progress it could not attribute.
  • Four separate types spelled the single JSON-RPC id, which let every edge decide for itself what the wire looked like and left the shared codec bypassed in the places most likely to drift.
  • Audit traffic could not be filtered per agent, because the emitter was handed an agent id and dropped it while spending the subject terminal on a method vocabulary that grows.
  • ACP delivered session/update twice over: the client-op proxy already carries it for every operation, so the prompt-scoped consumer was a parallel path that only existed while a prompt was open.

yordis added 2 commits August 13, 2026 02:34
`session/update` already reaches the client through the client-op proxy for
every operation, so the prompt-scoped notification consumer was a second
delivery path that existed only for the duration of a prompt.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Streaming clients could not correlate SSE frames to the call that started
them, because chunks left as named SSE events carrying no JSON-RPC id.

Four separate types spelled the single JSON-RPC id, so each edge decided for
itself what the wire looked like and the shared codec was bypassed.

Audit traffic could not be filtered per agent: the emitter was handed an
agent id and dropped it, spending the subject terminal on the method instead.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@cursor

cursor Bot commented Aug 13, 2026

Copy link
Copy Markdown

PR Summary

High Risk
Changes the on-wire shape for A2A streaming across bridge, HTTP, stdio, gateway, and JetStream replay, and alters ACP JetStream topology (five streams)—clients and audit subscribers on old subject or notification shapes will break until aligned.

Overview
A2A streaming now treats each message/stream and tasks/resubscribe chunk as a JSON-RPC 2.0 success response that repeats the caller’s request id, not a method-bearing notification or a named SSE event. The bridge, HTTP layer, and stdio bridge emit unnamed data: SSE lines with those bodies; stream errors on SSE are JSON-RPC error envelopes with the same id. JetStream task events are published and decoded as full responses (message/stream server path, TypedEventStream, harness fixtures). ADR#0056 documents this rule and adds acceptance criteria for stream chunks.

Shared JSON-RPC types: A2A edges converge on jsonrpc_nats’s RequestId / ResponseId (replacing local JsonRpcId / stdio RpcId wire types). Stdio outbound frames go through canonical Message encoding. Null JSON-RPC ids no longer become a "null" correlation token for ingress streaming pumps or audit rows.

Audit (ADR#0055): a2a-nats audit publish moves to {prefix}.v1.audit.{agent_id}.{ok|err|lifecycle} with the method in the payload; gateway tests expect agent-scoped terminals (e.g. .audit.planner.ok) instead of method-led subjects.

ACP: Mid-flight session/update is only on the client-op subtree (CLIENT_OPS); the duplicate ...agent.update subject, ACP_NOTIFICATIONS stream, prompt-side notification JetStream consumer, bridge notification channel, and spawn_notification_forwarder are removed. Prompt handling waits only on the session response consumer; progress is assumed to reach the client via the existing client-op proxy.

Reviewed by Cursor Bugbot for commit 2e01f2b. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@yordis, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 37 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 666c7f71-f685-4434-b7e0-df6b1eac09aa

📥 Commits

Reviewing files that changed from the base of the PR and between d68b90f and 2e01f2b.

📒 Files selected for processing (64)
  • docs/adr/0055-nats-subject-design-jsonrpc-bindings.md
  • docs/adr/0056-canonical-jsonrpc-bodies-over-nats.md
  • rsworkspace/crates/a2a/a2a-bridge/src/constants.rs
  • rsworkspace/crates/a2a/a2a-bridge/src/inbound.rs
  • rsworkspace/crates/a2a/a2a-bridge/src/nats_transport_harness.rs
  • rsworkspace/crates/a2a/a2a-bridge/src/nats_transport_harness/tests.rs
  • rsworkspace/crates/a2a/a2a-gateway/src/gw_ingress_stream.rs
  • rsworkspace/crates/a2a/a2a-gateway/src/gw_ingress_stream/tests.rs
  • rsworkspace/crates/a2a/a2a-gateway/src/runtime/audit_publish/tests.rs
  • rsworkspace/crates/a2a/a2a-gateway/src/runtime/env.rs
  • rsworkspace/crates/a2a/a2a-gateway/src/runtime/tier1_denial/tests.rs
  • rsworkspace/crates/a2a/a2a-nats-http/src/handlers/mod.rs
  • rsworkspace/crates/a2a/a2a-nats-http/src/rest.rs
  • rsworkspace/crates/a2a/a2a-nats-http/src/sse.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/Cargo.toml
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/dispatch.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/dispatch/tests.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/io_loop.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/io_loop/parse_tests.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/io_loop/tests.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/wire.rs
  • rsworkspace/crates/a2a/a2a-nats-stdio/src/wire/tests.rs
  • rsworkspace/crates/a2a/a2a-nats/src/audit/emitter.rs
  • rsworkspace/crates/a2a/a2a-nats/src/audit/emitter/tests.rs
  • rsworkspace/crates/a2a/a2a-nats/src/client/event_stream.rs
  • rsworkspace/crates/a2a/a2a-nats/src/client/event_stream/tests.rs
  • rsworkspace/crates/a2a/a2a-nats/src/client/streaming.rs
  • rsworkspace/crates/a2a/a2a-nats/src/client/unary.rs
  • rsworkspace/crates/a2a/a2a-nats/src/client/wire.rs
  • rsworkspace/crates/a2a/a2a-nats/src/client/wire/tests.rs
  • rsworkspace/crates/a2a/a2a-nats/src/gateway_ingress.rs
  • rsworkspace/crates/a2a/a2a-nats/src/jsonrpc.rs
  • rsworkspace/crates/a2a/a2a-nats/src/jsonrpc/tests.rs
  • rsworkspace/crates/a2a/a2a-nats/src/lib.rs
  • rsworkspace/crates/a2a/a2a-nats/src/server/message_stream.rs
  • rsworkspace/crates/a2a/a2a-nats/src/server/message_stream/tests.rs
  • rsworkspace/crates/a2a/a2a-nats/src/server/wire.rs
  • rsworkspace/crates/a2a/a2a-nats/src/server/wire/tests.rs
  • rsworkspace/crates/acp/acp-nats-server/src/component.rs
  • rsworkspace/crates/acp/acp-nats-server/src/constants.rs
  • rsworkspace/crates/acp/acp-nats-stdio/src/main.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/bridge.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/cancel/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/initialize/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/prompt.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/prompt/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/test_support.rs
  • rsworkspace/crates/acp/acp-nats/src/agent/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/client/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/jetstream/consumers.rs
  • rsworkspace/crates/acp/acp-nats/src/jetstream/consumers/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/jetstream/provision/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/jetstream/streams.rs
  • rsworkspace/crates/acp/acp-nats/src/jetstream/streams/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/lib.rs
  • rsworkspace/crates/acp/acp-nats/src/nats/subjects/conformance_tests.rs
  • rsworkspace/crates/acp/acp-nats/src/nats/subjects/responses/mod.rs
  • rsworkspace/crates/acp/acp-nats/src/nats/subjects/responses/update.rs
  • rsworkspace/crates/acp/acp-nats/src/nats/subjects/responses/update/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/nats/subjects/stream.rs
  • rsworkspace/crates/acp/acp-nats/src/nats/subjects/tests.rs
  • rsworkspace/crates/acp/acp-nats/src/tests.rs
  • rsworkspace/crates/channel/channel-bridge-telegram/src/main.rs
  • rsworkspace/crates/platform/trogon-nats/tests/subject_literal_policy.rs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 2e01f2b. Configure here.

Ok(chunk) => sse_task_line(&chunk),
Err(ref err) => sse_error_line(err),
Ok(chunk) => sse_data_line(chunk.as_ref()),
Err(ref err) => sse_error_line(&caller_id, err),

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SSE frames omit caller id

High Severity

sse_from_bootstrap_and_payloads takes the caller's JSON-RPC id but only stamps it on error frames. Bootstrap and task chunks are forwarded verbatim, so SSE success frames can keep a null or transport id. Spec clients then cannot correlate stream progress to the call that opened it, which is the correlation this change is meant to provide on this edge.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2e01f2b. Configure here.

@github-actions

Copy link
Copy Markdown

badge

Code Coverage Summary

Details
Filename                                                                                            Stmts    Miss  Cover    Missing
------------------------------------------------------------------------------------------------  -------  ------  -------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------
crates/acp/acp-nats-server/src/component.rs                                                            60       0  100.00%
crates/acp/acp-nats-server/src/main.rs                                                                 31       1  96.77%   81
crates/acp/acp-nats-server/src/compat.rs                                                              174       0  100.00%
crates/acp/acp-nats-server/src/config.rs                                                               39       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/http.rs                                                        19       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/mod.rs                                                         16       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/nats.rs                                                        37       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/jetstream.rs                                                   45       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/composite.rs                                                   15       0  100.00%
crates/ard/ard-nats/src/catalog_event.rs                                                               71       0  100.00%
crates/ard/ard-nats/src/catalog_index.rs                                                               82       2  97.56%   37, 104
crates/ard/ard-nats/src/memory_catalog_store.rs                                                        32       0  100.00%
crates/ard/ard-nats/src/catalog_subject.rs                                                             14       3  78.57%   16-18
crates/ard/ard-nats/src/store.rs                                                                        3       0  100.00%
crates/platform/trogon-nats/src/telemetry/messaging.rs                                                 37       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/message_send.rs                                           15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/card.rs                                                   12       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/message_stream.rs                                         15       0  100.00%
crates/aauth/trogon-aauth-as/src/verify.rs                                                             96       0  100.00%
crates/aauth/trogon-aauth-as/src/server.rs                                                            139       0  100.00%
crates/aauth/trogon-aauth-as/src/trust.rs                                                              60       0  100.00%
crates/aauth/trogon-aauth-as/src/test_support.rs                                                      122       0  100.00%
crates/aauth/trogon-aauth-as/src/mint.rs                                                               53       0  100.00%
crates/aauth/trogon-aauth-as/src/pending.rs                                                            26       0  100.00%
crates/aauth/trogon-aauth-as/src/subagent.rs                                                           10       0  100.00%
crates/aauth/trogon-aauth-as/src/http.rs                                                               82       0  100.00%
crates/aauth/trogon-aauth-as/src/policy.rs                                                             38       0  100.00%
crates/scheduler/trogon-scheduler/src/commands/domain/schedule_occurrence_sequence.rs                  16       0  100.00%
crates/scheduler/trogon-scheduler/src/commands/domain/recurrence.rs                                    78       1  98.72%   99
crates/scheduler/trogon-scheduler/src/processor/execution/wakeup.rs                                    91       1  98.90%   123
crates/platform/trogon-service-config/src/lib.rs                                                       38       0  100.00%
crates/platform/trogon-std/src/time/system.rs                                                           9       0  100.00%
crates/platform/trogon-std/src/time/mock.rs                                                            32       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/reconciliation/recorded_events.rs           238      12  94.96%   196-201, 238, 246, 267, 287, 293, 299, 332, 342, 360, 444
crates/scheduler/trogon-scheduler/src/processor/execution/reconciliation/go_duration.rs                40       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/reconciliation/reconcile.rs                 303      13  95.71%   244-253, 318-320
crates/scheduler/trogon-scheduler/src/processor/execution/reconciliation/rrule_wakeup_payload.rs       35       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/reconciliation/schedule_subject.rs           34       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/reconciliation/request.rs                   221       2  99.10%   255, 260
crates/mcp/mcp-nats/src/nats/subjects/methods.rs                                                       61       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/checkpoints/codec/twin.rs                    96       0  100.00%
crates/acp/acp-nats/src/req_id.rs                                                                      21       0  100.00%
crates/acp/acp-nats/src/client_proxy.rs                                                                67       1  98.51%   57
crates/acp/acp-nats/src/wire.rs                                                                        86       1  98.84%   112
crates/acp/acp-nats/src/ext_method_name.rs                                                             18       0  100.00%
crates/acp/acp-nats/src/error.rs                                                                       31       0  100.00%
crates/acp/acp-nats/src/acp_prefix.rs                                                                  13       0  100.00%
crates/acp/acp-nats/src/agent_handler.rs                                                               28       0  100.00%
crates/acp/acp-nats/src/in_flight_slot_guard.rs                                                         9       0  100.00%
crates/acp/acp-nats/src/client_handler.rs                                                              22       0  100.00%
crates/acp/acp-nats/src/session_id.rs                                                                  21       0  100.00%
crates/acp/acp-nats/src/config.rs                                                                      84       0  100.00%
crates/decider/trogon-decider-nats/src/stream_store.rs                                                252      18  92.86%   66-68, 280, 308-309, 312, 328-332, 448-449, 507, 520-524
crates/decider/trogon-decider-nats/src/processor.rs                                                   109      17  84.40%   85-88, 217-220, 268-270, 277, 280-282, 308-310
crates/decider/trogon-decider-nats/src/projector.rs                                                    88       3  96.59%   57-59
crates/decider/trogon-decider-nats/src/provision.rs                                                    87      21  75.86%   159, 164-172, 192, 197-208
crates/decider/trogon-decider-nats/src/snapshot_store.rs                                              467      48  89.72%   34-72, 260-262, 300-303, 413-419, 501, 637, 642, 738-740, 746-748, 782-783, 793-794, 813, 841-842
crates/decider/trogon-decider-nats/src/store.rs                                                        73      45  38.36%   100-104, 151-217
crates/mcp/mcp-nats/src/nats/subjects/client/create_elicitation.rs                                     12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/list_roots.rs                                             12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/cancelled.rs                                              12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/progress.rs                                               12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/roots_list_changed.rs                                     12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/create_message.rs                                         12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/ping.rs                                                    9       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/initialized.rs                                            12       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/read_model/message.rs                                    77       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/read_model/schedule.rs                                   15       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/command_spec.rs                                         12       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/engine.rs                                              145       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/command_type.rs                                         31       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/domain_error_detail.rs                                   7       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/module_version.rs                                       34       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/module.rs                                               71       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/snapshot_id.rs                                          18       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/test_fixture.rs                                          7       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/test_doubles.rs                                         73       5  93.15%   64, 85-87, 90
crates/decider/trogon-decider-wasm-runtime/src/opaque_snapshot.rs                                      18       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/registry.rs                                             94       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/module_name.rs                                          34       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/execution.rs                                           756      31  95.90%   134, 556, 728, 775-779, 827-831, 870-874, 933, 938-942, 1014-1018, 1106, 1127
crates/platform/trogon-identity-types/src/aauth/error.rs                                               14       0  100.00%
crates/platform/trogon-identity-types/src/aauth/mission.rs                                             33       0  100.00%
crates/platform/trogon-identity-types/src/aauth/mod.rs                                                104       0  100.00%
crates/platform/trogon-identity-types/src/aauth/headers.rs                                             47       0  100.00%
crates/platform/trogon-identity-types/src/aauth/login.rs                                               78       0  100.00%
crates/platform/trogon-identity-types/src/aauth/person_server.rs                                       23       0  100.00%
crates/aauth/trogon-aauth-verify/src/delegation.rs                                                     53       0  100.00%
crates/aauth/trogon-aauth-verify/src/nats_pop.rs                                                      125       1  99.20%   313
crates/aauth/trogon-aauth-verify/src/jwks_http.rs                                                     144       0  100.00%
crates/aauth/trogon-aauth-verify/src/jwks.rs                                                           15       0  100.00%
crates/aauth/trogon-aauth-verify/src/mission.rs                                                        33       0  100.00%
crates/aauth/trogon-aauth-verify/src/challenge.rs                                                      77       0  100.00%
crates/aauth/trogon-aauth-verify/src/http_pop.rs                                                      301       0  100.00%
crates/aauth/trogon-aauth-verify/src/test_support.rs                                                   86       0  100.00%
crates/aauth/trogon-aauth-verify/src/replay.rs                                                         26       0  100.00%
crates/aauth/trogon-aauth-verify/src/time_source.rs                                                    10       0  100.00%
crates/aauth/trogon-aauth-verify/src/jkt.rs                                                            33       0  100.00%
crates/aauth/trogon-aauth-verify/src/upstream.rs                                                       20       0  100.00%
crates/aauth/trogon-aauth-verify/src/jwks_cache.rs                                                     39       0  100.00%
crates/aauth/trogon-aauth-verify/src/token.rs                                                         206       1  99.51%   183
crates/channel/channel-bridge-telegram/src/acp_port.rs                                                 50       0  100.00%
crates/channel/channel-bridge-telegram/src/main.rs                                                      1       0  100.00%
crates/channel/channel-bridge-telegram/src/config.rs                                                   65       0  100.00%
crates/channel/channel-bridge-telegram/src/parse.rs                                                    25       0  100.00%
crates/channel/channel-bridge-telegram/src/pipeline.rs                                                154       0  100.00%
crates/channel/channel-bridge-telegram/src/render.rs                                                   43       0  100.00%
crates/platform/trogon-std/src/env/read_env.rs                                                          3       0  100.00%
crates/platform/trogon-std/src/env/enumerate_env.rs                                                     6       0  100.00%
crates/platform/trogon-std/src/env/system.rs                                                           12       0  100.00%
crates/platform/trogon-std/src/env/in_memory.rs                                                        30       0  100.00%
crates/acp/acp-nats/src/nats/subjects/stream.rs                                                        53       0  100.00%
crates/a2a/a2a-nats/src/server/test_support.rs                                                         81      25  69.14%   134-159
crates/a2a/a2a-nats/src/server/bridge.rs                                                               65       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_cancel.rs                                                         12       0  100.00%
crates/a2a/a2a-nats/src/server/handler.rs                                                              39       0  100.00%
crates/a2a/a2a-nats/src/server/message_send.rs                                                         15       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_get.rs                                                            12       0  100.00%
crates/a2a/a2a-nats/src/server/message_stream.rs                                                       65       6  90.77%   179-181, 189-191
crates/a2a/a2a-nats/src/server/push_set.rs                                                             12       0  100.00%
crates/a2a/a2a-nats/src/server/dispatch.rs                                                             33       0  100.00%
crates/a2a/a2a-nats/src/server/wire.rs                                                                 34       4  88.24%   20-22, 29
crates/a2a/a2a-nats/src/server/tasks_list.rs                                                           12       0  100.00%
crates/a2a/a2a-nats/src/server/push_get.rs                                                             12       0  100.00%
crates/a2a/a2a-nats/src/server/push_delete.rs                                                          12       0  100.00%
crates/a2a/a2a-nats/src/server/push_list.rs                                                            12       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_resubscribe.rs                                                    12       0  100.00%
crates/a2a/a2a-nats/src/server/agent_card.rs                                                           16       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/subscriptions/one_client.rs                                       9       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/subscriptions/all_server.rs                                       6       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/subscriptions/all_client.rs                                       6       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/subscriptions/one_server.rs                                       9       0  100.00%
crates/platform/jsonrpc-nats/src/transport.rs                                                         102       4  96.08%   26, 30-31, 121
crates/platform/jsonrpc-nats/src/id.rs                                                                 62      12  80.65%   57-58, 81-82, 84-85, 98-99, 101-103, 112
crates/platform/jsonrpc-nats/src/message.rs                                                            11       3  72.73%   37-39
crates/platform/trogon-gateway/src/source/notion/notion_verification_token.rs                           9       0  100.00%
crates/platform/trogon-gateway/src/source/notion/server.rs                                            120       4  96.67%   116-117, 136-137
crates/platform/trogon-gateway/src/source/notion/signature.rs                                           9       0  100.00%
crates/platform/trogon-gateway/src/source/notion/verification_token.rs                                 46       0  100.00%
crates/platform/trogon-gateway/src/source/notion/notion_event_type.rs                                  20       0  100.00%
crates/decider/trogon-decider-runtime/src/stream/read_stream.rs                                         7       0  100.00%
crates/decider/trogon-decider-runtime/src/stream/stream_position.rs                                    26       0  100.00%
crates/decider/trogon-decider-runtime/src/stream/append_stream.rs                                       5       0  100.00%
crates/decider/trogon-decider-wit/src/lib.rs                                                           53       1  98.11%   35
crates/platform/trogon-gateway/src/source/discord/config.rs                                            45       0  100.00%
crates/platform/trogon-gateway/src/source/discord/gateway.rs                                          116       1  99.14%   135
crates/a2a/a2a-nats-http/src/headers.rs                                                               129       1  99.22%   154
crates/a2a/a2a-nats-http/src/rest.rs                                                                  316       8  97.47%   123-126, 282-285
crates/a2a/a2a-nats-http/src/router.rs                                                                 55      13  76.36%   60-63, 69-79
crates/a2a/a2a-nats-http/src/sse.rs                                                                    43      27  37.21%   14-49, 59-60, 63-66
crates/a2a/a2a-nats-http/src/main.rs                                                                    1       0  100.00%
crates/a2a/a2a-nats-http/src/runtime.rs                                                                 8       8  0.00%    54-124
crates/scheduler/trogon-scheduler-domain/src/subject.rs                                                26       0  100.00%
crates/scheduler/trogon-scheduler/src/projections/schedules/twin.rs                                    53       0  100.00%
crates/scheduler/trogon-scheduler/src/projections/schedules/mod.rs                                    176       3  98.30%   702-704
crates/acp/acp-nats/src/nats/subjects/subscriptions/one_session.rs                                     12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/all_agent_ext.rs                                    9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/prompt_wildcard.rs                                  9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/global_all.rs                                       9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/one_client.rs                                      15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/all_client.rs                                       9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/all_session.rs                                      9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/one_agent.rs                                       15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/subscriptions/all_agent.rs                                        9       0  100.00%
crates/a2a/a2a-nats-http/src/handlers/mod.rs                                                          179      12  93.30%   68, 83, 86-87, 117, 151, 161, 164-165, 178, 259-261
crates/a2a/a2a-nats/src/catalog/import_gate/spicedb/client.rs                                          29      15  48.28%   43-69, 97-99, 108-117
crates/a2a/a2a-nats/src/catalog/import_gate/spicedb/cache.rs                                           36       0  100.00%
crates/a2a/a2a-nats/src/catalog/import_gate/spicedb/config.rs                                          70       0  100.00%
crates/a2a/a2a-nats/src/catalog/import_gate/spicedb/mod.rs                                            108       0  100.00%
crates/a2a/a2a-nats/src/catalog/store.rs                                                              117       0  100.00%
crates/a2a/a2a-nats/src/catalog/watch.rs                                                               18       0  100.00%
crates/a2a/a2a-nats/src/catalog/nats_kv.rs                                                              8       0  100.00%
crates/a2a/a2a-nats/src/catalog/agent_view.rs                                                          47       0  100.00%
crates/a2a/a2a-nats/src/catalog/registrar.rs                                                           56       0  100.00%
crates/a2a/a2a-nats/src/catalog/spicedb_permission.rs                                                 178      17  90.45%   148-153, 172, 337-341, 370-371, 382-384, 391-393
crates/aauth/trogon-aauth-person/src/http/mod.rs                                                      213       0  100.00%
crates/aauth/trogon-aauth-sdk/src/capabilities.rs                                                       7       0  100.00%
crates/aauth/trogon-aauth-sdk/src/signer.rs                                                            91       0  100.00%
crates/aauth/trogon-aauth-sdk/src/subagent.rs                                                          34       0  100.00%
crates/aauth/trogon-aauth-sdk/src/verify_response.rs                                                   70       0  100.00%
crates/aauth/trogon-aauth-sdk/src/lib.rs                                                                3       0  100.00%
crates/aauth/trogon-aauth-sdk/src/delegation.rs                                                        15       0  100.00%
crates/a2a/a2a-gateway/src/policy/wasmtime_substrate.rs                                                31       0  100.00%
crates/a2a/a2a-gateway/src/policy/per_skill.rs                                                         87       0  100.00%
crates/a2a/a2a-gateway/src/policy/error.rs                                                             16       0  100.00%
crates/a2a/a2a-gateway/src/policy/spicedb_tier1.rs                                                    157      13  91.72%   226-228, 381, 451, 453-461
crates/ard/ard-catalog/src/catalog_manifest_schema.rs                                                  65       4  93.85%   105-106, 108-109
crates/ard/ard-catalog/src/catalog_manifest_wire.rs                                                     3       0  100.00%
crates/ard/ard-catalog/src/media_type.rs                                                               20       0  100.00%
crates/ard/ard-catalog/src/catalog_manifest.rs                                                         44       0  100.00%
crates/ard/ard-catalog/src/ard_storage_key.rs                                                          10       0  100.00%
crates/ard/ard-catalog/src/registry_error_wire.rs                                                       8       0  100.00%
crates/ard/ard-catalog/src/url_or_data.rs                                                              20       0  100.00%
crates/ard/ard-catalog/src/display_name.rs                                                             13       0  100.00%
crates/ard/ard-catalog/src/catalog_entry.rs                                                           107       0  100.00%
crates/ard/ard-catalog/src/metadata.rs                                                                 14       0  100.00%
crates/ard/ard-catalog/src/catalog_host_wire.rs                                                         6       0  100.00%
crates/ard/ard-catalog/src/ard_identifier.rs                                                           54       0  100.00%
crates/ard/ard-catalog/src/trust_manifest.rs                                                           45       1  97.78%   35
crates/ard/ard-catalog/src/catalog_host.rs                                                             26       0  100.00%
crates/ard/ard-catalog/src/catalog_entry_wire.rs                                                        3       0  100.00%
crates/ard/ard-catalog/src/federation_mode.rs                                                           3       0  100.00%
crates/ard/ard-catalog/src/representative_queries.rs                                                   18       0  100.00%
crates/channel/trogon-channel/src/agent_port.rs                                                        26       0  100.00%
crates/channel/trogon-channel/src/command_trigger_input.rs                                             12       0  100.00%
crates/channel/trogon-channel/src/event.rs                                                             99       0  100.00%
crates/channel/trogon-channel/src/safe_token.rs                                                        30       0  100.00%
crates/channel/trogon-channel/src/conversation.rs                                                      33       0  100.00%
crates/channel/trogon-channel/src/store.rs                                                            154       0  100.00%
crates/channel/trogon-channel/src/command.rs                                                           33       0  100.00%
crates/channel/trogon-channel/src/command_trigger.rs                                                   13       0  100.00%
crates/channel/trogon-channel/src/endpoint.rs                                                          64       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/push/delete.rs                                            15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/push/list.rs                                              15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/push/get.rs                                               15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/push/set.rs                                               15       0  100.00%
crates/decider/trogon-decider-runtime/src/event/event_id.rs                                            32       0  100.00%
crates/decider/trogon-decider-runtime/src/event/event_identity.rs                                       3       0  100.00%
crates/decider/trogon-decider-runtime/src/event/stream_event.rs                                         8       0  100.00%
crates/mcp/mcp-nats/src/telemetry/transport.rs                                                          6       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier2_cel/evaluator.rs                                              138       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier2_cel/bundle.rs                                                 120      26  78.33%   70-72, 74-76, 86, 92, 111-113, 123-127, 158, 162-164, 166-168, 171, 178, 181
crates/a2a/a2a-gateway/src/policy/tier2_cel/compiler.rs                                                25       3  88.00%   61-63
crates/platform/trogon-gateway/src/source/sentry/server.rs                                             69       0  100.00%
crates/platform/trogon-gateway/src/source/sentry/signature.rs                                           6       0  100.00%
crates/platform/trogon-gateway/src/source/sentry/sentry_client_secret.rs                                9       0  100.00%
crates/platform/trogonai-proto/src/lib.rs                                                              20       0  100.00%
crates/platform/trogonai-proto/src/codec.rs                                                            16       0  100.00%
crates/platform/trogonai-proto/src/convert.rs                                                          53       0  100.00%
crates/platform/trogon-jwks-publisher/src/provider.rs                                                 117       0  100.00%
crates/platform/trogon-jwks-publisher/src/publisher.rs                                                113       0  100.00%
crates/aauth/trogon-aauth-person/src/server.rs                                                        353       0  100.00%
crates/aauth/trogon-aauth-person/src/store.rs                                                          21       0  100.00%
crates/aauth/trogon-aauth-person/src/interaction.rs                                                     2       0  100.00%
crates/aauth/trogon-aauth-person/src/pending.rs                                                        73       0  100.00%
crates/aauth/trogon-aauth-person/src/mint.rs                                                           56       0  100.00%
crates/aauth/trogon-aauth-person/src/mission.rs                                                        65       0  100.00%
crates/aauth/trogon-aauth-person/src/login.rs                                                           3       0  100.00%
crates/aauth/trogon-aauth-person/src/agent.rs                                                          84       0  100.00%
crates/aauth/trogon-aauth-person/src/error.rs                                                          48       0  100.00%
crates/aauth/trogon-aauth-person/src/subagent.rs                                                       10       0  100.00%
crates/platform/trogon-gateway/src/source/twitter/config.rs                                             9       0  100.00%
crates/platform/trogon-gateway/src/source/twitter/signature.rs                                         16       0  100.00%
crates/platform/trogon-gateway/src/source/twitter/server.rs                                           144       0  100.00%
crates/platform/trogon-identity-types/src/act_chain.rs                                                 13       0  100.00%
crates/a2a/a2a-nats-stdio/src/runtime.rs                                                               21       0  100.00%
crates/a2a/a2a-nats-stdio/src/wire.rs                                                                  34       1  97.06%   53
crates/a2a/a2a-nats-stdio/src/io_loop.rs                                                               51       3  94.12%   305-307
crates/a2a/a2a-nats-stdio/src/dispatch.rs                                                             186       8  95.70%   114, 117-119, 217, 220-222
crates/a2a/a2a-nats-stdio/src/main.rs                                                                   1       0  100.00%
crates/a2a/a2a-redaction/src/bin/sign-bundle.rs                                                         1       1  0.00%    163
crates/decider/trogon-decider-runtime/src/snapshot/mod.rs                                               3       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/snapshot_type.rs                                    42       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/read_snapshot.rs                                     3       0  100.00%
crates/acp/acp-nats/src/agent/close_session.rs                                                         16       0  100.00%
crates/acp/acp-nats/src/agent/rpc_call.rs                                                              23       0  100.00%
crates/acp/acp-nats/src/agent/ext_method.rs                                                            12       0  100.00%
crates/acp/acp-nats/src/agent/delete_session.rs                                                        16       0  100.00%
crates/acp/acp-nats/src/agent/new_session.rs                                                            5       0  100.00%
crates/acp/acp-nats/src/agent/providers_list.rs                                                         5       0  100.00%
crates/acp/acp-nats/src/agent/bridge.rs                                                               129       4  96.90%   105-108
crates/acp/acp-nats/src/agent/ext_notification.rs                                                      12       0  100.00%
crates/acp/acp-nats/src/agent/js_request.rs                                                            79       6  92.41%   91-96
crates/acp/acp-nats/src/agent/load_session.rs                                                          16       0  100.00%
crates/acp/acp-nats/src/agent/fork_session.rs                                                          16       0  100.00%
crates/acp/acp-nats/src/agent/set_session_config_option.rs                                             16       0  100.00%
crates/acp/acp-nats/src/agent/providers_set.rs                                                          5       0  100.00%
crates/acp/acp-nats/src/agent/resume_session.rs                                                        16       0  100.00%
crates/acp/acp-nats/src/agent/logout.rs                                                                 5       0  100.00%
crates/acp/acp-nats/src/agent/authenticate.rs                                                           5       0  100.00%
crates/acp/acp-nats/src/agent/cancel.rs                                                                12       0  100.00%
crates/acp/acp-nats/src/agent/list_sessions.rs                                                          5       0  100.00%
crates/acp/acp-nats/src/agent/initialize.rs                                                             6       0  100.00%
crates/acp/acp-nats/src/agent/providers_disable.rs                                                      5       0  100.00%
crates/acp/acp-nats/src/agent/set_session_mode.rs                                                      16       0  100.00%
crates/acp/acp-nats/src/agent/prompt.rs                                                               113       7  93.81%   154-160
crates/acp/acp-nats/src/agent/test_support.rs                                                         216       0  100.00%
crates/decider/trogon-decider-nats/src/stream_store/replay.rs                                         135      10  92.59%   114, 142, 160, 216-224
crates/platform/trogon-gateway/src/source/github/server.rs                                             50       0  100.00%
crates/platform/trogon-gateway/src/source/github/signature.rs                                           9       0  100.00%
crates/platform/trogon-gateway/src/source/github/config.rs                                              9       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/get_schedule.rs                                           3       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/schedule_id.rs                                           28       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/decode.rs                                                95       0  100.00%
crates/platform/trogon-nats/src/jetstream/claim_bucket.rs                                              37       0  100.00%
crates/platform/trogon-nats/src/jetstream/not_found.rs                                                 13       0  100.00%
crates/platform/trogon-nats/src/jetstream/claim_check.rs                                              136       3  97.79%   44-46
crates/platform/trogon-nats/src/jetstream/create_conflicts.rs                                          17       0  100.00%
crates/platform/trogon-nats/src/jetstream/mocks.rs                                                    971       1  99.90%   564
crates/platform/trogon-nats/src/jetstream/object_store.rs                                              20       0  100.00%
crates/platform/trogon-nats/src/jetstream/publish.rs                                                   30       0  100.00%
crates/platform/trogon-nats/src/jetstream/stream_max_age.rs                                             8       0  100.00%
crates/platform/trogon-nats/src/jetstream/traits.rs                                                    63      34  46.03%   251-309
crates/platform/trogon-nats/src/jetstream/claim_retention.rs                                           10       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/tasks/events.rs                                                  12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/initialize.rs                                              6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/session_list.rs                                            6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/ext.rs                                                     9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/logout.rs                                                  6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/providers_disable.rs                                       6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/authenticate.rs                                            6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/ext_notify.rs                                              9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/session_new.rs                                             6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/providers_set.rs                                           6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/providers_list.rs                                          6       0  100.00%
crates/platform/trogon-gateway/src/source/datadog/signature.rs                                          7       0  100.00%
crates/platform/trogon-gateway/src/source/datadog/datadog_event_type.rs                                20       0  100.00%
crates/platform/trogon-gateway/src/source/datadog/datadog_webhook_token.rs                              9       0  100.00%
crates/platform/trogon-gateway/src/source/datadog/server.rs                                           108       0  100.00%
crates/a2a/a2a-bridge/src/auth.rs                                                                      47      15  68.09%   78-99, 148
crates/a2a/a2a-bridge/src/nats_transport_harness.rs                                                    47       0  100.00%
crates/a2a/a2a-bridge/src/outbound.rs                                                                  70       7  90.00%   126, 197-209
crates/a2a/a2a-bridge/src/main.rs                                                                       1       1  0.00%    199
crates/a2a/a2a-bridge/src/identity.rs                                                                  63       0  100.00%
crates/a2a/a2a-bridge/src/inbound.rs                                                                  350      95  72.86%   109-113, 136-138, 185-225, 314-438, 486-493, 505, 603, 687-702, 734-738, 747
crates/decider/trogon-decider-runtime/src/replay_limit.rs                                              26       0  100.00%
crates/decider/trogon-decider-runtime/src/memory.rs                                                   104       5  95.19%   77-82
crates/decider/trogon-decider-runtime/src/execution.rs                                                626       3  99.52%   73, 187-188
crates/decider/trogon-decider/src/testing/codec.rs                                                     14       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier1_declarative/bundle.rs                                          57       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier1_declarative/loader.rs                                          85       9  89.41%   93-95, 97-99, 124-126
crates/a2a/a2a-gateway/src/policy/tier1_declarative/time_predicate.rs                                 118       2  98.31%   103, 125
crates/a2a/a2a-gateway/src/policy/tier1_declarative/evaluator.rs                                      158      13  91.77%   26-28, 146, 195-197, 267-271, 294
crates/platform/trogon-gateway/src/source/gitlab/gitlab_signing_token.rs                               30       0  100.00%
crates/platform/trogon-gateway/src/source/gitlab/server.rs                                             89       0  100.00%
crates/platform/trogon-gateway/src/source/gitlab/signature.rs                                          12       0  100.00%
crates/decider/trogon-decider/src/act.rs                                                               62       0  100.00%
crates/decider/trogon-decider/src/decision.rs                                                          27       0  100.00%
crates/decider/trogon-decider/src/events.rs                                                            49       0  100.00%
crates/decider/trogon-decider/src/testing.rs                                                          284       0  100.00%
crates/acp/acp-nats/src/telemetry/metrics.rs                                                           22       0  100.00%
crates/platform/trogon-gateway/src/source/microsoft_graph/server.rs                                    73       0  100.00%
crates/platform/trogon-gateway/src/source/microsoft_graph/client_state.rs                              14       0  100.00%
crates/mcp/mcp-nats/src/config.rs                                                                      59       0  100.00%
crates/mcp/mcp-nats/src/mcp_prefix.rs                                                                  15       0  100.00%
crates/mcp/mcp-nats/src/jsonrpc.rs                                                                      5       0  100.00%
crates/mcp/mcp-nats/src/wire.rs                                                                        40       1  97.50%   49
crates/mcp/mcp-nats/src/client.rs                                                                      12       0  100.00%
crates/mcp/mcp-nats/src/mcp_transport_headers.rs                                                       53       0  100.00%
crates/mcp/mcp-nats/src/mcp_peer_id.rs                                                                 15       0  100.00%
crates/mcp/mcp-nats/src/server.rs                                                                      12       0  100.00%
crates/mcp/mcp-nats/src/transport.rs                                                                  190       6  96.84%   246, 258-260, 313-314
crates/scheduler/trogon-scheduler-domain/src/commands/domain/message.rs                               139       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/domain/schedule_id.rs                            22       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/domain/schedule_event_delivery.rs                14       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/domain/schedule.rs                              383       5  98.69%   327, 335, 350-352
crates/scheduler/trogon-scheduler-domain/src/commands/domain/schedule_event_sampling_source.rs         11       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/domain/schedule_event_schedule.rs                35       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/domain/schedule_event_status.rs                   6       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier2/mod.rs                                                         46       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier2/rule_name.rs                                                   19       0  100.00%
crates/acp/acp-nats/src/nats/subjects/responses/ext_ready.rs                                           12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/responses/response.rs                                            15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/responses/cancelled.rs                                           15       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/execution_schedules/mod.rs                   82       0  100.00%
crates/platform/trogon-std/src/dirs/fixed.rs                                                           32       0  100.00%
crates/platform/trogon-std/src/dirs/system.rs                                                          39       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/subscribe_resource.rs                                     12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/update_task.rs                                            12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/get_prompt.rs                                             12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/logging_message.rs                                        12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/progress.rs                                               12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/tool_list_changed.rs                                      12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/unsubscribe_resource.rs                                   12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/list_resource_templates.rs                                12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/list_prompts.rs                                           12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/list_resources.rs                                         12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/get_task.rs                                               12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/ping.rs                                                    9       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/call_tool.rs                                              12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/prompt_list_changed.rs                                    12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/complete.rs                                               12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/discover.rs                                               12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/resource_list_changed.rs                                  12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/resource_updated.rs                                       12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/subscriptions_acknowledged.rs                             12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/subscriptions_listen.rs                                   12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/initialize.rs                                             12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/list_tools.rs                                             12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/task_status.rs                                            12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/cancel_task.rs                                            12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/read_resource.rs                                          12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/set_logging_level.rs                                      12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/server/cancelled.rs                                              12       0  100.00%
crates/a2a/a2a-nats/src/catalog/import_gate/allow_all.rs                                                2       0  100.00%
crates/a2a/a2a-nats/src/catalog/import_gate/principal.rs                                                9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/terminal_kill.rs                                      12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/fs_write_text_file.rs                                 12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/terminal_wait_for_exit.rs                             12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/fs_read_text_file.rs                                  12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/terminal_output.rs                                    12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/elicitation_create.rs                                 12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/terminal_release.rs                                   12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/terminal_create.rs                                    12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/session_request_permission.rs                         12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/elicitation_complete.rs                               12       0  100.00%
crates/acp/acp-nats/src/nats/subjects/client_ops/session_update.rs                                     12       0  100.00%
crates/decider/trogon-decider-sim/src/fixture.rs                                                       18       2  88.89%   33-35
crates/decider/trogon-decider-sim/src/host.rs                                                          69       0  100.00%
crates/decider/trogon-decider-sim/src/scenario.rs                                                     189      12  93.65%   352-354, 366-374, 504
crates/decider/trogon-decider-sim/src/import_check.rs                                                  52       4  92.31%   81-83, 103
crates/decider/trogon-decider-sim/src/session.rs                                                       23       4  82.61%   47-55
crates/decider/trogon-decider-sim/src/ir.rs                                                           113      11  90.27%   212-214, 235, 251-253, 265-267, 283
crates/decider/trogon-decider-sim/src/parity.rs                                                        66       6  90.91%   91-93, 95-97
crates/decider/trogon-decider-sim/src/native.rs                                                        81       2  97.53%   196, 214
crates/acp/acp-nats/src/nats/subjects/commands/prompt.rs                                               15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/cancel.rs                                               15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/fork.rs                                                 15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/set_config_option.rs                                    15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/delete.rs                                               15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/load.rs                                                 15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/close.rs                                                15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/resume.rs                                               15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/set_mode.rs                                             15       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/file.rs                                             38       6  84.21%   38-40, 59-61
crates/a2a/a2a-auth-callout/src/signing_key_source/minting_material.rs                                 18       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/key_version.rs                                      16       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/signing_key_handle.rs                               15       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/static_source.rs                                    25       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/env.rs                                              40       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/loader.rs                                           23       0  100.00%
crates/a2a/a2a-auth-callout/src/signing_key_source/vault.rs                                             3       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/gate.rs                                               3       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/json_path.rs                                         84       5  94.05%   37, 49, 85, 104, 115
crates/a2a/a2a-gateway/src/policy/tier3_redaction/rewrite.rs                                           49       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/decision.rs                                          22       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/manifest.rs                                          69       3  95.65%   112, 121, 132
crates/a2a/a2a-gateway/src/policy/tier3_redaction/mod.rs                                               33       2  93.94%   54, 58
crates/a2a/a2a-gateway/src/policy/tier3_redaction/context.rs                                           40       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/real_gate.rs                                        138      33  76.09%   18-26, 42-44, 67, 76-80, 119, 148-152, 155-159, 170-174, 192, 265
crates/a2a/a2a-redaction/src/signed_bundle/public_key.rs                                               36       2  94.44%   44-45
crates/a2a/a2a-redaction/src/signed_bundle/manifest.rs                                                 56       1  98.21%   82
crates/a2a/a2a-redaction/src/signed_bundle/digest.rs                                                   26       0  100.00%
crates/a2a/a2a-redaction/src/signed_bundle/signature.rs                                                30       3  90.00%   37-39
crates/a2a/a2a-redaction/src/signed_bundle/verify.rs                                                   64       2  96.88%   85-86
crates/aauth/trogon-aauth-sdk/src/exchange/challenge.rs                                                50       0  100.00%
crates/aauth/trogon-aauth-sdk/src/exchange/core.rs                                                    138       0  100.00%
crates/aauth/trogon-aauth-sdk/src/exchange/mod.rs                                                      17       0  100.00%
crates/aauth/trogon-aauth-sdk/src/exchange/client.rs                                                  283       0  100.00%
crates/ard/ard-registry/src/extract.rs                                                                 12       0  100.00%
crates/ard/ard-registry/src/list_agents_request.rs                                                     21       0  100.00%
crates/ard/ard-registry/src/search_request.rs                                                          32       1  96.88%   43
crates/ard/ard-registry/src/lexical_rank.rs                                                            55       2  96.36%   15, 64
crates/ard/ard-registry/src/page_token.rs                                                              14       0  100.00%
crates/ard/ard-registry/src/facet_field.rs                                                             13       0  100.00%
crates/ard/ard-registry/src/filters.rs                                                                 31       0  100.00%
crates/ard/ard-registry/src/registry_config.rs                                                         16       0  100.00%
crates/ard/ard-registry/src/source_url.rs                                                              26       1  96.15%   30
crates/ard/ard-registry/src/explore_request.rs                                                         30       0  100.00%
crates/ard/ard-registry/src/http_error.rs                                                              17       0  100.00%
crates/ard/ard-registry/src/router.rs                                                                  33       0  100.00%
crates/ard/ard-registry/src/registry.rs                                                               134       3  97.76%   78, 174, 183
crates/ard/ard-registry/src/search_filters.rs                                                          28       0  100.00%
crates/a2a/a2a-nats-server/src/noop_handler.rs                                                         22       0  100.00%
crates/a2a/a2a-nats-server/src/main.rs                                                                  1       0  100.00%
crates/a2a/a2a-nats-server/src/runtime.rs                                                              17       0  100.00%
crates/acp/acp-nats/src/jetstream/ext_policy.rs                                                         3       0  100.00%
crates/acp/acp-nats/src/jetstream/streams.rs                                                           15       0  100.00%
crates/acp/acp-nats/src/jetstream/provision.rs                                                         13       0  100.00%
crates/acp/acp-nats/src/jetstream/consumers.rs                                                         19       0  100.00%
crates/a2a/a2a-nats/src/push/terminal_push_task_state.rs                                               17       0  100.00%
crates/a2a/a2a-nats/src/push/caller_id.rs                                                              41       0  100.00%
crates/a2a/a2a-nats/src/push/nats_push_subject.rs                                                      12       0  100.00%
crates/a2a/a2a-nats/src/push/delivery_semantics.rs                                                     98       0  100.00%
crates/a2a/a2a-nats/src/push/push_notification_config_id.rs                                            17       0  100.00%
crates/a2a/a2a-nats/src/push/idempotency_key_header.rs                                                 16       0  100.00%
crates/a2a/a2a-nats/src/push/push_notification_config.rs                                                6       0  100.00%
crates/a2a/a2a-nats/src/push/status_transition_id.rs                                                   15       0  100.00%
crates/a2a/a2a-nats/src/push/authentication_header.rs                                                  31       0  100.00%
crates/a2a/a2a-nats/src/push/dlq_dedup.rs                                                              51       1  98.04%   79
crates/a2a/a2a-nats/src/push/push_notification_target.rs                                               32       0  100.00%
crates/a2a/a2a-nats/src/push/push_idempotency_key.rs                                                   43       0  100.00%
crates/a2a/a2a-nats/src/push/dlq.rs                                                                    56       0  100.00%
crates/a2a/a2a-nats/src/push/target.rs                                                                 19       0  100.00%
crates/a2a/a2a-nats/src/push/dispatch_error.rs                                                         24       0  100.00%
crates/a2a/a2a-nats/src/push/push_delivery_semantics_registry.rs                                       17       0  100.00%
crates/a2a/a2a-nats/src/push/push_payload.rs                                                           18       0  100.00%
crates/a2a/a2a-nats/src/agent_id.rs                                                                    21       0  100.00%
crates/a2a/a2a-nats/src/a2a_prefix.rs                                                                  16       0  100.00%
crates/a2a/a2a-nats/src/jsonrpc.rs                                                                     13       0  100.00%
crates/a2a/a2a-nats/src/gateway_ingress.rs                                                            151      16  89.40%   165, 173-179, 212, 228-234
crates/a2a/a2a-nats/src/wire.rs                                                                        59       2  96.61%   85, 100
crates/a2a/a2a-nats/src/req_id.rs                                                                      26       0  100.00%
crates/a2a/a2a-nats/src/config.rs                                                                     114       0  100.00%
crates/a2a/a2a-nats/src/task_id.rs                                                                     22       0  100.00%
crates/a2a/a2a-nats/src/context_id.rs                                                                  22       0  100.00%
crates/platform/trogonai-proto/src/agents/agents/codec.rs                                              30       0  100.00%
crates/a2a/a2a-gateway/src/aauth.rs                                                                   288       0  100.00%
crates/a2a/a2a-gateway/src/audit_ingress.rs                                                           110       0  100.00%
crates/a2a/a2a-gateway/src/gw_ingress_stream.rs                                                       148       5  96.62%   312-314, 578, 592
crates/a2a/a2a-gateway/src/lib.rs                                                                       3       0  100.00%
crates/a2a/a2a-gateway/src/gw_pull_backpressure.rs                                                    232       3  98.71%   517, 721, 734
crates/a2a/a2a-gateway/src/main.rs                                                                      1       0  100.00%
crates/a2a/a2a-gateway/src/agent_card_surface.rs                                                        3       0  100.00%
crates/a2a/a2a-gateway/src/config.rs                                                                   57       0  100.00%
crates/a2a/a2a-gateway/src/push_dlq_mirror.rs                                                         138      16  88.41%   160-164, 216, 221-224, 234, 259, 380-387
crates/a2a/a2a-gateway/src/runtime.rs                                                                  11       0  100.00%
crates/a2a/a2a-gateway/src/jwt_caller_identity.rs                                                     151       4  97.35%   164-168, 181-185
crates/decider/trogon-decider-runtime/src/headers/header_map.rs                                        54       0  100.00%
crates/decider/trogon-decider-runtime/src/headers/header_name.rs                                       28       0  100.00%
crates/decider/trogon-decider-runtime/src/headers/header_value.rs                                      34       0  100.00%
crates/platform/trogon-telemetry/src/lib.rs                                                           135      23  82.96%   119, 124, 129, 139-140, 146-164, 200, 203, 206, 212
crates/platform/trogon-telemetry/src/metric.rs                                                         18       1  94.44%   30
crates/platform/trogon-telemetry/src/resource_attribute.rs                                             13       0  100.00%
crates/platform/trogon-telemetry/src/log.rs                                                            36       0  100.00%
crates/platform/trogon-telemetry/src/service_name.rs                                                   18       0  100.00%
crates/platform/trogon-telemetry/src/trace.rs                                                          15       1  93.33%   24
crates/a2a/a2a-auth-callout/src/wire/wire_codec.rs                                                     58       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/callout_auth_response_claims.rs                                   59       3  94.92%   82-84
crates/a2a/a2a-auth-callout/src/wire/nkey_public.rs                                                    83       3  96.39%   102, 118-119
crates/a2a/a2a-auth-callout/src/wire/server_auth_request_envelope.rs                                   68       1  98.53%   64
crates/a2a/a2a-auth-callout/src/wire/server_auth_request_claims.rs                                    100       4  96.00%   24-26, 127
crates/a2a/a2a-auth-callout/src/wire/bridge_adapter.rs                                                 73       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/nkey_seed.rs                                                      20       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/test_encode.rs                                                    59       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/xkey_public.rs                                                    23       0  100.00%
crates/a2a/a2a-bridge/src/auth/callout_mint.rs                                                         49       1  97.96%   94
crates/platform/trogon-nats/src/mocks.rs                                                              246       0  100.00%
crates/platform/trogon-nats/src/client.rs                                                              22      22  0.00%    50-86
crates/platform/trogon-nats/src/server_info.rs                                                         21       3  85.71%   19-21
crates/platform/trogon-nats/src/subject_conformance.rs                                                107       0  100.00%
crates/platform/trogon-nats/src/connect.rs                                                             26       6  76.92%   42-47
crates/platform/trogon-nats/src/test_support.rs                                                        28       0  100.00%
crates/platform/trogon-nats/src/nats_token.rs                                                          56       0  100.00%
crates/platform/trogon-nats/src/token.rs                                                                6       0  100.00%
crates/platform/trogon-nats/src/messaging.rs                                                          168       2  98.81%   146, 156
crates/platform/trogon-nats/src/auth.rs                                                                45       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/subscriptions/agent_all.rs                                       12       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/subscriptions/task_all_events.rs                                  9       0  100.00%
crates/platform/trogon-gateway/src/source/slack/signature.rs                                           17       0  100.00%
crates/platform/trogon-gateway/src/source/slack/server.rs                                             272       0  100.00%
crates/platform/trogon-gateway/src/source/slack/socket_mode.rs                                        139       0  100.00%
crates/platform/trogon-gateway/src/source/slack/config.rs                                              32       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/tasks/resubscribe.rs                                      15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/tasks/cancel.rs                                           15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/tasks/get.rs                                              15       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/agents/tasks/list.rs                                             15       0  100.00%
crates/a2a/a2a-pack/src/agent_card_read.rs                                                             23       0  100.00%
crates/a2a/a2a-pack/src/resource_tuples.rs                                                            152       0  100.00%
crates/a2a/a2a-pack/src/agent_card_schema.rs                                                           40       0  100.00%
crates/acp/acp-nats-stdio/src/config.rs                                                                15       0  100.00%
crates/acp/acp-nats-stdio/src/main.rs                                                                  51       8  84.31%   57, 93-100, 112
crates/platform/trogon-gateway/src/source/standard_webhooks.rs                                        138       0  100.00%
crates/a2a/a2a-identity-types/src/principal.rs                                                         16       0  100.00%
crates/a2a/a2a-identity-types/src/caller.rs                                                            24       0  100.00%
crates/a2a/a2a-identity-types/src/jwt.rs                                                               77       0  100.00%
crates/a2a/a2a-redaction/src/tier3_sentinel.rs                                                         12       0  100.00%
crates/a2a/a2a-redaction/src/skill_id.rs                                                               26       0  100.00%
crates/a2a/a2a-redaction/src/wasm_bundle_path.rs                                                       18       0  100.00%
crates/a2a/a2a-redaction/src/redactor.rs                                                               32       0  100.00%
crates/a2a/a2a-redaction/src/skill_manifest.rs                                                        310      14  95.48%   139, 169-171, 177, 184-188, 358-360, 452
crates/a2a/a2a-redaction/src/a2a_method.rs                                                             41       0  100.00%
crates/platform/trogonai-proto/src/scheduler/schedules/codec.rs                                        57       0  100.00%
crates/scheduler/trogon-scheduler/src/error.rs                                                         83      12  85.54%   131-133, 152-154, 159-161, 176-180
crates/scheduler/trogon-scheduler/src/nats.rs                                                          10       0  100.00%
crates/scheduler/trogon-scheduler/src/mocks.rs                                                        413      51  87.65%   80, 120-123, 272, 289-292, 334-336, 350-354, 363, 416-420, 475-476, 480, 498-502, 519-522, 565-585
crates/scheduler/trogon-scheduler/src/config.rs                                                        27       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/stream.rs                                                        50       0  100.00%
crates/mcp/mcp-nats-stdio/src/main.rs                                                                  36       0  100.00%
crates/mcp/mcp-nats-stdio/src/config.rs                                                                26       0  100.00%
crates/platform/trogonai-proto/src/session/sessions/validate.rs                                       689       0  100.00%
crates/platform/trogonai-proto/src/session/sessions/codec.rs                                          152       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/worker/testkit.rs                           312       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/worker/dispatcher.rs                        281       1  99.64%   202
crates/scheduler/trogon-scheduler/src/processor/execution/worker/consumer.rs                           77       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/worker/processor.rs                         307      10  96.74%   441-442, 448, 503-505, 537-540
crates/acp/acp-nats/src/boundary/abort_on_drop.rs                                                      19       0  100.00%
crates/acp/acp-nats/src/boundary/eof_signal_reader.rs                                                  20       0  100.00%
crates/acp/acp-nats/src/boundary/connect_agent_boundary.rs                                            128       0  100.00%
crates/acp/acp-nats/src/boundary/connection_client.rs                                                  29       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/resume_schedule.rs                               34       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/create_schedule.rs                               32       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/state.rs                                         82       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/proto_wire.rs                                   138       1  99.28%   231
crates/scheduler/trogon-scheduler-domain/src/commands/pause_schedule.rs                                31       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/remove_schedule.rs                               30       0  100.00%
crates/ard/ard-registry/src/bin/ard-registry-demo/main.rs                                              64      20  68.75%   13-35
crates/platform/trogon-gateway/src/source/linear/server.rs                                             83       0  100.00%
crates/platform/trogon-gateway/src/source/linear/config.rs                                              9       0  100.00%
crates/platform/trogon-gateway/src/source/linear/signature.rs                                           8       1  87.50%   16
crates/platform/trogon-gateway/src/streams.rs                                                           7       0  100.00%
crates/platform/trogon-gateway/src/main.rs                                                             26       0  100.00%
crates/platform/trogon-gateway/src/config.rs                                                         1198      32  97.33%   80, 724, 891, 1038, 1041, 1050, 1136-1143, 1221, 1224, 1233, 1292, 1295, 1379, 1382, 1391, 1456, 1459, 1536, 1539, 1548, 1624, 1627, 1641, 1700, 1703, 2013-2015
crates/platform/trogon-gateway/src/http.rs                                                             13       0  100.00%
crates/platform/trogon-gateway/src/source_plugin.rs                                                   288       3  98.96%   83, 140-141
crates/platform/trogon-gateway/src/source_integration_id.rs                                            28       2  92.86%   58, 60
crates/platform/trogon-gateway/src/source_status.rs                                                    12       0  100.00%
crates/scheduler/trogon-scheduler/src/telemetry/metrics.rs                                             27       0  100.00%
crates/scheduler/trogon-scheduler/src/telemetry/trace.rs                                               20       0  100.00%
crates/platform/trogon-nats/src/lease/lease_key.rs                                                     19       0  100.00%
crates/platform/trogon-nats/src/lease/acquire.rs                                                        5       5  0.00%    9-14
crates/platform/trogon-nats/src/lease/renew_interval.rs                                                25       0  100.00%
crates/platform/trogon-nats/src/lease/lease_timing.rs                                                  15       0  100.00%
crates/platform/trogon-nats/src/lease/lease_bucket.rs                                                  19       0  100.00%
crates/platform/trogon-nats/src/lease/mod.rs                                                          107      13  87.85%   113-126
crates/platform/trogon-nats/src/lease/nats_kv_lease_config.rs                                          26       0  100.00%
crates/platform/trogon-nats/src/lease/provision.rs                                                     83      10  87.95%   82-92
crates/platform/trogon-nats/src/lease/release.rs                                                        5       5  0.00%    8-12
crates/platform/trogon-nats/src/lease/renew.rs                                                         82      19  76.83%   23-29, 48-59
crates/platform/trogon-nats/src/lease/ttl.rs                                                           27       0  100.00%
crates/platform/trogon-std/src/http.rs                                                                  8       0  100.00%
crates/platform/trogon-std/src/uuid.rs                                                                  3       0  100.00%
crates/platform/trogon-std/src/duration.rs                                                             19       0  100.00%
crates/platform/trogon-std/src/secret_string.rs                                                        13       0  100.00%
crates/platform/trogon-std/src/signal.rs                                                               22      12  45.45%   6-11, 18-25, 34
crates/platform/trogon-std/src/args.rs                                                                 12       9  25.00%   11-28
crates/platform/trogon-std/src/json.rs                                                                 23       0  100.00%
crates/acp/acp-nats-agent/src/connection.rs                                                           501       1  99.80%   754
crates/a2a/a2a-auth-callout/src/permissions.rs                                                         85       0  100.00%
crates/a2a/a2a-auth-callout/src/denial_category.rs                                                     29       0  100.00%
crates/a2a/a2a-auth-callout/src/subscriber.rs                                                          96      96  0.00%    23-174
crates/a2a/a2a-auth-callout/src/test_support.rs                                                        20      20  0.00%    16-36
crates/a2a/a2a-auth-callout/src/error.rs                                                                3       0  100.00%
crates/a2a/a2a-auth-callout/src/denial_claims.rs                                                       68       0  100.00%
crates/a2a/a2a-auth-callout/src/account_resolver.rs                                                    31       0  100.00%
crates/a2a/a2a-auth-callout/src/dispatcher.rs                                                          34      13  61.76%   83-112
crates/a2a/a2a-auth-callout/src/caller_jwt_header.rs                                                   23       0  100.00%
crates/a2a/a2a-auth-callout/src/main.rs                                                                 1       1  0.00%    223
crates/a2a/a2a-auth-callout/src/denial_reason.rs                                                       15       0  100.00%
crates/a2a/a2a-auth-callout/src/jwt/nats_user_jwt.rs                                                  187       1  99.47%   129
crates/a2a/a2a-auth-callout/src/jwt/user_jwt_subject.rs                                                12       0  100.00%
crates/a2a/a2a-auth-callout/src/jwt/mod.rs                                                            235       0  100.00%
crates/a2a/a2a-auth-callout/src/jwt/nats_permission_claims.rs                                          10       0  100.00%
crates/mcp/mcp-nats-server/src/allowed_host.rs                                                         52       0  100.00%
crates/mcp/mcp-nats-server/src/runtime.rs                                                             565     275  51.33%   189-202, 249-271, 284-290, 304, 308-427, 436-439, 443-515, 520, 524-541, 580-582, 600-601, 612, 645-649, 691-699, 704-739, 765-776
crates/mcp/mcp-nats-server/src/config.rs                                                               58       0  100.00%
crates/mcp/mcp-nats-server/src/main.rs                                                                  1       1  0.00%    67
crates/platform/trogon-gateway/src/source/incidentio/incidentio_signing_secret.rs                      22       0  100.00%
crates/platform/trogon-gateway/src/source/incidentio/server.rs                                         72       0  100.00%
crates/platform/trogon-gateway/src/source/incidentio/incidentio_event_type.rs                          20       0  100.00%
crates/platform/trogon-gateway/src/source/incidentio/signature.rs                                       8       0  100.00%
crates/acp/acp-nats/src/client/request_permission.rs                                                   40       0  100.00%
crates/acp/acp-nats/src/client/rpc_reply.rs                                                           107      43  59.81%   45-47, 61-63, 80-120
crates/acp/acp-nats/src/client/ext.rs                                                                  62       0  100.00%
crates/acp/acp-nats/src/client/terminal_create.rs                                                      41       0  100.00%
crates/acp/acp-nats/src/client/test_support.rs                                                         17       0  100.00%
crates/acp/acp-nats/src/client/elicitation_complete.rs                                                  8       0  100.00%
crates/acp/acp-nats/src/client/fs_write_text_file.rs                                                   43       0  100.00%
crates/acp/acp-nats/src/client/session_update.rs                                                        8       0  100.00%
crates/acp/acp-nats/src/client/terminal_kill.rs                                                        41       0  100.00%
crates/acp/acp-nats/src/client/terminal_wait_for_exit.rs                                               55       0  100.00%
crates/acp/acp-nats/src/client/elicitation_create.rs                                                   41       0  100.00%
crates/acp/acp-nats/src/client/mod.rs                                                                 105       1  99.05%   58
crates/acp/acp-nats/src/client/terminal_release.rs                                                     35       0  100.00%
crates/acp/acp-nats/src/client/fs_read_text_file.rs                                                    27       0  100.00%
crates/acp/acp-nats/src/client/terminal_output.rs                                                      29       0  100.00%
crates/a2a/a2a-nats/src/client/wire.rs                                                                 14       1  92.86%   24
crates/a2a/a2a-nats/src/client/validated.rs                                                            13       0  100.00%
crates/a2a/a2a-nats/src/client/gateway_headers.rs                                                      19       0  100.00%
crates/a2a/a2a-nats/src/client/resubscribe.rs                                                          28       0  100.00%
crates/a2a/a2a-nats/src/client/streaming.rs                                                            99       0  100.00%
crates/a2a/a2a-nats/src/client/handle.rs                                                              279       0  100.00%
crates/a2a/a2a-nats/src/client/error.rs                                                                14       0  100.00%
crates/a2a/a2a-nats/src/client/event_stream.rs                                                        103       0  100.00%
crates/a2a/a2a-nats/src/client/unary.rs                                                                52       0  100.00%
crates/a2a/a2a-auth-callout/src/credentials/api_key.rs                                                 46       1  97.83%   33
crates/a2a/a2a-auth-callout/src/credentials/mtls.rs                                                   153      13  91.50%   71-72, 168-169, 209-213, 216-219
crates/a2a/a2a-auth-callout/src/credentials/oidc.rs                                                   215       0  100.00%
crates/decider/trogon-decider-guest-macros/src/lib.rs                                                 136      28  79.41%   14-19, 29-40, 116-119, 437-446, 450
crates/a2a/a2a-redaction/src/wasm/engine.rs                                                            62      11  82.26%   29-31, 63-64, 76-78, 82-84
crates/a2a/a2a-redaction/src/wasm/mod.rs                                                              110       9  91.82%   132-134, 147-149, 162-164
crates/a2a/a2a-gateway/src/runtime/tier1.rs                                                            30       0  100.00%
crates/a2a/a2a-gateway/src/runtime/streaming.rs                                                        38       0  100.00%
crates/a2a/a2a-gateway/src/runtime/env.rs                                                              61       1  98.36%   150
crates/a2a/a2a-gateway/src/runtime/policy_stack.rs                                                     83      31  62.65%   85, 92, 112-121, 128-129, 144-154, 163-179, 184
crates/a2a/a2a-gateway/src/runtime/reply.rs                                                             5       0  100.00%
crates/a2a/a2a-gateway/src/runtime/audit_publish.rs                                                    16       0  100.00%
crates/a2a/a2a-gateway/src/runtime/aauth_env.rs                                                       162       0  100.00%
crates/a2a/a2a-gateway/src/runtime/tier1_denial.rs                                                     34       1  97.06%   60
crates/decider/trogon-decider/src/event/codec/event_decode.rs                                          13       0  100.00%
crates/decider/trogon-decider/src/event/codec/event_payload_error.rs                                    5       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/registration.rs                                     82       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/signature.rs                                         7       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/server.rs                                           53       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/config.rs                                           42       0  100.00%
crates/a2a/a2a-nats/src/jetstream/consumers.rs                                                         57       0  100.00%
crates/a2a/a2a-nats/src/jetstream/provision.rs                                                         16       0  100.00%
crates/a2a/a2a-nats/src/jetstream/streams.rs                                                            9       0  100.00%
crates/a2a/a2a-nats/src/jetstream/stream_options.rs                                                    50       0  100.00%
crates/a2a/a2a-nats/src/audit/emitter.rs                                                               56       0  100.00%
crates/a2a/a2a-nats/src/audit/envelope.rs                                                              57       0  100.00%
crates/a2a/a2a-nats/src/audit/task_lifecycle.rs                                                        17       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/checkpoints/failure.rs                       27       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/checkpoints/record.rs                         6       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/checkpoints/store.rs                        142      16  88.73%   103, 121, 125, 132, 221-227, 276-280
crates/scheduler/trogon-scheduler/src/processor/execution/checkpoints/codec.rs                        318      17  94.65%   340-341, 361-362, 373-377, 405-406, 412-413, 442-443, 480, 485-487
crates/platform/trogon-std/src/telemetry/http.rs                                                       58       0  100.00%
crates/platform/jsonrpc-nats/src/codec/canonical.rs                                                   191      20  89.53%   126, 194-198, 222-224, 235, 242, 259-260, 267, 271-278
crates/platform/jsonrpc-nats/src/codec/reconstruct.rs                                                  90       4  95.56%   56-59
crates/decider/trogon-decider-runtime/src/snapshot/codec/snapshot_encode_error.rs                      16       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/codec/snapshot_decode_error.rs                      19       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/codec/encoded_snapshot.rs                           44       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/codec/snapshot_envelope_decode_error.rs              6       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/codec/snapshot_envelope_encode_error.rs              3       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/codec/snapshot_payload_decode.rs                     3       0  100.00%
crates/mcp/mcp-nats/src/nats/parsing.rs                                                                54       1  98.15%   13
crates/mcp/mcp-nats/src/nats/mod.rs                                                                    23       0  100.00%
crates/scheduler/trogon-scheduler/src/commands/record_schedule_occurrence.rs                          113       1  99.12%   182
crates/scheduler/trogon-scheduler/src/commands/schedule_next_occurrence.rs                             74       0  100.00%
crates/acp/acp-nats/src/nats/jsonrpc.rs                                                                51      11  78.43%   46, 54-55, 57-63, 81-83
crates/acp/acp-nats/src/nats/extensions.rs                                                              3       0  100.00%
crates/acp/acp-nats/src/nats/mod.rs                                                                    61      13  78.69%   22-33, 75
crates/acp/acp-nats/src/nats/parsing.rs                                                               145       0  100.00%
crates/platform/trogon-std/src/fs/mem.rs                                                               85       0  100.00%
crates/platform/trogon-std/src/fs/system.rs                                                            15       0  100.00%
TOTAL                                                                                               40684    1759  95.68%

Diff against main

Filename                                                 Stmts    Miss  Cover
-----------------------------------------------------  -------  ------  --------
crates/acp/acp-nats-server/src/component.rs                -10       0  +100.00%
crates/acp/acp-nats/src/nats/subjects/stream.rs             -2       0  +100.00%
crates/platform/jsonrpc-nats/src/id.rs                       0      -4  +6.45%
crates/a2a/a2a-nats-http/src/sse.rs                         -1       0  -1.43%
crates/a2a/a2a-nats-stdio/src/wire.rs                       +7      +1  -2.94%
crates/a2a/a2a-nats-stdio/src/io_loop.rs                    +2      +3  -5.88%
crates/a2a/a2a-nats-stdio/src/dispatch.rs                  -13       0  -0.28%
crates/acp/acp-nats/src/agent/bridge.rs                     -8       0  -0.18%
crates/acp/acp-nats/src/agent/prompt.rs                    -46       0  -1.79%
crates/acp/acp-nats/src/agent/test_support.rs               -2       0  +100.00%
crates/a2a/a2a-bridge/src/nats_transport_harness.rs         +5       0  +100.00%
crates/a2a/a2a-bridge/src/inbound.rs                        -1      +4  -1.22%
crates/acp/acp-nats/src/jetstream/streams.rs                -3       0  +100.00%
crates/acp/acp-nats/src/jetstream/consumers.rs             -11       0  +100.00%
crates/a2a/a2a-nats/src/jsonrpc.rs                         -14       0  +100.00%
crates/a2a/a2a-nats/src/gateway_ingress.rs                  -7      -5  +2.70%
crates/a2a/a2a-gateway/src/gw_ingress_stream.rs             +4      +1  -0.60%
crates/acp/acp-nats-stdio/src/main.rs                       -5       0  -1.40%
crates/a2a/a2a-nats/src/client/wire.rs                      +1      +1  -7.14%
crates/a2a/a2a-nats/src/client/event_stream.rs              +5       0  +100.00%
crates/a2a/a2a-nats/src/client/unary.rs                     -5      -1  +1.75%
crates/a2a/a2a-gateway/src/runtime/env.rs                   +1      +1  -1.64%
crates/a2a/a2a-nats/src/audit/emitter.rs                    -2       0  +100.00%
crates/platform/jsonrpc-nats/src/codec/reconstruct.rs        0      -1  +1.11%
TOTAL                                                     -105       0  -0.01%

Results for commit: 2e01f2b

Minimum allowed coverage is 95%

♻️ This comment has been updated with latest results

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