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 <hex> and stats/container_stats.rs <name>: 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.
This commit is contained in:
atlas 2026-08-14 00:23:43 +02:00
commit e15c499a31
9 changed files with 14 additions and 14 deletions

View file

@ -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: <hex>"), so just hunt the output for the
/// successfully created: `<hex>`"), so just hunt the output for the
/// first long hex-looking word.
fn extract_token(output: &str) -> Option<String> {
output

View file

@ -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<NodeId> {
.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<GraphNode>, 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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -53,7 +53,7 @@ pub(super) async fn handle_restart(coord: &Arc<Coordinator>, 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(

View file

@ -158,7 +158,7 @@ pub fn spawn_disk_sampler() {
/// **not** create a separate machined `machine-<name>.scope` — the
/// container's cgroup *is* the launching service unit,
/// `container@<machine>.service`, placed under `machine.slice`.
/// systemd-machined still logs "New machine <name>" (registration), but the
/// systemd-machined still logs "New machine `<name>`" (registration), but the
/// cgroup stays on the service unit. So the path is
/// `machine.slice/container@<machine>.service`, and the service unit name is
/// used verbatim — no `\x2d` escaping (that only applies when a string is

View file

@ -47,7 +47,7 @@ static PROVIDER: OnceLock<SdkMeterProvider> = 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");

View file

@ -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 {