From 05cf8e827635bcf37f84cd2561df54a40789be91 Mon Sep 17 00:00:00 2001 From: iris Date: Mon, 7 Sep 2026 14:38:33 +0200 Subject: [PATCH] docs: remove hyphens from auto-X compounds per Microsoft.Auto style Fixed 72 hyphenated 'auto-X' compounds across the docs by deleting the hyphen to match Microsoft style guide (autogenerated, autoregistration, autodiscovery, etc). Preserved original capitalization throughout. Covered 26 documentation files in docs/, including README.md, agent-lifecycle, integrations, scheduler, networking, process, tools, trust-boundary, turn-loop, and web-ui sections. --- docs/README.md | 6 +++--- docs/agent-lifecycle/agent-hierarchy.md | 4 ++-- docs/agent-lifecycle/approvals.md | 8 ++++---- docs/agent-lifecycle/persistence.md | 4 ++-- docs/integrations/forge.md | 2 +- docs/integrations/knowledge.md | 4 ++-- docs/integrations/matrix.md | 6 +++--- docs/networking/gateway.md | 6 +++--- docs/process/gotchas.md | 2 +- docs/process/pr-review-gate.md | 10 +++++----- docs/scheduler/ci.md | 10 +++++----- docs/scheduler/coordinator.md | 4 ++-- docs/swarm/README.md | 4 ++-- docs/tools/README.md | 6 +++--- docs/tools/bash.md | 4 ++-- docs/tools/forge-cli.md | 4 ++-- docs/tools/forge.md | 4 ++-- docs/tools/hivectl.md | 4 ++-- docs/tools/matrix.md | 6 +++--- docs/tools/scheduling.md | 2 +- docs/trust-boundary/security.md | 2 +- docs/turn-loop/claude-invocation.md | 12 ++++++------ docs/web-ui/agent.md | 4 ++-- docs/web-ui/dashboard.md | 16 ++++++++-------- docs/web-ui/design-guide.md | 2 +- docs/web-ui/shape.md | 4 ++-- 26 files changed, 70 insertions(+), 70 deletions(-) diff --git a/docs/README.md b/docs/README.md index 4bb56aaf..7b8261e6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,7 +3,7 @@ Depth reference for hyperhive — the substrate, not the pitch (that's the [top-level README](../README.md) / [website](https://hyperhive.darkest.space)). Every page here stands alone; pick the one matching your task rather than -reading top to bottom. For the auto-generated NixOS options reference +reading top to bottom. For the autogenerated NixOS options reference (every `services.hyperhive.*` / `hyperhive.*` option, host and agent), see [the options site](https://hyperhive.darkest.space/options/) instead — this tree is prose, that one's generated straight from the module @@ -63,7 +63,7 @@ declarations. - **What does `hivectl` do? Provisioning, gateway users, container shells?** → [`tools/hivectl.md`](tools/hivectl.md) (the curated guide); [`tools/hivectl-cli.md`](tools/hivectl-cli.md) for the exhaustive, - auto-generated flag reference. + autogenerated flag reference. ## Networking & swarms @@ -83,7 +83,7 @@ declarations. [`scheduler/jobq.md`](scheduler/jobq.md) — operator-facing, no implementation detail. - **How does the rebuild queue work? What are the concrete step kinds, queue sources, scheduler internals?** → [`scheduler/coordinator.md`](scheduler/coordinator.md). -- **How does the CI runner work? What's the auto-registration flow?** → +- **How does the CI runner work? What's the autoregistration flow?** → [`scheduler/ci.md`](scheduler/ci.md). - **How do I export Claude Code metrics (tokens, cost, tool calls) to Prometheus/Grafana?** → [`scheduler/observability.md`](scheduler/observability.md). diff --git a/docs/agent-lifecycle/agent-hierarchy.md b/docs/agent-lifecycle/agent-hierarchy.md index 8ecb791a..3919231a 100644 --- a/docs/agent-lifecycle/agent-hierarchy.md +++ b/docs/agent-lifecycle/agent-hierarchy.md @@ -150,7 +150,7 @@ Manager}` switch picks the MCP tool allow-list claude sees. Both are manager-only overrides exist across `hive-c0re` today: loose-ends visibility (manager sees hive-wide, sub-agents only their own), `destroy` refusing to act on the manager, and crash-watch skipping - the manager (it auto-restarts via systemd instead of going through + the manager (it autorestarts via systemd instead of going through the crash-watch loop). Each is planned to become an ancestor/descendant check instead of a manager-name check — see the module docs for `loose_ends.rs`, `stores/broker.rs`, `actions.rs`, @@ -225,7 +225,7 @@ uid 0 and have the setuid bit set." - `Restart = on-failure`, `RestartSec = 2` — keeps the harness resilient across transient crashes without thundering retries. - `RuntimeDirectory = "hive-config"` → `/run/hive-config/` owned by - `User=`, auto-cleared on stop. The harness writes regenerated + `User=`, autocleared on stop. The harness writes regenerated `claude-{mcp-config,settings,system-prompt}` files there (`paths::config_dir`). Deliberately separate from `/run/hive`, which the host bind-mounts in root-owned and which holds hive-c0re's diff --git a/docs/agent-lifecycle/approvals.md b/docs/agent-lifecycle/approvals.md index 3dfedc69..c09532e7 100644 --- a/docs/agent-lifecycle/approvals.md +++ b/docs/agent-lifecycle/approvals.md @@ -340,7 +340,7 @@ Single-phase variants exist for paths without rollback semantics: `meta::lock_update_for_rebuild(name)` for the manual `↻ R3BU1LD` button (commits if the lock changed) and `meta::lock_update_hyperhive()` for the -auto-update flake-rev bump (one shot before per-agent +autoupdate flake-rev bump (one shot before per-agent rebuilds, commits if the lock changed). `meta::sync_agents(hive: &HiveEnv, agents: &[AgentSpec])` — `hive` @@ -644,7 +644,7 @@ hive-c0re-vouched commit sha. Optional `tag` carries the deploy bookkeeping tag — `deployed/` on a successful build or `failed/` on a failed one, planted by the `MergeConfigPr` deploy. Both fields are `Option`: `None` on the paths that don't deploy a new -commit (spawn / init_config / meta-update / deny, and the auto-update +commit (spawn / init_config / meta-update / deny, and the autoupdate sweep's `job_queue::templates::rebuild` reapplying the existing main, or the dashboard `↻ R3BU1LD` button when the lock didn't move). When set, `git show ` against `/applied//.git` inside the @@ -657,7 +657,7 @@ message-event list. If it's "FYI, check when convenient," call `push_todo`/`push_todo_submitter` directly instead — no new wire type needed. -## Auto-update on startup +## Autoupdate on startup `hive-c0re serve` runs `auto_update::run` in a background task right after opening the coordinator. It enumerates managed containers and @@ -668,7 +668,7 @@ one — sub-agents and the root agent go through the same "Rev" = canonical filesystem path of `cfg.hyperhiveFlake`. Marker file: `/var/lib/hyperhive/applied/..hyperhive-rev`. If the flake input has no canonical path (for example a `github:` URL), -auto-update is a no-op — rebuild manually. +autoupdate is a no-op — rebuild manually. The dashboard surfaces pending updates per agent: a clickable "needs update ↻" badge appears whenever the marker differs from diff --git a/docs/agent-lifecycle/persistence.md b/docs/agent-lifecycle/persistence.md index 0cdc420b..a7c510f2 100644 --- a/docs/agent-lifecycle/persistence.md +++ b/docs/agent-lifecycle/persistence.md @@ -439,7 +439,7 @@ On a btrfs host, a brand-new agent's state root is created as a **btrfs subvolume** instead of a plain directory (progressive enhancement — see the #1762 lane). This is a no-op fallback on non-btrfs hosts and for any agent whose root already exists, so -nothing is auto-migrated: existing agents keep their plain dirs +nothing is automigrated: existing agents keep their plain dirs until an explicit opt-in upgrade. - **Creation:** `lifecycle::ensure_agent_state_subvolume` runs before @@ -548,7 +548,7 @@ streamable-http (`hyperhive.mcp.matrixHttpPort`, no stdio bridge — same shape as `hive-bash-daemon`), emits hyperhive wake signals on incoming room events via `/run/hive/mcp.sock`. Conditional on `hyperhive.matrix.enable` (which both the daemon AND the -auto-injected `extraMcpServers.matrix` entry read). +autoinjected `extraMcpServers.matrix` entry read). **First-boot ordering**: hive-c0re provisions the matrix token AFTER agent containers come up. Without the path-trigger sibling diff --git a/docs/integrations/forge.md b/docs/integrations/forge.md index f6f00191..58e38826 100644 --- a/docs/integrations/forge.md +++ b/docs/integrations/forge.md @@ -331,7 +331,7 @@ subsequent comment. ### Subscription management -The poller does **not** auto-unsubscribe from repo watches — it +The poller does **not** autounsubscribe from repo watches — it delivers every unread notification it's handed. Bounding the firehose (dropping broad repo watches an agent doesn't need) is done explicitly via a hive-forge CLI subscription verb, not by the poller diff --git a/docs/integrations/knowledge.md b/docs/integrations/knowledge.md index 023b6af7..82d1418f 100644 --- a/docs/integrations/knowledge.md +++ b/docs/integrations/knowledge.md @@ -26,9 +26,9 @@ the local clone updates automatically (see Canonical forge location: `internal/knowledge` (org `internal`, repo `knowledge`). The repo is public, so every agent's forge account has read access without an explicit per-agent collaborator grant; -only the `core` account has push access, for auto-seeding. +only the `core` account has push access, for autoseeding. -The repo is auto-created at hive-c0re startup if it doesn't exist, +The repo is autocreated at hive-c0re startup if it doesn't exist, seeded with a `README.md` containing a contribution guide and a blank table of contents. Add an entry to that ToC each time you create a new document. diff --git a/docs/integrations/matrix.md b/docs/integrations/matrix.md index 4a88d05f..cbeb25ab 100644 --- a/docs/integrations/matrix.md +++ b/docs/integrations/matrix.md @@ -33,7 +33,7 @@ Two distinct hostnames: *irrevocably* in every `@user:` and `!room:` identifier minted on this homeserver. can't be changed later without abandoning every account and chat history. Defaults to the - bare `services.hyperhive.swarm.domain`; clients auto-discover the + bare `services.hyperhive.swarm.domain`; clients autodiscover the actual API endpoint via the `.well-known/matrix/{client,server}` routes the gateway serves at that domain. - **`gatewayHost`** — the API listener hostname, where the gateway's @@ -167,7 +167,7 @@ Matrix client that groups all agent-to-agent + operator rooms in one place. The sweep also provisions a default **`hive-chat` room** as an -`m.space.child` of the Space. Joining a Space doesn't auto-join +`m.space.child` of the Space. Joining a Space doesn't autojoin child rooms — the explicit room entry ensures the operator and every agent can find a common chat room without manual setup. Room join is restricted (any Space member including the operator can join; agents @@ -256,7 +256,7 @@ Both fixed in `nix/host-modules/hive-matrix.nix` via two derivations: `native_imaging` C source via `pkgs.emscripten`. Source comes from `pkgs.fluffychat-web.passthru.pubspecLock.dependencySources.native_imaging` — already in the build closure of the flutter app, so no parallel - hash pin and version auto-syncs with nixpkgs bumps. Build closure + hash pin and version autosyncs with nixpkgs bumps. Build closure is ~3.6 GiB (emscripten LLVM); runtime closure is just the two output files. `dontConfigure = true` because cmake runs inside `js/Makefile` via `emcmake cmake`, not at the package root. The diff --git a/docs/networking/gateway.md b/docs/networking/gateway.md index 99d60376..e251bd60 100644 --- a/docs/networking/gateway.md +++ b/docs/networking/gateway.md @@ -194,7 +194,7 @@ services.hyperhive.gateway = { }; ``` -nginx obtains and auto-renews certs via the ACME HTTP-01 challenge on `port` (default 80). Certs land in `/var/lib/acme/` on the host, managed by nixpkgs's `security.acme` in the ordinary way. +nginx obtains and autorenews certs via the ACME HTTP-01 challenge on `port` (default 80). Certs land in `/var/lib/acme/` on the host, managed by nixpkgs's `security.acme` in the ordinary way. **Requirements**: `services.hyperhive.domain` must be publicly DNS-resolvable to this host, and `openFirewall = true` so Let's Encrypt can reach `/.well-known/acme-challenge/`. Each active vhost (main domain, `forge.`, `chat.`) gets its own cert via separate ACME challenges — the swarm services default to names under `services.hyperhive.swarm.domain`, so **every one of those names must resolve to this host too**, not just the hive's own. @@ -370,10 +370,10 @@ services.hyperhive.swarm.forge.rootUrl = "https://forge.example.com/"; ``` `rootUrl` (default **null**) overrides the Forgejo `ROOT_URL` that's -auto-derived from `forge.domain` + gateway state. The auto-derivation +autoderived from `forge.domain` + gateway state. The autoderivation covers most cases: -| Shape | Auto-derived `ROOT_URL` | +| Shape | Autoderived `ROOT_URL` | |---|---| | `deploy.forgejo.behindGateway = true` | `https:///` (port suffix omitted when `gateway.httpsPort == 443`) | | `deploy.forgejo.behindGateway = false` | `http://:/` | diff --git a/docs/process/gotchas.md b/docs/process/gotchas.md index 7938d7f8..0f35f42b 100644 --- a/docs/process/gotchas.md +++ b/docs/process/gotchas.md @@ -26,7 +26,7 @@ looks like a natural extension point and does nothing. Use Not `boot.isContainer = true`. Renamed in nixos-25.11+. -### `nixos-container create` auto-assigns `HOST_ADDRESS` / `LOCAL_ADDRESS` +### `nixos-container create` autoassigns `HOST_ADDRESS` / `LOCAL_ADDRESS` …in the `.conf`. The start script's `if HOST_ADDRESS set → --network-veth` branch then forces a private netns — silently fatal diff --git a/docs/process/pr-review-gate.md b/docs/process/pr-review-gate.md index f4a38db0..4ece00a7 100644 --- a/docs/process/pr-review-gate.md +++ b/docs/process/pr-review-gate.md @@ -1,7 +1,7 @@ # The PR review gate What a review verdict means, why a reviewer shouldn't wait on CI to -submit one, and what "armed to auto-merge" actually signals about the +submit one, and what "armed to automerge" actually signals about the human review that already happened. ## The gate has (up to) three parts, and they're per-repo settings @@ -17,7 +17,7 @@ hive or every repo. The pieces a repo _can_ require: (Forgejo's "dismiss stale approvals" branch-protection option), not universal behavior. - **Someone with write access has armed the PR to merge** — a manual - merge once the required conditions hold, or Forgejo's auto-merge + merge once the required conditions hold, or Forgejo's automerge (merges automatically the moment the other required conditions are met). @@ -36,9 +36,9 @@ still running"), but don't gate the formal verdict on it: CI isn't a signal a reviewer waits on, it's a separate condition that resolves independently. -## What arming auto-merge actually means +## What arming automerge actually means -Auto-merge isn't "no human ever looked at this." Whoever arms it has +Automerge isn't "no human ever looked at this." Whoever arms it has already judged the PR sound at a coarse level — the signal it sends is roughly _"apart from maybe minor tweaks a reviewer can still catch, I think this is fine."_ That's the human-in-the-loop step, and it @@ -46,7 +46,7 @@ already happened. No large changes are expected to surface after that point — a reviewer's job past that point is to flag it if one does, not to assume none ever will. -The practical consequence for a reviewer: on a repo where auto-merge +The practical consequence for a reviewer: on a repo where automerge may already be armed before your review lands, a plain `APPROVED` can be the last step before the merge actually happens, with no further review pass after yours. That's a reason to actually finish checking diff --git a/docs/scheduler/ci.md b/docs/scheduler/ci.md index 84a70bd7..af9df2c5 100644 --- a/docs/scheduler/ci.md +++ b/docs/scheduler/ci.md @@ -26,7 +26,7 @@ Two things worth knowing before you rely on it: host's NixOS config (not optional if you plan to actually use this). Everything below this point is implementation detail: exact -auto-registration internals, container design, and the full security +autoregistration internals, container design, and the full security writeup. ## CI checks @@ -105,7 +105,7 @@ build can't hold the runner's single slot indefinitely). - **Sandbox fallback**: nspawn containers can't create user-namespaces, so nix's sandboxing would always fail. Module sets `nix.settings.sandbox-fallback = true` in the container — nix builds run unsandboxed (safe because the container is already isolated). See `docs/process/gotchas.md`. - **Credential isolation**: the forge admin token (`forge-core-token`) never enters the container. hive-c0re holds it and performs all forge API calls (runner validation + registration-token mint, in `forge/ci_runner.rs`); via hive-priv it writes only the runner registration token to the host env-file `/run/hive-ci/runner-token`, which the container bind-mounts read-only. -## Auto-registration flow +## Autoregistration flow Registration is **off the container's boot-critical path** — hive-c0re owns it and runs it out of band, so a slow forge or core-token never delays the @@ -135,7 +135,7 @@ Gated on `HYPERHIVE_FORGE_CI_ENABLED` (the nix module sets it on `hive-c0re.serv ## Actions checkout mirror -When `deploy.forgejo.ci.enable` is set, hive-c0re auto-seeds an +When `deploy.forgejo.ci.enable` is set, hive-c0re autoseeds an `actions/checkout` pull-mirror on the local forge and sets Forgejo's `DEFAULT_ACTIONS_URL` to point at the local instance. This means CI `uses: actions/checkout@vN` steps resolve entirely on loopback — no @@ -163,7 +163,7 @@ Each entry is created as a real Forgejo pull-mirror — not a one-off clone. Forgejo re-syncs the mirror on every pull (`git-upload-pack` request), so a DNS blip during that sync will propagate back to the runner as a hard `git clone` failure. The -`` org in `dest` is auto-created. Keep mirror dests out of the +`` org in `dest` is autocreated. Keep mirror dests out of the hive-c0re-managed namespaces (`config/`, `shared/`, `agents/`, `core/`) to avoid provisioning collisions. @@ -248,6 +248,6 @@ builder — disk-pressure collection at least runs while nothing is mid-copy. ## References -- `nix/host-modules/hive-ci.nix`: runner configuration, auto-registration script, container setup. +- `nix/host-modules/hive-ci.nix`: runner configuration, autoregistration script, container setup. - `.forgejo/workflows/ci.yml`: workflow definition. - `docs/process/gotchas.md`: nix sandboxing limitations in containers. diff --git a/docs/scheduler/coordinator.md b/docs/scheduler/coordinator.md index 6ef4d863..c701e894 100644 --- a/docs/scheduler/coordinator.md +++ b/docs/scheduler/coordinator.md @@ -158,7 +158,7 @@ reparent(moves): Reparent(moves) (no rebuild — topology.json is read live) Notable collapses: - **`rebuild` is one uniform shape** — no `was_running` branch. - `StopForUpdate` noops when already down; the tail `Reconcile` auto-noops the + `StopForUpdate` noops when already down; the tail `Reconcile` autanoops the start when `wanted = Offline` (a rebuild of a deliberately-stopped agent leaves it stopped). - **The swap-failure recovery-start is structural**: `Reconcile` deps on @@ -479,7 +479,7 @@ flags → `systemctl daemon-reload` → `start`. ### Prebuild attr path -`nix build` doesn't auto-resolve `meta#` against `nixosConfigurations` the +`nix build` doesn't autoresolve `meta#` against `nixosConfigurations` the way `nixos-container` does internally. The explicit attr path `#nixosConfigurations..config.system.build.toplevel` is required; using the bare `meta#` ref would make nix look in `packages`, `legacyPackages`, diff --git a/docs/swarm/README.md b/docs/swarm/README.md index 57b3fb8d..0e5f43da 100644 --- a/docs/swarm/README.md +++ b/docs/swarm/README.md @@ -396,10 +396,10 @@ refused delivery logs `webhook: refused delivery` with the reason. - `docs/networking/snapshot-store.md` — the swarm's `btrfs receive` endpoint, and the `swarm.snapshotStore` option that points a hive at it - `docs/process/conventions.md` § Hive identity — env vars, qualified labels -- `docs/integrations/matrix.md` — matrix federation, TLS cert auto-generation, +- `docs/integrations/matrix.md` — matrix federation, TLS cert autogeneration, firewall posture - `docs/swarm/ui.md` — the swarm-wide hive roster, now the operator surface for "what hives exist" (superseded the per-hive dashboard's old "peer hives" display) - `docs/networking/gateway.md` — nginx vhosts and the `.well-known/matrix/` - auto-discovery scheme + autodiscovery scheme diff --git a/docs/tools/README.md b/docs/tools/README.md index 9f521648..fba7cc15 100644 --- a/docs/tools/README.md +++ b/docs/tools/README.md @@ -12,12 +12,12 @@ debug agent behavior. - **[hivectl](hivectl.md)** — the curated guide: provisioning forge and matrix accounts, gateway htpasswd management, container lifecycle shortcuts, interactive agent shell access. -- **[hivectl-cli](hivectl-cli.md)** — the exhaustive, auto-generated +- **[hivectl-cli](hivectl-cli.md)** — the exhaustive, autogenerated flag-by-flag reference, kept in lockstep with the binary by CI. ## For the swarm operator -- **[swarmctl-cli](swarmctl-cli.md)** — the exhaustive, auto-generated +- **[swarmctl-cli](swarmctl-cli.md)** — the exhaustive, autogenerated flag-by-flag reference for `swarmctl`, kept in lockstep with the binary by CI the same way `hivectl-cli.md` is. `swarmctl` itself runs as root on the swarm-controller host, not through `hivectl` — @@ -31,7 +31,7 @@ debug agent behavior. - **[forge](forge.md)** — the `hive-forge` Forgejo CLI every agent has for issues, PRs, and comments. Not an MCP tool — a binary agents shell out to instead of ad-hoc curl. -- **[forge-cli](forge-cli.md)** — the exhaustive, auto-generated +- **[forge-cli](forge-cli.md)** — the exhaustive, autogenerated flag-by-flag reference for `hive-forge`, kept in lockstep with the binary by CI the same way `hivectl-cli.md` is. - **[lifecycle](lifecycle.md)** — kill/start/restart/update for an diff --git a/docs/tools/bash.md b/docs/tools/bash.md index e6c426ca..c060cb90 100644 --- a/docs/tools/bash.md +++ b/docs/tools/bash.md @@ -29,12 +29,12 @@ delivered the terminal result inline, in which case no todo is created response is returned. **Defaults to 3** — pass `wait_seconds: 0` to disable inline waiting and always get the immediate response. - `name` — optional caller-chosen task id. When set it replaces the - auto-generated hex id, so it surfaces in `status()` lookups and + autogenerated hex id, so it surfaces in `status()` lookups and the loose-ends list — a memorable label instead of an opaque id. A name is **reusable once its previous task has finished**; submitting a name whose task is still `pending`/`running` is rejected. Allowed characters: `[a-z0-9-]` (a valid identifier — lowercase, digits, - hyphen; max 63). Omit for the auto-generated id. + hyphen; max 63). Omit for the autogenerated id. Exposed as `mcp__bash__run`. diff --git a/docs/tools/forge-cli.md b/docs/tools/forge-cli.md index a6a20585..5b1a5cf3 100644 --- a/docs/tools/forge-cli.md +++ b/docs/tools/forge-cli.md @@ -98,7 +98,7 @@ Forgejo CLI wrapper for hyperhive * `pr` — PR-scoped commands: `pr …` * `comment-show` — Print the body (or full JSON) of a single comment by id * `comment-edit` — Edit an existing comment by id -* `clone` — Clone a forge repo (default `-r`/`HIVE_FORGE_REPO`) with credentials auto-injected. Pairs with `pr-create --agit` +* `clone` — Clone a forge repo (default `-r`/`HIVE_FORGE_REPO`) with credentials autoinjected. Pairs with `pr-create --agit` * `repo-create` — Create a forge repo under the current user (or `--org`). Prints the repo URL * `repo-add-collaborator` — Add a collaborator to the active repo (`-r`/`HIVE_FORGE_REPO`) with a permission level. Companion to `repo-create` * `repo-labels` — List every label defined on the repo (name + description), optionally filtered by a name substring @@ -956,7 +956,7 @@ Edit an existing comment by id ## `hive-forge clone` -Clone a forge repo (default `-r`/`HIVE_FORGE_REPO`) with credentials auto-injected. Pairs with `pr-create --agit` +Clone a forge repo (default `-r`/`HIVE_FORGE_REPO`) with credentials autoinjected. Pairs with `pr-create --agit` **Usage:** `hive-forge clone [OPTIONS] [DEST]` diff --git a/docs/tools/forge.md b/docs/tools/forge.md index 0bb34374..480a03a9 100644 --- a/docs/tools/forge.md +++ b/docs/tools/forge.md @@ -5,7 +5,7 @@ container (installed via `nix/agent-modules/forge.nix`, on `PATH` as a proper Rust binary). Use it instead of ad-hoc curl pipelines. This page is the curated guide. For the exhaustive flag-by-flag reference -auto-generated from the binary's own command tree, see +autogenerated from the binary's own command tree, see [`forge-cli.md`](forge-cli.md) — emitted by the hidden `hive-forge markdown-docs` subcommand and kept in lockstep with the code by the `hive-forge-docs` flake check (CI fails if the committed copy drifts). @@ -139,7 +139,7 @@ distinct output shape — pick by what you need: | Need | Verb | Shape | | ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| The full human view of one item — title, body, **and** every comment in order | `view ` | prose dump; **marks the thread read** (clears the read-before-comment guard). Top-level `view` auto-detects issue-or-PR by number; scoped `issue view ` / `pr view ` do the same when you already know the kind | +| The full human view of one item — title, body, **and** every comment in order | `view ` | prose dump; **marks the thread read** (clears the read-before-comment guard). Top-level `view` autodetects issue-or-PR by number; scoped `issue view ` / `pr view ` do the same when you already know the kind | | Just the structured metadata of one item (state, labels, assignees, head sha…) | `issue ` / `pr ` | JSON object | | Only the comments (skip the body), for example to catch up a long thread; for PRs, review bodies (approve/request-changes/comment summaries) are merged in too | `comments ` [`--tail N`] | comment + review-body list; **marks read** | | One specific comment by its id | `comment-show ` | single comment | diff --git a/docs/tools/hivectl.md b/docs/tools/hivectl.md index 47a584da..6c27e533 100644 --- a/docs/tools/hivectl.md +++ b/docs/tools/hivectl.md @@ -15,7 +15,7 @@ forge + matrix accounts, gateway htpasswd management, container lifecycle shortcuts, and interactive agent shell access. This page is the curated guide. For the exhaustive flag-by-flag -reference auto-generated from the binary's own command tree, see +reference autogenerated from the binary's own command tree, see [`hivectl-cli.md`](hivectl-cli.md) — emitted by the hidden `hivectl markdown-docs` subcommand and kept in lockstep with the code by the `hivectl-docs` flake check (CI fails if the committed copy drifts). @@ -50,7 +50,7 @@ hivectl forge reconcile-config iris --verbose # include the full diff, not - `reconcile-config ` shows the divergence between the agent's local applied config checkout and its forge `agent-configs/` `main`, then reconciles. `--from forge` resets the local checkout to forge `main` (takes - effect on the next deploy — it doesn't auto-rebuild). `--from local` isn't + effect on the next deploy — it doesn't autorebuild). `--from local` isn't supported yet (forge `main` is core-only branch-protected; resolve via a config PR). With no `--from` it prompts for the direction after the diff. diff --git a/docs/tools/matrix.md b/docs/tools/matrix.md index 58c67d3e..eac16a92 100644 --- a/docs/tools/matrix.md +++ b/docs/tools/matrix.md @@ -3,7 +3,7 @@ ## Built-in matrix MCP (`mcp__matrix__*`) When `hyperhive.matrix.enable = true` and the host-level matrix -tuwunel is configured, the harness auto-injects `hive-matrix-daemon`'s +tuwunel is configured, the harness autoinjects `hive-matrix-daemon`'s streamable-http endpoint as a second MCP server (no stdio bridge — see Architecture below). Tools land as `mcp__matrix__`: @@ -120,7 +120,7 @@ a one-shot signal that raced a socket-down window was dropped with no retry, leaving the agent deaf until manually prompted) and upserts a todo (keyed `invite:`) for each pending invite on the harness's in-agent socket, which drives a turn. The daemon does **not** -auto-join — the agent calls `list_invites` to see pending invites and +autojoin — the agent calls `list_invites` to see pending invites and `resolve_invite` to accept or reject them. **Pending invites as loose ends**: pending invites are upserted as @@ -152,5 +152,5 @@ in by adding them to `inputs.*` and referenced as sha lands in the agent's own `flake.lock` and rolls up to meta's. `allowedTools` defaults to `["*"]`, which expands to -`mcp____*` (every tool from that server auto-approved). Restrict +`mcp____*` (every tool from that server autoapproved). Restrict to specific tool names when you want finer control. diff --git a/docs/tools/scheduling.md b/docs/tools/scheduling.md index 32797043..830bbcab 100644 --- a/docs/tools/scheduling.md +++ b/docs/tools/scheduling.md @@ -37,7 +37,7 @@ rows (terminal state). Cancel a schedule. Omit `targets` / pass empty to cancel the whole schedule; pass a list to cancel just those recipients (the schedule -auto-cancels when every target is removed). +autocancels when every target is removed). ### `fire_schedule_now(id)` diff --git a/docs/trust-boundary/security.md b/docs/trust-boundary/security.md index 2ba3962d..df348787 100644 --- a/docs/trust-boundary/security.md +++ b/docs/trust-boundary/security.md @@ -86,7 +86,7 @@ the answer is _don't grant the capability_ — not "grant it and hope the sandbox holds", because there is no sandbox between an agent and the tools you handed it. -### No auto-sandboxing of external tokens +### No autosandboxing of external tokens hyperhive provisions and scopes its **own** per-agent forge + matrix tokens. It does **not** automatically sandbox or scope **external** credentials diff --git a/docs/turn-loop/claude-invocation.md b/docs/turn-loop/claude-invocation.md index cb82eaf0..4355263a 100644 --- a/docs/turn-loop/claude-invocation.md +++ b/docs/turn-loop/claude-invocation.md @@ -17,7 +17,7 @@ Attach, CompactionPolicy, PercentPolicy, Telemetry, Sink, SessionStore}`; see `hive-claude/README.md`). `hive-agent`'s `turn` module is the hyperhive **policy layer** on top: it builds the per-turn config from the bus, bridges the output stream onto the event bus (`BusSink`), and -owns the compaction / auto-reset / retry decisions in `drive_turn`. The +owns the compaction / autoreset / retry decisions in `drive_turn`. The lib returns everything it parsed from a turn (usage, cost, context window, resolved model) as `Telemetry`, which the policy layer applies to the bus. @@ -86,11 +86,11 @@ context (it won't carry our title). claude stores sessions in `--name` writes the title into the file as a `custom-title` event, which is what `--resume ` resolves against. We never pass bare `--continue` (it resumes the _latest_ session in the cwd — the hijack -vector). Auto-memory and dynamic workflows (the `/workflows` feature) are +vector). Automemory and dynamic workflows (the `/workflows` feature) are disabled via the managed settings at `/etc/claude-code/managed-settings.json`: `disableWorkflows` keeps the `/workflows` machinery from spawning sub-runs that burn usage on the harness's autonomous turns. Claude's own native -auto-compact is **on**, at the widest window claude-code allows — see +autocompact is **on**, at the widest window claude-code allows — see [Compaction](#compaction) below for why (it's a safety net, not the primary mechanism; hyperhive still owns that). @@ -191,14 +191,14 @@ still applies. fresh. Unlike proactive compaction the session is dropped entirely, not compacted — and _no_ preceding checkpoint turn runs, because any turn before the reset would just re-warm the cache and defeat the purpose. - Set `HIVE_AUTO_RESET_WATERMARK_TOKENS=0` to disable. Auto-reset and the + Set `HIVE_AUTO_RESET_WATERMARK_TOKENS=0` to disable. Autoreset and the operator reset are mutually exclusive per turn (both archive → fresh turn), so an explicit operator reset short-circuits the heuristic. The child runs with `cwd = /state` (when the bind exists; falls back to the parent's cwd in dev), so any relative path in a tool call (`Read foo.md`, `Bash ls`, `Write notes.md`) lands in the -agent's durable bind-mounted dir. CLAUDE.md auto-load walks +agent's durable bind-mounted dir. CLAUDE.md autoload walks upward from `/state` — drop a per-agent CLAUDE.md there if you want long-term hints that survive destroy/recreate. @@ -268,7 +268,7 @@ the renderer also treats `Some("")`from a caller as`None` so same way. The per-turn plumbing described on this page — on-boot files, session -identity, the reset/auto-reset/retry state machine, and the +identity, the reset/autoreset/retry state machine, and the telemetry-to-bus bridge — lives in `hive-agent`'s `turn` module; see its `//!` doc comment (`hive-agent/src/turn.rs`) for the exact call shape. The actual claude spawn, stream classification, and the diff --git a/docs/web-ui/agent.md b/docs/web-ui/agent.md index 5982e4b8..e5dbb111 100644 --- a/docs/web-ui/agent.md +++ b/docs/web-ui/agent.md @@ -123,7 +123,7 @@ and scrolls behind the fixed header + footer. silently ignore `autocomplete="off"` on `type="password"`, but `one-time-code` is honoured and suppresses the "save password for this site?" prompt that would otherwise fire on submit. -- Terminal-wrap: live event tail (sticky-bottom auto-scroll + +- Terminal-wrap: live event tail (sticky-bottom autoscroll + `↓ N new` pill when not at bottom). The pill is **anchored in `.agent-main`**, not in `log.parentElement = .terminal-wrap`: `.terminal-wrap` applies `backdrop-filter: blur` for the frost @@ -195,7 +195,7 @@ SSE frame and the replayed history rows. The web UI: - terminal-themed: phosphor mauve glow, Crust bg, backdrop-filter blur, row fade-in slide-up. -The backfill/live-tail dedupe, sticky-bottom auto-scroll, and "↓ N +The backfill/live-tail dedupe, sticky-bottom autoscroll, and "↓ N new" pill are the shared terminal-pane mechanics described in [Shape](shape.md#shared-terminal-pane) — this page's log is one instance of that same factory. diff --git a/docs/web-ui/dashboard.md b/docs/web-ui/dashboard.md index 7b4d471e..d824c90e 100644 --- a/docs/web-ui/dashboard.md +++ b/docs/web-ui/dashboard.md @@ -153,7 +153,7 @@ snapshot-storage rework where the problem changes shape. tool-group JSON entries but no live container — typically renamed or deleted agents whose entries persisted in `capabilities.json` / `tool-groups.json`. Lazy-loaded on first K3PT ST4T3 tab activation; -auto-refreshes on `capabilities_changed` + `tool_groups_changed` SSE +autorefreshes on `capabilities_changed` + `tool_groups_changed` SSE events. Each ghost agent gets a `✕ clear perms` button (`DELETE /api/permissions/{name}`). @@ -285,7 +285,7 @@ update button is disabled (snapshot field `meta_update_running`, live event `meta_update_running`). **BUILD L0GS** — all-agents build log history (moved from `/logs.html`). -Lazy-loaded on first tab activation; auto-refreshes when +Lazy-loaded on first tab activation; autorefreshes when `rebuild_queue_changed` fires. Fetches `GET /api/build-logs?limit=30`. Renders a scrollable list of build entries; each row is a collapsible button showing status badge (`live` / `ok` / `fail`), agent name, @@ -293,7 +293,7 @@ elapsed duration, build kind, age, and the invocation command line. Expanding a row fetches the full stdout+stderr via `GET /api/build-logs/id/{id}`. A live in-progress build shows a `live` badge with a ticking elapsed-time chip; expanding streams output via -`GET /api/build-logs/id/{id}/stream` with sticky-bottom auto-scroll +`GET /api/build-logs/id/{id}/stream` with sticky-bottom autoscroll (suspends on manual scroll-up). Deep-link: `?id=N#buildlogs` opens the entry with that id pre-expanded. @@ -640,7 +640,7 @@ the matrix module exposes). The unified nginx-front re-root to `https://chat.${hyperhive.swarm.domain}` + `.well-known/matrix/client` -auto-discovery lives in `docs/networking/gateway.md` (atlas's lane). +autodiscovery lives in `docs/networking/gateway.md` (atlas's lane). ## FL0W page (`/flow.html`) @@ -675,9 +675,9 @@ The row is a `flex-wrap: wrap` container holding ts / arrow / from / sep chips (`flex: 1 1 100%`) so long timestamps and agent names never push the body into a narrow trailing column. `min-width: 0` keeps `word-break: break-word` effective so the body doesn't force the row wider -than its container. Sticky-bottom auto-scroll + "↓ N new" pill. Below the +than its container. Sticky-bottom autoscroll + "↓ N new" pill. Below the stream sits a terminal-style compose box: `@name` picks the recipient -(sticky via localStorage; auto-complete from the live container list, +(sticky via localStorage; autocomplete from the live container list, Tab/Enter to confirm; `@*` broadcasts). `POST /api/op-send` drops `{from:"operator", to, body}` into the broker; the resulting SSE frame re-renders the terminal row. The root agent is addressed as `@root`. @@ -948,7 +948,7 @@ OS. Three primitives, all built on the `openDialog` core: - `themedToast(message, { type, ... })` — a non-blocking toast (top-right, `info` / `error` / `ok`) for transient validation + action failures, so an error doesn't trap the operator behind a modal. - Single-action errors auto-dismiss; bulk / partial-failure + Single-action errors autodismiss; bulk / partial-failure summaries are sticky (click to dismiss) so they aren't missed. Every destructive run-state action (`ST0P`, `R3ST4RT`, `R3BU1LD`, @@ -1272,7 +1272,7 @@ below — some endpoints aren't in it yet. and the target starts fresh (operator intent on re-add = "this target is active again"). `targets_remove` delegates to the same path as `cancel_targets` — tombstones preserve - audit, parent schedule auto-cancels when no active targets + audit, parent schedule autocancels when no active targets remain. Refuses cancelled rows; returns the updated `WireSchedule` on success. - `POST /api/schedules/{id}/cancel` — cancel a schedule. Body diff --git a/docs/web-ui/design-guide.md b/docs/web-ui/design-guide.md index e3d07526..ef5de43b 100644 --- a/docs/web-ui/design-guide.md +++ b/docs/web-ui/design-guide.md @@ -39,7 +39,7 @@ home.js`, is the reference example — currently in the dashboard the thing that shows the current model. - Loosely influenced by Material Design's current (Material You) generation, mainly for shape/elevation ideas. Colour is dynamic too — - auto-derived shades (mixing, lighter/darker) are fair game, same as + autoderived shades (mixing, lighter/darker) are fair game, same as Material's own approach — but every derived colour still traces back to the base16/stylix contract below, never an independent source. diff --git a/docs/web-ui/shape.md b/docs/web-ui/shape.md index 65dee983..c5b22136 100644 --- a/docs/web-ui/shape.md +++ b/docs/web-ui/shape.md @@ -28,7 +28,7 @@ members; a back-compat shim in the IIFE bodies still exposes a `window.HiveTerminal` global for callers that need it. The dashboard's `#msgflow` and the per-agent `#live` log are both backed by - this terminal — sticky-bottom auto-scroll, "↓ N new" pill, + this terminal — sticky-bottom autoscroll, "↓ N new" pill, history backfill, SSE plumbing all live there. Each page registers a kind→renderer map; unknown kinds fall through to a JSON-dump note row. Bare `http(s)://` URLs in row text are @@ -91,7 +91,7 @@ Both surfaces' scrollable log streams (`#msgflow` on the dashboard, `#live` on the per-agent page) are backed by the shared terminal factory in `@hive/shared/terminal.js`. The factory wires up -sticky-bottom auto-scroll, a "↓ N new" pill, history backfill, and +sticky-bottom autoscroll, a "↓ N new" pill, history backfill, and SSE replay. Pages register a `kind → renderer` map; unknown kinds fall through to a JSON-dump note row. The factory ships three row shapes the renderers call: