Commit Graph

120 Commits

Author SHA1 Message Date
admin ce1e9c64e0 manifests: hub image -> 0.66.0 (customer self-bind, R-27 slice 1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017qDiBqKKQ5vPB5fXBqu7Kp
2026-07-17 23:58:32 +02:00
admin ab91e49107 manifests: hub 0.64.0 -> 0.65.0 (PBS DR visibility + offsite tabs + dual gauges, R-5) 2026-07-17 21:16:04 +02:00
admin 66da0c44d5 manifests: hub 0.63.0 -> 0.64.0 (offsite pool-box aggregate, R-5) 2026-07-17 20:17:11 +02:00
admin 587fcc27ca manifests: hub 0.62.0 -> 0.63.0 (system-initiated immediacy: poke + intent bump at every mutation site) 2026-07-17 17:36:14 +02:00
admin 9964ae6fd4 manifests: hub 0.61.0 -> 0.62.0 (R-21 slice C appliance registration) 2026-07-17 15:08:50 +02:00
admin e144c5e491 manifests: hub 0.60.1 -> 0.61.0 (Customer RESET) 2026-07-17 13:10:45 +02:00
admin 6b1fbca51d hub: bump manifest image tag to 0.60.1 (host-delete escrow demotion) 2026-07-17 11:26:47 +02:00
admin f7e3d50d5a hub: bump manifest image tag to 0.60.0 (Part B escrow retention) 2026-07-17 10:50:21 +02:00
admin 319ba10d9f hub: bump manifest image tag to 0.59.0 (Direction-2a poke sender) 2026-07-16 22:51:23 +02:00
admin eb227486d0 hub v0.59.0: Direction-2a agent-plane immediate-sync poke sender + ep0 felhom-poke surface
- internal/poke: pinned-host-key SSH poke sender (wgsync sibling) + fire-and-forget Notifier (PokeHost/PokeAllHosts). Poke refuses non-WG targets pre-dial; contentless via ep0 forced command to the box WG /32:51822.
- wiring: Server.SetPoke; applyPBSDR pokes the host after each descriptor gen-bump; handleSetArtifacts (MinAgent floor) pokes all hosts. main.go env POKE_SSH_KEY_FILE (reuses peersync endpoint/hostkey).
- scripts/felhom-poke.sh (non-root forced command) + offsite-endpoint.md §11; manifests/hub.yaml Secret/agent-poke + POKE_SSH_KEY_FILE (image tag bump follows the build).
2026-07-16 22:48:15 +02:00
admin 59eb1f836e deploy(hub): manifest → felhom-hub:0.58.0 (Direction-2 wait channel) 2026-07-16 20:46:41 +02:00
admin dd563a0273 deploy(hub): bump manifest to felhom-hub:0.57.0 (reinstall arc) 2026-07-16 18:02:14 +02:00
admin de5d8ef9b1 widen the reconciler fleet-wide (remove PBSDRHEAL_ONLY_HOST from the manifest) 2026-07-15 19:17:27 +02:00
admin dc7bcedb42 manifests: hub 0.56.0 + PBSDRHEAL_ONLY_HOST=demo-vm-felhom-2f4b00 (supervised rollout)
Deploy the PBS-DR self-heal reconciler scoped to the drill guest only for the
first supervised run; widen to the fleet (remove the env) in a follow-up sync
once the converged-host no-op is confirmed live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HEPuEwyyGDJdcsXLFsTWJn
2026-07-15 18:29:22 +02:00
admin 08fef4872b hub v0.55.0: accept offbox_enlarge_blocked event (Task 3a-fix delivery chain)
allowedEventTypes gains offbox_enlarge_blocked (was 400 at ingestion, dropping the customer email).
Deliberate NON-change: no customerMessages entry — the static map would discard the controller's
dynamic two-number Hungarian message (templates.go:129 fallback is correct). event_test acceptance +
400 red-proof; templates_offbox_test locks the raw-message fallback. manifest bumped to :0.55.0.
2026-07-15 07:50:29 +02:00
admin 962273ba8e @
hub: bump manifest image tag to 0.54.0 (change-password from Configuration UI)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LbMm4T7Ayzs1unB9pN6Uqd
@
2026-07-13 22:48:34 +02:00
admin 3616dcbb7c manifest: hub 0.53.0 (closing bundle GitOps bump; rides with the report-api secretKeyRef - Secret created out-of-band 2026-07-13 before this sync) 2026-07-13 15:05:06 +02:00
admin 80aca3a3a1 hub + manifests: operator bearer out of git (secretKeyRef report-api)
The global bearer (api.report_api_key) leaves manifests/hub.yaml: the
ConfigMap field is an empty placeholder; the Deployment injects
REPORT_API_KEY from out-of-band Secret/report-api (deliberately NOT
optional - a missing Secret fails Ready rather than booting a hub with an
empty bearer). main.go gains the REPORT_API_KEY env override (the
RESEND_API_KEY twin). scripts/manifest_secret_gate.py blocks bearer-shaped
(64-hex) literals across manifests/ (felhom.secret.yaml's pre-existing
umami APP_SECRET is a visible non-fatal KNOWN-BACKLOG line - secrets.md
backlog, out of scope here).

Ordering (load-bearing): create Secret/report-api with the CURRENT value
BEFORE syncing; this manifest change rides the same sync as the 0.53.0
image (older images ignore the env override). The exposed git-history copy
dies only with the supervised ROTATION - procedure + consumer list in
documentation/runbooks/secrets.md ("Operator/global bearer key"); both
publish runbooks' ROTATION notes now point at that disposition. The
controller repo's example-config copy of the literal is scrubbed
(felhom-controller 51c871a).

Red-proof E: reintroducing a 64-hex literal into manifests/hub.yaml ->
gate exit 1 (recorded); restored clean.
2026-07-13 14:57:09 +02:00
admin 0e05c6966d manifest: hub 0.52.0 (polish batch GitOps bump)
Claude-Session: https://claude.ai/code/session_01GzammAMzsJTgpQHqxwM2bC
2026-07-13 08:30:34 +02:00
admin ccf89c0a67 manifest: hub 0.51.0 (DR-tier-by-default GitOps bump)
Claude-Session: https://claude.ai/code/session_01NptTCFtu7dz2Ru89qHRagN
2026-07-12 20:48:20 +02:00
admin 9a14f04819 manifest: hub 0.50.0 (customer-claim arc GitOps bump)
Claude-Session: https://claude.ai/code/session_01NptTCFtu7dz2Ru89qHRagN
2026-07-12 18:47:03 +02:00
admin b1ab0ea0e5 docs+manifest: hub v0.49.0 — Edit tab merge train (CHANGELOG, REUSE rows, CONTEXT, GitOps bump)
Version note: the task spec targeted 0.48.0 but that tag had already shipped
(app_start_failed); published tags are never re-pointed → this train is 0.49.0.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TZc5w5jDhFLv6qDC32KN5v
2026-07-12 17:39:09 +02:00
admin 0eb9dc2e9b manifests: raise global controller floor 0.113.0 → 0.120.0 (publish train)
Env fallback DEFAULT_MIN_CONTROLLER_VERSION for the CAMPAIGN-3 wave. Day-0
artifact manifest already vouches agent 0.85.0 + golden 0.120.0 (MinAgent
0.81.0). Demo already 0.120.0 (no churn); Peti offline + gated (agent 0.79 <
MinAgent 0.81 → controller held at 0.113 until his agent lands). DB global
floor to be aligned to 0.120.0 by the operator, saved last.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vvz1NCu22p8dGkRCpeX9re
2026-07-12 11:12:42 +02:00
admin 9095981d0c hub: bump manifest to v0.48.0 (app_start_failed event acceptance — controller fix-3)
🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_017CDMFpFx84pfviCTVuGGhf
2026-07-12 10:13:14 +02:00
admin 95d71fef2e hub v0.47.0: CHANGELOG + README tab/host-lifecycle/offsite docs + REUSE map + manifest bump to 0.47.0
CONTEXT.md: v0.47.0 arc entry (resolves the 146d165 swept-WIP flag) + the
multi-endpoint-allocation deferral + pre-GitOps stale-template note.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vvz1NCu22p8dGkRCpeX9re
2026-07-11 21:39:44 +02:00
admin 7c038df63c hub 0.46.0 manifest bump + logging-conventions runbook + CLAUDE logging rule
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 17:02:54 +02:00
admin 37222d3e1d manifest: hub image 0.44.0 -> 0.45.0 (floor-UI + MinAgent conditional floor)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 15:35:59 +02:00
admin 16390d02be floor: DEFAULT_MIN_CONTROLLER_VERSION 0.87.0 -> 0.113.0 (publish train 0.81/0.113; manifest vouches both — order rule honored)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-11 12:53:57 +02:00
admin 32ca1f60a7 tenantsync v1.0.0 live fix (client json is {data:[...]}-wrapped) + hub image bump 0.44.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 20:59:55 +02:00
admin ce6a56691e hub v0.44.0: PBS DR tier SLICE 1 — felhom-tenantsync surface (script+client) + hub provisioning flow (consume-once host secret, pbs_dr desired-state descriptor, fail-closed + idempotent, re-issue)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 20:49:48 +02:00
admin 8a3afa75b3 deploy: hub 0.43.1 (Git Sync optional hint)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 17:57:13 +02:00
admin efdf683ac7 deploy: hub 0.43.0 (remote app-log diagnostics)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 16:08:10 +02:00
admin 0f28add0bf deploy: hub 0.42.0 (remote debug-mode toggle)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 15:16:34 +02:00
admin 04826c922e manifests/hub: 0.40.0 -> 0.41.0 (SLICE 4 OffsiteChecker + freeze lever)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-10 00:00:49 +02:00
admin c24d4afeee manifests/hub: 0.39.0 -> 0.40.0 (SLICE 3 escrow status in ACK)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 23:21:37 +02:00
admin 17d9af5c13 manifests/hub: 0.38.1 -> 0.39.0 (offsite hardening F4/F2/F5)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 22:40:41 +02:00
admin 6d5b3c1c38 manifests/hub: 0.38.0 -> 0.38.1 (offsite provisioning detached from client ctx)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 21:02:44 +02:00
admin 0a65f2be5f manifests/hub: wire HETZNER_TOKEN + HETZNER_POOL_BOX_ID from Secret/storagebox (offsite provisioning)
Runbook Phase 0b. Values come from the out-of-band felhom-system/storagebox
secret; optional:true so the pod starts without it (hub degrades to offsite
disabled). HETZNER_LOCATION explicit fsn1. NOT synced yet — gated on the
secret holding the DEDICATED-project scoped token (the current one fails the
scope check: it sees the old project's ep0 box, not the new pool box).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 20:39:55 +02:00
admin 6e86eb6d51 added secret 2026-07-09 20:36:22 +02:00
admin b0bf500967 deploy(hub): bump hub image to 0.38.0 (offsite SLICE 2 host-key fingerprint)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 19:16:12 +02:00
admin cff3a30996 deploy(hub): bump hub image to 0.37.0 (offsite provisioning SLICE 1)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 18:40:21 +02:00
admin 02c748eb2a deploy: hub 0.36.0 (GL-7 install-command generator + passphrase hardening)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-09 08:34:38 +02:00
admin b70f2d0763 deploy(hub): v0.35.0 — OOB operator access (TASK H1)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-05 22:35:00 +02:00
admin 012e5f3ecc fix(hub): mgmt_plane_healed alerts on the FIRST auto-heal (TASK G1) — v0.34.1
A heal marker is an event, not a baseline: construction seeds pre-existing markers
(startup false-alarm guard) but a newly-observed marker now raises the warning, so
the first auto-heal surfaces (matches the live drill). Added tests for both halves.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-05 19:12:50 +02:00
admin 1bd054602d deploy(hub): bump to 0.34.0 (break-glass vault + mgmt_plane surfacing, TASK G1)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-05 19:09:38 +02:00
admin 99246c3c7d manifests: hub 0.33.0 (S2)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-04 00:49:45 +02:00
admin 5e1933b166 manifests: hub 0.32.1 (wgsync HostKeyAlgorithms fix)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-03 23:52:37 +02:00
admin 6f5fb19a64 scripts+manifests: S1 felhom-peersync.sh v1.0.0 + hub wg-endpoint-ssh deploy surface
Peersync script: validate-first (jq contract check before ANY state change),
head-file + generated-peers conf model, syncconf-from-tmp then atomic mv (live
conf never diverges in the failure direction), zero-peer payload valid (wipe).
hub.yaml: 0.32.0 image + WG_ENDPOINT_SSH_* env + optional Secret mount so the
pod starts before the runbook's step-6 Secret exists.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-03 23:42:12 +02:00
admin 4a18306f30 manifests: hub image -> 0.31.0
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
2026-07-03 11:10:14 +02:00
admin b56790269e manifests: hub image 0.30.1 2026-07-02 22:53:47 +02:00