v0.308.0: controller batch 2026-10-12 — clear-address warning (R-922), secret sweep over every page (R-255), read_failed (R-266), no NVMe heat band (R-333), share globe (R-577), Hungarian dates and numbers (R-562), lost-drive option pinned (R-521)
Operator rulings 2026-10-12, 09 §3 decisions 196, 204-207, 223, 227. MinAgent 0.131.0 unchanged. R-255's sweep found one leak, fixed here: an optional-config secret_input was rendered into its settings page; it is now revealed on demand. Hungarian parity fixtures re-captured once for R-562. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -59,7 +59,7 @@
|
||||
{{if .StorageInfo.DataSizeHuman}}
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">{{T "deploy.adatmeret"}}</span>
|
||||
<span class="settings-value mono">{{.StorageInfo.DataSizeHuman}}</span>
|
||||
<span class="settings-value mono">{{numText .StorageInfo.DataSizeHuman}}</span>
|
||||
</div>
|
||||
{{end}}
|
||||
{{if .StorageInfo.FreeHuman}}
|
||||
@@ -91,7 +91,7 @@
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">{{T "deploy.meret"}}</span>
|
||||
<span class="settings-value mono">{{.SizeHuman}}</span>
|
||||
<span class="settings-value mono">{{numText .SizeHuman}}</span>
|
||||
</div>
|
||||
<div class="settings-row">
|
||||
<span class="settings-label">{{T "deploy.mappak"}}</span>
|
||||
@@ -328,13 +328,26 @@
|
||||
<label for="opt-{{.EnvVar}}">{{.Label}}</label>
|
||||
{{if .HelpText}}<p class="config-field-help">{{.HelpText}}</p>{{end}}
|
||||
{{if .HelpURL}}<p class="config-field-help"><a href="{{.HelpURL}}" target="_blank">{{T "deploy.regisztracios_utmutato"}}</a></p>{{end}}
|
||||
<input type="{{if eq .Type "secret_input"}}password{{else}}text{{end}}"
|
||||
{{if eq .Type "secret_input"}}
|
||||
{{/* R-255 (v0.308.0): a stored secret is NOT in the page; it is fetched on demand like the
|
||||
auto-generated ones (R-254). A blank field that was never revealed is not sent, so
|
||||
saving other fields keeps it. */}}
|
||||
{{$set := index $.CurrentValues .EnvVar}}
|
||||
<div class="input-with-button">
|
||||
<input type="password" id="opt-{{.EnvVar}}" name="{{.EnvVar}}" class="config-input"
|
||||
value="" placeholder="{{if $set}}••••••••••••{{else}}{{.Label}}{{end}}"
|
||||
{{if $set}}data-secret-set="1" {{end}}autocomplete="off">
|
||||
{{if $set}}<button type="button" class="btn btn-sm btn-outline" onclick="revealAutoField('{{$.Stack.Name}}','{{.EnvVar}}', this, 'opt-{{.EnvVar}}')">{{T "deploy.megjelenites"}}</button>{{end}}
|
||||
</div>
|
||||
{{else}}
|
||||
<input type="text"
|
||||
id="opt-{{.EnvVar}}"
|
||||
name="{{.EnvVar}}"
|
||||
class="config-input"
|
||||
value="{{index $.CurrentValues .EnvVar}}"
|
||||
placeholder="{{.Label}}"
|
||||
autocomplete="off">
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
@@ -357,6 +370,8 @@
|
||||
|
||||
var values = {};
|
||||
inputs.forEach(function(input) {
|
||||
// R-255: a stored secret the household never revealed and left blank stays as it is.
|
||||
if (input.dataset.secretSet === '1' && input.dataset.revealed !== '1' && input.value === '') return;
|
||||
values[input.name] = input.value;
|
||||
});
|
||||
|
||||
@@ -836,15 +851,17 @@ function revealPasswordField(stackName, envVar, btn) {
|
||||
if (!j.ok) { showAlert(j.error || '{{T "deploy.a_lekeres_nem_sikerult"}}'); return; }
|
||||
el.value = j.data.value;
|
||||
el.type = 'text';
|
||||
el.dataset.revealed = '1';
|
||||
btn.dataset.shown = '1';
|
||||
}).catch(function () { btn.disabled = false; showAlert('{{T "deploy.a_lekeres_nem_sikerult"}}'); });
|
||||
}
|
||||
function revealAutoField(stackName, envVar, btn) {
|
||||
var el = document.getElementById('auto-field-' + envVar);
|
||||
function revealAutoField(stackName, envVar, btn, elId) {
|
||||
var el = document.getElementById(elId || ('auto-field-' + envVar));
|
||||
if (!el) return;
|
||||
if (btn.dataset.shown === '1') {
|
||||
el.value = '';
|
||||
el.type = 'password';
|
||||
el.dataset.revealed = '';
|
||||
btn.dataset.shown = '';
|
||||
btn.textContent = '{{T "deploy.megjelenites"}}';
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user