Ingest StreamPixels service boundary records
This commit is contained in:
parent
34f664a97c
commit
8b78a05e99
1 changed files with 58 additions and 1 deletions
59
src/main.rs
59
src/main.rs
|
|
@ -948,6 +948,11 @@ fn daemon_transport_profile(
|
|||
"raven-deploy-blocked",
|
||||
"Vili has an in-process CultNet/RUDP Idunn health publisher plus local CultCache provider, operator, command_boundary, and transport_profile records; live Raven deployment and scheduled-task restart are blocked while Raven SSH is unreachable.",
|
||||
),
|
||||
"yggdrasil-streampixels" => (
|
||||
"daemon-owned-cultcache-service-boundary + compatibility.ssh-systemd-http fallback",
|
||||
"provider-store-prepared-rudp-health-required",
|
||||
"StreamPixels service runtime publishes a daemon-owned CultCache boundary with provider advertisement, command_boundary, transport_profile, and Idunn health summary; Yggdrasil SSH/systemd/HTTP checks remain fallback witnesses until the service publishes health over CultNet/RUDP.",
|
||||
),
|
||||
_ => (
|
||||
"compatibility.local-command",
|
||||
"migration-required",
|
||||
|
|
@ -1259,7 +1264,28 @@ fn daemon_surgery_plan(target: &DaemonTarget, updated_at: &str) -> IdunnDaemonSu
|
|||
];
|
||||
}
|
||||
}
|
||||
"yggdrasil-heimdall" | "yggdrasil-repixelizer" | "yggdrasil-streampixels" => {
|
||||
"yggdrasil-streampixels" => {
|
||||
severity = "medium";
|
||||
status = "provider-store-prepared-rudp-health-required";
|
||||
owner = "StreamPixels service runtime plus gamecult-ops deploy lane";
|
||||
current_mechanism =
|
||||
"StreamPixels now publishes a daemon-owned CultCache boundary store with provider advertisement, command_boundary, transport_profile, and Idunn health summary from the service runtime. Yggdrasil deployment freshness is still checked and deployed through SSH/systemd/source-artifact compatibility scripts."
|
||||
.to_string();
|
||||
intended_authority =
|
||||
"StreamPixels publishes service health, provider state, command boundary, and transport profile over cultnet.transport.rudp.v0, with the service-owned CultCache boundary as durable local state and HTTP/SSH/systemd as fallback witnesses."
|
||||
.to_string();
|
||||
cut_line =
|
||||
"Keep the StreamPixels service boundary store; add CultNet/RUDP Idunn health publication from the service process, deploy it on Yggdrasil, then demote SSH/systemd/HTTP checks to deployment/debug witnesses."
|
||||
.to_string();
|
||||
steps = vec![
|
||||
"Keep apps/service/src/verse-state.ts publishing streampixels.service.cc from the StreamPixels service runtime.".to_string(),
|
||||
"Teach Odin to ingest StreamPixels provider advertisement, command_boundary, and transport_profile records from the service-owned CultCache boundary store.".to_string(),
|
||||
"Add StreamPixels Idunn RUDP health publication using contract streampixels.cultnet-rudp-service-health.".to_string(),
|
||||
"Deploy the updated service to Yggdrasil through the source artifact lane and verify the live store/health publication.".to_string(),
|
||||
"Demote health-yggdrasil-streampixels.cmd to deployment/debug witness once RUDP health is live.".to_string(),
|
||||
];
|
||||
}
|
||||
"yggdrasil-heimdall" | "yggdrasil-repixelizer" => {
|
||||
severity = "medium";
|
||||
owner = "Yggdrasil service owner plus gamecult-ops deploy lane";
|
||||
current_mechanism =
|
||||
|
|
@ -2486,6 +2512,37 @@ mod tests {
|
|||
assert!(profile.cut_line.contains("MiMo VoiceDesign"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn streampixels_transport_profile_marks_provider_store_prepared() {
|
||||
let streampixels = DaemonTarget {
|
||||
daemon_id: "yggdrasil-streampixels".to_string(),
|
||||
verse_id: "yggdrasil.local".to_string(),
|
||||
name: "Yggdrasil StreamPixels".to_string(),
|
||||
health_contract: health_contract(
|
||||
"yggdrasil.source-deployment-freshness",
|
||||
"stale-deployment",
|
||||
),
|
||||
health_command: Some("health-yggdrasil-streampixels.cmd".to_string()),
|
||||
deploy_command: Some("deploy-yggdrasil-streampixels.cmd".to_string()),
|
||||
restart_command: None,
|
||||
enabled: true,
|
||||
interval_seconds: 300,
|
||||
};
|
||||
|
||||
let profile = daemon_transport_profile(&streampixels, "unix:100");
|
||||
|
||||
assert_eq!(
|
||||
profile.state,
|
||||
"provider-store-prepared-rudp-health-required"
|
||||
);
|
||||
assert!(
|
||||
profile
|
||||
.current_transport
|
||||
.contains("daemon-owned-cultcache-service-boundary")
|
||||
);
|
||||
assert!(profile.cut_line.contains("CultNet/RUDP"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn voidbot_transport_profile_marks_partial_rudp_health() {
|
||||
let voidbot = DaemonTarget {
|
||||
|
|
|
|||
Loading…
Reference in a new issue