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
admin
fc79a3aeea
manifests: hub image 0.30.0 (keep GitOps truth in sync with the live set-image deploy)
2026-07-02 22:41:00 +02:00
admin
585f12e04f
manifests: bump hub image to 0.29.0 (artifact version dropdowns)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 09:03:32 +02:00
admin
629196c66a
deploy: hub 0.28.0 (settings→Configuration + online install)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 06:44:44 +02:00
admin
f8b8730c53
deploy: hub 0.27.0 (Hosts page)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 06:11:25 +02:00
admin
d88b43a6e6
deploy: hub 0.26.0 (manifest bump)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 21:53:03 +02:00
admin
e1dd06e77a
test(temp): restore storage_fill threshold to default after live validation
2026-06-30 19:07:07 +02:00
admin
5a3747f6ab
test(temp): lower storage_fill_warn_percent to 20 for live alert validation
2026-06-30 19:04:50 +02:00
admin
063fb0cfd4
deploy: hub image 0.24.0 -> 0.25.0 (per-storage fill alerting)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 19:02:31 +02:00
admin
87f0794938
deploy: hub image 0.23.0 -> 0.24.0 (dispatcher critical routing)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 14:19:52 +02:00
admin
77c61ff494
deploy: hub image 0.22.1 -> 0.23.0 (host disk monitoring)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01HxLA1mZurFq9kt8hneFeCs
2026-06-30 13:51:13 +02:00
admin
83ed127d53
hub-config: enable operator email alerts (operator_email + operator_enabled)
...
The dispatcher's operator path was gated off (processOperator returns
unless operatorOn && operatorEmail!=""), so the self-health pipeline
stopped one hop short of the inbox. Set the operator recipient
(admin@felhom.eu — the operator's own address, not a secret) and enable.
Config-only; no image bump.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_0162BnMpUXscPsUB1cU8Tr6K
2026-06-30 09:10:10 +02:00
admin
8f3b247e6e
manifest: hub 0.22.0 -> 0.22.1 (HostLeafChecker wiring)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
2026-06-29 23:26:37 +02:00
admin
27aa15fb93
manifest: hub 0.21.0 -> 0.22.0 (HostLeafChecker)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
2026-06-29 23:16:54 +02:00
admin
575f62ab7f
manifest: hub 0.20.0 -> 0.21.0 (F2 born-degraded alert)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
2026-06-29 21:49:48 +02:00
admin
d3661319c8
manifest: hub 0.19.0 → 0.20.0 (accept agent_channel_* events)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01Pg8ANF97SEeKYSN5Jxw3qJ
2026-06-29 20:38:28 +02:00
admin
2312572411
manifest: hub 0.18.0 → 0.19.0 (agent capability-degraded alert)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01EPZ4GJ8L5Jqf8UiPwbn1kt
2026-06-29 18:53:22 +02:00
admin
2e749741b8
deploy: hub 0.18.0 (app-email passthrough)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 08:48:08 +02:00
admin
feea06062a
secrets: rotate + de-git Resend key; source from out-of-band Secret/resend-api
...
Resend send-scoped key was committed in plaintext in manifests/hub.yaml (ConfigMap)
and manifests/felhom.secret.yaml. Rotated to a new key and removed from git.
- hub: new RESEND_API_KEY env override (cmd/hub/main.go), mirrors REGISTRY_TOKEN;
ConfigMap resend_api_key now an empty placeholder; Deployment injects from
Secret/resend-api. Image 0.17.0.
- contact-mailer: secretKeyRef repointed contact-mailer-config -> resend-api.
- felhom.secret.yaml: contact-mailer-config Secret removed; healthchecks
EMAIL_HOST_PASSWORD blanked (workload not deployed).
- documentation/runbooks/secrets.md: out-of-band secret model + create/rotate steps.
Secret/resend-api is created imperatively out-of-band and is NOT committed.
No secret value appears in this repo.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-29 07:50:30 +02:00
admin
d5266ca009
hub v0.16.0: seed artifact manifest from env; manifests image -> 0.16.0
...
- cmd/hub/main.go: seed the Day-0 artifact manifest from ARTIFACT_AGENT_VERSION/
ARTIFACT_AGENT_SHA256/ARTIFACT_GOLDEN_VERSION/ARTIFACT_GOLDEN_SHA256 on startup
(only empty fields, so UI edits stick) — same escape hatch the floor uses.
- manifests/hub.yaml: image 0.15.0 -> 0.16.0.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-28 08:46:17 +02:00
admin
d65b2f74ea
manifests: hub global controller-version floor → 0.87.0 (Phase 2 live)
...
Persists the global floor set live during the Phase 2 floor test so git matches
the running deploy. Only demo-felhom reports (peti-felhom is config-only).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FSZmmSFVzGwEzhYmxbkgBK
2026-06-27 12:20:29 +02:00