hub v0.42.0: remote "Debug mód" toggle on the customer config editor
Adds a form-level debug-mode checkbox to the customer config editor so an
operator can flip the controller's Logging.Level=debug (/debug menu + verbose
log) remotely, without SSH. Form field (not raw-JSON injection) because
handleConfigUpdate rebuilds ConfigJSON from the form on every save; the
config-version bump makes the controller re-pull + self-restart next cycle.
- buildConfigJSON: debug_mode checked -> "logging":{"level":"debug"};
unchecked -> logging key omitted.
- config_form.html: "Hibakeresési mód (fejlesztői)" section + render state.
- configs_debug_test.go: form->JSON both ways; full-path survival test
(debug lands, offsite descriptor unchanged, foreign-key red-proof); render
state; red-proof exercised.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PSK5g6qYLknKj8u3QAFEr6
This commit is contained in:
@@ -1,5 +1,28 @@
|
||||
# Felhom Hub — Changelog
|
||||
|
||||
## v0.42.0 — Remote "Debug mód" toggle on the customer config editor (2026-07-10)
|
||||
|
||||
Lets an operator flip the controller's debug mode (verbose log + the `/debug` menu, which the controller
|
||||
gates on `Logging.Level=="debug"` / `isDebug()`) **remotely, without SSH** — the support workflow (today:
|
||||
Peti's box). The config-version bump on save makes the controller re-pull + self-restart on its next
|
||||
report ACK, so the switch takes effect within a cycle, hands-free.
|
||||
|
||||
- **Form field, not raw-JSON injection — on purpose.** `handleConfigUpdate` REBUILDS `ConfigJSON` from the
|
||||
form on every save (`buildConfigJSON`), so any foreign key injected straight into the stored JSON is
|
||||
dropped on the next save. The toggle is therefore a real form field, which by definition survives every
|
||||
save. (The offsite descriptor survives via its own separate provision-merge, untouched by this.)
|
||||
- **`buildConfigJSON`** (`internal/web/configs.go`): `debug_mode` checked → emits `"logging":{"level":"debug"}`;
|
||||
unchecked → the `logging` key is OMITTED entirely (the generated `controller.yaml` default stands — no
|
||||
needless `"info"`).
|
||||
- **Config form** (`templates/config_form.html`): new collapsible **"Hibakeresési mód (fejlesztői)"** section
|
||||
with the `debug_mode` checkbox; render state parsed back from `ConfigJSON` (`logging.level=="debug"` → checked).
|
||||
No change to the offsite/CF/git leg; no generic raw-JSON editor (deliberately — validated surfaces only).
|
||||
- **Tests (non-hollow, `configs_debug_test.go`):** form→JSON both ways (checked emits / unchecked omits);
|
||||
full-path **survival test** through `handleConfigUpdate` proving the debug key lands, the offsite descriptor
|
||||
is byte-for-byte unchanged across save+re-provision, and the **red-proof** that a hand-injected foreign key
|
||||
is gone after one save (why the switch must be a form field); render state both ways. Red-proof exercised
|
||||
(feature disabled → survival + form tests fail).
|
||||
|
||||
## v0.41.0 — SLICE 4: OffsiteChecker (fill + staleness) + operator freeze lever (2026-07-09)
|
||||
|
||||
The last build item of the offsite arc (pairs with controller v0.109.0's soft-quota gate + report object).
|
||||
|
||||
Reference in New Issue
Block a user