This website requires JavaScript.
971f33096d
fix(release): re-arm the changelog heading, and guard it against VERSION
dan-claude-bot
2026-07-19 19:40:27 +0000
af80c59942
docs(readme): rewrap the empty-users-file paragraph to the file's width
dan-claude-bot
2026-07-19 19:37:34 +0000
b982399d3c
fix(bootstrap): refuse a users file that names no users
dan-claude-bot
2026-07-19 17:28:39 +0000
f579ce038f
Merge pull request #54 from dan-claude-bot/feat/bootstrap-takes-users
Daniel Marin
2026-07-19 20:17:45 +0100
b8dc1154c8
feat!: bootstrap takes the users file
dan-claude-bot
2026-07-19 16:17:49 +0000
19b937b858
Merge pull request #53 from dan-claude-bot/feat/users-apply-grants-tier
Daniel Marin
2026-07-19 20:12:09 +0100
a950569832
feat: users apply grants the box tier, not just the socket
dan-claude-bot
2026-07-19 16:15:55 +0000
71fd0513ab
Merge pull request #55 from dan-claude-bot/fix/incus-revoke-via-box
Daniel Marin
2026-07-19 20:08:00 +0100
0ff520c850
fix: dropping the box role revokes through box, not behind its back
dan-claude-bot
2026-07-19 16:18:21 +0000
67386b4303
Merge pull request #60 from dan-claude-bot/fix/host-no-bare-socket
Daniel Marin
2026-07-19 20:02:12 +0100
5a30c72eae
chore: bump main to 0.1.1-dev — a dev install must not impersonate 0.1.0
github-actions[bot]
2026-07-19 18:03:46 +0000
6ff90f04ea
Merge pull request #46 from dan-claude-bot/release/0.1.0
0.1.0
Daniel Marin
2026-07-19 19:03:35 +0100
49471bde4f
docs: README's users-apply section matches the new gate (#60 review)
dan-claude-bot
2026-07-19 17:50:24 +0000
7614c1c171
docs: the 0.1.0 notes carry #39/#41 — the getent-$HOME installer fix shipped without its entry
dan-claude-bot
2026-07-19 14:41:43 +0000
a702f1f8be
release: 0.1.0
dan-claude-bot
2026-07-19 14:23:52 +0000
b8e8e79b87
fix(users): the host= marker gates the box role, not the incus group
Claude
2026-07-19 17:29:20 +0000
5902f61da4
Merge pull request #48 from dan-claude-bot/feat/release-on-merge
Daniel Marin
2026-07-19 18:12:09 +0100
e533e86322
fix: issues: write — the fallback PR's --label rides the issues API (labels.yml precedent)
dan-claude-bot
2026-07-19 16:35:50 +0000
0b6318fe24
chore: the permissions comment must not pre-match the ordering pin's grep
dan-claude-bot
2026-07-19 16:34:56 +0000
700e2185eb
fix: pull-requests scope for the door's two PR-API calls; docs catch up
dan-claude-bot
2026-07-19 16:34:29 +0000
0dbcad2e3a
test: pin exactly one on.push key
dan-claude-bot
2026-07-19 16:14:42 +0000
4b5d62e405
fix: one on.push key — YAML last-key-wins had dropped the tag door
dan-claude-bot
2026-07-19 16:14:13 +0000
053e12d51e
feat: the release re-arms main — the -dev bump folds into the release act
dan-claude-bot
2026-07-19 16:02:53 +0000
44717863a1
fix: the merge door rides pushes to main — fork PR tokens are read-only
dan-claude-bot
2026-07-19 15:44:27 +0000
c0cd4a1b15
fix: a -dev endstate is always work — the post-release bump must not run red
dan-claude-bot
2026-07-19 15:42:27 +0000
d08ec8c6f6
fix: the release label's two meanings part ways in a decide step
dan-claude-bot
2026-07-19 15:23:56 +0000
4ce1ab50aa
feat: merging a release-labeled PR is the release (#47 )
dan-claude-bot
2026-07-19 15:19:47 +0000
219b0fbd72
Merge pull request #45 from dan-claude-bot/fix/release-suite-stamped-tree
Daniel Marin
2026-07-19 15:22:15 +0100
589854ae0b
fix: the release suite accepts the ceremony's own tree (#44 )
dan-claude-bot
2026-07-19 13:48:41 +0000
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
3ae3e3fea3
bootstrap: create an admin user and make the root door role-aware
Claude
2026-07-17 15:29:07 +0000
92fa2a9860
bootstrap: infer the tailnet tag from the pre-auth key, verify the granted tag
Claude
2026-07-17 15:27:09 +0000
3ab42d80c4
bootstrap: add a dev role for the Incus claudebox host
Claude
2026-07-17 15:24:31 +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