WebSocket server->client.
Sent by the server as the first message after a WebSocket connection opens to provide basic information about the server, the build graph, etc.
Trailing:
step_name_len: u32 for each steps_lenstep_name: [step_name_len]u8 for each step_name_lenstep_status: u8 for every 4 steps_len; every 2 bits is a StepUpdate.Status, LSBs firstpub const Hello = extern struct
pub const Hello = extern struct {
tag: ToClientTag = .hello,
status: BuildStatus,
flags: Flags,
/// Any message containing a timestamp represents it as a number of nanoseconds relative to when
/// the build began. This field is the current timestamp, represented in that form.
timestamp: i64 align(4),
/// The number of steps in the build graph which are reachable from the top-level step[s] being
/// run; in other words, the number of steps which will be executed by this build. The name of
/// each step trails this message.
steps_len: u32 align(1),
pub const Flags = packed struct(u16) {
/// Whether time reporting is enabled.
time_report: bool,
_: u15 = 0,
};
}