refactor(#2302): type socket wire fields as ident, validated by serde on deserialize
This commit is contained in:
parent
bf644cc126
commit
84b750fba5
33 changed files with 333 additions and 263 deletions
|
|
@ -553,7 +553,7 @@ impl Coordinator {
|
|||
// MANAGER_NAME const), so an invalid ident here is a construction
|
||||
// bug. This is the step-3 boundary between the Ident-threaded path
|
||||
// builders and the job_queue layer (threaded post hive-jobq cutover).
|
||||
let name = hive_host_sock::Ident::parse(name)
|
||||
let name = hive_types::Ident::parse(name)
|
||||
.expect("agent_paths: name must be a valid ident (validated at spawn/enqueue)");
|
||||
AgentPaths {
|
||||
agent: agent_dir,
|
||||
|
|
@ -1448,7 +1448,7 @@ impl Coordinator {
|
|||
|
||||
/// Manager-editable proposed config repo. Bind-mounted into the manager
|
||||
/// container as `/agents/<name>/config/`.
|
||||
pub fn agent_proposed_dir(name: &hive_host_sock::Ident) -> PathBuf {
|
||||
pub fn agent_proposed_dir(name: &hive_types::Ident) -> PathBuf {
|
||||
crate::paths::agent_state_dir(name).join("config")
|
||||
}
|
||||
|
||||
|
|
@ -1456,14 +1456,14 @@ impl Coordinator {
|
|||
/// container at `/root/.claude` so OAuth state survives container
|
||||
/// destroy/recreate. Each agent owns its own token lineage — sharing
|
||||
/// would break on the first refresh-token rotation.
|
||||
pub fn agent_claude_dir(name: &hive_host_sock::Ident) -> PathBuf {
|
||||
pub fn agent_claude_dir(name: &hive_types::Ident) -> PathBuf {
|
||||
crate::paths::agent_state_dir(name).join("claude")
|
||||
}
|
||||
|
||||
/// Per-agent durable knowledge dir. Bind-mounted RW into the agent
|
||||
/// container at `/agents/{name}/state`. Survives destroy/recreate.
|
||||
/// Agent-visible — claude is told to write long-lived notes here.
|
||||
pub fn agent_notes_dir(name: &hive_host_sock::Ident) -> PathBuf {
|
||||
pub fn agent_notes_dir(name: &hive_types::Ident) -> PathBuf {
|
||||
crate::paths::agent_state_dir(name).join("state")
|
||||
}
|
||||
|
||||
|
|
@ -1473,7 +1473,7 @@ impl Coordinator {
|
|||
/// `hyperhive-turn-stats.sqlite`, `hyperhive-model`) — kept separate
|
||||
/// from the agent-visible `state/` so claude's "my notes" view is
|
||||
/// uncluttered and the host vacuum has a clean sweep root.
|
||||
pub fn agent_harness_dir(name: &hive_host_sock::Ident) -> PathBuf {
|
||||
pub fn agent_harness_dir(name: &hive_types::Ident) -> PathBuf {
|
||||
crate::paths::agent_state_dir(name).join("harness")
|
||||
}
|
||||
|
||||
|
|
@ -1483,14 +1483,14 @@ impl Coordinator {
|
|||
/// destroyed-but-kept tombstones; callers filter the latter by
|
||||
/// subtracting `lifecycle::list()`.
|
||||
#[must_use]
|
||||
pub fn kept_state_names() -> Vec<hive_host_sock::Ident> {
|
||||
pub fn kept_state_names() -> Vec<hive_types::Ident> {
|
||||
let Ok(rd) = std::fs::read_dir(crate::paths::agents_root()) else {
|
||||
return Vec::new();
|
||||
};
|
||||
let mut out: Vec<hive_host_sock::Ident> = rd
|
||||
let mut out: Vec<hive_types::Ident> = rd
|
||||
.flatten()
|
||||
.filter(|e| e.file_type().is_ok_and(|t| t.is_dir()))
|
||||
.filter_map(|e| hive_host_sock::Ident::parse(&e.file_name().into_string().ok()?).ok())
|
||||
.filter_map(|e| hive_types::Ident::parse(&e.file_name().into_string().ok()?).ok())
|
||||
.collect();
|
||||
out.sort();
|
||||
out
|
||||
|
|
@ -1503,7 +1503,7 @@ impl Coordinator {
|
|||
/// apply-commit spawns the container. Distinct from tombstones,
|
||||
/// which have an applied repo from a prior deploy.
|
||||
#[must_use]
|
||||
pub fn pending_init_names() -> Vec<hive_host_sock::Ident> {
|
||||
pub fn pending_init_names() -> Vec<hive_types::Ident> {
|
||||
Self::kept_state_names()
|
||||
.into_iter()
|
||||
.filter(|n| {
|
||||
|
|
|
|||
Loading…
Reference in a new issue