Skip to content

feat(decider): close the gaps the decider crate-family audit opened - #539

Merged
yordis merged 20 commits into
mainfrom
yordis/decider-todo
Aug 19, 2026
Merged

feat(decider): close the gaps the decider crate-family audit opened#539
yordis merged 20 commits into
mainfrom
yordis/decider-todo

Conversation

@yordis

@yordis yordis commented Aug 16, 2026

Copy link
Copy Markdown
Member

Summary

  • The decider stack left several of its own guarantees to caller convention: backpressure, authorization, write preconditions, snapshot cadence, and module provenance were documented as gaps rather than enforced by a contract, so nothing in the stack could tell whether one had actually been honored.
  • The two dispatch paths had drifted, which meant a guarantee proven on the native path said nothing about the WASM path, and vice versa.
  • Coverage of the two decider CI gates was itself convention: a component could ship with no conformance suite and no parity test and keep CI green, so the gates only proved things about the components someone had remembered to cover.
  • A durable pull-consumer driver with no decider dependency lived in the decider NATS adapter, which would have forced the next non-decider caller to depend on that adapter to reach it.
  • Three of the ADRs implemented here were still draft, which ADR#0000 forbids building against; their open questions are resolved in the ADRs themselves and flagged as needing review rather than treated as settled.
  • DecideResponse carried an error union of its own, so a caller had to decode a second envelope to learn a command was refused while every other outcome was already legible from the reply's status headers. A refusal now travels the way every other failure does, which costs num_errors its purity as a health signal; ADR#0057 records that trade and points an operator at ErrorInfo.domain to separate a refused command from a broken one.

Related

The stack left several of its own guarantees to caller convention:
backpressure, authorization, write preconditions, and module provenance
were documented as gaps rather than enforced by a contract, so nothing in
the stack could tell whether one had been honored.

Three of the ADRs this implements were still draft, which ADR#0000
forbids building against. Their open questions are resolved in the ADRs
themselves and flagged as needing review rather than settled.

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

cursor Bot commented Aug 16, 2026

Copy link
Copy Markdown

PR Summary

High Risk
Touches command execution, authorization, stream isolation, and shared error enums (source-breaking matches), plus new NATS wire contracts and publish-time conformance gates that can block releases if coverage metadata is wrong.

Overview
Turns several draft ADRs into accepted decisions and aligns docs with what the decider stack now enforces: command authorization (CommandPrincipal + CommandAuthorizer, fail-closed default, Unauthorized on shared errors), admission control (opt-in CommandAdmission, Overloaded/shed), subject scoping (SubjectScope on resolvers, store rejects out-of-scope subjects instead of a Tenant type), and snapshot-derived retention watermarks (read-only in trogon-decider-nats; purge still out of band).

Native and WASM execution paths are documented and aligned on shared behavior: total WritePrecondition with StreamUnchanged default, resolve_write_precondition / caller expected_revision, chunked replay, in-place OCC conflict retry, command-id–derived event ids, and telemetry additions (decision_outcome shed / denied, decider.command.conflict_retries).

CI conformance replaces the bash decider-test-suites script with a Python gate that requires every wasm-components/* decider to have a trogon-decider-test YAML suite and/or a parity_* sim test, or an explicit [package.metadata.decider-test] / decider-parity exempt in its Cargo.toml; orphan suites/tests fail the task. Parity tests are run individually after the schedules suite.

Adds draft ADR#0057 (single DeciderService.Decide over google.protobuf.Any, errors as google.rpc.Status only—no body union) with proto/trogonai/decider/v1/* and faults.proto templates, plus buf IMPORT_USED ignore for the service proto’s google.rpc imports. Adds draft ADR#0058 (module name@version references, ModuleSource trait, JetStream object store first) and wires trogon-decider-publish / workspace cli/* and trogon-decider-nats-server (host per #57).

Downstream ADR/glossary/session docs are updated to reference subject scope instead of tenant value objects and to reflect which dependencies are now accepted vs still draft.

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

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 164 files, which is 64 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b6f7f700-6b29-42bc-bf10-671a5550f0a0

📥 Commits

Reviewing files that changed from the base of the PR and between b409fd8 and 595e067.

⛔ Files ignored due to path filters (33)
  • rsworkspace/Cargo.lock is excluded by !**/*.lock
  • rsworkspace/crates/platform/trogon-semconv/src/gen/attribute.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogon-semconv/src/gen/metric.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/google.rpc.code.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/google.rpc.error_details.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/google.rpc.error_details.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/google.rpc.mod.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/google.rpc.status.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/google.rpc.status.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/mod.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.code.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.mod.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.options.__ext.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.options.__oneof.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.options.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.options.__view_oneof.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.options.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.error.v1alpha1.visibility.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.nats.micro.v1alpha1.mod.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.nats.micro.v1alpha1.options.__ext.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.nats.micro.v1alpha1.options.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogon.nats.micro.v1alpha1.options.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.decide_request.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.decide_request.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.decide_response.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.decide_response.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.decided_event.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.decided_event.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.faults.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.faults.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.decider.v1.mod.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.session.sessions.v1alpha1.events.__view.rs is excluded by !**/gen/**
  • rsworkspace/crates/platform/trogonai-proto/src/gen/trogonai.session.sessions.v1alpha1.events.rs is excluded by !**/gen/**
📒 Files selected for processing (164)
  • .config/mise/tasks/github-actions/decider-test-suites
  • buf.yaml
  • docs/adr/0026-command-authorization-principal.md
  • docs/adr/0027-decider-multi-tenancy-primitive.md
  • docs/adr/0028-decider-admission-control-and-backpressure.md
  • docs/adr/0029-decider-retention-and-truncation-watermark.md
  • docs/adr/0035-session-store-decider-aggregate.md
  • docs/adr/0037-agent-identity-governance.md
  • docs/adr/0039-self-authenticating-event-provenance.md
  • docs/adr/0046-project-anchored-resource-hierarchy.md
  • docs/adr/0057-decider-command-nats-binding.md
  • docs/adr/0058-decider-module-distribution.md
  • docs/adr/index.md
  • docs/architecture/decider.md
  • docs/glossary/admission-control.md
  • docs/glossary/command-principal.md
  • docs/glossary/index.md
  • docs/glossary/principal.md
  • docs/glossary/retention-watermark.md
  • docs/glossary/subject-scope.md
  • docs/glossary/tenant.md
  • docs/research/session-store/products/google-adk/vs-session-events.md
  • otel/semconv/registry/decider.yaml
  • proto/trogonai/decider/v1/decide_request.proto
  • proto/trogonai/decider/v1/decide_response.proto
  • proto/trogonai/decider/v1/decided_event.proto
  • proto/trogonai/decider/v1/decider_service.proto
  • proto/trogonai/decider/v1/faults.proto
  • proto/trogonai/session/sessions/v1alpha1/events.proto
  • rsworkspace/Cargo.toml
  • rsworkspace/cli/trogon-decider-publish/Cargo.toml
  • rsworkspace/cli/trogon-decider-publish/src/lib.rs
  • rsworkspace/cli/trogon-decider-publish/src/main.rs
  • rsworkspace/cli/trogon-decider-publish/tests/gate.rs
  • rsworkspace/cli/trogon-decider-test/src/conformance.rs
  • rsworkspace/cli/trogon-decider-test/src/conformance/tests.rs
  • rsworkspace/cli/trogon-decider-test/src/lib.rs
  • rsworkspace/cli/trogon-decider-test/src/main.rs
  • rsworkspace/cli/trogon-decider-test/src/tests.rs
  • rsworkspace/crates/decider/trogon-decider-guest-macros/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-guest-macros/tests/ui/bundle_mismatched_event.rs
  • rsworkspace/crates/decider/trogon-decider-guest-macros/tests/ui/bundle_mismatched_event.stderr
  • rsworkspace/crates/decider/trogon-decider-guest-macros/tests/ui/not_a_decider.stderr
  • rsworkspace/crates/decider/trogon-decider-guest-sdk/src/bridge.rs
  • rsworkspace/crates/decider/trogon-decider-guest-sdk/src/bridge/tests.rs
  • rsworkspace/crates/decider/trogon-decider-guest-sdk/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-guest-sdk/src/snapshot.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/Cargo.toml
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/config.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/config/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/constants.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/endpoint.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/endpoint/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/event_subject.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/event_subject/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/main.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/module_reference.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/module_reference/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/module_source.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/module_source/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/outcome.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/outcome/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/request.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/request/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/runtime.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/runtime/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/status.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/src/status/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/tests/module_store.rs
  • rsworkspace/crates/decider/trogon-decider-nats-server/tests/serve.rs
  • rsworkspace/crates/decider/trogon-decider-nats/Cargo.toml
  • rsworkspace/crates/decider/trogon-decider-nats/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/retention.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/retention/tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/snapshot_store.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/store.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/store/tests/command_execution_tests.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/stream_store.rs
  • rsworkspace/crates/decider/trogon-decider-nats/src/stream_store/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/Cargo.toml
  • rsworkspace/crates/decider/trogon-decider-runtime/src/admission.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/admission/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/authorization.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/authorization/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/command_id.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/command_id/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/conflict_retry_limit.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/conflict_retry_limit/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/execution.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/execution/sealed.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/execution/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/memory.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/replay_bounds.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/replay_bounds/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/replay_chunk_size.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/replay_chunk_size/tests.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/stream/append_stream.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/src/stream/mod.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/tests/execute_command_span.rs
  • rsworkspace/crates/decider/trogon-decider-runtime/tests/replay_events_metric.rs
  • rsworkspace/crates/decider/trogon-decider-sim/Cargo.toml
  • rsworkspace/crates/decider/trogon-decider-sim/src/native/tests.rs
  • rsworkspace/crates/decider/trogon-decider-sim/tests/parity_schedules.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/command_spec.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/constants.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/execution.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/execution/sealed.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/execution/tests.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/module.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/module/tests.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/src/registry/tests.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/tests/act_chain_execution.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/tests/nats_execution.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/tests/schedules_execution.rs
  • rsworkspace/crates/decider/trogon-decider-wasm-runtime/tests/support/mod.rs
  • rsworkspace/crates/decider/trogon-decider-wit/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider-wit/wit/world.wit
  • rsworkspace/crates/decider/trogon-decider/src/decision.rs
  • rsworkspace/crates/decider/trogon-decider/src/lib.rs
  • rsworkspace/crates/decider/trogon-decider/src/snapshot_cadence.rs
  • rsworkspace/crates/decider/trogon-decider/src/snapshot_cadence/tests.rs
  • rsworkspace/crates/decider/trogon-decider/src/testing.rs
  • rsworkspace/crates/decider/trogon-decider/src/testing/tests.rs
  • rsworkspace/crates/decider/trogon-decider/src/tests.rs
  • rsworkspace/crates/decider/trogon-decider/src/write_precondition.rs
  • rsworkspace/crates/decider/trogon-decider/tests/ui/common.rs
  • rsworkspace/crates/decider/trogon-decider/tests/ui/pass/double_given.rs
  • rsworkspace/crates/platform/trogon-nats/Cargo.toml
  • rsworkspace/crates/platform/trogon-nats/src/jetstream/mod.rs
  • rsworkspace/crates/platform/trogon-nats/src/jetstream/processor.rs
  • rsworkspace/crates/platform/trogon-nats/src/jetstream/processor/tests.rs
  • rsworkspace/crates/platform/trogon-nats/src/lib.rs
  • rsworkspace/crates/platform/trogon-telemetry/src/service_name.rs
  • rsworkspace/crates/platform/trogonai-proto/Cargo.toml
  • rsworkspace/crates/platform/trogonai-proto/src/decider/mod.rs
  • rsworkspace/crates/platform/trogonai-proto/src/lib.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/commands/create_schedule.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/commands/pause_schedule.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/commands/remove_schedule.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/commands/resume_schedule.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/constants.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/snapshot_policy.rs
  • rsworkspace/crates/scheduler/trogon-scheduler-domain/src/snapshot_policy/tests.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/commands/record_schedule_occurrence.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/commands/schedule_next_occurrence.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/constants.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/error.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/kv.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/nats.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/processor/execution/wakeup.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/processor/execution/wakeup/tests.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/processor/execution/worker/processor.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/processor/execution/worker/processor/tests.rs
  • rsworkspace/crates/scheduler/trogon-scheduler/src/processor/execution/worker/testkit.rs
  • rsworkspace/dylints/trogon_lints/src/lib.rs
  • rsworkspace/dylints/trogon_lints/src/weakened_write_precondition.rs
  • rsworkspace/dylints/trogon_lints/ui/weakened_write_precondition.rs
  • rsworkspace/dylints/trogon_lints/ui/weakened_write_precondition.stderr
  • rsworkspace/wasm-components/trogon-act-chain-decider/Cargo.toml
  • rsworkspace/wasm-components/trogon-act-chain-decider/src/lib.rs
  • rsworkspace/wasm-components/trogon-schedules-decider/src/lib.rs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

yordis added 4 commits August 16, 2026 18:08
…buf client

- A caller that already speaks google.rpc should not have to learn a
  decider-specific error vocabulary to read a decider reply.
- The hand-rolled fault family lost the distinction between a caller with no
  credentials and a caller with the wrong ones, which are different next moves.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…the repo policy lints

Both violations predate the lint run that caught them, and leaving them means the policy gate cannot go green on this branch.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…lds it to

Tenant isolation rested entirely on the caller's resolver composing the right prefix, with nothing on the store side able to tell a correct subject from an escaped one, and the store cannot check a fact the caller supplies both halves of.

ADR#0027 drafted a Tenant value object required on every resolver; the tenancy vocabulary belongs to the consumer, and the one in-repo resolver with a real isolation boundary draws a module boundary rather than a tenant one.

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

The remaining work is all P4 and spans several sessions and reviewers, so the record of what was decided and why needs to outlive the working copy it was written in.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Comment thread docs/adr/0057-decider-command-nats-binding.md Outdated
…e conflict

A caller reading the retry advice of a contended append would loop forever on a revision no stream state can ever satisfy.

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

@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 779ed98. Configure here.

yordis added 4 commits August 17, 2026 05:01
…d of in comments

A comment asserting which code and reason an arm carries is something a reader has to take on trust; a template is something they can resolve.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…TS impls out

Coverage builds drop the JetStream trait impls the host reaches through, so without a stand-in the whole coverage run stops compiling and reports nothing.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…e change stranded

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…k gates

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

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown

badge

Code Coverage Summary

Details
Filename                                                                                            Stmts    Miss  Cover    Missing
------------------------------------------------------------------------------------------------  -------  ------  -------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------
crates/decider/trogon-decider-nats/src/stream_store/replay.rs                                         141      10  92.91%   114, 143, 165, 228-236
crates/a2a/a2a-gateway/src/policy/error.rs                                                             16       0  100.00%
crates/a2a/a2a-gateway/src/policy/spicedb_tier1.rs                                                    158      13  91.77%   227-229, 382, 464, 466-474
crates/a2a/a2a-gateway/src/policy/per_skill.rs                                                         87       0  100.00%
crates/a2a/a2a-gateway/src/policy/wasmtime_substrate.rs                                                31       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/one_session.rs                                     12       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/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/all_agent_ext.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_agent.rs                                        9       0  100.00%
crates/decider/trogon-decider-sim/src/session.rs                                                       23       4  82.61%   47-55
crates/decider/trogon-decider-sim/src/native.rs                                                        81       2  97.53%   196, 214
crates/decider/trogon-decider-sim/src/host.rs                                                          74       0  100.00%
crates/decider/trogon-decider-sim/src/scenario.rs                                                     205       1  99.51%   579
crates/decider/trogon-decider-sim/src/import_check.rs                                                  52       4  92.31%   81-83, 103
crates/decider/trogon-decider-sim/src/parity.rs                                                        66       6  90.91%   91-93, 95-97
crates/decider/trogon-decider-sim/src/fixture.rs                                                       18       2  88.89%   33-35
crates/decider/trogon-decider-sim/src/ir.rs                                                           120       7  94.17%   114, 117, 121, 254-255, 277, 319
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/a2a/a2a-nats/src/nats/subjects/agents/card.rs                                                   12       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/message_stream.rs                                         15       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/env.rs                                              40       0  100.00%
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/file.rs                                             38       6  84.21%   38-40, 59-61
crates/a2a/a2a-auth-callout/src/signing_key_source/vault.rs                                             3       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/decider/trogon-decider/src/event/codec/event_payload_error.rs                                    5       0  100.00%
crates/decider/trogon-decider/src/event/codec/event_decode.rs                                          13       0  100.00%
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/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-nats/src/nats/subjects/agents/tasks/resubscribe.rs                                      15       0  100.00%
crates/acp/acp-nats/src/boundary/connect_agent_boundary.rs                                            128       0  100.00%
crates/acp/acp-nats/src/boundary/eof_signal_reader.rs                                                  20       0  100.00%
crates/acp/acp-nats/src/boundary/connection_client.rs                                                  29       0  100.00%
crates/acp/acp-nats/src/boundary/abort_on_drop.rs                                                      19       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/stream_max_age.rs                                             8       0  100.00%
crates/platform/trogon-nats/src/jetstream/processor.rs                                                109      12  88.99%   85-88, 220, 268-270, 277, 280-282
crates/platform/trogon-nats/src/jetstream/claim_bucket.rs                                              37       0  100.00%
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/claim_retention.rs                                           10       0  100.00%
crates/platform/trogon-nats/src/jetstream/publish.rs                                                   30       0  100.00%
crates/platform/trogon-nats/src/jetstream/traits.rs                                                    63      34  46.03%   251-309
crates/platform/trogon-nats/src/lease/lease_bucket.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/lease_timing.rs                                                  15       0  100.00%
crates/platform/trogon-nats/src/lease/provision.rs                                                     83      10  87.95%   82-92
crates/platform/trogon-nats/src/lease/renew_interval.rs                                                25       0  100.00%
crates/platform/trogon-nats/src/lease/lease_key.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/ttl.rs                                                           27       0  100.00%
crates/platform/trogon-nats/src/lease/release.rs                                                        5       5  0.00%    8-12
crates/platform/trogon-nats/src/lease/nats_kv_lease_config.rs                                          26       0  100.00%
crates/platform/trogon-nats/src/lease/renew.rs                                                         82      19  76.83%   23-29, 48-59
crates/acp/acp-nats/src/client/terminal_wait_for_exit.rs                                               55       0  100.00%
crates/acp/acp-nats/src/client/session_update.rs                                                        8       0  100.00%
crates/acp/acp-nats/src/client/terminal_output.rs                                                      29       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/request_permission.rs                                                   40       0  100.00%
crates/acp/acp-nats/src/client/terminal_create.rs                                                      41       0  100.00%
crates/acp/acp-nats/src/client/terminal_kill.rs                                                        41       0  100.00%
crates/acp/acp-nats/src/client/terminal_release.rs                                                     35       0  100.00%
crates/acp/acp-nats/src/client/mod.rs                                                                 105       1  99.05%   58
crates/acp/acp-nats/src/client/test_support.rs                                                         17       0  100.00%
crates/acp/acp-nats/src/client/ext.rs                                                                  62       0  100.00%
crates/acp/acp-nats/src/client/elicitation_create.rs                                                   41       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/fs_read_text_file.rs                                                    27       0  100.00%
crates/platform/trogon-std/src/fs/system.rs                                                            15       0  100.00%
crates/platform/trogon-std/src/fs/mem.rs                                                               85       0  100.00%
crates/scheduler/trogon-scheduler/src/error.rs                                                         85      14  83.53%   131-133, 152-154, 159-161, 176-184
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/scheduler/trogon-scheduler/src/nats.rs                                                          10       0  100.00%
crates/platform/trogon-gateway/src/source/twitter/signature.rs                                         16       0  100.00%
crates/platform/trogon-gateway/src/source/twitter/config.rs                                             9       0  100.00%
crates/platform/trogon-gateway/src/source/twitter/server.rs                                           144       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/execution_schedules/mod.rs                   82       0  100.00%
crates/platform/trogonai-proto/src/scheduler/schedules/codec.rs                                        57       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/aauth/trogon-aauth-sdk/src/capabilities.rs                                                       7       0  100.00%
crates/aauth/trogon-aauth-sdk/src/subagent.rs                                                          34       0  100.00%
crates/aauth/trogon-aauth-sdk/src/signer.rs                                                            92       0  100.00%
crates/aauth/trogon-aauth-sdk/src/verify_response.rs                                                   70       0  100.00%
crates/acp/acp-nats/src/telemetry/metrics.rs                                                           22       0  100.00%
crates/decider/trogon-decider-runtime/src/execution.rs                                                807       5  99.38%   249-250, 370, 853, 1811
crates/decider/trogon-decider-runtime/src/replay_bounds.rs                                             55       6  89.09%   25-32
crates/decider/trogon-decider-runtime/src/memory.rs                                                   109      10  90.83%   77-82, 181-186
crates/decider/trogon-decider-runtime/src/admission.rs                                                 62      12  80.65%   56-64, 150-152, 206-208
crates/decider/trogon-decider-runtime/src/replay_chunk_size.rs                                         26       0  100.00%
crates/decider/trogon-decider-runtime/src/conflict_retry_limit.rs                                      26       0  100.00%
crates/decider/trogon-decider-runtime/src/authorization.rs                                            195      12  93.85%   124-126, 531-533, 545-547, 568-570
crates/decider/trogon-decider-runtime/src/replay_limit.rs                                              26       0  100.00%
crates/decider/trogon-decider-runtime/src/command_id.rs                                                38       0  100.00%
crates/decider/trogon-decider-nats-server/src/endpoint.rs                                              23       0  100.00%
crates/decider/trogon-decider-nats-server/src/main.rs                                                   1       1  0.00%    49
crates/decider/trogon-decider-nats-server/src/event_subject.rs                                         35      11  68.57%   61-63, 79-99
crates/decider/trogon-decider-nats-server/src/outcome.rs                                               96       2  97.92%   115, 123
crates/decider/trogon-decider-nats-server/src/module_source.rs                                         90      72  20.00%   97-191
crates/decider/trogon-decider-nats-server/src/request.rs                                               47       0  100.00%
crates/decider/trogon-decider-nats-server/src/module_reference.rs                                      35       0  100.00%
crates/decider/trogon-decider-nats-server/src/config.rs                                               118       0  100.00%
crates/decider/trogon-decider-nats-server/src/runtime.rs                                              191     133  30.37%   79, 93-316, 345-352
crates/decider/trogon-decider-nats-server/src/status.rs                                               114       0  100.00%
crates/a2a/a2a-nats-server/src/runtime.rs                                                              17       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-redaction/src/signed_bundle/verify.rs                                                   64       2  96.88%   85-86
crates/a2a/a2a-redaction/src/signed_bundle/public_key.rs                                               36       2  94.44%   44-45
crates/a2a/a2a-redaction/src/signed_bundle/digest.rs                                                   26       0  100.00%
crates/a2a/a2a-redaction/src/signed_bundle/manifest.rs                                                 56       1  98.21%   82
crates/a2a/a2a-redaction/src/signed_bundle/signature.rs                                                30       3  90.00%   37-39
crates/platform/trogon-gateway/src/source/datadog/datadog_webhook_token.rs                              9       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/server.rs                                           108       0  100.00%
crates/a2a/a2a-auth-callout/src/permissions.rs                                                         85       0  100.00%
crates/a2a/a2a-auth-callout/src/caller_jwt_header.rs                                                   23       0  100.00%
crates/a2a/a2a-auth-callout/src/denial_reason.rs                                                       15       0  100.00%
crates/a2a/a2a-auth-callout/src/error.rs                                                                3       0  100.00%
crates/a2a/a2a-auth-callout/src/denial_category.rs                                                     30       0  100.00%
crates/a2a/a2a-auth-callout/src/test_support.rs                                                        20      20  0.00%    16-36
crates/a2a/a2a-auth-callout/src/denial_claims.rs                                                       68       0  100.00%
crates/a2a/a2a-auth-callout/src/subscriber.rs                                                          96      96  0.00%    23-174
crates/a2a/a2a-auth-callout/src/account_resolver.rs                                                    31       0  100.00%
crates/a2a/a2a-auth-callout/src/main.rs                                                                 1       1  0.00%    223
crates/a2a/a2a-auth-callout/src/dispatcher.rs                                                          34      13  61.76%   83-112
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/decider/trogon-decider-runtime/src/headers/header_map.rs                                        54       0  100.00%
crates/a2a/a2a-nats-stdio/src/io_loop.rs                                                               51       0  100.00%
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-nats-stdio/src/wire.rs                                                                  34       0  100.00%
crates/a2a/a2a-nats-stdio/src/runtime.rs                                                               21       0  100.00%
crates/a2a/a2a-redaction/src/wasm/mod.rs                                                              110       9  91.82%   132-134, 147-149, 162-164
crates/a2a/a2a-redaction/src/wasm/engine.rs                                                            62      11  82.26%   29-31, 63-64, 76-78, 82-84
crates/mcp/mcp-nats/src/nats/subjects/methods.rs                                                       61       0  100.00%
crates/platform/trogon-std/src/signal.rs                                                               22      12  45.45%   6-11, 18-25, 34
crates/platform/trogon-std/src/json.rs                                                                 23       0  100.00%
crates/platform/trogon-std/src/http.rs                                                                  8       0  100.00%
crates/platform/trogon-std/src/duration.rs                                                             19       0  100.00%
crates/platform/trogon-std/src/uuid.rs                                                                  3       0  100.00%
crates/platform/trogon-std/src/secret_string.rs                                                        13       0  100.00%
crates/platform/trogon-std/src/args.rs                                                                 12       9  25.00%   11-28
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/in_memory.rs                                                        30       0  100.00%
crates/platform/trogon-std/src/env/system.rs                                                           12       0  100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/wakeup.rs                                    99       1  98.99%   128
crates/decider/trogon-decider-runtime/src/snapshot/mod.rs                                               3       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/read_snapshot.rs                                     3       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/snapshot_type.rs                                    42       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/prompt.rs                                                               113       7  93.81%   154-160
crates/acp/acp-nats/src/agent/set_session_config_option.rs                                             16       0  100.00%
crates/acp/acp-nats/src/agent/close_session.rs                                                         16       0  100.00%
crates/acp/acp-nats/src/agent/set_session_mode.rs                                                      16       0  100.00%
crates/acp/acp-nats/src/agent/test_support.rs                                                         216       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/providers_list.rs                                                         5       0  100.00%
crates/acp/acp-nats/src/agent/initialize.rs                                                             6       0  100.00%
crates/acp/acp-nats/src/agent/list_sessions.rs                                                          5       0  100.00%
crates/acp/acp-nats/src/agent/logout.rs                                                                 5       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/fork_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/providers_disable.rs                                                      5       0  100.00%
crates/acp/acp-nats/src/agent/ext_notification.rs                                                      12       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/bridge.rs                                                               129       4  96.90%   105-108
crates/acp/acp-nats/src/agent/new_session.rs                                                            5       0  100.00%
crates/decider/trogon-decider-runtime/src/snapshot/codec/snapshot_payload_decode.rs                     3       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_encode_error.rs              3       0  100.00%
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/snapshot_envelope_decode_error.rs              6       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/stream.rs                                                        50       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/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/scheduler/trogon-scheduler-domain/src/commands/resume_schedule.rs                               34       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/state.rs                                         82       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/create_schedule.rs                               32       0  100.00%
crates/scheduler/trogon-scheduler-domain/src/commands/proto_wire.rs                                   138       1  99.28%   231
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/decider/trogon-decider/src/snapshot_cadence.rs                                                  15       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/registration.rs                                     82       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/server.rs                                           53       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/signature.rs                                         7       0  100.00%
crates/platform/trogon-gateway/src/source/telegram/config.rs                                           42       0  100.00%
crates/platform/trogon-gateway/src/source/sentry/signature.rs                                           6       0  100.00%
crates/platform/trogon-gateway/src/source/sentry/server.rs                                             69       0  100.00%
crates/platform/trogon-gateway/src/source/sentry/sentry_client_secret.rs                                9       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_list.rs                                                           12       0  100.00%
crates/a2a/a2a-nats/src/server/handler.rs                                                              39       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_cancel.rs                                                         12       0  100.00%
crates/a2a/a2a-nats/src/server/message_send.rs                                                         15       0  100.00%
crates/a2a/a2a-nats/src/server/push_list.rs                                                            12       0  100.00%
crates/a2a/a2a-nats/src/server/push_set.rs                                                             12       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_resubscribe.rs                                                    12       0  100.00%
crates/a2a/a2a-nats/src/server/wire.rs                                                                 34       4  88.24%   20-22, 29
crates/a2a/a2a-nats/src/server/test_support.rs                                                         81      25  69.14%   134-159
crates/a2a/a2a-nats/src/server/message_stream.rs                                                       65       6  90.77%   179-181, 189-191
crates/a2a/a2a-nats/src/server/push_get.rs                                                             12       0  100.00%
crates/a2a/a2a-nats/src/server/tasks_get.rs                                                            12       0  100.00%
crates/a2a/a2a-nats/src/server/agent_card.rs                                                           16       0  100.00%
crates/a2a/a2a-nats/src/server/dispatch.rs                                                             33       0  100.00%
crates/a2a/a2a-nats/src/server/push_delete.rs                                                          12       0  100.00%
crates/a2a/a2a-nats/src/server/bridge.rs                                                               65       0  100.00%
crates/acp/acp-nats-stdio/src/main.rs                                                                  51       8  84.31%   57, 93-100, 112
crates/acp/acp-nats-stdio/src/config.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/fork.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/delete.rs                                               15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/prompt.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/close.rs                                                15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/set_mode.rs                                             15       0  100.00%
crates/acp/acp-nats/src/nats/subjects/commands/load.rs                                                 15       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/platform/trogon-identity-types/src/act_chain.rs                                                 13       0  100.00%
crates/scheduler/trogon-scheduler/src/commands/record_schedule_occurrence.rs                          113       1  99.12%   183
crates/scheduler/trogon-scheduler/src/commands/schedule_next_occurrence.rs                             74       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/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/source/linear/server.rs                                             83       0  100.00%
crates/platform/trogon-nats/src/telemetry/messaging.rs                                                 37       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/initialize.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/subscriptions_listen.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/list_resource_templates.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/call_tool.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/cancelled.rs                                              12       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/list_resources.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/ping.rs                                                    9       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/task_status.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/discover.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/read_resource.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/list_prompts.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/complete.rs                                               12       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/read_model/schedule.rs                                   15       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/read_model/message.rs                                    77       0  100.00%
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-http/src/handlers/mod.rs                                                          169      12  92.90%   67, 82, 85-86, 116, 150, 160, 163-164, 177, 251-253
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/aauth/trogon-aauth-person/src/mint.rs                                                           56       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/server.rs                                                        353       0  100.00%
crates/aauth/trogon-aauth-person/src/store.rs                                                          21       0  100.00%
crates/aauth/trogon-aauth-person/src/subagent.rs                                                       10       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/login.rs                                                           3       0  100.00%
crates/aauth/trogon-aauth-person/src/mission.rs                                                        65       0  100.00%
crates/a2a/a2a-nats/src/client/error.rs                                                                14       0  100.00%
crates/a2a/a2a-nats/src/client/streaming.rs                                                            99       0  100.00%
crates/a2a/a2a-nats/src/client/wire.rs                                                                 16       0  100.00%
crates/a2a/a2a-nats/src/client/resubscribe.rs                                                          28       0  100.00%
crates/a2a/a2a-nats/src/client/handle.rs                                                              279       0  100.00%
crates/a2a/a2a-nats/src/client/validated.rs                                                            13       0  100.00%
crates/a2a/a2a-nats/src/client/unary.rs                                                                52       0  100.00%
crates/a2a/a2a-nats/src/client/gateway_headers.rs                                                      19       0  100.00%
crates/a2a/a2a-nats/src/client/event_stream.rs                                                        103       0  100.00%
crates/ard/ard-registry/src/router.rs                                                                  33       0  100.00%
crates/ard/ard-registry/src/search_filters.rs                                                          28       0  100.00%
crates/ard/ard-registry/src/http_error.rs                                                              17       0  100.00%
crates/ard/ard-registry/src/search_request.rs                                                          32       1  96.88%   43
crates/ard/ard-registry/src/explore_request.rs                                                         30       0  100.00%
crates/ard/ard-registry/src/source_url.rs                                                              26       1  96.15%   30
crates/ard/ard-registry/src/page_token.rs                                                              14       0  100.00%
crates/ard/ard-registry/src/extract.rs                                                                 12       0  100.00%
crates/ard/ard-registry/src/facet_field.rs                                                             13       0  100.00%
crates/ard/ard-registry/src/list_agents_request.rs                                                     21       0  100.00%
crates/ard/ard-registry/src/filters.rs                                                                 31       0  100.00%
crates/ard/ard-registry/src/lexical_rank.rs                                                            55       2  96.36%   15, 64
crates/ard/ard-registry/src/registry.rs                                                               134       3  97.76%   78, 174, 183
crates/ard/ard-registry/src/registry_config.rs                                                         16       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/consumers.rs                                                         19       0  100.00%
crates/acp/acp-nats/src/jetstream/provision.rs                                                         13       0  100.00%
crates/acp/acp-nats/src/error.rs                                                                       31       0  100.00%
crates/acp/acp-nats/src/client_proxy.rs                                                                67       1  98.51%   57
crates/acp/acp-nats/src/agent_handler.rs                                                               28       0  100.00%
crates/acp/acp-nats/src/ext_method_name.rs                                                             18       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/acp/acp-nats/src/acp_prefix.rs                                                                  13       0  100.00%
crates/acp/acp-nats/src/in_flight_slot_guard.rs                                                         9       0  100.00%
crates/acp/acp-nats/src/req_id.rs                                                                      21       0  100.00%
crates/acp/acp-nats/src/wire.rs                                                                        86       1  98.84%   112
crates/platform/trogon-gateway/src/source/notion/verification_token.rs                                 46       0  100.00%
crates/platform/trogon-gateway/src/source/notion/notion_verification_token.rs                           9       0  100.00%
crates/platform/trogon-gateway/src/source/notion/notion_event_type.rs                                  20       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/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/decider/trogon-decider-runtime/src/event/event_id.rs                                            32       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/evaluator.rs                                      158      13  91.77%   26-28, 146, 195-197, 267-271, 294
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/loader.rs                                          85       9  89.41%   93-95, 97-99, 124-126
crates/a2a/a2a-nats-http/src/main.rs                                                                    1       0  100.00%
crates/a2a/a2a-nats-http/src/router.rs                                                                 55      13  76.36%   60-63, 69-79
crates/a2a/a2a-nats-http/src/headers.rs                                                               126       1  99.21%   152
crates/a2a/a2a-nats-http/src/runtime.rs                                                                 8       8  0.00%    54-124
crates/a2a/a2a-nats-http/src/sse.rs                                                                    30      14  53.33%   17-35, 45-46, 49-52
crates/a2a/a2a-nats-http/src/wire.rs                                                                   35       0  100.00%
crates/a2a/a2a-nats-http/src/rest.rs                                                                  304       2  99.34%   120-121
crates/scheduler/trogon-scheduler/src/queries/get_schedule.rs                                           3       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/decode.rs                                                95       0  100.00%
crates/scheduler/trogon-scheduler/src/queries/schedule_id.rs                                           28       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/bridge_adapter.rs                                                 97       0  100.00%
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/test_encode.rs                                                    59       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/nkey_public.rs                                                    85       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/xkey_public.rs                                                    23       0  100.00%
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_seed.rs                                                      20       0  100.00%
crates/a2a/a2a-auth-callout/src/wire/server_auth_request_envelope.rs                                   68       1  98.53%   64
crates/decider/trogon-decider-wit/src/lib.rs                                                           53       1  98.11%   35
crates/a2a/a2a-nats/src/jsonrpc.rs                                                                     19       0  100.00%
crates/a2a/a2a-nats/src/agent_id.rs                                                                    21       0  100.00%
crates/a2a/a2a-nats/src/context_id.rs                                                                  22       0  100.00%
crates/a2a/a2a-nats/src/req_id.rs                                                                      26       0  100.00%
crates/a2a/a2a-nats/src/task_event.rs                                                                  12       0  100.00%
crates/a2a/a2a-nats/src/a2a_prefix.rs                                                                  16       0  100.00%
crates/a2a/a2a-nats/src/wire.rs                                                                        59       2  96.61%   85, 100
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/gateway_ingress.rs                                                            151      16  89.40%   166, 174-180, 219, 235-241
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_integration_id.rs                                            28       2  92.86%   58, 60
crates/platform/trogon-gateway/src/streams.rs                                                           7       0  100.00%
crates/platform/trogon-gateway/src/source_plugin.rs                                                   288       3  98.96%   83, 140-141
crates/platform/trogon-gateway/src/source_status.rs                                                    12       0  100.00%
crates/platform/trogon-gateway/src/main.rs                                                             26       0  100.00%
crates/mcp/mcp-nats/src/mcp_prefix.rs                                                                  15       0  100.00%
crates/mcp/mcp-nats/src/mcp_transport_headers.rs                                                       53       0  100.00%
crates/mcp/mcp-nats/src/wire.rs                                                                        40       1  97.50%   49
crates/mcp/mcp-nats/src/transport.rs                                                                  190       6  96.84%   246, 258-260, 313-314
crates/mcp/mcp-nats/src/server.rs                                                                      12       0  100.00%
crates/mcp/mcp-nats/src/mcp_peer_id.rs                                                                 15       0  100.00%
crates/mcp/mcp-nats/src/config.rs                                                                      59       0  100.00%
crates/mcp/mcp-nats/src/client.rs                                                                      12       0  100.00%
crates/mcp/mcp-nats/src/jsonrpc.rs                                                                      5       0  100.00%
crates/ard/ard-catalog/src/media_type.rs                                                               20       0  100.00%
crates/ard/ard-catalog/src/catalog_entry.rs                                                           107       0  100.00%
crates/ard/ard-catalog/src/ard_identifier.rs                                                           54       0  100.00%
crates/ard/ard-catalog/src/catalog_host.rs                                                             26       0  100.00%
crates/ard/ard-catalog/src/catalog_manifest_wire.rs                                                     3       0  100.00%
crates/ard/ard-catalog/src/catalog_entry_wire.rs                                                        3       0  100.00%
crates/ard/ard-catalog/src/catalog_manifest_schema.rs                                                  65       4  93.85%   105-106, 108-109
crates/ard/ard-catalog/src/display_name.rs                                                             13       0  100.00%
crates/ard/ard-catalog/src/ard_storage_key.rs                                                          10       0  100.00%
crates/ard/ard-catalog/src/federation_mode.rs                                                           3       0  100.00%
crates/ard/ard-catalog/src/catalog_host_wire.rs                                                         6       0  100.00%
crates/ard/ard-catalog/src/catalog_manifest.rs                                                         44       0  100.00%
crates/ard/ard-catalog/src/trust_manifest.rs                                                           45       1  97.78%   35
crates/ard/ard-catalog/src/metadata.rs                                                                 14       0  100.00%
crates/ard/ard-catalog/src/url_or_data.rs                                                              20       0  100.00%
crates/ard/ard-catalog/src/registry_error_wire.rs                                                       8       0  100.00%
crates/ard/ard-catalog/src/representative_queries.rs                                                   18       0  100.00%
crates/aauth/trogon-aauth-as/src/test_support.rs                                                      122       0  100.00%
crates/aauth/trogon-aauth-as/src/http.rs                                                               82       0  100.00%
crates/aauth/trogon-aauth-as/src/server.rs                                                            139       0  100.00%
crates/aauth/trogon-aauth-as/src/mint.rs                                                               53       0  100.00%
crates/aauth/trogon-aauth-as/src/trust.rs                                                              60       0  100.00%
crates/aauth/trogon-aauth-as/src/policy.rs                                                             38       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/verify.rs                                                             96       0  100.00%
crates/platform/trogon-service-config/src/lib.rs                                                       38       0  100.00%
crates/a2a/a2a-bridge/src/auth/callout_mint.rs                                                         49       1  97.96%   94
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/platform/trogonai-proto/src/convert.rs                                                          53       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/trogon-std/src/telemetry/http.rs                                                       58       0  100.00%
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/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_schedule.rs                35       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_status.rs                   6       0  100.00%
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/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/decider/trogon-decider-guest-macros/src/lib.rs                                                 117      20  82.91%   14-19, 29-40, 423, 427
crates/scheduler/trogon-scheduler-domain/src/subject.rs                                                26       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                                                   156      13  91.67%   80-81, 177-178, 221-225, 228-231
crates/a2a/a2a-auth-callout/src/credentials/oidc.rs                                                   215       0  100.00%
crates/channel/channel-bridge-telegram/src/pipeline.rs                                                154       0  100.00%
crates/channel/channel-bridge-telegram/src/config.rs                                                   65       0  100.00%
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/parse.rs                                                    25       0  100.00%
crates/channel/channel-bridge-telegram/src/render.rs                                                   43       0  100.00%
crates/aauth/trogon-aauth-verify/src/challenge.rs                                                      77       0  100.00%
crates/aauth/trogon-aauth-verify/src/mission.rs                                                        33       0  100.00%
crates/aauth/trogon-aauth-verify/src/nats_pop.rs                                                      125       1  99.20%   313
crates/aauth/trogon-aauth-verify/src/time_source.rs                                                    10       0  100.00%
crates/aauth/trogon-aauth-verify/src/http_pop.rs                                                      301       0  100.00%
crates/aauth/trogon-aauth-verify/src/jwks.rs                                                           15       0  100.00%
crates/aauth/trogon-aauth-verify/src/token.rs                                                         206       1  99.51%   183
crates/aauth/trogon-aauth-verify/src/delegation.rs                                                     53       0  100.00%
crates/aauth/trogon-aauth-verify/src/replay.rs                                                         26       0  100.00%
crates/aauth/trogon-aauth-verify/src/upstream.rs                                                       20       0  100.00%
crates/aauth/trogon-aauth-verify/src/jkt.rs                                                            33       0  100.00%
crates/aauth/trogon-aauth-verify/src/jwks_http.rs                                                     144       0  100.00%
crates/aauth/trogon-aauth-verify/src/jwks_cache.rs                                                     39       0  100.00%
crates/aauth/trogon-aauth-verify/src/test_support.rs                                                   86       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/session_update.rs                                     12       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_output.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/fs_read_text_file.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/terminal_wait_for_exit.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_request_permission.rs                         12       0  100.00%
crates/acp/acp-nats/src/nats/extensions.rs                                                              3       0  100.00%
crates/acp/acp-nats/src/nats/mod.rs                                                                    61      13  78.69%   24-35, 77
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/parsing.rs                                                               145       0  100.00%
crates/platform/trogon-std/src/dirs/system.rs                                                          39       0  100.00%
crates/platform/trogon-std/src/dirs/fixed.rs                                                           32       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/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                                                   19       1  94.74%   36
crates/platform/trogon-telemetry/src/metric.rs                                                         18       1  94.44%   30
crates/platform/trogon-telemetry/src/trace.rs                                                          15       1  93.33%   24
crates/aauth/trogon-aauth-person/src/http/mod.rs                                                      213       0  100.00%
crates/decider/trogon-decider/src/testing/codec.rs                                                     14       0  100.00%
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/streaming.rs                                                        38       0  100.00%
crates/a2a/a2a-gateway/src/runtime/env.rs                                                              58       0  100.00%
crates/a2a/a2a-gateway/src/runtime/aauth_env.rs                                                       162       0  100.00%
crates/a2a/a2a-gateway/src/runtime/reply.rs                                                             5       0  100.00%
crates/a2a/a2a-gateway/src/runtime/tier1_denial.rs                                                     34       1  97.06%   60
crates/a2a/a2a-gateway/src/runtime/audit_publish.rs                                                    16       0  100.00%
crates/a2a/a2a-gateway/src/runtime/tier1.rs                                                            30       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/channel/trogon-channel/src/command_trigger_input.rs                                             12       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_trigger.rs                                                   13       0  100.00%
crates/channel/trogon-channel/src/command.rs                                                           33       0  100.00%
crates/channel/trogon-channel/src/endpoint.rs                                                          64       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/agent_port.rs                                                        26       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/decider/trogon-decider-wasm-runtime/src/command_spec.rs                                         32       1  96.88%   57
crates/decider/trogon-decider-wasm-runtime/src/module.rs                                               74       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_doubles.rs                                         73       5  93.15%   64, 85-87, 90
crates/decider/trogon-decider-wasm-runtime/src/command_type.rs                                         31       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/test_fixture.rs                                          7       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/engine.rs                                              145       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/execution.rs                                           969      50  94.84%   142, 515-521, 683, 685, 766, 1066, 1080-1082, 1096, 1109, 1113, 1166, 1227, 1274-1278, 1326-1330, 1369-1373, 1432, 1437-1441, 1513-1517, 1559-1561, 1631, 1652
crates/decider/trogon-decider-wasm-runtime/src/module_name.rs                                          34       0  100.00%
crates/decider/trogon-decider-wasm-runtime/src/module_version.rs                                       34       0  100.00%
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/platform/trogonai-proto/src/session/sessions/codec.rs                                          152       0  100.00%
crates/platform/trogonai-proto/src/session/sessions/validate.rs                                       740       0  100.00%
crates/a2a/a2a-identity-types/src/principal.rs                                                         19       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-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/a2a/a2a-gateway/src/policy/tier2_cel/evaluator.rs                                              142       0  100.00%
crates/a2a/a2a-nats/src/jetstream/provision.rs                                                         16       0  100.00%
crates/a2a/a2a-nats/src/jetstream/consumers.rs                                                         57       0  100.00%
crates/a2a/a2a-nats/src/jetstream/stream_options.rs                                                    50       0  100.00%
crates/a2a/a2a-nats/src/jetstream/streams.rs                                                            9       0  100.00%
crates/a2a/a2a-gateway/src/agent_card_surface.rs                                                        3       0  100.00%
crates/a2a/a2a-gateway/src/audit_ingress.rs                                                           110       0  100.00%
crates/a2a/a2a-gateway/src/gw_pull_backpressure.rs                                                    232       3  98.71%   517, 721, 734
crates/a2a/a2a-gateway/src/jwt_caller_identity.rs                                                     151       4  97.35%   164-168, 181-185
crates/a2a/a2a-gateway/src/gw_ingress_stream.rs                                                       146       4  97.26%   312-314, 578
crates/a2a/a2a-gateway/src/runtime.rs                                                                  11       0  100.00%
crates/a2a/a2a-gateway/src/config.rs                                                                   57       0  100.00%
crates/a2a/a2a-gateway/src/lib.rs                                                                       3       0  100.00%
crates/a2a/a2a-gateway/src/main.rs                                                                      1       0  100.00%
crates/a2a/a2a-gateway/src/aauth.rs                                                                   288       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/platform/trogon-identity-types/src/aauth/login.rs                                               78       0  100.00%
crates/platform/trogon-identity-types/src/aauth/mission.rs                                             33       0  100.00%
crates/platform/trogon-identity-types/src/aauth/headers.rs                                             47       0  100.00%
crates/platform/trogon-identity-types/src/aauth/person_server.rs                                       23       0  100.00%
crates/platform/trogon-identity-types/src/aauth/mod.rs                                                104       0  100.00%
crates/platform/trogon-identity-types/src/aauth/error.rs                                               14       0  100.00%
crates/a2a/a2a-nats/src/catalog/agent_view.rs                                                          47       0  100.00%
crates/a2a/a2a-nats/src/catalog/nats_kv.rs                                                              8       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/a2a/a2a-nats/src/catalog/watch.rs                                                               18       0  100.00%
crates/a2a/a2a-nats/src/catalog/registrar.rs                                                           52       0  100.00%
crates/a2a/a2a-nats/src/catalog/store.rs                                                              117       0  100.00%
crates/mcp/mcp-nats/src/telemetry/transport.rs                                                          6       0  100.00%
crates/platform/trogon-gateway/src/source/incidentio/signature.rs                                       8       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/incidentio_signing_secret.rs                      22       0  100.00%
crates/platform/trogonai-proto/src/agents/agents/codec.rs                                              30       0  100.00%
crates/a2a/a2a-bridge/src/auth.rs                                                                      47      15  68.09%   78-99, 148
crates/a2a/a2a-bridge/src/identity.rs                                                                  63       0  100.00%
crates/a2a/a2a-bridge/src/main.rs                                                                       1       1  0.00%    199
crates/a2a/a2a-bridge/src/outbound.rs                                                                  70       7  90.00%   126, 197-209
crates/a2a/a2a-bridge/src/nats_transport_harness.rs                                                    47       0  100.00%
crates/a2a/a2a-bridge/src/inbound.rs                                                                  373      89  76.14%   112-116, 139-141, 198-238, 327-451, 514, 529, 674, 758-780, 819-823, 832
crates/platform/jsonrpc-nats/src/id.rs                                                                 68      12  82.35%   73-74, 97-98, 100-101, 114-115, 117-119, 128
crates/platform/jsonrpc-nats/src/transport.rs                                                         102       4  96.08%   26, 30-31, 121
crates/platform/jsonrpc-nats/src/message.rs                                                            11       3  72.73%   37-39
crates/decider/trogon-decider-runtime/src/stream/append_stream.rs                                       9       4  55.56%   90-93
crates/decider/trogon-decider-runtime/src/stream/read_stream.rs                                        15       0  100.00%
crates/decider/trogon-decider-runtime/src/stream/stream_position.rs                                    26       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/codec.rs                        318      17  94.65%   340-341, 361-362, 373-377, 405-406, 412-413, 442-443, 480, 485-487
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/failure.rs                       27       0  100.00%
crates/a2a/a2a-redaction/src/bin/sign-bundle.rs                                                         1       1  0.00%    163
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/request.rs                   221       2  99.10%   255, 260
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/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/checkpoints/codec/twin.rs                    96       0  100.00%
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/client.rs                                          29      15  48.28%   43-69, 97-99, 108-117
crates/a2a/a2a-nats/src/catalog/import_gate/spicedb/mod.rs                                            108       0  100.00%
crates/acp/acp-nats-agent/src/connection.rs                                                           501       1  99.80%   754
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/allowed_host.rs                                                         52       0  100.00%
crates/mcp/mcp-nats-server/src/main.rs                                                                  1       1  0.00%    67
crates/mcp/mcp-nats-server/src/config.rs                                                               58       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/manifest.rs                                          69       3  95.65%   112, 121, 132
crates/a2a/a2a-gateway/src/policy/tier3_redaction/decision.rs                                          22       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/rewrite.rs                                           49       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-gateway/src/policy/tier3_redaction/context.rs                                           40       0  100.00%
crates/a2a/a2a-gateway/src/policy/tier3_redaction/mod.rs                                               33       2  93.94%   54, 58
crates/a2a/a2a-gateway/src/policy/tier3_redaction/json_path.rs                                         84       5  94.05%   37, 49, 85, 104, 115
crates/a2a/a2a-auth-callout/src/jwt/user_jwt_subject.rs                                                12       0  100.00%
crates/a2a/a2a-auth-callout/src/jwt/mod.rs                                                            239       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/nats_permission_claims.rs                                          10       0  100.00%
crates/a2a/a2a-nats/src/nats/subjects/tasks/events.rs                                                  12       0  100.00%
crates/platform/trogon-gateway/src/source/microsoft_graph/client_state.rs                              14       0  100.00%
crates/platform/trogon-gateway/src/source/microsoft_graph/server.rs                                    73       0  100.00%
crates/decider/trogon-decider-nats/src/stream_store.rs                                                310      24  92.26%   66-68, 145-196, 388, 416-417, 420, 436-440, 585-586, 644, 657-661
crates/decider/trogon-decider-nats/src/projector.rs                                                    88       0  100.00%
crates/decider/trogon-decider-nats/src/store.rs                                                        73      45  38.36%   103-107, 162-228
crates/decider/trogon-decider-nats/src/retention.rs                                                   132      19  85.61%   81-83, 300-321
crates/decider/trogon-decider-nats/src/provision.rs                                                   122      21  82.79%   261, 266-274, 294, 299-310
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/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/session_new.rs                                             6       0  100.00%
crates/acp/acp-nats/src/nats/subjects/global/providers_list.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/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/logout.rs                                                  6       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/providers_disable.rs                                       6       0  100.00%
crates/a2a/a2a-nats/src/push/push_idempotency_key.rs                                                   43       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.rs                                                6       0  100.00%
crates/a2a/a2a-nats/src/push/nats_push_subject.rs                                                      12       0  100.00%
crates/a2a/a2a-nats/src/push/push_notification_target.rs                                               32       0  100.00%
crates/a2a/a2a-nats/src/push/dlq.rs                                                                    56       0  100.00%
crates/a2a/a2a-nats/src/push/dispatch_error.rs                                                         24       0  100.00%
crates/a2a/a2a-nats/src/push/dlq_dedup.rs                                                              51       1  98.04%   79
crates/a2a/a2a-nats/src/push/push_payload.rs                                                           18       0  100.00%
crates/a2a/a2a-nats/src/push/push_delivery_semantics_registry.rs                                       17       0  100.00%
crates/a2a/a2a-nats/src/push/authentication_header.rs                                                  31       0  100.00%
crates/a2a/a2a-nats/src/push/terminal_push_task_state.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/status_transition_id.rs                                                   15       0  100.00%
crates/a2a/a2a-nats/src/push/caller_id.rs                                                              41       0  100.00%
crates/a2a/a2a-nats/src/push/push_notification_config_id.rs                                            17       0  100.00%
crates/a2a/a2a-nats/src/push/target.rs                                                                 19       0  100.00%
crates/platform/trogon-nats/src/auth.rs                                                                45       0  100.00%
crates/platform/trogon-nats/src/connect.rs                                                             26       6  76.92%   42-47
crates/platform/trogon-nats/src/server_info.rs                                                         21       3  85.71%   19-21
crates/platform/trogon-nats/src/test_support.rs                                                        28       0  100.00%
crates/platform/trogon-nats/src/messaging.rs                                                          168       2  98.81%   146, 156
crates/platform/trogon-nats/src/token.rs                                                                6       0  100.00%
crates/platform/trogon-nats/src/client.rs                                                              22      22  0.00%    50-86
crates/platform/trogon-nats/src/mocks.rs                                                              246       0  100.00%
crates/platform/trogon-nats/src/nats_token.rs                                                          56       0  100.00%
crates/platform/trogon-nats/src/subject_conformance.rs                                                107       0  100.00%
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%
cli/trogon-decider-publish/src/main.rs                                                                 24      24  0.00%    39-65
cli/trogon-decider-publish/src/lib.rs                                                                  12      12  0.00%    43-63
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/scheduler/trogon-scheduler/src/telemetry/trace.rs                                               20       0  100.00%
crates/scheduler/trogon-scheduler/src/telemetry/metrics.rs                                             27       0  100.00%
crates/ard/ard-registry/src/bin/ard-registry-demo/main.rs                                              67      20  70.15%   13-35
crates/platform/trogon-gateway/src/source/github/server.rs                                             50       0  100.00%
crates/platform/trogon-gateway/src/source/github/config.rs                                              9       0  100.00%
crates/platform/trogon-gateway/src/source/github/signature.rs                                           9       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_client.rs                                       6       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/one_server.rs                                       9       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/create_elicitation.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/list_roots.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/mcp/mcp-nats/src/nats/subjects/client/create_message.rs                                         12       0  100.00%
crates/mcp/mcp-nats/src/nats/subjects/client/roots_list_changed.rs                                     12       0  100.00%
crates/a2a/a2a-redaction/src/a2a_method.rs                                                             41       0  100.00%
crates/a2a/a2a-redaction/src/redactor.rs                                                               32       0  100.00%
crates/a2a/a2a-redaction/src/skill_id.rs                                                               26       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/wasm_bundle_path.rs                                                       18       0  100.00%
crates/a2a/a2a-redaction/src/tier3_sentinel.rs                                                         12       0  100.00%
crates/platform/trogon-gateway/src/source/slack/config.rs                                              32       0  100.00%
crates/platform/trogon-gateway/src/source/slack/signature.rs                                           17       0  100.00%
crates/platform/trogon-gateway/src/source/slack/socket_mode.rs                                        139       0  100.00%
crates/platform/trogon-gateway/src/source/slack/server.rs                                             272       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/mod.rs                                                         16       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/jetstream.rs                                                   45       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/http.rs                                                        19       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/nats.rs                                                        37       0  100.00%
crates/a2a/a2a-nats/src/push/dispatcher/composite.rs                                                   15       0  100.00%
crates/a2a/a2a-pack/src/agent_card_schema.rs                                                           40       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/scheduler/trogon-scheduler/src/processor/execution/worker/testkit.rs                           315       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/processor.rs                         318      10  96.86%   442-443, 449, 519-521, 553-556
crates/scheduler/trogon-scheduler/src/processor/execution/worker/consumer.rs                           77       0  100.00%
crates/platform/trogon-std/src/time/mock.rs                                                            32       0  100.00%
crates/platform/trogon-std/src/time/system.rs                                                           9       0  100.00%
crates/acp/acp-nats/src/nats/subjects/stream.rs                                                        60       0  100.00%
crates/platform/trogon-gateway/src/source/standard_webhooks.rs                                        138       0  100.00%
crates/ard/ard-nats/src/catalog_event.rs                                                               71       0  100.00%
crates/ard/ard-nats/src/catalog_subject.rs                                                             14       3  78.57%   16-18
crates/ard/ard-nats/src/memory_catalog_store.rs                                                        32       0  100.00%
crates/ard/ard-nats/src/store.rs                                                                        3       0  100.00%
crates/ard/ard-nats/src/catalog_index.rs                                                               82       2  97.56%   37, 104
crates/a2a/a2a-nats/src/audit/envelope.rs                                                              57       0  100.00%
crates/a2a/a2a-nats/src/audit/emitter.rs                                                               56       0  100.00%
crates/a2a/a2a-nats/src/audit/task_lifecycle.rs                                                        17       0  100.00%
crates/scheduler/trogon-scheduler/src/commands/domain/recurrence.rs                                    78       1  98.72%   99
crates/scheduler/trogon-scheduler/src/commands/domain/schedule_occurrence_sequence.rs                  16       0  100.00%
TOTAL                                                                                               42727    2037  95.23%

Diff against main

Filename                                                                         Stmts    Miss  Cover
-----------------------------------------------------------------------------  -------  ------  --------
crates/platform/trogon-nats/src/jetstream/processor.rs                            +109     +12  +88.99%
crates/scheduler/trogon-scheduler/src/error.rs                                      +2      +2  -2.01%
crates/decider/trogon-decider-runtime/src/execution.rs                            +156      +2  -0.16%
crates/decider/trogon-decider-runtime/src/replay_bounds.rs                         +55      +6  +89.09%
crates/decider/trogon-decider-runtime/src/memory.rs                                 +5      +5  -4.37%
crates/decider/trogon-decider-runtime/src/admission.rs                             +62     +12  +80.65%
crates/decider/trogon-decider-runtime/src/replay_chunk_size.rs                     +26       0  +100.00%
crates/decider/trogon-decider-runtime/src/conflict_retry_limit.rs                  +26       0  +100.00%
crates/decider/trogon-decider-runtime/src/authorization.rs                        +195     +12  +93.85%
crates/decider/trogon-decider-runtime/src/command_id.rs                            +38       0  +100.00%
crates/decider/trogon-decider-nats-server/src/endpoint.rs                          +23       0  +100.00%
crates/decider/trogon-decider-nats-server/src/main.rs                               +1      +1  +100.00%
crates/decider/trogon-decider-nats-server/src/event_subject.rs                     +35     +11  +68.57%
crates/decider/trogon-decider-nats-server/src/outcome.rs                           +96      +2  +97.92%
crates/decider/trogon-decider-nats-server/src/module_source.rs                     +90     +72  +20.00%
crates/decider/trogon-decider-nats-server/src/request.rs                           +47       0  +100.00%
crates/decider/trogon-decider-nats-server/src/module_reference.rs                  +35       0  +100.00%
crates/decider/trogon-decider-nats-server/src/config.rs                           +118       0  +100.00%
crates/decider/trogon-decider-nats-server/src/runtime.rs                          +191    +133  +30.37%
crates/decider/trogon-decider-nats-server/src/status.rs                           +114       0  +100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/wakeup.rs                 +8       0  +0.09%
crates/decider/trogon-decider/src/snapshot_cadence.rs                              +15       0  +100.00%
crates/decider/trogon-decider-guest-macros/src/lib.rs                              -19      -8  +3.49%
crates/platform/trogon-telemetry/src/service_name.rs                                +1      +1  -5.26%
crates/decider/trogon-decider-wasm-runtime/src/command_spec.rs                     +20      +1  -3.12%
crates/decider/trogon-decider-wasm-runtime/src/module.rs                            +3       0  +100.00%
crates/decider/trogon-decider-wasm-runtime/src/execution.rs                       +213     +19  -1.06%
crates/decider/trogon-decider-runtime/src/stream/append_stream.rs                   +4      +4  -44.44%
crates/decider/trogon-decider-nats/src/stream_store.rs                             +37      +6  -1.15%
crates/decider/trogon-decider-nats/src/projector.rs                                  0      -3  +3.41%
crates/decider/trogon-decider-nats/src/retention.rs                               +132     +19  +85.61%
cli/trogon-decider-publish/src/main.rs                                             +24     +24  +100.00%
cli/trogon-decider-publish/src/lib.rs                                              +12     +12  +100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/worker/testkit.rs         +3       0  +100.00%
crates/scheduler/trogon-scheduler/src/processor/execution/worker/processor.rs      +11       0  +0.11%
TOTAL                                                                            +1888    +345  -0.61%

Results for commit: 595e067

Minimum allowed coverage is 95%

♻️ This comment has been updated with latest results

…repo coverage floor

The audit landed the host, the identity types and the startup path without
exercising them, so a regression in an authorization identifier or in the
configuration a host refuses to start on would have shipped unnoticed.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis yordis added the rust:coverage-baseline-reset Relax Rust coverage gate to establish a new baseline label Aug 17, 2026
yordis added 9 commits August 17, 2026 09:59
…s a message rewording

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

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…0016 already defines

A hand-rolled subject scheme and a five-arm outcome union meant no generated
client could reach the decider and no micro-aware intermediate could tell a
working host from a broken one.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…ead of trusting that someone wrote it

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…pending on the decider adapter

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…r than let them drift

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
… answer it held

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…er failure already uses

A caller had to decode a second error union inside the response to learn a
command was refused, while every other outcome was already legible from the
reply's status headers. One failure channel means one thing to check.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
…essage inside it

The response type already means the command was decided and its events
appended, so a wrapper carrying that same meaning gave a caller one more
envelope to open for nothing.

Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis merged commit bc4499a into main Aug 19, 2026
23 checks passed
@yordis
yordis deleted the yordis/decider-todo branch August 19, 2026 18:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rust:coverage-baseline-reset Relax Rust coverage gate to establish a new baseline

Projects

None yet

1 participant