Skip to content

feat(trogon-decider-runtime): add execution module#171

Merged
yordis merged 1 commit into
mainfrom
yordis/remove-snapshotting
May 20, 2026
Merged

feat(trogon-decider-runtime): add execution module#171
yordis merged 1 commit into
mainfrom
yordis/remove-snapshotting

Conversation

@yordis

@yordis yordis commented May 20, 2026

Copy link
Copy Markdown
Member
  • Give decider users a runtime-owned command execution boundary for applying decisions consistently.

@cursor

cursor Bot commented May 20, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Introduces a new public execution API that orchestrates stream reads, decision evaluation, event encoding, and appends; mistakes here could affect correctness of optimistic concurrency and error propagation across backends.

Overview
Adds a new execution module that provides CommandExecution::execute() to run a single Decider command against a stream: it loads history from ReadFrom::Beginning, replays it into state, evaluates the decision, encodes emitted domain events into stored Event envelopes (with configurable headers and event-id generation), and appends them with an explicit StreamWritePrecondition.

Defines a phase-aware CommandError/CommandResult taxonomy so callers can distinguish domain (Decide/Evolve), codec (EventType/EventEncode/DecodeEvent), and storage (ReadStream/Append) failures, and updates lib.rs to export the new API and document its semantics.

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

@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Rate limit exceeded

@yordis has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 48 minutes and 36 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 8159ed62-c31f-4d69-8c37-fb2347beafea

📥 Commits

Reviewing files that changed from the base of the PR and between b3ab939 and 1b414aa.

📒 Files selected for processing (2)
  • rsworkspace/crates/trogon-decider-runtime/src/execution.rs
  • rsworkspace/crates/trogon-decider-runtime/src/lib.rs

Walkthrough

This PR introduces a new execution module that implements command processing orchestration for the decider-based event-sourced runtime. CommandExecution reads stream history, replays events to evolve state, evaluates decisions, encodes events, and appends them with precondition handling. The module defines comprehensive error types by execution phase and includes extensive test coverage.

Changes

Command Execution Orchestration

Layer / File(s) Summary
Command error taxonomy and conversions
src/execution.rs (lines 1–201)
CommandError enum captures seven execution phases (decide, evolve, read, append, event type, encode, decode). From conversions normalize internal wrapper types; Display and Error trait impls propagate source errors and format messages.
Execution result types
src/execution.rs (lines 19–45)
ExecutionResult holds stream position, emitted domain events, and evolved state. CommandResult type alias wraps the result in the phase-specific CommandError taxonomy.
CommandExecution executor struct and fluent configuration
src/execution.rs (lines 202–251)
Builder-style API with constructor and fluent methods: with_write_precondition, with_headers, with_event_id_generator. Lifetime and generic parameters reference event store, command, and ID generator.
Core execution: read, replay, decide, encode, append
src/execution.rs (lines 253–373)
execute() reads stream from beginning, replays events via private helper to evolve state, calls append_decision() to evaluate the decider and emit new events with per-event IDs (from NowV7 or inline EventId), encodes event type/payload, and appends with resolved WritePrecondition logic (explicit override or fallback to current position). Returns ExecutionResult with final position, events, and state.
Test doubles and fixtures
src/execution.rs (lines 374–789)
FakeRuntime implements StreamRead/StreamAppend. Test types implement decider/event traits. Helpers construct encoded/invalid stream events and test positions.
Comprehensive test coverage
src/execution.rs (lines 790–1270)
End-to-end execution (multi-step decisions), header/event-id propagation, error strings/sources, phase-specific error capture, write precondition selection/override, and assertion that append is skipped before failures occur.
Crate module and public exports
src/lib.rs (lines 8–52)
Module documentation updated to include deployment topology avoidance. New execution module declared and CommandError, CommandExecution, CommandResult, ExecutionResult re-exported at crate root. FromEntriesError removed from top-level exports.

Sequence Diagram

sequenceDiagram
    participant Client
    participant CommandExecution
    participant EventStore
    participant Decider
    Client->>CommandExecution: execute()
    CommandExecution->>EventStore: read_stream(from beginning)
    EventStore-->>CommandExecution: stream events
    CommandExecution->>CommandExecution: replay events to evolve state
    CommandExecution->>Decider: evaluate_decision(state, command)
    Decider-->>CommandExecution: decision events + evolved state
    CommandExecution->>CommandExecution: encode events with IDs
    CommandExecution->>EventStore: append_events(encoded, precondition)
    EventStore-->>CommandExecution: new stream position
    CommandExecution-->>Client: ExecutionResult(position, events, state)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

The PR introduces 1,270 lines of new code with dense error handling, execution orchestration logic, and comprehensive test coverage. Reviewers must understand the error taxonomy, execution flow across multiple phases (read, replay, decide, encode, append), precondition resolution logic, and test assertions across decision/evolution/encoding/decoding failure modes.

Possibly related PRs

  • TrogonStack/trogonai#164: This PR builds directly on the typed decider primitives (Decider, Decision, Events, WritePrecondition) introduced in that PR, implementing the command execution orchestration layer.

Poem

🐰 A runtime that chooses not to choose—
Read, replay, decide, encode, append in sequence's reuse,
No topology imposed, no backend preferred,
Just phases mapped to errors precisely, every word!
Events flow through, state evolves clean,
The executor orchestrates the scene. 🎪

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 37.50% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main change: adding a new execution module to the trogon-decider-runtime crate, as evidenced by the new execution.rs file and lib.rs module declaration.
Description check ✅ Passed The description is relevant to the changeset, describing the purpose of providing a command execution boundary for applying decisions consistently, which aligns with the ExecutionResult, CommandResult, CommandError, and CommandExecution types added.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch yordis/remove-snapshotting

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 and usage tips.

@github-actions

github-actions Bot commented May 20, 2026

Copy link
Copy Markdown

badge

Code Coverage Summary

Details
Filename                                                                      Stmts    Miss  Cover    Missing
--------------------------------------------------------------------------  -------  ------  -------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
crates/acp-nats/src/nats/mod.rs                                                  23       0  100.00%
crates/acp-nats/src/nats/parsing.rs                                             278       1  99.64%   151
crates/acp-nats/src/nats/extensions.rs                                            3       0  100.00%
crates/mcp-nats/src/nats/parsing.rs                                             191       0  100.00%
crates/mcp-nats/src/nats/mod.rs                                                  99       0  100.00%
crates/trogon-gateway/src/source/telegram/server.rs                             339       0  100.00%
crates/trogon-gateway/src/source/telegram/config.rs                             109       0  100.00%
crates/trogon-gateway/src/source/telegram/registration.rs                       327       0  100.00%
crates/trogon-gateway/src/source/telegram/signature.rs                           32       0  100.00%
crates/acp-nats-server/src/main.rs                                              896      10  98.88%   100, 231-238, 437
crates/acp-nats-server/src/connection.rs                                        171      32  81.29%   76-83, 88-99, 115, 117-118, 123, 132-133, 138, 142, 146, 149, 157, 161, 164, 167-171, 207
crates/acp-nats-server/src/config.rs                                            137       9  93.43%   41, 50-61
crates/acp-nats-server/src/transport.rs                                        1852     106  94.28%   277, 536, 554, 581, 635, 640, 659, 671, 790, 813-815, 867, 884-887, 982-985, 1059, 1062, 1065, 1074, 1078, 1081, 1084-1087, 1106, 1138-1141, 1149-1154, 1166-1170, 1174-1183, 1195-1196, 1214-1215, 1225, 1241-1245, 1273-1279, 1298-1300, 1305-1309, 1312-1317, 1334, 1336-1337, 1419-1420, 1432-1433, 1453-1454, 1506-1522, 2218, 2261, 2313, 2368, 2380
crates/acp-nats-server/src/acp_connection_id.rs                                  45       0  100.00%
crates/trogon-gateway/src/source/notion/signature.rs                             56       1  98.21%   32
crates/trogon-gateway/src/source/notion/verification_token.rs                   240       0  100.00%
crates/trogon-gateway/src/source/notion/notion_verification_token.rs             17       0  100.00%
crates/trogon-gateway/src/source/notion/notion_event_type.rs                     46       3  93.48%   47-49
crates/trogon-gateway/src/source/notion/server.rs                               318       8  97.48%   93-97, 130-131, 150-151
crates/trogon-gateway/src/source/twitter/server.rs                              525       0  100.00%
crates/trogon-gateway/src/source/twitter/signature.rs                            69       0  100.00%
crates/trogon-gateway/src/source/twitter/config.rs                               17       0  100.00%
crates/mcp-nats/src/transport.rs                                                722       0  100.00%
crates/mcp-nats/src/config.rs                                                   110       0  100.00%
crates/mcp-nats/src/client.rs                                                    31       0  100.00%
crates/mcp-nats/src/mcp_peer_id.rs                                               33       0  100.00%
crates/mcp-nats/src/mcp_prefix.rs                                                36       0  100.00%
crates/mcp-nats/src/server.rs                                                    31       0  100.00%
crates/mcp-nats/src/jsonrpc.rs                                                   22       0  100.00%
crates/acp-nats/src/client/ext_session_prompt_response.rs                       135       0  100.00%
crates/acp-nats/src/client/terminal_create.rs                                   274       0  100.00%
crates/acp-nats/src/client/terminal_wait_for_exit.rs                            378       0  100.00%
crates/acp-nats/src/client/ext.rs                                               308       8  97.40%   163-172, 189-198
crates/acp-nats/src/client/fs_write_text_file.rs                                418       0  100.00%
crates/acp-nats/src/client/fs_read_text_file.rs                                 356       0  100.00%
crates/acp-nats/src/client/terminal_output.rs                                   206       0  100.00%
crates/acp-nats/src/client/request_permission.rs                                308       0  100.00%
crates/acp-nats/src/client/terminal_kill.rs                                     290       0  100.00%
crates/acp-nats/src/client/session_update.rs                                     55       0  100.00%
crates/acp-nats/src/client/mod.rs                                              2851       0  100.00%
crates/acp-nats/src/client/terminal_release.rs                                  347       0  100.00%
crates/acp-nats/src/client/rpc_reply.rs                                          64       0  100.00%
crates/mcp-nats/src/nats/subjects/server/complete.rs                             12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/subscribe_resource.rs                   12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/cancel_task.rs                          12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/ping.rs                                  9       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_resource_templates.rs              12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/call_tool.rs                            12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_tools.rs                           12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/logging_message.rs                      12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/set_logging_level.rs                    12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/tool_list_changed.rs                    12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/unsubscribe_resource.rs                 12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/prompt_list_changed.rs                  12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_prompts.rs                         12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/progress.rs                             12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/initialize.rs                           12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/resource_list_changed.rs                12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/read_resource.rs                        12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/resource_updated.rs                     12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/get_task.rs                             12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/get_prompt.rs                           12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/cancelled.rs                            12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/elicitation_completed.rs                12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_resources.rs                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/get_task_result.rs                      12       0  100.00%
crates/mcp-nats/src/nats/subjects/server/list_tasks.rs                           12       0  100.00%
crates/trogon-gateway/src/source/gitlab/server.rs                               460       0  100.00%
crates/trogon-gateway/src/source/gitlab/signature.rs                            165       0  100.00%
crates/trogon-gateway/src/source/gitlab/gitlab_signing_token.rs                  74       0  100.00%
crates/trogon-nats/src/telemetry/messaging.rs                                    82       0  100.00%
crates/trogon-decider-runtime/src/event/mod.rs                                  162       0  100.00%
crates/trogon-decider-runtime/src/event/stream_event.rs                           8       0  100.00%
crates/trogon-decider-runtime/src/event/event_id.rs                              32       0  100.00%
crates/trogon-decider-runtime/src/event/event_identity.rs                         3       0  100.00%
crates/trogon-gateway/src/source/slack/server.rs                                863       0  100.00%
crates/trogon-gateway/src/source/slack/config.rs                                 17       0  100.00%
crates/trogon-gateway/src/source/slack/signature.rs                              77       0  100.00%
crates/trogon-gateway/src/source/standard_webhooks.rs                           172       0  100.00%
crates/trogon-nats/src/messaging.rs                                             561       2  99.64%   144, 154
crates/trogon-nats/src/token.rs                                                   6       0  100.00%
crates/trogon-nats/src/nats_token.rs                                            157       0  100.00%
crates/trogon-nats/src/mocks.rs                                                 317       0  100.00%
crates/trogon-nats/src/subject_token_violation.rs                                17       0  100.00%
crates/trogon-nats/src/client.rs                                                 22      22  0.00%    50-86
crates/trogon-nats/src/auth.rs                                                  114       0  100.00%
crates/trogon-nats/src/connect.rs                                                94       9  90.43%   22-23, 33, 60-65
crates/trogon-std/src/env/in_memory.rs                                           73       0  100.00%
crates/trogon-std/src/env/system.rs                                              17       0  100.00%
crates/acp-nats/src/nats/subjects/global/authenticate.rs                          6       0  100.00%
crates/acp-nats/src/nats/subjects/global/ext.rs                                   9       0  100.00%
crates/acp-nats/src/nats/subjects/global/initialize.rs                            6       0  100.00%
crates/acp-nats/src/nats/subjects/global/ext_notify.rs                            9       0  100.00%
crates/acp-nats/src/nats/subjects/global/session_new.rs                           6       0  100.00%
crates/acp-nats/src/nats/subjects/global/logout.rs                                6       0  100.00%
crates/acp-nats/src/nats/subjects/global/session_list.rs                          6       0  100.00%
crates/acp-nats/src/nats/subjects/commands/load.rs                               15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/close.rs                              15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/fork.rs                               15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/prompt.rs                             15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/set_mode.rs                           15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/set_config_option.rs                  15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/resume.rs                             15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/set_model.rs                          15       0  100.00%
crates/acp-nats/src/nats/subjects/commands/cancel.rs                             15       0  100.00%
crates/trogon-std/src/time/mock.rs                                              125       0  100.00%
crates/trogon-std/src/time/system.rs                                             31       0  100.00%
crates/trogon-decider-runtime/src/event/codec/event_decode.rs                     3       0  100.00%
crates/trogon-std/src/telemetry/http.rs                                         217       0  100.00%
crates/trogon-decider/src/testing.rs                                            660       0  100.00%
crates/trogon-decider/src/act.rs                                                 62       0  100.00%
crates/trogon-decider/src/lib.rs                                                143       0  100.00%
crates/trogon-decider/src/decision.rs                                            37       0  100.00%
crates/trogon-decider/src/events.rs                                              49       0  100.00%
crates/trogon-std/src/dirs/system.rs                                             71       0  100.00%
crates/trogon-std/src/dirs/fixed.rs                                              80       0  100.00%
crates/mcp-nats/src/nats/subjects/client/ping.rs                                  9       0  100.00%
crates/mcp-nats/src/nats/subjects/client/initialized.rs                          12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/create_message.rs                       12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/roots_list_changed.rs                   12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/cancelled.rs                            12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/list_roots.rs                           12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/progress.rs                             12       0  100.00%
crates/mcp-nats/src/nats/subjects/client/create_elicitation.rs                   12       0  100.00%
crates/mcp-nats-server/src/config.rs                                            276       0  100.00%
crates/mcp-nats-server/src/allowed_host.rs                                       90       0  100.00%
crates/mcp-nats-server/src/main.rs                                              357     127  64.43%   149-166, 202-204, 214, 220-221, 228-231, 255-257, 261-270, 292-305, 310-358, 489, 492, 500-542
crates/acp-nats/src/jetstream/provision.rs                                       53       0  100.00%
crates/acp-nats/src/jetstream/ext_policy.rs                                      26       0  100.00%
crates/acp-nats/src/jetstream/consumers.rs                                       91       0  100.00%
crates/acp-nats/src/jetstream/streams.rs                                        163       4  97.55%   206-208, 218
crates/acp-nats/src/nats/subjects/client_ops/fs_read_text_file.rs                12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_wait_for_exit.rs           12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_output.rs                  12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_create.rs                  12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/fs_write_text_file.rs               12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/session_update.rs                   12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/session_request_permission.rs       12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_kill.rs                    12       0  100.00%
crates/acp-nats/src/nats/subjects/client_ops/terminal_release.rs                 12       0  100.00%
crates/mcp-nats/src/telemetry/transport.rs                                        6       0  100.00%
crates/trogon-gateway/src/source/discord/config.rs                              108       0  100.00%
crates/trogon-gateway/src/source/discord/gateway.rs                             426       1  99.77%   137
crates/trogon-gateway/src/source_status.rs                                       28       0  100.00%
crates/trogon-gateway/src/streams.rs                                            169      10  94.08%   11, 23, 31, 39, 47, 55, 63, 71, 79, 87
crates/trogon-gateway/src/config.rs                                            2559      48  98.12%   91, 110, 328-329, 332, 712, 715, 875, 878, 881, 885, 960, 963, 966, 970, 1054-1061, 1138, 1141, 1144, 1149, 1207, 1210, 1213, 1292, 1295, 1298, 1302, 1366, 1369, 1372, 1435, 1438, 1441, 1446, 1521, 1524, 1527, 1532, 1590, 1593, 1596, 1809-1811
crates/trogon-gateway/src/main.rs                                               116       0  100.00%
crates/trogon-gateway/src/http.rs                                               192       1  99.48%   119
crates/trogon-gateway/src/source_integration_id.rs                               61       3  95.08%   55, 57, 65
crates/trogon-gateway/src/source/microsoft_graph/client_state.rs                 30       0  100.00%
crates/trogon-gateway/src/source/microsoft_graph/server.rs                      325       0  100.00%
crates/trogon-gateway/src/source/sentry/server.rs                               311       0  100.00%
crates/trogon-gateway/src/source/sentry/signature.rs                             54       0  100.00%
crates/trogon-gateway/src/source/sentry/sentry_client_secret.rs                  17       0  100.00%
crates/acp-nats/src/nats/subjects/stream.rs                                      56       0  100.00%
crates/acp-nats/src/nats/subjects/mod.rs                                        362       0  100.00%
crates/trogon-nats/src/jetstream/create_conflicts.rs                             24       0  100.00%
crates/trogon-nats/src/jetstream/claim_check.rs                                 346       0  100.00%
crates/trogon-nats/src/jetstream/traits.rs                                       46      46  0.00%    152-262
crates/trogon-nats/src/jetstream/mocks.rs                                       748      32  95.72%   367-381, 387-395, 410-416, 430-433, 497-499
crates/trogon-nats/src/jetstream/publish.rs                                      64       0  100.00%
crates/trogon-nats/src/jetstream/stream_max_age.rs                               18       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_session.rs                    9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/prompt_wildcard.rs                9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/one_session.rs                   12       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_agent.rs                      9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/global_all.rs                     9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/one_client.rs                    15       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_client.rs                     9       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/one_agent.rs                     15       0  100.00%
crates/acp-nats/src/nats/subjects/subscriptions/all_agent_ext.rs                  9       0  100.00%
crates/trogon-gateway/src/source/incidentio/server.rs                           343       0  100.00%
crates/trogon-gateway/src/source/incidentio/signature.rs                        206       0  100.00%
crates/trogon-gateway/src/source/incidentio/config.rs                            16       0  100.00%
crates/trogon-gateway/src/source/incidentio/incidentio_event_type.rs             62       0  100.00%
crates/trogon-gateway/src/source/incidentio/incidentio_signing_secret.rs         67       0  100.00%
crates/trogon-nats/src/lease/ttl.rs                                              73       0  100.00%
crates/trogon-nats/src/lease/provision.rs                                       187      10  94.65%   82-92
crates/trogon-nats/src/lease/lease_config_error.rs                               11       0  100.00%
crates/trogon-nats/src/lease/lease_bucket.rs                                     19       0  100.00%
crates/trogon-nats/src/lease/mod.rs                                             561      13  97.68%   180-193
crates/trogon-nats/src/lease/nats_kv_lease_config.rs                             26       0  100.00%
crates/trogon-nats/src/lease/lease_key.rs                                        19       0  100.00%
crates/trogon-nats/src/lease/lease_timing.rs                                     15       0  100.00%
crates/trogon-nats/src/lease/release.rs                                           5       5  0.00%    8-12
crates/trogon-nats/src/lease/acquire.rs                                           5       5  0.00%    9-14
crates/trogon-nats/src/lease/renew.rs                                           246      19  92.28%   23-29, 48-59
crates/trogon-nats/src/lease/renew_interval.rs                                   61       0  100.00%
crates/trogon-service-config/src/lib.rs                                          92       0  100.00%
crates/trogon-gateway/src/source/github/config.rs                                17       0  100.00%
crates/trogon-gateway/src/source/github/server.rs                               328       0  100.00%
crates/trogon-gateway/src/source/github/signature.rs                             61       0  100.00%
crates/trogon-std/src/duration.rs                                                45       0  100.00%
crates/trogon-std/src/args.rs                                                    19       9  52.63%   11-28
crates/trogon-std/src/secret_string.rs                                           35       0  100.00%
crates/trogon-std/src/signal.rs                                                  26      12  53.85%   6-11, 18-25, 34
crates/trogon-std/src/uuid.rs                                                     7       0  100.00%
crates/trogon-std/src/http.rs                                                    19       0  100.00%
crates/trogon-std/src/json.rs                                                    30       0  100.00%
crates/acp-nats/src/agent/test_support.rs                                       267       0  100.00%
crates/acp-nats/src/agent/set_session_mode.rs                                    67       0  100.00%
crates/acp-nats/src/agent/set_session_model.rs                                   67       0  100.00%
crates/acp-nats/src/agent/mod.rs                                                 65       0  100.00%
crates/acp-nats/src/agent/new_session.rs                                         82       0  100.00%
crates/acp-nats/src/agent/authenticate.rs                                        49       0  100.00%
crates/acp-nats/src/agent/close_session.rs                                       63       0  100.00%
crates/acp-nats/src/agent/js_request.rs                                         283       0  100.00%
crates/acp-nats/src/agent/ext_notification.rs                                    82       0  100.00%
crates/acp-nats/src/agent/cancel.rs                                             101       0  100.00%
crates/acp-nats/src/agent/prompt.rs                                             471       0  100.00%
crates/acp-nats/src/agent/bridge.rs                                             123       4  96.75%   108-111
crates/acp-nats/src/agent/set_session_config_option.rs                           67       0  100.00%
crates/acp-nats/src/agent/list_sessions.rs                                       47       0  100.00%
crates/acp-nats/src/agent/load_session.rs                                        89       0  100.00%
crates/acp-nats/src/agent/ext_method.rs                                          82       0  100.00%
crates/acp-nats/src/agent/resume_session.rs                                      90       0  100.00%
crates/acp-nats/src/agent/initialize.rs                                          79       0  100.00%
crates/acp-nats/src/agent/fork_session.rs                                        94       0  100.00%
crates/acp-nats/src/agent/logout.rs                                              49       0  100.00%
crates/acp-nats-stdio/src/config.rs                                              66       0  100.00%
crates/acp-nats-stdio/src/main.rs                                               135      25  81.48%   65, 113-120, 126-128, 145, 174-193
crates/acp-nats-agent/src/connection.rs                                        1270       1  99.92%   607
crates/acp-nats/src/acp_prefix.rs                                                50       0  100.00%
crates/acp-nats/src/jsonrpc.rs                                                    6       0  100.00%
crates/acp-nats/src/config.rs                                                   203       0  100.00%
crates/acp-nats/src/lib.rs                                                       69       0  100.00%
crates/acp-nats/src/ext_method_name.rs                                           68       0  100.00%
crates/acp-nats/src/client_proxy.rs                                             181       0  100.00%
crates/acp-nats/src/pending_prompt_waiters.rs                                   134       0  100.00%
crates/acp-nats/src/req_id.rs                                                    39       0  100.00%
crates/acp-nats/src/error.rs                                                     82       0  100.00%
crates/acp-nats/src/session_id.rs                                                71       0  100.00%
crates/acp-nats/src/in_flight_slot_guard.rs                                      32       0  100.00%
crates/mcp-nats-stdio/src/main.rs                                               212       0  100.00%
crates/mcp-nats-stdio/src/config.rs                                             160       0  100.00%
crates/acp-nats/src/telemetry/metrics.rs                                         53       0  100.00%
crates/mcp-nats/src/nats/subjects/mod.rs                                         89       0  100.00%
crates/trogon-std/src/fs/mem.rs                                                 216      10  95.37%   61-63, 77-79, 132-134, 157
crates/trogon-std/src/fs/system.rs                                               92       0  100.00%
crates/trogon-telemetry/src/lib.rs                                              197      23  88.32%   94, 99, 104, 114-115, 121-139, 175, 178, 181, 187
crates/trogon-telemetry/src/service_name.rs                                      44       0  100.00%
crates/trogon-telemetry/src/metric.rs                                            26       1  96.15%   29
crates/trogon-telemetry/src/resource_attribute.rs                                23       0  100.00%
crates/trogon-telemetry/src/trace.rs                                             23       1  95.65%   22
crates/trogon-telemetry/src/log.rs                                               68       1  98.53%   33
crates/trogon-decider-runtime/src/execution.rs                                  708       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/all_client.rs                     6       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/all_server.rs                     6       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/one_client.rs                     9       0  100.00%
crates/mcp-nats/src/nats/subjects/subscriptions/one_server.rs                     9       0  100.00%
crates/acp-nats/src/nats/subjects/responses/response.rs                          20       0  100.00%
crates/acp-nats/src/nats/subjects/responses/ext_ready.rs                         12       0  100.00%
crates/acp-nats/src/nats/subjects/responses/update.rs                            27       0  100.00%
crates/acp-nats/src/nats/subjects/responses/cancelled.rs                         15       0  100.00%
crates/acp-nats/src/nats/subjects/responses/prompt_response.rs                   27       0  100.00%
crates/trogon-decider-runtime/src/headers/header_name.rs                         33       0  100.00%
crates/trogon-decider-runtime/src/headers/header_map.rs                          54       3  94.44%   20-22
crates/trogon-decider-runtime/src/headers/header_value.rs                        37       0  100.00%
crates/trogon-decider-runtime/src/headers/mod.rs                                 74       0  100.00%
crates/trogon-decider-runtime/src/headers/from_entries_error.rs                  11       0  100.00%
crates/trogon-decider-runtime/src/stream/mod.rs                                  38       0  100.00%
crates/trogon-decider-runtime/src/stream/append_stream.rs                         5       0  100.00%
crates/trogon-decider-runtime/src/stream/read_stream.rs                          10       0  100.00%
crates/trogon-decider-runtime/src/stream/stream_position.rs                      29       0  100.00%
crates/trogon-gateway/src/source/linear/config.rs                                17       0  100.00%
crates/trogon-gateway/src/source/linear/signature.rs                             54       1  98.15%   16
crates/trogon-gateway/src/source/linear/server.rs                               386       0  100.00%
TOTAL                                                                         35749     626  98.25%

Diff against main

Filename                                          Stmts    Miss  Cover
----------------------------------------------  -------  ------  --------
crates/trogon-decider-runtime/src/execution.rs     +708       0  +100.00%
TOTAL                                              +708       0  +0.04%

Results for commit: 1b414aa

Minimum allowed coverage is 95%

♻️ This comment has been updated with latest results

Comment thread rsworkspace/crates/trogon-decider-runtime/src/execution.rs
@yordis yordis changed the title feat(trogon-decider-runtime): add snapshot-free execution fix(trogon-decider-runtime): remove snapshotting May 20, 2026
@yordis yordis force-pushed the yordis/remove-snapshotting branch 2 times, most recently from 71f9fd4 to fcf193a Compare May 20, 2026 21:42
@yordis yordis changed the title fix(trogon-decider-runtime): remove snapshotting feat(trogon-decider-runtime): add execution module May 20, 2026
@yordis yordis force-pushed the yordis/remove-snapshotting branch 2 times, most recently from b3ab939 to efed60b Compare May 20, 2026 21:52

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

Comment thread rsworkspace/crates/trogon-decider-runtime/src/lib.rs Outdated
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis yordis force-pushed the yordis/remove-snapshotting branch from efed60b to 1b414aa Compare May 20, 2026 22:00
@yordis yordis merged commit 8d42454 into main May 20, 2026
9 of 10 checks passed
@yordis yordis deleted the yordis/remove-snapshotting branch May 20, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant