Anurag commited on
Commit
ec8e293
·
unverified ·
2 Parent(s): 61ba0b853c5a7d

improve env-builder UX, and harden runtime/browser startup

Browse files
Files changed (2) hide show
  1. env-builder.js +16 -3
  2. start.sh +3 -0
env-builder.js CHANGED
@@ -458,10 +458,10 @@ const FIELDS = [
458
  "g": "Core",
459
  "icon": "⚡",
460
  "k": "OPENCLAW_VERSION",
461
- "lbl": "Pin OpenClaw version",
462
  "type": "text",
463
  "ph": "latest",
464
- "tag": "optional"
465
  },
466
  {
467
  "g": "Plugins",
@@ -2293,7 +2293,7 @@ function applyObj(obj, replace = false) {
2293
  addCustomRow(key, val, true);
2294
  }
2295
  }
2296
- markSelected(); filter(); refresh();
2297
  }
2298
 
2299
  function autoCheck(key) {
@@ -2398,6 +2398,16 @@ function sortSection(cardEl) {
2398
  [...checked, ...rest].forEach(c => cards.appendChild(c));
2399
  }
2400
 
 
 
 
 
 
 
 
 
 
 
2401
  function bindFieldEvents() {
2402
  document.querySelectorAll('[data-check]').forEach(el => el.addEventListener('change', () => { sortSection(el.closest('[data-row]')); markSelected(); refresh(); }));
2403
  document.querySelectorAll('[data-key]').forEach(el => el.addEventListener('input', refresh));
@@ -2458,16 +2468,19 @@ refresh();
2458
  $('search').oninput = filter;
2459
  $('selectCommon').onclick = () => {
2460
  document.querySelectorAll('[data-common="1"]').forEach(c => c.checked = true);
 
2461
  markSelected();
2462
  refresh();
2463
  };
2464
  $('selectVisible').onclick = () => {
2465
  document.querySelectorAll('.sec:not(.sec-hidden) [data-row]:not(.hidden) [data-check]').forEach(c => c.checked = true);
 
2466
  markSelected();
2467
  refresh();
2468
  };
2469
  $('clearAll').onclick = () => {
2470
  clearForm();
 
2471
  markSelected();
2472
  filter();
2473
  refresh();
 
458
  "g": "Core",
459
  "icon": "⚡",
460
  "k": "OPENCLAW_VERSION",
461
+ "lbl": "Pin OpenClaw version (build-time; rebuild required)",
462
  "type": "text",
463
  "ph": "latest",
464
+ "tag": "build"
465
  },
466
  {
467
  "g": "Plugins",
 
2293
  addCustomRow(key, val, true);
2294
  }
2295
  }
2296
+ sortAllSections(); markSelected(); filter(); refresh();
2297
  }
2298
 
2299
  function autoCheck(key) {
 
2398
  [...checked, ...rest].forEach(c => cards.appendChild(c));
2399
  }
2400
 
2401
+ function sortAllSections() {
2402
+ document.querySelectorAll('.cards').forEach(cards => {
2403
+ const all = [...cards.querySelectorAll('[data-row]')];
2404
+ const checked = all.filter(c => c.querySelector('[data-check]')?.checked);
2405
+ const rest = all.filter(c => !c.querySelector('[data-check]')?.checked);
2406
+ rest.sort((a, b) => Number(a.dataset.origIdx) - Number(b.dataset.origIdx));
2407
+ [...checked, ...rest].forEach(c => cards.appendChild(c));
2408
+ });
2409
+ }
2410
+
2411
  function bindFieldEvents() {
2412
  document.querySelectorAll('[data-check]').forEach(el => el.addEventListener('change', () => { sortSection(el.closest('[data-row]')); markSelected(); refresh(); }));
2413
  document.querySelectorAll('[data-key]').forEach(el => el.addEventListener('input', refresh));
 
2468
  $('search').oninput = filter;
2469
  $('selectCommon').onclick = () => {
2470
  document.querySelectorAll('[data-common="1"]').forEach(c => c.checked = true);
2471
+ sortAllSections();
2472
  markSelected();
2473
  refresh();
2474
  };
2475
  $('selectVisible').onclick = () => {
2476
  document.querySelectorAll('.sec:not(.sec-hidden) [data-row]:not(.hidden) [data-check]').forEach(c => c.checked = true);
2477
+ sortAllSections();
2478
  markSelected();
2479
  refresh();
2480
  };
2481
  $('clearAll').onclick = () => {
2482
  clearForm();
2483
+ sortAllSections();
2484
  markSelected();
2485
  filter();
2486
  refresh();
start.sh CHANGED
@@ -42,6 +42,9 @@ try:
42
  continue
43
  if str(key) in {"HUGGINGCLAW_ENV_BUNDLE", "ENV_BUNDLE"}:
44
  continue
 
 
 
45
  if os.environ.get(str(key), ""):
46
  continue
47
  if value is None or isinstance(value, (dict, list)):
 
42
  continue
43
  if str(key) in {"HUGGINGCLAW_ENV_BUNDLE", "ENV_BUNDLE"}:
44
  continue
45
+ if str(key) == "OPENCLAW_VERSION":
46
+ print("Warning: OPENCLAW_VERSION from env bundle is ignored (build-time only; set HF Variable and rebuild).", file=sys.stderr)
47
+ continue
48
  if os.environ.get(str(key), ""):
49
  continue
50
  if value is None or isinstance(value, (dict, list)):