Skip to main content

Module subprocess

Module subprocess 

Source
Expand description

Sources that are other processes, on both sides of the pipe.

docs/plugin-protocol.md is the normative text; this module is its Rust implementation. SubprocessSource is the engine’s half — a TaskSource that is a spawned program — and serve is the plugin’s half, hosting any plugin of this build behind the same protocol so the two can be exercised against each other.

Nothing here compensates for a capability. A subprocess-hosted source declares what it can do in the handshake exactly as a compiled-in one does, and the engine’s one compensation layer reads that declaration and does the rest — which is what keeps a source’s answers the same whichever side of a pipe it is on.

§What this source declares, field by field

One verdict per field of Capabilities. Every one of them is supported and proven, and is the hosted source’s own: SubprocessSource reports the value the program behind the pipe sent in its handshake, unchanged, and holds no opinion of its own about any of them. Nothing here could be unsupported, because nothing here decides.

FieldVerdict
projectsSupported and proven — the hosted source’s own, forwarded.
orphan_tasksSupported and proven — the hosted source’s own, forwarded.
filter_by_labelSupported and proven — the hosted source’s own, forwarded.
filter_by_statusSupported and proven — the hosted source’s own, forwarded.
search_titleSupported and proven — the hosted source’s own, forwarded.
search_contentSupported and proven — the hosted source’s own, forwarded.
task_dependenciesSupported and proven — the hosted source’s own, forwarded.
project_dependenciesSupported and proven — the hosted source’s own, forwarded.
max_page_sizeSupported and proven — the hosted source’s own, forwarded.

That is proven rather than asserted: the journey table’s subprocess row hosts the in-memory source over a real pipe and answers every shared journey — every capability field included — with the same rows and the same plan the in-process row does.

Structs§

Program
The program that serves a source: a name that is not blank.
RequestDeadline
A positive per-request deadline, measured in milliseconds at the configuration edge.
SubprocessConfig
How to run a plugin that speaks docs/plugin-protocol.md.
SubprocessPlugin
The factory a configuration reaches through plugin: subprocess.
SubprocessSource
A source served by a spawned program speaking docs/plugin-protocol.md.

Constants§

MAX_LINE
The most a peer may put on one line before this side stops reading it.

Functions§

serve
Serve one connection until the engine closes its input.
serve_plugin
Serve one connection as the registered plugin kind.