feat: event-driven parity, Windows shell detection, dirty build timestamps, and gatekeeper integration
This commit is contained in:
1 parent
64857f9d5e
commit
f4dcf3acbf
33 files changed
+3501
-143
No files matched your search
+22
-1
@@ -104,9 +104,30 @@ pub async fn gate_set_handler(
|
||||
};
|
||||
app_state.handler.state.env.gates.modify(|gates| {
|
||||
gates.retain(|g| !(g.action == record.action && g.target == record.target));
|
||||
gates.push(record);
|
||||
gates.push(record.clone());
|
||||
});
|
||||
|
||||
let summary = format!("Push gate {} set to {}", record.target, record.status);
|
||||
app_state
|
||||
.handler
|
||||
.state
|
||||
.record_activity("gate", &summary, record.reason.as_deref());
|
||||
let _ = app_state
|
||||
.handler
|
||||
.state
|
||||
.event_bus_tx
|
||||
.send(crate::state::GenericEvent {
|
||||
topic: "gate:event".to_string(),
|
||||
session_id: None,
|
||||
payload: serde_json::json!({
|
||||
"action": record.action,
|
||||
"target": record.target,
|
||||
"status": record.status,
|
||||
"reason": record.reason,
|
||||
"active_gate": record.status,
|
||||
}),
|
||||
});
|
||||
|
||||
Ok((axum::http::StatusCode::OK, "Gate state updated."))
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user