tabs.js: final cookie scrub — 0 issue refs (#712 batch 14)
Final pass on tabs.js. All 6 remaining cookies were either attribution refs to closed issues / past reviews or pure-history mile-markers: - #259 disabled meta-update state → drop attribution - dashboard.rs#2170 backend handler line ref → drop the line number (handler still lives in dashboard.rs, line drifts) - mara on #695 M0V3 picker any-selection → drop attribution (substance already captured in docs/web-ui.md::Selection bar) - #541 journald scroll surface → drop the migration history framing, keep present-state behaviour - argus on #471 textContent vs innerHTML review → drop the review attribution, keep the safer-pattern rationale inline - #369 tab routing section header → drop the cookie, keep the section divider tabs.js: 6 → 0 issue-ref cookies (100% reduction). Across batches 1-14 (#712): 73 → 0 issue-ref cookies, with substantive prose (Topology tree CSS geometry, Container row icon layout, Pending-state derivation, Selection bar, R3BU1LD QU3U3 cancel + step annotations, Approval card requested-at, SSE multiplexing worker-death self-heal, FL0W page MESS4GE FL0W body layout) migrated to docs/web-ui.md across the batches. dashboard SPA files all at 0 cookies now (PR #795 covers the other dashboard files; this PR covers the tabs.js residual).
This commit is contained in:
parent
0ef79b8032
commit
b15c534e67
1 changed files with 13 additions and 16 deletions
|
|
@ -178,7 +178,7 @@ window.marked = marked;
|
|||
// agent rebuild ripple) runs in the background. Cold-loaded from
|
||||
// `s.meta_update_running`, then flipped live by the
|
||||
// `meta_update_running` event. Drives the META INPUTS panel's
|
||||
// disabled "updating…" state (issue #259).
|
||||
// disabled "updating…" state.
|
||||
let metaUpdateRunning = false;
|
||||
function syncTombstonesFromSnapshot(s) {
|
||||
tombstonesState = (s.tombstones || []).slice();
|
||||
|
|
@ -802,7 +802,7 @@ window.marked = marked;
|
|||
// and own descendants on the client side; the
|
||||
// backend rechecks via `topology::set_parent`).
|
||||
//
|
||||
// Backend lives at POST /api/topology/set-parent (dashboard.rs#2170),
|
||||
// Backend lives at POST /api/topology/set-parent (dashboard.rs),
|
||||
// form-encoded `child=<name>&new_parent=<target-or-empty>`. The
|
||||
// backend re-emits container snapshots on success, so the tree
|
||||
// repaints without a separate refresh.
|
||||
|
|
@ -830,11 +830,10 @@ window.marked = marked;
|
|||
});
|
||||
|
||||
// M0V3 → <pick>: inline `<select>` of candidate parents + submit
|
||||
// button. Available for any selection size (mara on #695 — was
|
||||
// single-agent only in v1). Picker omits each selected agent itself
|
||||
// plus the union of every selected agent's descendants (cycle-safe;
|
||||
// backend `topology::set_parent` re-checks). Empty candidate list ⇒
|
||||
// disable the picker.
|
||||
// button. Available for any selection size. Picker omits each
|
||||
// selected agent itself plus the union of every selected agent's
|
||||
// descendants (cycle-safe; backend `topology::set_parent`
|
||||
// re-checks). Empty candidate list ⇒ disable the picker.
|
||||
const candidates = validReparentCandidates(selected, containers);
|
||||
const wrap = el('span', { class: 'move-picker' });
|
||||
const selectTitle = selected.length === 1
|
||||
|
|
@ -1033,11 +1032,9 @@ window.marked = marked;
|
|||
pre.textContent = 'error: ' + resp.status + '\n' + text;
|
||||
} else {
|
||||
pre.textContent = text || '(empty)';
|
||||
// Auto-scroll to the newest lines on fresh fetch. #541
|
||||
// moved the scroll surface from side-panel-body onto the
|
||||
// <pre> itself (the panel-body now fills the viewport and
|
||||
// the <pre> is the inner overflow container), so scroll
|
||||
// the <pre> instead of the side-panel-body.
|
||||
// Auto-scroll to the newest lines on fresh fetch. The
|
||||
// scroll surface is the <pre> itself (panel-body fills
|
||||
// the viewport, <pre> is the inner overflow container).
|
||||
pre.scrollTop = pre.scrollHeight;
|
||||
}
|
||||
} catch (err) {
|
||||
|
|
@ -2946,9 +2943,9 @@ window.marked = marked;
|
|||
if (!confirm(prompt)) return;
|
||||
// Capture child nodes so we can restore on error, then replace
|
||||
// with DOM-built content (textContent + element children rather
|
||||
// than innerHTML — per argus's review note on #471, the format
|
||||
// string only carries server-side ints/bool today but textContent
|
||||
// is the safer pattern if a stringy field ever lands).
|
||||
// than innerHTML — the format string only carries server-side
|
||||
// ints/bool today but textContent is the safer pattern if a
|
||||
// stringy field ever lands).
|
||||
const originalChildren = btn ? Array.from(btn.childNodes) : [];
|
||||
const restoreBtn = () => {
|
||||
if (!btn) return;
|
||||
|
|
@ -3206,7 +3203,7 @@ window.marked = marked;
|
|||
};
|
||||
})();
|
||||
|
||||
// ─── tab routing (#369) ────────────────────────────────────────────────
|
||||
// ─── tab routing ───────────────────────────────────────────────────────
|
||||
// Hash-based: `#swarm` / `#call` / `#system` activate the matching
|
||||
// pane on the dashboard. Empty hash defaults to SW4RM. FL0W is NOT
|
||||
// a tab — it's a separate page (`/flow.html`) reached via the
|
||||
|
|
|
|||
Loading…
Reference in a new issue