auto_update: rebuild all on startup, needs_update = applied HEAD vs deployed sha
This commit is contained in:
parent
4814aaefdb
commit
433bc85b91
4 changed files with 44 additions and 139 deletions
|
|
@ -56,11 +56,6 @@ pub struct ContainerView {
|
|||
/// resolves every per-agent attribute the dashboard surfaces.
|
||||
pub async fn build_all(coord: &Coordinator) -> Vec<ContainerView> {
|
||||
let raw = lifecycle::list().await.unwrap_or_default();
|
||||
let current_rev = crate::auto_update::current_flake_rev(&coord.hyperhive_flake)
|
||||
.map(|flake_rev| {
|
||||
let meta_rev = crate::auto_update::current_meta_rev();
|
||||
crate::auto_update::combined_rev(&flake_rev, meta_rev.as_deref())
|
||||
});
|
||||
let locked = read_meta_locked_revs();
|
||||
let mut out = Vec::new();
|
||||
for c in &raw {
|
||||
|
|
@ -71,13 +66,11 @@ pub async fn build_all(coord: &Coordinator) -> Vec<ContainerView> {
|
|||
} else {
|
||||
continue;
|
||||
};
|
||||
let needs_update =
|
||||
current_rev.as_deref().is_some_and(|rev| crate::auto_update::agent_needs_update(&logical, rev));
|
||||
let deployed_full = locked.get(&format!("agent-{logical}")).map(|s| s.as_str());
|
||||
let needs_update = crate::auto_update::agent_config_pending(&logical, deployed_full);
|
||||
let needs_login =
|
||||
!is_manager && !claude_has_session(&Coordinator::agent_claude_dir(&logical));
|
||||
let deployed_sha = locked
|
||||
.get(&format!("agent-{logical}"))
|
||||
.map(|s| s[..s.len().min(12)].to_owned());
|
||||
let deployed_sha = deployed_full.map(|s| s[..s.len().min(12)].to_owned());
|
||||
// Recipient name the broker uses for this agent — sub-agents
|
||||
// are addressed by logical name, the manager by the
|
||||
// MANAGER_AGENT constant. Mirrors the rest of the broker
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue