💋 Sync 2026-10-11 00:16:14
Merge-upstream / merge (push) Canceled after 0s

This commit is contained in:
github-actions[bot] committed 2026-10-11 00:16:14 +08:00
1 parent c7bafc635d
commit c71da84035
264 files changed
+8169 -3944

No files matched your search

@@ -232,7 +232,7 @@ var DEVICE_LABELS = {
* normalised, and columnChart reads only p.dl/p.ul, so it drew an EMPTY framed
* plot under a KPI row reporting megabytes. Worse, series.length was still 12,
* so the honest "No time series available" branch never ran.
* Found by a code-review panel, 2026-08-25. No daemon field is named dl or ul,
* Found in code review, 2026-08-25. No daemon field is named dl or ul,
* so the aliases are inert against real payloads. */
var A_DL = [ 'download', 'bytes_down', 'rx_bytes', 'download_bytes', 'total_download', 'dl' ],
A_UL = [ 'upload', 'bytes_up', 'tx_bytes', 'upload_bytes', 'total_upload', 'ul' ],
@@ -485,7 +485,7 @@ return baseclass.extend({
* bytes_down fell through to the byte counter and the Download KPI read
* something like "12.4 GB/s" while nothing moved. Read with a -1 sentinel
* and test presence instead, the way normTotals already does for its own
* totals. Raised by a code-review panel, 2026-08-25.
* totals. Raised in code review, 2026-08-25.
*
* Latent rather than live: the only caller is guarded by `summary.rates ?`,
* and this daemon puts byte and rate counters together in `totals` and sends
@@ -752,7 +752,7 @@ return baseclass.extend({
* A device named `constructor` then rendered style="background:undefined",
* which the browser drops, leaving white tile text on a transparent
* tile; in the doughnut the slice silently did not draw while its legend
* still claimed a percentage. Found by a code-review panel, 2026-08-25. */
* still claimed a percentage. Found in code review, 2026-08-25. */
if (Object.prototype.hasOwnProperty.call(CATEGORY_SLOT, s))
return PALETTE[CATEGORY_SLOT[s]];
@@ -1257,7 +1257,7 @@ return baseclass.extend({
* `.af-donut > svg` also carried transform:rotate(-90deg) until
* 2026-08-25, the two stacked, and the first slice actually began at
* 9 o'clock -- so this comment asserted something the render did not
* do. Found by a code-review panel. If you re-add a CSS rotation,
* do. Found in code review. If you re-add a CSS rotation,
* take this offset out. */
off = 25,
ring = [ this.svg('circle', {
@@ -1418,7 +1418,7 @@ return baseclass.extend({
* It failed GREEN on the one indicator whose whole job is to tell the
* operator the collector is down, which is also the most common reason
* the page is empty. Absent evidence is not positive evidence; unknown
* is its own state and is drawn neutral. Found by a code-review panel,
* is its own state and is drawn neutral. Found in code review,
* 2026-08-25. */
known = (s.agent_connected != null) || (sock.connected != null),
connected = known && (s.agent_connected !== false) && (sock.connected !== false),
@@ -300,7 +300,7 @@ return view.extend({
* ordinary config change, so that was a hair trigger. paint() now drops
* the buffer only when the gap exceeds the chart's own window, which is
* the case where redrawing it really would mislead. Raised by a
* code-review panel, 2026-08-25. */
* code review, 2026-08-25. */
dom.content(this.downNode, appflow.notRunning(appflow.classifyFail(err), err));
this.liveNode.style.display = 'none';
this.downNode.style.display = '';
@@ -551,7 +551,7 @@ return view.extend({
* caption reading "top, by cumulative bytes". The fallback
* looked like belt-and-braces and was actually a silent unit
* mix; a row with no bytes is filtered out below, which is
* the honest outcome. Found by a code-review panel. */
* the honest outcome. Found in code review. */
value: t.total
};
})
@@ -333,7 +333,7 @@ return view.extend({
* handler anywhere in this package. role=button plus tabindex puts
* the row in the tab order and makes it announce as activatable;
* Enter and Space are the two keys a button is required to answer.
* Raised by a code-review panel. */
* Raised in code review. */
rows.push(E('tr', {
'class': 'tr af-row',
'title': _('Show per-device details'),
@@ -530,7 +530,7 @@ return view.extend({
* active catalog says. With the English catalog that is a constant in
* this file; the moment a translation is accepted it is third-party
* content, which is exactly what the pending zh_Hans PR proposes. Raised
* by a review panel over that PR, which was careful to note the submitted
* by a review of that PR, which was careful to note the submitted
* Chinese contains no markup: this is closing the trust distinction, not
* fixing an exploit. */
ui.showModal([ _('Details') ], body, 'cbi-modal');