From e15c499a3128441aceedcbb6983cc61b16239160 Mon Sep 17 00:00:00 2001 From: atlas Date: Fri, 14 Aug 2026 00:23:43 +0200 Subject: [PATCH] fix(#3245): resolve the remaining intra-doc links in hive-c0re Takes the crate from 26 rustdoc warnings to 1, on top of the ten in the previous commit. argus's review findings: - agent_sockets.rs: [`write`] was still ambiguous (function vs macro). The previous change narrowed the qualifier and left the ambiguity; [`write()`] is what resolves it. - forge/users.rs and stats/container_stats.rs : unclosed HTML tags in prose, now backticked. The rest of the crate, so the count actually reaches zero: - job_queue/mod.rs: Queue::graph_snapshot -> JobQueue::graph_snapshot (there is no Queue type), and super::scheduler -> scheduler (mod.rs *is* job_queue, so super:: pointed outside it) - job_queue/resource.rs: NodeKind -> super::model::NodeKind - matrix.rs: password_path(name) -> password_path; and forge::provision_user_token -> crate::forge::provision_user_token. Note the path has no `users` segment: forge/mod.rs declares `mod users` private and re-exports it, so the canonical path comes from the re-export rather than the directory tree. - socket_server/lifecycle_handlers.rs: InfraContainer -> hive_priv_sock::InfraContainer - stats/otel_metrics.rs: crate::meta::otel_config is a private fn no path can name from another module, so it becomes prose - main.rs: redundant explicit link target dropped coordinator.rs:405 (CrashWatchGuard) is deliberately untouched: #3244 deletes that doc block, so fixing it here would conflict with an open PR and repair a symbol that is about to stop existing. --- hive-c0re/src/forge/users.rs | 2 +- hive-c0re/src/job_queue/mod.rs | 8 ++++---- hive-c0re/src/job_queue/resource.rs | 4 ++-- hive-c0re/src/main.rs | 2 +- hive-c0re/src/matrix.rs | 4 ++-- hive-c0re/src/socket_server/lifecycle_handlers.rs | 2 +- hive-c0re/src/stats/container_stats.rs | 2 +- hive-c0re/src/stats/otel_metrics.rs | 2 +- hive-c0re/src/workers/agent_sockets.rs | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/hive-c0re/src/forge/users.rs b/hive-c0re/src/forge/users.rs index cbd8ea20..27a40b7e 100644 --- a/hive-c0re/src/forge/users.rs +++ b/hive-c0re/src/forge/users.rs @@ -73,7 +73,7 @@ const CORE_TOKEN_SCOPES: &str = "read:admin,write:admin,read:user,write:user,rea /// Pull the access token out of forgejo's success message. Format /// has shifted across versions (table form vs. "Access token was -/// successfully created: "), so just hunt the output for the +/// successfully created: ``"), so just hunt the output for the /// first long hex-looking word. fn extract_token(output: &str) -> Option { output diff --git a/hive-c0re/src/job_queue/mod.rs b/hive-c0re/src/job_queue/mod.rs index e6011105..59738009 100644 --- a/hive-c0re/src/job_queue/mod.rs +++ b/hive-c0re/src/job_queue/mod.rs @@ -279,7 +279,7 @@ impl JobQueue { /// difference from the older lease-declaration test: lease-exemption is /// exactly what lets one DAG build for `a` while another holds `a`'s lease, /// so both are running and both name `a`. Anything keying this set by agent - /// alone will silently drop one — see [`super::scheduler`]. + /// alone will silently drop one — see [`scheduler`]. /// /// `label` is the node's own wire tag ([`NodeKind::as_str`]), the same /// vocabulary the graph wire ships as a node's label, so a pill and a @@ -361,7 +361,7 @@ impl JobQueue { filter_nodes_by_state(nodes, states) } - /// Per-state counts over the **same** groups [`Queue::graph_snapshot`] + /// Per-state counts over the **same** groups [`JobQueue::graph_snapshot`] /// serves. /// /// Supplies the same two things and nothing else: the lock, and @@ -413,7 +413,7 @@ fn find_node(sched: &Sched, id: u64) -> Option { .find_map(|n| (n.id.get() == id).then_some(n.id)) } -/// [`Queue::graph_snapshot`]'s `states` ask, applied to the already- +/// [`JobQueue::graph_snapshot`]'s `states` ask, applied to the already- /// projected node list: keeps every node — root or descendant — whose own /// `state` is named. /// @@ -433,7 +433,7 @@ fn filter_nodes_by_state(nodes: Vec, states: Option<&[State]>) -> Vec .collect() } -/// The visible **group** set for [`Queue::graph_snapshot`]: every live group +/// The visible **group** set for [`JobQueue::graph_snapshot`]: every live group /// root, plus the newest [`MAX_HISTORY_DAGS`] settled ones. /// /// Selected *structurally* — a root is a node with no parent. The typed diff --git a/hive-c0re/src/job_queue/resource.rs b/hive-c0re/src/job_queue/resource.rs index dbb3fdc0..a3c08f07 100644 --- a/hive-c0re/src/job_queue/resource.rs +++ b/hive-c0re/src/job_queue/resource.rs @@ -1,7 +1,7 @@ //! The concrete resource type the rebuild queue schedules over — the bridge -//! from hive-c0re's [`NodeKind`] onto the domain-agnostic `hive-jobq` crate. +//! from hive-c0re's [`super::model::NodeKind`] onto the domain-agnostic `hive-jobq` crate. //! `hive-jobq` is generic over a resource type `R: Clone + Eq + Hash` and a node -//! payload `N`; here `R` is [`Resource`] and `N` is [`NodeKind`] directly (each +//! payload `N`; here `R` is [`Resource`] and `N` is [`super::model::NodeKind`] directly (each //! variant carries the agent it targets). //! //! **A node's resources are declared where the node is constructed** with diff --git a/hive-c0re/src/main.rs b/hive-c0re/src/main.rs index c43d5385..c59450ff 100644 --- a/hive-c0re/src/main.rs +++ b/hive-c0re/src/main.rs @@ -67,7 +67,7 @@ enum Cmd { /// Run the coordinator daemon. Serve { /// Path to a JSON config file holding the host-level daemon config - /// (the [`ServeConfig`](crate::coordinator::ServeConfig) shape: + /// (the [`ServeConfig`] shape: /// the container-injected `HiveEnv` fields + the hive-c0re-local /// `model_prices` table). Used as the base; any per-flag override /// below wins over the file. Absent → start from the built-in diff --git a/hive-c0re/src/matrix.rs b/hive-c0re/src/matrix.rs index ed019656..8872ba10 100644 --- a/hive-c0re/src/matrix.rs +++ b/hive-c0re/src/matrix.rs @@ -337,7 +337,7 @@ async fn login_user(client: &reqwest::Client, agent: &str, password: &str) -> Re /// Auto-recovery helper: reset a user's matrix password via the admin API /// when the locally stored password is missing. Requires a valid hive admin /// token at [`admin_token_path()`]. Returns the new password (already -/// persisted to [`password_path(name)`]) on success. +/// persisted to [`password_path`]) on success. /// /// Called by [`ensure_user_for`] when registration returns `M_USER_IN_USE` /// but the password file is absent — covers the case where agent state dirs @@ -766,7 +766,7 @@ pub async fn ensure_user_for( /// can pass [`random_password`] to keep the existing throwaway /// behaviour. /// -/// **Not idempotent** (unlike [`forge::provision_user_token`]): the +/// **Not idempotent** (unlike [`crate::forge::provision_user_token`]): the /// matrix UIAA `/register` endpoint returns `M_USER_IN_USE` (HTTP 400) /// on second call for the same localpart. Callers re-running this for /// a known-existing matrix user should expect a hard error from this diff --git a/hive-c0re/src/socket_server/lifecycle_handlers.rs b/hive-c0re/src/socket_server/lifecycle_handlers.rs index 0e3c9e11..8feda850 100644 --- a/hive-c0re/src/socket_server/lifecycle_handlers.rs +++ b/hive-c0re/src/socket_server/lifecycle_handlers.rs @@ -53,7 +53,7 @@ pub(super) async fn handle_restart(coord: &Arc, agent: &str, name: /// Restart a hive infrastructure container on behalf of an agent that /// holds the `infra_admin` capability. The `container` is already a valid -/// [`InfraContainer`] (the caller parsed it); this gates on the capability +/// [`hive_priv_sock::InfraContainer`] (the caller parsed it); this gates on the capability /// and routes the systemctl restart through hive-priv. Direct, not /// approval-gated. async fn handle_restart_infra( diff --git a/hive-c0re/src/stats/container_stats.rs b/hive-c0re/src/stats/container_stats.rs index db80f355..ed298561 100644 --- a/hive-c0re/src/stats/container_stats.rs +++ b/hive-c0re/src/stats/container_stats.rs @@ -158,7 +158,7 @@ pub fn spawn_disk_sampler() { /// **not** create a separate machined `machine-.scope` — the /// container's cgroup *is* the launching service unit, /// `container@.service`, placed under `machine.slice`. -/// systemd-machined still logs "New machine " (registration), but the +/// systemd-machined still logs "New machine ``" (registration), but the /// cgroup stays on the service unit. So the path is /// `machine.slice/container@.service`, and the service unit name is /// used verbatim — no `\x2d` escaping (that only applies when a string is diff --git a/hive-c0re/src/stats/otel_metrics.rs b/hive-c0re/src/stats/otel_metrics.rs index 2ae9c24a..e9d3291d 100644 --- a/hive-c0re/src/stats/otel_metrics.rs +++ b/hive-c0re/src/stats/otel_metrics.rs @@ -47,7 +47,7 @@ static PROVIDER: OnceLock = OnceLock::new(); /// Spawn the container-resource OTEL exporter if OTEL is configured /// (`HYPERHIVE_OTEL_ENDPOINT` non-empty — the same enable signal -/// [`crate::meta::otel_config`] uses). No-op otherwise. Call once at startup. +/// `meta::otel_config` uses). No-op otherwise. Call once at startup. pub fn spawn_exporter(hyperhive_flake: &str) { let Some(endpoint) = endpoint() else { tracing::debug!("otel container-metrics: no endpoint configured, exporter disabled"); diff --git a/hive-c0re/src/workers/agent_sockets.rs b/hive-c0re/src/workers/agent_sockets.rs index 971cb38e..ac1c0cbd 100644 --- a/hive-c0re/src/workers/agent_sockets.rs +++ b/hive-c0re/src/workers/agent_sockets.rs @@ -56,7 +56,7 @@ pub fn agent_dir_for(name: &str) -> PathBuf { /// Compute the deterministic socket path for an agent. Pure function /// of the agent name so the value matches whatever -/// [`write`] writes for that agent, and whatever the +/// [`write()`] writes for that agent, and whatever the /// harness binds via `HIVE_WEB_SOCKET`. #[must_use] pub fn socket_path_for(name: &str) -> PathBuf {