Skip to content

Conversation

@socksy
Copy link
Contributor

@socksy socksy commented Jan 21, 2026

Will write proper description later, but basically standardizing on the one interface, with a couple of smaller name changes that I think makes it easier to follow. Couple simplifications in related code.

Since LocalApp does everything SubprocessHandle needs, we can get simplify to just using LocalApp (but maybe we should rename it to SubprocessApp? But obviously that's less clear for running locally 😐.

Additionally, since we're touching this interface, make it return a new Completion type that wraps the error code, allowing us to return out of band whether or not it's actually cancelled, compared to errored (previously we returned a -1 which I guess works since unix programs return a uint8, but doesn't differentiate with the IO error case and feels a bit icky). This should hopefully also fix the need for our control plane which special cases for cancelling.

This marks the previous lib::App one as deprecated, moves everything
over to the new interface from Vim as the default, renames that to be
more similar to what we had before + a couple simplifications, and adds
an alias to make sure that we don't break the tower-runner
@socksy socksy requested review from bradhe, jo-sm and sammuti January 22, 2026 12:45
#[async_trait]
pub trait ExecutionHandle: Send + Sync {
/// Get a unique identifier for this execution
pub trait App: Send + Sync {
Copy link
Contributor

@sammuti sammuti Jan 22, 2026

Choose a reason for hiding this comment

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

Note this would require a change in the runner side for the k8s impl. I propose just keeping the new name rather than renaming since I believe it's better name than "App"

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.

3 participants