Commit graph

  • 525e24acd6
    Merge pull request #43 from dan-claude-bot/fix/silent-prompts Daniel Marin 2026-07-19 14:00:48 +0100
  • e72663ef62 fix: headless credential prompts refuse loudly, naming their variable (#42) dan-claude-bot 2026-07-19 12:15:08 +0000
  • fb0c3067e3
    Merge pull request #41 from dan-claude-bot/fix/home-unset Daniel Marin 2026-07-19 00:53:21 +0100
  • 229fcd2bf0 install: derive $HOME from getent when the environment has none (#39) dan-claude-bot 2026-07-18 22:36:05 +0000
  • a3c69292a1
    Merge pull request #40 from dan-claude-bot/feat/release-flow Daniel Marin 2026-07-18 23:17:12 +0100
  • 834f0504d6 feat(install): default to the latest release — three channels, one installer (#32) dan-claude-bot 2026-07-18 20:57:13 +0000
  • b6205d81c5 feat(release): CHANGELOG.md and release.yml — a tag becomes the release it claims (#32) dan-claude-bot 2026-07-18 20:57:13 +0000
  • e6b630b9f2
    Merge pull request #37 from dan-claude-bot/feat/bootstrap-roles Daniel Marin 2026-07-18 21:32:13 +0100
  • 7e57c10f01
    Merge pull request #38 from dan-claude-bot/fix/human-handoff-guard Daniel Marin 2026-07-18 21:31:51 +0100
  • 1cef6ed751 review r1: staging tolerates only the workload guest; dockerd must answer; one CLI capture dan-claude-bot 2026-07-18 20:18:15 +0000
  • ad33ffe844
    Merge pull request #36 from dan-claude-bot/feat/versioned-installs Daniel Marin 2026-07-18 21:18:04 +0100
  • ec7096c08e fix: base the human auto-request on THIS handoff, not review history dan-claude-bot 2026-07-18 20:16:57 +0000
  • 0ead75428b
    Merge pull request #34 from dan-claude-bot/feat/label-automation Daniel Marin 2026-07-18 21:02:56 +0100
  • 03e5deca56 refactor: the author escalates — drop the agreement-body heuristic dan-claude-bot 2026-07-18 19:51:53 +0000
  • e40e223ecb docs: README — the box tenants section, and where the staging preset went dan-claude-bot 2026-07-18 19:49:27 +0000
  • 739db6e633 feat(bootstrap): box tenant roles — claude, codex, grok, staging (#31) dan-claude-bot 2026-07-18 19:49:20 +0000
  • f1ada543dc feat(install): versioned installs and a real uninstall — box#79's layout, ported dan-claude-bot 2026-07-18 19:33:17 +0000
  • 27fb934780 fix: verdict contract, head-bound approvals, serialized reconcile — and a testable state machine dan-claude-bot 2026-07-18 19:31:02 +0000
  • 52dfc5c5c1 docs: reviews end in a verdict — approve or request changes, never a bare comment dan-claude-bot 2026-07-18 18:50:51 +0000
  • 7109bb39d8 feat: label automation — the state reconciler, path-scoped labeler, and CONTRIBUTING dan-claude-bot 2026-07-18 18:31:53 +0000
  • 7646346311
    Merge pull request #33 from dan-claude-bot/docs/label-taxonomy Daniel Marin 2026-07-18 19:20:06 +0100
  • ca37eb8450 docs: make the bootstrap trim idempotent — swallow delete of an already-gone label dan-claude-bot 2026-07-18 18:04:51 +0000
  • 539dee064a
    Merge pull request #30 from dan-claude-bot/feat/close-root-reachability Daniel Marin 2026-07-18 18:39:35 +0100
  • 0e2d66f456
    Merge pull request #29 from dan-claude-bot/feat/class-model-remnants Daniel Marin 2026-07-18 18:36:32 +0100
  • e07a8ab567 docs: LABELS.md — the label taxonomy (states, stale/blocked, scopes) dan-claude-bot 2026-07-18 17:34:49 +0000
  • a32d2b04cb fix(close-root): the gate judges AllowGroups/DenyGroups too — same door, other hinge dan-claude-bot 2026-07-18 17:17:39 +0000
  • af327cb660 docs(bootstrap): finish the sentence the doctor-gate edit truncated dan-claude-bot 2026-07-18 17:16:29 +0000
  • a5b48d5b2c fix(close-root): DenyUsers judged fail-closed — patterns and USER@HOST flag dan-claude-bot 2026-07-18 17:02:48 +0000
  • cee7d4575e fix(bootstrap): gate the host-set-up claim on 'box doctor', not on PATH dan-claude-bot 2026-07-18 16:59:43 +0000
  • 2396880f09 docs: plan — close-root proves the door + @root seeding, what remained of #17 dan-claude-bot 2026-07-18 14:54:03 +0000
  • ceceb71e34 docs(users): own the runner-row divergence from #17 — server class keeps root, deliberately, runner included dan-claude-bot 2026-07-18 14:54:03 +0000
  • d1b6fec5f8 feat(users): close-root proves the door opens, not that it should — sudo -n and per-user sshd -T join the gate dan-claude-bot 2026-07-18 14:53:50 +0000
  • fff45a9835 feat(users): @root seeds the admin's keys from root's own — the one source that cannot lock you out dan-claude-bot 2026-07-18 14:53:30 +0000
  • 900697bdc2 feat(coolify): warn when the role marker names a non-control-plane box — advisory, never a gate (#25) dan-claude-bot 2026-07-18 14:50:46 +0000
  • 34f1986da0 feat(bootstrap): prove box landed on PATH after a claimed install success — don't trust exit codes (#12) dan-claude-bot 2026-07-18 14:50:46 +0000
  • d0ec6a6548 docs(readme): the #12/#25 documentation remnants — box rename, per-role identity table, unpinned-install note dan-claude-bot 2026-07-18 14:50:16 +0000
  • ea91a00b98 docs(plans): class-model remnants plan — what still keeps #12 and #25 open after PRs #27/#28 dan-claude-bot 2026-07-18 14:50:16 +0000
  • 7d11ce23f6
    Merge pull request #28 from dan-claude-bot/feat/host-installs-box Daniel Marin 2026-07-18 01:25:20 +0100
  • f3cfa7c358 feat(bootstrap): host-class installs box + runs setup-host dan-claude-bot 2026-07-17 22:45:40 +0000
  • be3761a5df
    Merge pull request #27 from dan-claude-bot/feat/users-and-traits Daniel Marin 2026-07-17 22:24:50 +0100
  • c44a645670 fix(users): close-root no-op must prove the door, not the file Dan Claude Van Damme 2026-07-17 20:49:12 +0000
  • 00c54a342d docs: plan addendum — review findings and the contract refinements they forced Claude 2026-07-17 20:02:09 +0000
  • 3eeab687d0 fix(users): review findings — invoker gate, real SSH revocation, StrictModes-shaped close-root gate, trait-aware box role Claude 2026-07-17 20:01:19 +0000
  • 062dad4ead fix(bootstrap): review findings — keep-mode for authkey re-runs, fail-closed login verify, class-gated root-door assertion Claude 2026-07-17 19:51:53 +0000
  • 22ef458b1a docs: README identity model — traits, presets, fleet users, root's two fates Claude 2026-07-17 19:32:23 +0000
  • 2dc396d557 feat(users): close-root — shut the human-class root door once an admin key works Claude 2026-07-17 19:28:25 +0000
  • 9bdc4db575 feat(users): declarative operators — apply/status over a users file, every class Claude 2026-07-17 19:23:47 +0000
  • f2d343b0ef feat(bootstrap): traits under the roles — class/host/join, dev/workstation/custom, /etc/rig/role marker Claude 2026-07-17 19:15:06 +0000
  • 35ce40d05e docs: plan for machine traits + fleet users (#26 + #24, one release) Claude 2026-07-17 19:10:20 +0000
  • 249dbf3b79
    Merge pull request #18 from claude-hdb/feat/rig-db Daniel Marin 2026-07-17 16:55:17 +0100
  • 583ac25448 docs: README section for the staging bootstrap role Claude 2026-07-17 15:51:58 +0000
  • c4d64fb037 feat(bootstrap): staging role — the host archetype for box-minted staging VMs Claude 2026-07-17 15:51:36 +0000
  • 1b68d3ca49 docs: plan for the staging bootstrap role Claude 2026-07-17 15:50:23 +0000
  • 9551ad482f test(db): add real dump/restore round-trip probe + CI job + manual proof docs Claude 2026-07-17 15:48:51 +0000
  • 0fae6d37c4
    Merge pull request #20 from claude-hdb/feat/bootstrap-infer-tailnet-tag Daniel Marin 2026-07-17 16:47:11 +0100
  • 92fa2a9860 bootstrap: infer the tailnet tag from the pre-auth key, verify the granted tag Claude 2026-07-17 15:27:09 +0000
  • 0bb6b638df feat(db): bring ad-hoc dump/restore on-box as rig db Claude 2026-07-17 15:16:35 +0000
  • d8055e2525
    Merge pull request #14 from claude-hdb/fix/runner-install-repo-guard Daniel Marin 2026-07-13 21:00:46 +0100
  • e2a0951a91 ci: enumerate shellcheck inputs with globstar, not by hand claude-hdb 2026-07-13 19:59:28 +0000
  • 9c6c6c9477 fix(ci): shellcheck -x, and lint commands/lib/ at all claude-hdb 2026-07-13 19:56:33 +0000
  • d4ab362964 fix(runner): install refuses a box registered to another repo claude-hdb 2026-07-13 14:57:28 +0000
  • af7e8b4071
    Merge pull request #11 from claude-hdb/feat/runner-lifecycle Daniel Marin 2026-07-13 14:33:10 +0100
  • deb6f653e3 docs: README sections for runner status, remove, and repoint claude-hdb 2026-07-13 13:25:27 +0000
  • fcee110183 feat(runner): status, remove, and repoint — the runner lifecycle verbs claude-hdb 2026-07-13 13:25:27 +0000
  • 8692652c0f
    Merge pull request #10 from claude-hdb/fix/backup-bindings-validation Daniel Marin 2026-07-12 20:59:21 +0100
  • c3f812ddaf fix(coolify): validate the dump bindings, and stop printing $EDITOR claude-hdb 2026-07-12 19:55:39 +0000
  • a654f52f44
    Merge pull request #9 from claude-hdb/feat/coolify-backup-timer Daniel Marin 2026-07-12 20:16:52 +0100
  • 25a957079c feat(coolify): install the control-plane dump as a systemd timer claude-hdb 2026-07-12 19:14:07 +0000
  • 5d5cc906a8
    Merge pull request #7 from claude-hdb/fix/tailnet-hostname-converges Daniel Marin 2026-07-12 18:00:32 +0100
  • 2181e87a0f fix(bootstrap): converge the tailnet hostname on an already-joined box claude-hdb 2026-07-12 15:47:38 +0000
  • 0c070ae5f0
    Merge pull request #6 from claude-hdb/fix/sshd-hardening-first-wins Daniel Marin 2026-07-12 16:31:35 +0100
  • 6e6bf0dceb fix(bootstrap): validate the merged sshd config before bouncing the daemon claude-hdb 2026-07-12 15:29:09 +0000
  • 77974d99d6 fix(bootstrap): sshd hardening never applied on cloud images claude-hdb 2026-07-12 15:26:34 +0000
  • 5e5b864a74
    Merge pull request #5 from claude-hdb/fix/os-release-clobbers-version Daniel Marin 2026-07-11 20:39:32 +0100
  • 4b9cec210d fix: source /etc/os-release in a subshell — it clobbers $VERSION claude-hdb 2026-07-11 19:37:48 +0000
  • bcaade0e93
    Merge pull request #4 from claude-hdb/feat/runner-bootstrap-role Daniel Marin 2026-07-11 19:46:56 +0100
  • 63b2effe03 feat: runner install resolves the latest release when --version is omitted claude-hdb 2026-07-11 18:44:43 +0000
  • e395d6754a feat: runner bootstrap role — defaults tag:ci, refuses tag:server claude-hdb 2026-07-11 18:25:47 +0000
  • d9bb83a915
    Merge pull request #3 from claude-hdb/feat/runner-install Daniel Marin 2026-07-11 19:18:59 +0100
  • 9730e4336c docs: --labels replaces the default label set, not appends claude-hdb 2026-07-11 17:51:08 +0000
  • bb4f7107fe docs: README section for runner install claude-hdb 2026-07-11 17:45:38 +0000
  • e463493bd1 feat: runner install command — GitHub Actions runner as an unprivileged systemd service claude-hdb 2026-07-11 17:41:09 +0000
  • eee86009a1 docs: runner install implementation plan claude-hdb 2026-07-11 17:34:16 +0000
  • 95e30b3170
    Merge pull request #2 from claude-hdb/fix/openssh-server-dep Daniel Marin 2026-07-11 11:39:31 +0100
  • 5fb342d64d fix: bootstrap installs openssh-server — sshd_config.d does not exist on pristine images claude-hdb 2026-07-11 10:38:14 +0000
  • 9f079bff55
    Merge pull request #1 from claude-hdb/feat/rig Daniel Marin 2026-07-11 09:34:50 +0100
  • df17851108 refactor: rename deployor to rig; canonical heavy-duty/rig URLs claude-hdb 2026-07-11 08:25:48 +0000
  • 924090a427 feat: curl installer, shellcheck+tests CI, living README claude-hdb 2026-07-10 20:56:05 +0000
  • d4697a0ad5 fix: pass check substrings to grep with -e so dash-leading patterns assert claude-hdb 2026-07-10 20:53:32 +0000
  • 33c27452ac feat: coolify install command — required version pin, AUTOUPDATE=false claude-hdb 2026-07-10 20:50:41 +0000
  • c19bb7d99a fix: die() prints only the message, not the exit code claude-hdb 2026-07-10 20:48:36 +0000
  • aa4185f9ed feat: bootstrap command — hardening, unattended-upgrades, tailscale join claude-hdb 2026-07-10 20:43:24 +0000
  • db60771c6a feat: deployor dispatcher + dependency-free test harness claude-hdb 2026-07-10 20:40:07 +0000
  • 7280544e3a chore: repo birth claude-hdb 2026-07-10 20:37:08 +0000
  • 0f364ee40a
    Initial commit Daniel Marin 2026-07-11 09:10:19 +0100