disinto/lib
Claude 481175e043
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful
fix: dedupe cluster-up.sh polling via poll_until_healthy helper (#824)
CI duplicate-detection flagged the in-line vault + nomad polling loops
in cluster-up.sh as matching a 5-line window in vault-init.sh (the
`ready=1 / break / fi / sleep 1 / done` boilerplate).

Extracts the repeated pattern into three helpers at the top of the
file:

  - nomad_has_ready_node       wrapper so poll_until_healthy can take a
                               bare command name.
  - _die_with_service_status   shared "log + dump systemctl status +
                               die" path (factored out of the two
                               callsites + the timeout branch).
  - poll_until_healthy         ticks once per second up to TIMEOUT,
                               fail-fasts on systemd "failed" state,
                               and returns 0 on first successful check.

Step 7 (vault unseal) and Step 8 (nomad ready node) each collapse from
~15 lines of explicit for-loop bookkeeping to a one-line call. No
behavioural change: same tick cadence, same fail-fast, same status
dump on timeout. Local detect-duplicates.py run against main confirms
no new duplicates introduced.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 07:26:54 +00:00
..
hooks fix: Remove Matrix integration — notifications move to forge + OpenClaw (#732) 2026-03-26 14:53:56 +00:00
init/nomad fix: dedupe cluster-up.sh polling via poll_until_healthy helper (#824) 2026-04-16 07:26:54 +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