Skip to content

feat(semconv): adopt OpenTelemetry Weaver registry - #407

Merged
yordis merged 1 commit into
mainfrom
yordis/san-francisco-v1
Jun 26, 2026
Merged

feat(semconv): adopt OpenTelemetry Weaver registry#407
yordis merged 1 commit into
mainfrom
yordis/san-francisco-v1

Conversation

@yordis

@yordis yordis commented Jun 26, 2026

Copy link
Copy Markdown
Member
  • Telemetry metric, span, and attribute names are currently hand-coded strings spread across crates and governed only by human review, so they drift and cannot be enforced.
  • A Weaver semantic-convention registry makes naming a single, machine-checked contract that CI validates against the otel-name-* conventions.
  • Placing it at the repository root keeps it runtime-neutral so every service (Rust today, Go and TypeScript later) can generate bindings from one source of truth, mirroring the existing proto/ workflow.

@cursor

cursor Bot commented Jun 26, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Adds documentation, CI validation, and an unused crate; no runtime telemetry behavior changes in this PR.

Overview
Introduces otel/semconv/ as the cross-runtime contract for TrogonAi metrics, spans, and attributes, modeled like proto/: YAML registry files per service (scheduler, ACP, NATS, MCP, A2A, gateway, HTTP), a manifest, Rego policies (trogon_naming.rego) for metric/attribute naming, and Weaver Jinja templates for Rust output.

Tooling: .mise.toml pins Weaver 0.24.2 and adds semconv:check / semconv:generate (plus cargo fmt on generated code). A new ci-semconv workflow runs semconv:check on changes under otel/semconv/.

Rust: New workspace crate trogon-semconv with committed src/gen/ scheduler-only constants (README notes this seed is frozen until a later migration; the full registry inventory is documented but not regenerated into gen/ yet). Coverage excludes generated semconv code from llvm-cov like proto.

Scope: Registry is an as-is inventory of what crates emit today; call-site adoption and stricter naming (e.g. trogonai. root) are explicitly deferred.

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

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

More reviews will be available in 8 minutes and 34 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

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 credits.

🚦 How do rate 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 see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d86f902f-6fda-46c1-8f96-8ec5e2700d4c

📥 Commits

Reviewing files that changed from the base of the PR and between 698081d and 2c3c70a.

⛔ Files ignored due to path filters (4)
  • rsworkspace/Cargo.lock is excluded by !**/*.lock
  • rsworkspace/crates/trogon-semconv/src/gen/attribute.rs is excluded by !**/gen/**
  • rsworkspace/crates/trogon-semconv/src/gen/metric.rs is excluded by !**/gen/**
  • rsworkspace/crates/trogon-semconv/src/gen/mod.rs is excluded by !**/gen/**
📒 Files selected for processing (21)
  • .github/workflows/ci-semconv.yml
  • .mise.toml
  • otel/semconv/README.md
  • otel/semconv/policies/trogon_naming.rego
  • otel/semconv/registry/a2a.yaml
  • otel/semconv/registry/acp.yaml
  • otel/semconv/registry/common.yaml
  • otel/semconv/registry/gateway.yaml
  • otel/semconv/registry/manifest.yaml
  • otel/semconv/registry/mcp.yaml
  • otel/semconv/registry/nats.yaml
  • otel/semconv/registry/scheduler.yaml
  • otel/semconv/registry/std.yaml
  • otel/semconv/templates/registry/rust/attribute.rs.j2
  • otel/semconv/templates/registry/rust/metric.rs.j2
  • otel/semconv/templates/registry/rust/mod.rs.j2
  • otel/semconv/templates/registry/rust/weaver.yaml
  • rsworkspace/.cargo/config.toml
  • rsworkspace/Cargo.toml
  • rsworkspace/crates/trogon-semconv/Cargo.toml
  • rsworkspace/crates/trogon-semconv/src/lib.rs

Walkthrough

Adds semconv registry definitions, validation policy, Rust generation templates, a generated Rust crate, and automation for checking and generating semantic conventions in CI and local tasks.

Changes

Semconv registry generation pipeline

Layer / File(s) Summary
Registry contract and policy
semconv/registry/manifest.yaml, semconv/policies/trogon_naming.rego, semconv/README.md
semconv/ now has a registry manifest, naming rules, and README sections covering layout, scope, upstream dependencies, and signal setup.
Scheduler registry definitions
semconv/registry/scheduler.yaml
Defines the scheduler attribute group, reconciliation metrics, and the span.scheduler.process_schedule_event span.
Rust generation and crate exports
semconv/templates/registry/rust/*, rsworkspace/crates/trogon-semconv/*, rsworkspace/Cargo.toml
Adds Weaver templates for Rust attribute and metric constants, a module template, and the trogon-semconv crate wiring that re-exports generated modules.
Automation and checks
.mise.toml, .github/workflows/ci-semconv.yml, semconv/README.md
Adds mise tasks for semconv check, generation, and formatting, plus a CI workflow that runs weaver registry check on semconv changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

I nibbled clover by the semconv stream,
and watched new constants sparkle green.
Weaver hummed, the checks ran neat,
rustfmt tidied every beat.
Thump-thump — the build now smells of spring.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adopting an OpenTelemetry Weaver registry.
Description check ✅ Passed The description matches the PR's Weaver registry and machine-checked telemetry naming goals.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch yordis/san-francisco-v1

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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci-semconv.yml:
- Around line 9-12: The ci-semconv workflow only checks the registry and does
not verify that generated bindings match the committed output. Update the
workflow to also trigger when files under the generated crate output path
change, and add a regeneration step for the semconv generation flow so the job
fails if rsworkspace/crates/trogon-semconv/src/gen/ is stale or manually edited;
use the existing registry check and generated crate workflow as the places to
wire this in.

In `@semconv/policies/trogon_naming.rego`:
- Around line 16-84: The policy file currently covers only metric names and
attribute ids, so span-name validation is missing. Add deny rules in
trogon_naming.rego for groups where group.type == "span", using the Weaver span
naming field, and mirror the existing metric checks for lowercase, reserved
namespaces, delimiter/format constraints, and any required metadata. Reference
the existing metric_name_* rules and the attribute_id_* section to keep the span
policy consistent and easy to locate.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f37fc1c3-99ec-4025-a70f-078749f0a63c

📥 Commits

Reviewing files that changed from the base of the PR and between 4297b18 and 698081d.

⛔ Files ignored due to path filters (4)
  • rsworkspace/Cargo.lock is excluded by !**/*.lock
  • rsworkspace/crates/trogon-semconv/src/gen/attribute.rs is excluded by !**/gen/**
  • rsworkspace/crates/trogon-semconv/src/gen/metric.rs is excluded by !**/gen/**
  • rsworkspace/crates/trogon-semconv/src/gen/mod.rs is excluded by !**/gen/**
📒 Files selected for processing (13)
  • .github/workflows/ci-semconv.yml
  • .mise.toml
  • rsworkspace/Cargo.toml
  • rsworkspace/crates/trogon-semconv/Cargo.toml
  • rsworkspace/crates/trogon-semconv/src/lib.rs
  • semconv/README.md
  • semconv/policies/trogon_naming.rego
  • semconv/registry/manifest.yaml
  • semconv/registry/scheduler.yaml
  • semconv/templates/registry/rust/attribute.rs.j2
  • semconv/templates/registry/rust/metric.rs.j2
  • semconv/templates/registry/rust/mod.rs.j2
  • semconv/templates/registry/rust/weaver.yaml

Comment thread .github/workflows/ci-semconv.yml
Comment thread otel/semconv/policies/trogon_naming.rego Outdated
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown

badge

Code Coverage Summary

Details
Filename                                                                                  Stmts    Miss  Cover    Missing
--------------------------------------------------------------------------------------  -------  ------  -------  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
crates/a2a-nats/src/nats/subjects/stream.rs                                                  50       0  100.00%
crates/acp-nats/src/nats/subjects/commands/prompt.rs                                         15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/close.rs                                          15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/fork.rs                                           15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/load.rs                                           15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/cancel.rs                                         15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/resume.rs                                         15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/set_config_option.rs                              15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/set_mode.rs                                       15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/set_model.rs                                      15       0  100.00%
crates/a2a-redaction/src/signed_bundle/manifest.rs                                           56       1  98.21%   83
crates/a2a-redaction/src/signed_bundle/signature.rs                                          30       3  90.00%   37-39
crates/a2a-redaction/src/signed_bundle/digest.rs                                             26       0  100.00%
crates/a2a-redaction/src/signed_bundle/verify.rs                                             64       2  96.88%   90-91
crates/a2a-redaction/src/signed_bundle/public_key.rs                                         36       2  94.44%   44-45
crates/acp-nats/src/nats/subjects/global/authenticate.rs                                      6       0  100.00%
crates/acp-nats/src/nats/subjects/global/ext_notify.rs                                        9       0  100.00%
crates/acp-nats/src/nats/subjects/global/session_list.rs                                      6       0  100.00%
crates/acp-nats/src/nats/subjects/global/ext.rs                                               9       0  100.00%
crates/acp-nats/src/nats/subjects/global/initialize.rs                                        6       0  100.00%
crates/acp-nats/src/nats/subjects/global/session_new.rs                                       6       0  100.00%
crates/acp-nats/src/nats/subjects/global/logout.rs                                            6       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/card.rs                                             12       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/message_send.rs                                     15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/message_stream.rs                                   15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/push/set.rs                                         12       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/push/delete.rs                                      15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/push/list.rs                                        15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/push/get.rs                                         12       0  100.00%
crates/mcp-nats-server/src/config.rs                                                         58       0  100.00%
crates/mcp-nats-server/src/allowed_host.rs                                                   52       0  100.00%
crates/mcp-nats-server/src/main.rs                                                            1       1  0.00%    67
crates/mcp-nats-server/src/runtime.rs                                                       266      90  66.17%   146-164, 200-202, 220-221, 232, 265-269, 273-282, 304-317, 322-357, 383-394
crates/acp-nats-server/src/connection.rs                                                    114      35  69.30%   90-97, 102-117, 133, 135-136, 141, 150-151, 156, 160, 164, 167, 175, 179, 182, 185-189
crates/acp-nats-server/src/acp_connection_id.rs                                              14       0  100.00%
crates/acp-nats-server/src/config.rs                                                         39       0  100.00%
crates/acp-nats-server/src/main.rs                                                           68       1  98.53%   109
crates/acp-nats-server/src/transport.rs                                                    1020     107  89.51%   242, 290-292, 527, 545, 572, 626, 631, 651, 670, 713-726, 815, 838-840, 892, 909-912, 1008-1011, 1086, 1089, 1092, 1101, 1105, 1108, 1111-1114, 1132, 1165-1168, 1176-1181, 1193-1197, 1201-1210, 1222-1223, 1241-1242, 1252, 1268-1272, 1300-1306, 1326-1328, 1333-1337, 1340-1345, 1362, 1364-1365, 1447-1448, 1460-1461, 1481-1482
crates/a2a-nats/src/audit/task_lifecycle.rs                                                  17       0  100.00%
crates/a2a-nats/src/audit/emitter.rs                                                         58       0  100.00%
crates/a2a-nats/src/audit/envelope.rs                                                        57       0  100.00%
crates/mcp-nats-stdio/src/main.rs                                                            36       0  100.00%
crates/mcp-nats-stdio/src/config.rs                                                          26       0  100.00%
crates/a2a-nats/src/jetstream/stream_options.rs                                              50       0  100.00%
crates/a2a-nats/src/jetstream/provision.rs                                                   16       0  100.00%
crates/a2a-nats/src/jetstream/consumers.rs                                                   50       0  100.00%
crates/a2a-nats/src/jetstream/streams.rs                                                      9       0  100.00%
crates/trogon-gateway/src/source/discord/config.rs                                           45       0  100.00%
crates/trogon-gateway/src/source/discord/gateway.rs                                         116       1  99.14%   137
crates/trogon-gateway/src/source/microsoft_graph/server.rs                                   73       0  100.00%
crates/trogon-gateway/src/source/microsoft_graph/client_state.rs                             14       0  100.00%
crates/trogon-identity-types/src/act_chain.rs                                                13       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_agent.rs                                  9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_agent_ext.rs                              9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_session.rs                                9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/one_session.rs                               12       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_client.rs                                 9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/one_client.rs                                15       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/prompt_wildcard.rs                            9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/global_all.rs                                 9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/one_agent.rs                                 15       0  100.00%
crates/trogon-scheduler/src/processor/execution/execution_schedules/mod.rs                   82       0  100.00%
crates/trogon-gateway/src/source/slack/config.rs                                             32       0  100.00%
crates/trogon-gateway/src/source/slack/signature.rs                                          17       0  100.00%
crates/trogon-gateway/src/source/slack/socket_mode.rs                                       139       0  100.00%
crates/trogon-gateway/src/source/slack/server.rs                                            272       0  100.00%
crates/mcp-nats/src/telemetry/transport.rs                                                    6       0  100.00%
crates/trogonai-proto/src/scheduler/schedules/codec.rs                                       57       0  100.00%
crates/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/trogon-scheduler/src/processor/execution/checkpoints/store.rs                        145      16  88.97%   103, 121, 125, 132, 224-230, 279-283
crates/trogon-scheduler/src/processor/execution/checkpoints/record.rs                         6       0  100.00%
crates/trogon-scheduler/src/processor/execution/checkpoints/failure.rs                       27       0  100.00%
crates/acp-nats/src/agent/initialize.rs                                                       6       0  100.00%
crates/acp-nats/src/agent/set_session_model.rs                                               16       0  100.00%
crates/acp-nats/src/agent/cancel.rs                                                          12       0  100.00%
crates/acp-nats/src/agent/new_session.rs                                                      5       0  100.00%
crates/acp-nats/src/agent/rpc_call.rs                                                        23       0  100.00%
crates/acp-nats/src/agent/fork_session.rs                                                    16       0  100.00%
crates/acp-nats/src/agent/load_session.rs                                                    16       0  100.00%
crates/acp-nats/src/agent/resume_session.rs                                                  16       0  100.00%
crates/acp-nats/src/agent/set_session_config_option.rs                                       16       0  100.00%
crates/acp-nats/src/agent/set_session_mode.rs                                                16       0  100.00%
crates/acp-nats/src/agent/js_request.rs                                                      73       6  91.78%   84-89
crates/acp-nats/src/agent/test_support.rs                                                   194       0  100.00%
crates/acp-nats/src/agent/logout.rs                                                           5       0  100.00%
crates/acp-nats/src/agent/bridge.rs                                                         124       4  96.77%   108-111
crates/acp-nats/src/agent/authenticate.rs                                                     5       0  100.00%
crates/acp-nats/src/agent/prompt.rs                                                         156       7  95.51%   200-206
crates/acp-nats/src/agent/close_session.rs                                                   16       0  100.00%
crates/acp-nats/src/agent/list_sessions.rs                                                    5       0  100.00%
crates/acp-nats/src/agent/ext_method.rs                                                      12       0  100.00%
crates/acp-nats/src/agent/ext_notification.rs                                                12       0  100.00%
crates/trogon-gateway/src/source/incidentio/signature.rs                                      8       0  100.00%
crates/trogon-gateway/src/source/incidentio/incidentio_signing_secret.rs                     22       0  100.00%
crates/trogon-gateway/src/source/incidentio/incidentio_event_type.rs                         20       0  100.00%
crates/trogon-gateway/src/source/incidentio/server.rs                                        72       0  100.00%
crates/jsonrpc-nats/src/message.rs                                                           11       3  72.73%   37-39
crates/jsonrpc-nats/src/transport.rs                                                         92       1  98.91%   106
crates/jsonrpc-nats/src/id.rs                                                                62      20  67.74%   44-61, 81-82, 84-85, 91-92, 98-99, 112
crates/a2a-nats/src/nats/subjects/subscriptions/agent_all.rs                                 12       0  100.00%
crates/a2a-nats/src/nats/subjects/subscriptions/task_one_events.rs                           12       0  100.00%
crates/a2a-nats/src/nats/subjects/subscriptions/task_all_events.rs                            9       0  100.00%
crates/a2a-nats/src/client/gateway_headers.rs                                                19       0  100.00%
crates/a2a-nats/src/client/error.rs                                                          14       0  100.00%
crates/a2a-nats/src/client/event_stream.rs                                                   76       0  100.00%
crates/a2a-nats/src/client/streaming.rs                                                      73       0  100.00%
crates/a2a-nats/src/client/wire.rs                                                           13       0  100.00%
crates/a2a-nats/src/client/handle.rs                                                        218       0  100.00%
crates/a2a-nats/src/client/unary.rs                                                          39       1  97.44%   57
crates/a2a-nats/src/client/resubscribe.rs                                                    28       0  100.00%
crates/mcp-nats/src/nats/subjects/server/resource_updated.rs                                 12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/initialize.rs                                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/resource_list_changed.rs                            12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/read_resource.rs                                    12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/ping.rs                                              9       0  100.00%
crates/mcp-nats/src/nats/subjects/server/cancelled.rs                                        12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/cancel_task.rs                                      12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/get_prompt.rs                                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/get_task_result.rs                                  12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_prompts.rs                                     12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/logging_message.rs                                  12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/progress.rs                                         12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_tools.rs                                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/subscribe_resource.rs                               12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/call_tool.rs                                        12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/complete.rs                                         12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/elicitation_completed.rs                            12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_resource_templates.rs                          12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_resources.rs                                   12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_tasks.rs                                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/get_task.rs                                         12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/prompt_list_changed.rs                              12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/tool_list_changed.rs                                12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/set_logging_level.rs                                12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/unsubscribe_resource.rs                             12       0  100.00%
crates/a2a-nats/src/req_id.rs                                                                21       0  100.00%
crates/a2a-nats/src/context_id.rs                                                            22       0  100.00%
crates/a2a-nats/src/agent_id.rs                                                              21       0  100.00%
crates/a2a-nats/src/a2a_prefix.rs                                                            16       0  100.00%
crates/a2a-nats/src/jsonrpc.rs                                                               27       1  96.30%   60
crates/a2a-nats/src/task_id.rs                                                               22       0  100.00%
crates/a2a-nats/src/wire.rs                                                                  59       2  96.61%   85, 98
crates/a2a-nats/src/config.rs                                                               114       0  100.00%
crates/a2a-nats/src/gateway_ingress.rs                                                      146      47  67.81%   165-168, 172, 186, 194-244
crates/acp-nats/src/client/session_update.rs                                                  2       0  100.00%
crates/acp-nats/src/client/terminal_wait_for_exit.rs                                         55       0  100.00%
crates/acp-nats/src/client/test_support.rs                                                   17       0  100.00%
crates/acp-nats/src/client/ext_session_prompt_response.rs                                    22       0  100.00%
crates/acp-nats/src/client/fs_write_text_file.rs                                             43       0  100.00%
crates/acp-nats/src/client/terminal_kill.rs                                                  41       0  100.00%
crates/acp-nats/src/client/terminal_output.rs                                                29       0  100.00%
crates/acp-nats/src/client/terminal_release.rs                                               35       0  100.00%
crates/acp-nats/src/client/request_permission.rs                                             40       0  100.00%
crates/acp-nats/src/client/mod.rs                                                           101       1  99.01%   54
crates/acp-nats/src/client/rpc_reply.rs                                                     107      43  59.81%   45-47, 61-63, 80-120
crates/acp-nats/src/client/ext.rs                                                            57       0  100.00%
crates/acp-nats/src/client/terminal_create.rs                                                41       0  100.00%
crates/acp-nats/src/client/fs_read_text_file.rs                                              27       0  100.00%
crates/trogon-gateway/src/source/linear/signature.rs                                          8       1  87.50%   16
crates/trogon-gateway/src/source/linear/server.rs                                            83       0  100.00%
crates/trogon-gateway/src/source/linear/config.rs                                             9       0  100.00%
crates/acp-nats/src/nats/subjects/responses/cancelled.rs                                     15       0  100.00%
crates/acp-nats/src/nats/subjects/responses/ext_ready.rs                                     12       0  100.00%
crates/acp-nats/src/nats/subjects/responses/prompt_response.rs                               20       0  100.00%
crates/acp-nats/src/nats/subjects/responses/update.rs                                        20       0  100.00%
crates/acp-nats/src/nats/subjects/responses/response.rs                                      20       0  100.00%
crates/trogon-aauth-verify/src/challenge.rs                                                  45       0  100.00%
crates/trogon-aauth-verify/src/jkt.rs                                                        33       0  100.00%
crates/trogon-aauth-verify/src/replay.rs                                                     26       0  100.00%
crates/trogon-aauth-verify/src/jwks.rs                                                       15       0  100.00%
crates/trogon-aauth-verify/src/token.rs                                                     146       1  99.32%   100
crates/trogon-aauth-verify/src/jwks_cache.rs                                                 39       0  100.00%
crates/trogon-aauth-verify/src/nats_pop.rs                                                  123       2  98.37%   269, 345
crates/trogon-aauth-verify/src/time_source.rs                                                10       0  100.00%
crates/trogon-decider-runtime/src/event/event_id.rs                                          32       0  100.00%
crates/trogon-decider-runtime/src/event/stream_event.rs                                       8       0  100.00%
crates/trogon-decider-runtime/src/event/event_identity.rs                                     3       0  100.00%
crates/jsonrpc-nats/src/codec/decode.rs                                                      57       0  100.00%
crates/jsonrpc-nats/src/codec/reconstruct.rs                                                 90       5  94.44%   56-59, 91
crates/jsonrpc-nats/src/codec/encode.rs                                                      31       0  100.00%
crates/mcp-nats/src/transport.rs                                                            263      10  96.20%   242, 254-256, 374-377, 386-387
crates/mcp-nats/src/client.rs                                                                12       0  100.00%
crates/mcp-nats/src/jsonrpc.rs                                                                5       0  100.00%
crates/mcp-nats/src/mcp_peer_id.rs                                                           15       0  100.00%
crates/mcp-nats/src/server.rs                                                                12       0  100.00%
crates/mcp-nats/src/mcp_prefix.rs                                                            15       0  100.00%
crates/mcp-nats/src/config.rs                                                                59       0  100.00%
crates/mcp-nats/src/wire.rs                                                                  18       0  100.00%
crates/a2a-nats/src/catalog/import_gate/allow_all.rs                                          2       0  100.00%
crates/a2a-nats/src/catalog/import_gate/principal.rs                                          9       0  100.00%
crates/trogon-gateway/src/source/gitlab/gitlab_signing_token.rs                              30       0  100.00%
crates/trogon-gateway/src/source/gitlab/server.rs                                            78       0  100.00%
crates/trogon-gateway/src/source/gitlab/signature.rs                                         13       0  100.00%
crates/a2a-auth-callout/src/wire/callout_auth_response_claims.rs                             54       3  94.44%   70-72
crates/a2a-auth-callout/src/wire/nkey_public.rs                                              83       3  96.39%   102, 118-119
crates/a2a-auth-callout/src/wire/nkey_seed.rs                                                20       0  100.00%
crates/a2a-auth-callout/src/wire/server_auth_request_claims.rs                              100       4  96.00%   24-26, 127
crates/a2a-auth-callout/src/wire/bridge_adapter.rs                                           73       0  100.00%
crates/a2a-auth-callout/src/wire/test_encode.rs                                              59       0  100.00%
crates/a2a-auth-callout/src/wire/wire_codec.rs                                               58       0  100.00%
crates/a2a-auth-callout/src/wire/xkey_public.rs                                              23       0  100.00%
crates/a2a-auth-callout/src/wire/server_auth_request_envelope.rs                             68       1  98.53%   64
crates/trogon-gateway/src/source/sentry/server.rs                                            69       0  100.00%
crates/trogon-gateway/src/source/sentry/signature.rs                                          6       0  100.00%
crates/trogon-gateway/src/source/sentry/sentry_client_secret.rs                               9       0  100.00%
crates/trogon-nats/src/lease/release.rs                                                       5       5  0.00%    8-12
crates/trogon-nats/src/lease/renew.rs                                                        82      19  76.83%   23-29, 48-59
crates/trogon-nats/src/lease/renew_interval.rs                                               25       0  100.00%
crates/trogon-nats/src/lease/ttl.rs                                                          27       0  100.00%
crates/trogon-nats/src/lease/acquire.rs                                                       5       5  0.00%    9-14
crates/trogon-nats/src/lease/provision.rs                                                    83      10  87.95%   82-92
crates/trogon-nats/src/lease/lease_timing.rs                                                 15       0  100.00%
crates/trogon-nats/src/lease/lease_key.rs                                                    19       0  100.00%
crates/trogon-nats/src/lease/mod.rs                                                         107      13  87.85%   113-126
crates/trogon-nats/src/lease/nats_kv_lease_config.rs                                         26       0  100.00%
crates/trogon-nats/src/lease/lease_bucket.rs                                                 19       0  100.00%
crates/trogon-decider-runtime/src/event/codec/event_decode.rs                                13       0  100.00%
crates/trogon-decider-runtime/src/event/codec/event_payload_error.rs                          5       0  100.00%
crates/trogon-scheduler/src/commands/domain/schedule_event_status.rs                          6       0  100.00%
crates/trogon-scheduler/src/commands/domain/schedule.rs                                     373       0  100.00%
crates/trogon-scheduler/src/commands/domain/schedule_id.rs                                   37       0  100.00%
crates/trogon-scheduler/src/commands/domain/schedule_event_delivery.rs                       14       0  100.00%
crates/trogon-scheduler/src/commands/domain/recurrence.rs                                    78       1  98.72%   99
crates/trogon-scheduler/src/commands/domain/schedule_occurrence_sequence.rs                  16       0  100.00%
crates/trogon-scheduler/src/commands/domain/message.rs                                      139       0  100.00%
crates/trogon-scheduler/src/commands/domain/schedule_event_sampling_source.rs                11       0  100.00%
crates/trogon-scheduler/src/commands/domain/schedule_event_schedule.rs                       35       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/tasks/cancel.rs                                     15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/tasks/resubscribe.rs                                15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/tasks/list.rs                                       15       0  100.00%
crates/a2a-nats/src/nats/subjects/agents/tasks/get.rs                                        15       0  100.00%
crates/a2a-auth-callout/src/jwt/mod.rs                                                      232       0  100.00%
crates/a2a-auth-callout/src/jwt/nats_permission_claims.rs                                    10       0  100.00%
crates/a2a-auth-callout/src/jwt/nats_user_jwt.rs                                            187       1  99.47%   131
crates/a2a-auth-callout/src/jwt/user_jwt_subject.rs                                          12       0  100.00%
crates/a2a-pack/src/agent_card_read.rs                                                       23       0  100.00%
crates/a2a-pack/src/agent_card_schema.rs                                                     40       0  100.00%
crates/acp-nats-stdio/src/main.rs                                                            58      11  81.03%   67, 110-117, 123-125, 142
crates/acp-nats-stdio/src/config.rs                                                          15       0  100.00%
crates/acp-nats/src/client_proxy.rs                                                          63       1  98.41%   55
crates/acp-nats/src/in_flight_slot_guard.rs                                                   7       0  100.00%
crates/acp-nats/src/ext_method_name.rs                                                       18       0  100.00%
crates/acp-nats/src/error.rs                                                                 31       0  100.00%
crates/acp-nats/src/config.rs                                                                84       0  100.00%
crates/acp-nats/src/pending_prompt_waiters.rs                                                68       0  100.00%
crates/acp-nats/src/req_id.rs                                                                21       0  100.00%
crates/acp-nats/src/session_id.rs                                                            21       0  100.00%
crates/acp-nats/src/acp_prefix.rs                                                            13       0  100.00%
crates/acp-nats/src/wire.rs                                                                  80      14  82.50%   38, 46-60, 103
crates/acp-nats/src/lib.rs                                                                   11       0  100.00%
crates/trogon-gateway/src/source/github/server.rs                                            50       0  100.00%
crates/trogon-gateway/src/source/github/config.rs                                             9       0  100.00%
crates/trogon-gateway/src/source/github/signature.rs                                          9       0  100.00%
crates/mcp-nats/src/nats/parsing.rs                                                          98       0  100.00%
crates/mcp-nats/src/nats/mod.rs                                                              23       0  100.00%
crates/trogon-gateway/src/source/telegram/server.rs                                          53       0  100.00%
crates/trogon-gateway/src/source/telegram/signature.rs                                        7       0  100.00%
crates/trogon-gateway/src/source/telegram/registration.rs                                    82       0  100.00%
crates/trogon-gateway/src/source/telegram/config.rs                                          42       0  100.00%
crates/trogon-nats/src/jetstream/stream_max_age.rs                                            8       0  100.00%
crates/trogon-nats/src/jetstream/create_conflicts.rs                                         14       0  100.00%
crates/trogon-nats/src/jetstream/publish.rs                                                  30       0  100.00%
crates/trogon-nats/src/jetstream/claim_check.rs                                             104       3  97.12%   46-48
crates/trogon-nats/src/jetstream/mocks.rs                                                   941       1  99.89%   507
crates/trogon-nats/src/jetstream/traits.rs                                                   46      40  13.04%   181-251
crates/trogon-nats/src/telemetry/messaging.rs                                                37       0  100.00%
crates/trogon-decider-runtime/src/stream/read_stream.rs                                       7       0  100.00%
crates/trogon-decider-runtime/src/stream/stream_position.rs                                  26       0  100.00%
crates/trogon-decider-runtime/src/stream/append_stream.rs                                     5       0  100.00%
crates/a2a-nats/src/push/caller_id.rs                                                        41       0  100.00%
crates/a2a-nats/src/push/push_delivery_semantics_registry.rs                                 17       0  100.00%
crates/a2a-nats/src/push/push_notification_config_id.rs                                      17       0  100.00%
crates/a2a-nats/src/push/nats_push_subject.rs                                                12       0  100.00%
crates/a2a-nats/src/push/push_idempotency_key.rs                                             43       0  100.00%
crates/a2a-nats/src/push/push_notification_target.rs                                         32       0  100.00%
crates/a2a-nats/src/push/idempotency_key_header.rs                                           16       0  100.00%
crates/a2a-nats/src/push/authentication_header.rs                                            31       0  100.00%
crates/a2a-nats/src/push/push_payload.rs                                                     18       0  100.00%
crates/a2a-nats/src/push/target.rs                                                           19       0  100.00%
crates/a2a-nats/src/push/dispatch_error.rs                                                   24       0  100.00%
crates/a2a-nats/src/push/dlq.rs                                                              56       0  100.00%
crates/a2a-nats/src/push/terminal_push_task_state.rs                                         17       0  100.00%
crates/a2a-nats/src/push/delivery_semantics.rs                                               98       0  100.00%
crates/a2a-nats/src/push/dlq_dedup.rs                                                        37       0  100.00%
crates/a2a-nats/src/push/status_transition_id.rs                                             15       0  100.00%
crates/a2a-nats/src/push/push_notification_config.rs                                          6       0  100.00%
crates/trogon-scheduler/src/processor/execution/checkpoints/codec/twin.rs                    96       0  100.00%
crates/trogon-decider-runtime/src/snapshot/mod.rs                                             3       0  100.00%
crates/trogon-decider-runtime/src/snapshot/snapshot_type.rs                                  42       0  100.00%
crates/trogon-decider-runtime/src/snapshot/read_snapshot.rs                                   3       0  100.00%
crates/a2a-nats/src/server/push_get.rs                                                       12       0  100.00%
crates/a2a-nats/src/server/tasks_get.rs                                                      12       0  100.00%
crates/a2a-nats/src/server/tasks_resubscribe.rs                                              12       0  100.00%
crates/a2a-nats/src/server/message_send.rs                                                   15       0  100.00%
crates/a2a-nats/src/server/push_list.rs                                                      12       0  100.00%
crates/a2a-nats/src/server/tasks_list.rs                                                     12       0  100.00%
crates/a2a-nats/src/server/wire.rs                                                           34       4  88.24%   21-23, 30
crates/a2a-nats/src/server/dispatch.rs                                                       30       0  100.00%
crates/a2a-nats/src/server/push_set.rs                                                       12       0  100.00%
crates/a2a-nats/src/server/push_delete.rs                                                    12       0  100.00%
crates/a2a-nats/src/server/tasks_cancel.rs                                                   12       0  100.00%
crates/a2a-nats/src/server/bridge.rs                                                         65       0  100.00%
crates/a2a-nats/src/server/handler.rs                                                        39       0  100.00%
crates/a2a-nats/src/server/test_support.rs                                                   81      25  69.14%   134-159
crates/a2a-nats/src/server/message_stream.rs                                                 56       6  89.29%   154-156, 164-166
crates/a2a-nats/src/server/agent_card.rs                                                     16       0  100.00%
crates/acp-nats/src/nats/subjects/stream.rs                                                  56       0  100.00%
crates/a2a-nats/src/catalog/import_gate/spicedb/config.rs                                    70       0  100.00%
crates/a2a-nats/src/catalog/import_gate/spicedb/mod.rs                                      107       0  100.00%
crates/a2a-nats/src/catalog/import_gate/spicedb/cache.rs                                     36       0  100.00%
crates/trogon-scheduler/src/processor/execution/worker/processor.rs                         303      12  96.04%   279, 339, 437-438, 444, 499-501, 533-536
crates/trogon-scheduler/src/processor/execution/worker/dispatcher.rs                        280       1  99.64%   200
crates/trogon-scheduler/src/processor/execution/worker/testkit.rs                           311       4  98.71%   458, 489-490, 495
crates/trogon-scheduler/src/processor/execution/worker/consumer.rs                           77       0  100.00%
crates/acp-nats/src/jetstream/ext_policy.rs                                                   3       0  100.00%
crates/acp-nats/src/jetstream/consumers.rs                                                   41       0  100.00%
crates/acp-nats/src/jetstream/provision.rs                                                   13       0  100.00%
crates/acp-nats/src/jetstream/streams.rs                                                     18       0  100.00%
crates/a2a-nats-http/src/sse.rs                                                              44      27  38.64%   15-51, 61-62, 65-68
crates/a2a-nats-http/src/rest.rs                                                            316       8  97.47%   123-126, 282-285
crates/a2a-nats-http/src/main.rs                                                              1       0  100.00%
crates/a2a-nats-http/src/router.rs                                                           55      13  76.36%   60-63, 69-79
crates/a2a-nats-http/src/headers.rs                                                         129       1  99.22%   159
crates/a2a-nats-http/src/runtime.rs                                                           8       8  0.00%    60-130
crates/a2a-nats-stdio/src/io_loop.rs                                                         43       0  100.00%
crates/a2a-nats-stdio/src/main.rs                                                             1       0  100.00%
crates/a2a-nats-stdio/src/runtime.rs                                                         21       0  100.00%
crates/a2a-nats-stdio/src/dispatch.rs                                                       207       8  96.14%   116, 119-121, 229, 232-234
crates/a2a-nats-stdio/src/wire.rs                                                            22       0  100.00%
crates/acp-nats-agent/src/connection.rs                                                     468       1  99.79%   704
crates/mcp-nats/src/nats/subjects/client/cancelled.rs                                        12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/create_message.rs                                   12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/progress.rs                                         12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/list_roots.rs                                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/initialized.rs                                      12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/create_elicitation.rs                               12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/ping.rs                                              9       0  100.00%
crates/mcp-nats/src/nats/subjects/client/roots_list_changed.rs                               12       0  100.00%
crates/a2a-bridge/src/auth/callout_mint.rs                                                   49       1  97.96%   94
crates/a2a-auth-callout/src/signing_key_source/key_version.rs                                16       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/mod.rs                                         3       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/file.rs                                       38       6  84.21%   40-42, 61-63
crates/a2a-auth-callout/src/signing_key_source/loader.rs                                     18       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/static_source.rs                              25       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/signing_key_handle.rs                         15       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/env.rs                                        38       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/minting_material.rs                           18       0  100.00%
crates/a2a-auth-callout/src/signing_key_source/vault.rs                                       3       0  100.00%
crates/a2a-auth-callout/src/denial_claims.rs                                                 68       0  100.00%
crates/a2a-auth-callout/src/dispatcher.rs                                                    34      13  61.76%   83-112
crates/a2a-auth-callout/src/account_resolver.rs                                              31       0  100.00%
crates/a2a-auth-callout/src/main.rs                                                           1       1  0.00%    226
crates/a2a-auth-callout/src/permissions.rs                                                   85       0  100.00%
crates/a2a-auth-callout/src/denial_reason.rs                                                 15       0  100.00%
crates/a2a-auth-callout/src/test_support.rs                                                  20      20  0.00%    16-36
crates/a2a-auth-callout/src/subscriber.rs                                                    96      96  0.00%    26-177
crates/a2a-auth-callout/src/caller_jwt_header.rs                                             20       0  100.00%
crates/a2a-auth-callout/src/denial_category.rs                                               29       0  100.00%
crates/a2a-auth-callout/src/error.rs                                                          3       0  100.00%
crates/trogon-scheduler/src/telemetry/trace.rs                                               20       0  100.00%
crates/trogon-scheduler/src/telemetry/metrics.rs                                             39       0  100.00%
crates/a2a-nats/src/nats/subjects/tasks/events.rs                                            17       0  100.00%
crates/acp-nats/src/nats/mod.rs                                                              61      13  78.69%   22-33, 75
crates/acp-nats/src/nats/jsonrpc.rs                                                          51      11  78.43%   46, 54-55, 57-63, 81-83
crates/acp-nats/src/nats/extensions.rs                                                        3       0  100.00%
crates/acp-nats/src/nats/parsing.rs                                                         113      15  86.73%   138-152, 192
crates/trogon-scheduler/src/processor/execution/wakeup.rs                                    91       1  98.90%   127
crates/trogon-std/src/signal.rs                                                              22      12  45.45%   6-11, 18-25, 34
crates/trogon-std/src/uuid.rs                                                                 3       0  100.00%
crates/trogon-std/src/http.rs                                                                 8       0  100.00%
crates/trogon-std/src/duration.rs                                                            15       0  100.00%
crates/trogon-std/src/json.rs                                                                23       0  100.00%
crates/trogon-std/src/secret_string.rs                                                       13       0  100.00%
crates/trogon-std/src/args.rs                                                                12       9  25.00%   11-28
crates/trogon-telemetry/src/trace.rs                                                         15       1  93.33%   24
crates/trogon-telemetry/src/metric.rs                                                        18       1  94.44%   30
crates/trogon-telemetry/src/log.rs                                                           36       0  100.00%
crates/trogon-telemetry/src/resource_attribute.rs                                            13       0  100.00%
crates/trogon-telemetry/src/service_name.rs                                                  17       0  100.00%
crates/trogon-telemetry/src/lib.rs                                                          135      23  82.96%   119, 124, 129, 139-140, 146-164, 200, 203, 206, 212
crates/trogon-std/src/telemetry/http.rs                                                      58       0  100.00%
crates/a2a-bridge/src/inbound.rs                                                            326      91  72.09%   115-119, 142-144, 191-231, 292-417, 469-471, 482, 580, 631-646, 687-692
crates/a2a-bridge/src/identity.rs                                                            63       0  100.00%
crates/a2a-bridge/src/main.rs                                                                 1       1  0.00%    182
crates/a2a-bridge/src/nats_transport_harness.rs                                              42       0  100.00%
crates/a2a-bridge/src/outbound.rs                                                            70       7  90.00%   126, 197-209
crates/a2a-bridge/src/auth.rs                                                                47      15  68.09%   78-99, 148
crates/a2a-nats/src/push/dispatcher/composite.rs                                             15       0  100.00%
crates/a2a-nats/src/push/dispatcher/http.rs                                                  19       0  100.00%
crates/a2a-nats/src/push/dispatcher/mod.rs                                                   16       0  100.00%
crates/a2a-nats/src/push/dispatcher/jetstream.rs                                             45       0  100.00%
crates/a2a-nats/src/push/dispatcher/nats.rs                                                  37       0  100.00%
crates/a2a-redaction/src/redactor.rs                                                         32       0  100.00%
crates/a2a-redaction/src/a2a_method.rs                                                       41       0  100.00%
crates/a2a-redaction/src/tier3_sentinel.rs                                                   12       0  100.00%
crates/a2a-redaction/src/skill_id.rs                                                         26       0  100.00%
crates/a2a-redaction/src/skill_manifest.rs                                                  310      14  95.48%   139, 169-171, 177, 184-188, 358-360, 452
crates/a2a-redaction/src/wasm_bundle_path.rs                                                 18       0  100.00%
crates/a2a-redaction/src/wasm/engine.rs                                                      62      11  82.26%   46-48, 80-81, 93-95, 99-101
crates/a2a-redaction/src/wasm/mod.rs                                                        110       9  91.82%   132-134, 147-149, 162-164
crates/acp-nats/src/telemetry/metrics.rs                                                     26       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/one_server.rs                                 9       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/all_client.rs                                 6       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/all_server.rs                                 6       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/one_client.rs                                 9       0  100.00%
crates/trogon-scheduler/src/processor/execution/reconciliation/schedule_subject.rs           31       0  100.00%
crates/trogon-scheduler/src/processor/execution/reconciliation/request.rs                   230       2  99.13%   285, 290
crates/trogon-scheduler/src/processor/execution/reconciliation/rrule_wakeup_payload.rs       35       0  100.00%
crates/trogon-scheduler/src/processor/execution/reconciliation/reconcile.rs                 303      13  95.71%   251-260, 325-327
crates/trogon-scheduler/src/processor/execution/reconciliation/go_duration.rs                40       0  100.00%
crates/trogon-scheduler/src/processor/execution/reconciliation/recorded_events.rs           241      12  95.02%   200-205, 242, 250, 271, 291, 297, 303, 336, 346, 364, 448
crates/trogon-scheduler/src/processor/execution/reconciliation/schedule_key.rs               27       0  100.00%
crates/a2a-gateway/src/jwt_caller_identity.rs                                               151       4  97.35%   165-169, 182-186
crates/a2a-nats-server/src/main.rs                                                            1       0  100.00%
crates/a2a-nats-server/src/runtime.rs                                                        17       0  100.00%
crates/a2a-nats-server/src/noop_handler.rs                                                   22       0  100.00%
crates/trogon-decider-runtime/src/execution.rs                                              379       0  100.00%
crates/trogon-std/src/env/in_memory.rs                                                       23       0  100.00%
crates/trogon-std/src/env/system.rs                                                           3       0  100.00%
crates/trogon-std/src/fs/mem.rs                                                              85       0  100.00%
crates/trogon-std/src/fs/system.rs                                                           15       0  100.00%
crates/a2a-redaction/src/bin/sign-bundle.rs                                                   1       1  0.00%    163
crates/trogon-gateway/src/source/twitter/server.rs                                          144       0  100.00%
crates/trogon-gateway/src/source/twitter/signature.rs                                        16       0  100.00%
crates/trogon-gateway/src/source/twitter/config.rs                                            9       0  100.00%
crates/trogon-gateway/src/source/standard_webhooks.rs                                       138       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/session_request_permission.rs                   12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/fs_write_text_file.rs                           12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_wait_for_exit.rs                       12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/fs_read_text_file.rs                            12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_kill.rs                                12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_create.rs                              12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_output.rs                              12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/session_update.rs                               12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_release.rs                             12       0  100.00%
crates/trogon-decider-nats/src/snapshot_store.rs                                            446      27  93.95%   208-210, 248-250, 361-367, 449, 585, 590, 686-688, 694-696, 730-731, 741-742, 761, 789-790
crates/trogon-decider-nats/src/stream_store.rs                                              267      18  93.26%   70-72, 245, 273-274, 277, 293-297, 464-465, 506, 519-523
crates/trogon-decider-nats/src/store.rs                                                      73      45  38.36%   50-54, 101-167
crates/trogon-identity-types/src/aauth/mod.rs                                                60       4  93.33%   107-109, 154
crates/a2a-auth-callout/src/credentials/api_key.rs                                           46       1  97.83%   33
crates/a2a-auth-callout/src/credentials/mtls.rs                                             153      13  91.50%   71-72, 168-169, 209-213, 216-219
crates/a2a-auth-callout/src/credentials/oidc.rs                                             188       4  97.87%   212-215
crates/trogon-service-config/src/lib.rs                                                      38       0  100.00%
crates/trogon-scheduler/src/commands/state.rs                                                78       0  100.00%
crates/trogon-scheduler/src/commands/create_schedule.rs                                      32       0  100.00%
crates/trogon-scheduler/src/commands/record_schedule_occurrence.rs                          113       1  99.12%   182
crates/trogon-scheduler/src/commands/pause_schedule.rs                                       31       0  100.00%
crates/trogon-scheduler/src/commands/remove_schedule.rs                                      30       0  100.00%
crates/trogon-scheduler/src/commands/resume_schedule.rs                                      34       0  100.00%
crates/trogon-scheduler/src/commands/schedule_next_occurrence.rs                             74       0  100.00%
crates/trogon-std/src/time/system.rs                                                          9       0  100.00%
crates/trogon-std/src/time/mock.rs                                                           32       0  100.00%
crates/a2a-nats/src/catalog/store.rs                                                        117       0  100.00%
crates/a2a-nats/src/catalog/nats_kv.rs                                                        8       0  100.00%
crates/a2a-nats/src/catalog/watch.rs                                                         18       0  100.00%
crates/a2a-nats/src/catalog/registrar.rs                                                     56       0  100.00%
crates/trogonai-proto/src/codec.rs                                                           16       0  100.00%
crates/trogonai-proto/src/convert.rs                                                         53       0  100.00%
crates/a2a-identity-types/src/jwt.rs                                                         71       0  100.00%
crates/a2a-identity-types/src/principal.rs                                                   16       0  100.00%
crates/a2a-identity-types/src/caller.rs                                                      24       0  100.00%
crates/a2a-nats-http/src/handlers/mod.rs                                                    185      12  93.51%   68, 88-91, 121, 155, 169-172, 185
crates/trogon-nats/src/nats_token.rs                                                         56       0  100.00%
crates/trogon-nats/src/messaging.rs                                                         168       2  98.81%   144, 154
crates/trogon-nats/src/mocks.rs                                                             224       0  100.00%
crates/trogon-nats/src/connect.rs                                                            26       6  76.92%   41-46
crates/trogon-nats/src/server_info.rs                                                        21       3  85.71%   19-21
crates/trogon-nats/src/client.rs                                                             22      22  0.00%    50-86
crates/trogon-nats/src/token.rs                                                               6       0  100.00%
crates/trogon-nats/src/auth.rs                                                               45       0  100.00%
crates/trogon-decider/src/testing.rs                                                        274       0  100.00%
crates/trogon-decider/src/decision.rs                                                        27       0  100.00%
crates/trogon-decider/src/events.rs                                                          49       0  100.00%
crates/trogon-decider/src/act.rs                                                             62       0  100.00%
crates/trogon-decider-runtime/src/headers/header_value.rs                                    34       0  100.00%
crates/trogon-decider-runtime/src/headers/header_name.rs                                     28       0  100.00%
crates/trogon-decider-runtime/src/headers/header_map.rs                                      54       0  100.00%
crates/trogon-gateway/src/source/notion/verification_token.rs                                46       0  100.00%
crates/trogon-gateway/src/source/notion/notion_event_type.rs                                 20       0  100.00%
crates/trogon-gateway/src/source/notion/notion_verification_token.rs                          9       0  100.00%
crates/trogon-gateway/src/source/notion/signature.rs                                          9       0  100.00%
crates/trogon-gateway/src/source/notion/server.rs                                           120       4  96.67%   115-116, 135-136
crates/trogon-std/src/dirs/system.rs                                                         39       0  100.00%
crates/trogon-std/src/dirs/fixed.rs                                                          32       0  100.00%
crates/trogon-decider-runtime/src/snapshot/codec/snapshot_envelope_encode_error.rs            3       0  100.00%
crates/trogon-decider-runtime/src/snapshot/codec/snapshot_payload_decode.rs                   3       0  100.00%
crates/trogon-decider-runtime/src/snapshot/codec/snapshot_envelope_decode_error.rs            6       0  100.00%
crates/trogon-decider-runtime/src/snapshot/codec/snapshot_decode_error.rs                    19       0  100.00%
crates/trogon-decider-runtime/src/snapshot/codec/snapshot_encode_error.rs                    16       0  100.00%
crates/trogon-decider-runtime/src/snapshot/codec/encoded_snapshot.rs                         44       0  100.00%
crates/trogon-gateway/src/http.rs                                                            13       0  100.00%
crates/trogon-gateway/src/source_status.rs                                                   12       0  100.00%
crates/trogon-gateway/src/source_plugin.rs                                                  268       3  98.88%   82, 139-140
crates/trogon-gateway/src/main.rs                                                            26       0  100.00%
crates/trogon-gateway/src/streams.rs                                                          7       0  100.00%
crates/trogon-gateway/src/source_integration_id.rs                                           28       2  92.86%   58, 60
crates/trogon-gateway/src/config.rs                                                        1053      42  96.01%   80, 663, 666, 826, 883, 966, 969, 972, 976, 1060-1067, 1144, 1147, 1150, 1155, 1213, 1216, 1219, 1298, 1301, 1304, 1308, 1372, 1375, 1378, 1441, 1444, 1447, 1452, 1527, 1530, 1533, 1538, 1596, 1599, 1602, 1815-1817
TOTAL                                                                                     26349    1296  95.08%

Diff against main

Filename      Stmts    Miss  Cover
----------  -------  ------  --------
TOTAL             0       0  +100.00%

Results for commit: 2c3c70a

Minimum allowed coverage is 95%

♻️ This comment has been updated with latest results

@yordis
yordis force-pushed the yordis/san-francisco-v1 branch 3 times, most recently from 17e3b43 to c43e5eb Compare June 26, 2026 17:47
Comment thread .github/workflows/ci-semconv.yml
@yordis
yordis force-pushed the yordis/san-francisco-v1 branch 2 times, most recently from fcaba7b to 33f907f Compare June 26, 2026 19:12

@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 33f907f. Configure here.

Comment thread rsworkspace/crates/trogon-semconv/src/gen/attribute.rs
Establish a single, machine-checked source of truth for telemetry naming that every runtime can generate bindings from, instead of hand-coded strings governed only by review.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/san-francisco-v1 branch from 33f907f to 2c3c70a Compare June 26, 2026 19:44
@yordis
yordis merged commit 5deb1e4 into main Jun 26, 2026
8 checks passed
@yordis
yordis deleted the yordis/san-francisco-v1 branch June 26, 2026 19:55
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