disinto/lib
Claude 57bc88b9a7
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/secret-scan Pipeline was successful
fix: [nomad-step-0] S0.3 — install vault + systemd auto-unseal + vault-init.sh (dev-persisted seal) (#823)
Adds the Vault half of the factory-dev-box bringup, landed but not started
(per the install-but-don't-start pattern used for nomad in #822):

- lib/init/nomad/install.sh — now also installs vault from the shared
  HashiCorp apt repo. VAULT_VERSION pinned (1.18.5). Fast-path skips apt
  entirely when both binaries are at their pins; partial upgrades only
  touch the package that drifted.

- nomad/vault.hcl — single-node config: file storage backend at
  /var/lib/vault/data, localhost listener on :8200, ui on, mlock kept on.
  No TLS / HA / audit yet; those land in later steps.

- lib/init/nomad/systemd-vault.sh — writes /etc/systemd/system/vault.service
  (Type=notify, ExecStartPost auto-unseals from /etc/vault.d/unseal.key,
  CAP_IPC_LOCK granted for mlock), deploys nomad/vault.hcl to
  /etc/vault.d/, creates /var/lib/vault/data (0700 root), enables the
  unit without starting it. Idempotent via content-compare.

- lib/init/nomad/vault-init.sh — first-run init: spawns a temporary
  `vault server` if not already reachable, runs operator-init with
  key-shares=1/threshold=1, persists unseal.key + root.token (0400 root),
  unseals once in-process, shuts down the temp server. Re-run detects
  initialized + unseal.key present → no-op. Initialized but key missing
  is a hard failure (can't recover).

lib/hvault.sh already defaults VAULT_TOKEN to /etc/vault.d/root.token
when the env var is absent, so no change needed there.

Seal model: the single unseal key lives on disk; seal-key theft equals
vault theft. Factory-dev-box-acceptable tradeoff — avoids running a
second Vault to auto-unseal the first.

Blocks S0.4 (#824).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 06:36:17 +00:00
..
hooks fix: Remove Matrix integration — notifications move to forge + OpenClaw (#732) 2026-03-26 14:53:56 +00:00
init/nomad fix: [nomad-step-0] S0.3 — install vault + systemd auto-unseal + vault-init.sh (dev-persisted seal) (#823) 2026-04-16 06:36:17 +00:00
action-vault.sh fix: [nomad-prep] P0 — rename lib/vault.sh + vault/ to action-vault namespace (#792) 2026-04-15 18:16:32 +00:00
agent-sdk.sh fix: bug: architect-run.sh empty pitch — pitch_output=$(agent_run …) captures stdout but new agent_run writes to side-channels (#716) 2026-04-12 00:04:42 +00:00
AGENTS.md chore: gardener housekeeping 2026-04-16 2026-04-16 02:15:38 +00:00
branch-protection.sh fix: bug: init branch-protection setup gives up after 3 short retries — forgejo needs more time to index freshly-created branches (#588) 2026-04-10 15:41:55 +00:00
build-graph.py fix: use undirected reachability for reviewer affected-objectives tracing 2026-03-24 21:31:55 +00:00
ci-debug.sh fix: SECURITY: Unquoted curl URLs with variables in API calls (#60) 2026-03-31 18:48:29 +00:00
ci-helpers.sh fix: fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id (#282) 2026-04-06 10:05:04 +00:00
ci-log-reader.py fix: feat: CI log access — disinto ci-logs + dev-agent CI failure context (#136) 2026-04-02 08:20:21 +00:00
ci-setup.sh fix: vision(#623): Forgejo OAuth gate for disinto-chat (#708) 2026-04-12 01:52:16 +00:00
claude-config.sh fix: disinto init: bootstrap shared CLAUDE_CONFIG_DIR for OAuth lock coherence (#641) 2026-04-10 20:15:35 +00:00
env.sh fix: [nomad-prep] P3 — add load_secret() abstraction to lib/env.sh (#793) 2026-04-15 19:15:50 +00:00
forge-push.sh fix: fix: stop baking credentials into git remote URLs — use clean URLs + existing credential helper everywhere (#604) 2026-04-10 17:04:10 +00:00
forge-setup.sh fix: [nomad-prep] P7 — make disinto init idempotent + add --dry-run (#800) 2026-04-15 22:37:22 +00:00
formula-session.sh fix: bug: architect pitch prompt guardrail is prose-only — model bypasses "NEVER call Forgejo API" via Bash tool; fix via permission scoping + PR-driven sub-issue filing (#764) 2026-04-15 07:41:16 +00:00
generators.sh fix: [nomad-prep] P1 — run all 7 bot roles on llama backend (gates migration) (#801) 2026-04-15 23:52:04 +00:00
git-creds.sh fix: bug: credential helper race on every cold boot — configure_git_creds() silently falls back to wrong username when Forgejo is not yet ready (#741) 2026-04-13 11:37:23 +00:00
guard.sh fix: tech-debt: sweep cron-isms from code comments, helpers, lib, and public site copy (#548) 2026-04-10 08:54:11 +00:00
hire-agent.sh fix: separate poll_interval from compact_pct in local-model agent TOML config 2026-04-10 05:56:18 +00:00
hvault.sh fix: address review — jq-safe JSON construction in hvault.sh 2026-04-15 21:27:34 +00:00
issue-lifecycle.sh fix: bug: dev-poll stale detection ignores label scope — relabels in-progress bug-reports as blocked (#608) 2026-04-10 18:10:58 +00:00
load-project.sh fix: bug: architect-run.sh existing-PR check builds malformed URL — ${FORGE_API}/repos/… duplicates the repos segment (#717) 2026-04-12 00:21:55 +00:00
mirrors.sh fix: use FORGE_API_BASE for /repos/migrate endpoint, build payload with jq 2026-04-15 20:29:27 +00:00
ops-setup.sh fix: fix: stop baking credentials into git remote URLs — use clean URLs + existing credential helper everywhere (#604) 2026-04-10 17:04:10 +00:00
parse-deps.sh fix: parse-deps.sh inline regex matches every line — awk /pattern/i flag is invalid (#600) 2026-03-23 10:59:47 +00:00
pr-lifecycle.sh fix: fix: standardize logging across all agents — capture errors, log exit codes, consistent format (#367) 2026-04-07 21:15:36 +00:00
release.sh fix: [nomad-prep] P0 — rename lib/vault.sh + vault/ to action-vault namespace (#792) 2026-04-15 18:16:32 +00:00
secret-scan.sh fix: Replace Codeberg dependency with local Forgejo instance (#611) 2026-03-23 16:57:12 +00:00
sprint-filer.sh fix: reuse forge_api_all from env.sh in sprint-filer.sh to avoid duplicate pagination code 2026-04-15 07:59:56 +00:00
stack-lock.sh fix: feat: stack lock protocol for singleton project stack access (#255) 2026-04-06 07:09:26 +00:00
tea-helpers.sh fix: tea_relabel uses edit subcommand, add sha256 checksum for tea binary (#666) 2026-03-25 13:34:58 +00:00
worktree.sh fix: Extract lib/worktree.sh — create, recover, cleanup (#797) 2026-03-27 19:06:31 +00:00