Skip to content

Implement RuntimeStatusService#172

Merged
raphael-goetz merged 8 commits intomainfrom
#127-runtime-status-service
Mar 15, 2026
Merged

Implement RuntimeStatusService#172
raphael-goetz merged 8 commits intomainfrom
#127-runtime-status-service

Conversation

@raphael-goetz
Copy link
Member

Resolves: #127

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Introduces runtime-status reporting for adapters by adding an Aquila runtime status gRPC client and wiring it into the base ServerRunner, with adapters now providing runtime metadata (features/configuration) at startup.

Changes:

  • Add DracoRuntimeStatusService client to update adapter runtime status (NotReady/Running/Stopped) against Aquila.
  • Extend ServerRunner::serve to accept RuntimeFeature and AdapterConfiguration vectors and trigger status updates during lifecycle.
  • Update REST and Cron adapters to pass runtime features/configuration; REST adapter also changes expected header result shape to a struct/map.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
crates/base/src/runner.rs Extends server lifecycle to publish runtime status updates and exposes server config getter.
crates/base/src/lib.rs Exposes new client module from the base crate.
crates/base/src/client/mod.rs Adds Aquila gRPC client with retrying channel creation and runtime status update helpers.
adapter/rest/src/main.rs Passes runtime metadata into runner; adjusts flow header parsing to struct/map shape.
adapter/cron/src/main.rs Passes runtime feature metadata into runner at startup.
Comments suppressed due to low confidence (1)

adapter/rest/src/main.rs:220

  • The error message says "headers was not a list of header entries", but this code now expects headers to be a Struct (map) of string->string. Update the message to match the new expected shape to make debugging flow outputs easier.
            // headers struct
            let Value {
                kind:
                    Some(Kind::StructValue(Struct {
                        fields: header_fields,
                    })),
            } = headers_val
            else {
                return json_error(
                    StatusCode::INTERNAL_SERVER_ERROR,
                    "headers was not a list of header entries",
                );

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

raphael-goetz and others added 2 commits March 15, 2026 16:53
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Signed-off-by: Raphael Götz <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Signed-off-by: Raphael Götz <[email protected]>
@raphael-goetz raphael-goetz merged commit 6929fcc into main Mar 15, 2026
4 checks passed
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.

Implement RuntimeStatusService

2 participants