docs(comments): strip internal task/milestone/bundle bookkeeping from code comments
Remove project bookkeeping citations from shipped code comments across the solution: hyphenated task IDs (WP-14, StoreAndForward-025), milestone/task/ issue refs (M3, Task 4, Audit Log #23, #21), Bundle X task-bundle labels, and C/D/K/S/T phase labels. Comment text only — no code logic, string/log literals, or XML-doc structure changed. Genuine descriptions are preserved (only the citation is stripped), and technical lookalikes are retained (UTF-8, SHA-256, T00:00:00, M365, UTC-5, pre-C4/pre-C5 schema versions). Flagged by the new CommentChecker TaskReferenceInComment / TrackingReferenceInComment checks plus targeted grep passes; full solution builds clean, append-only guard tests pass.
This commit is contained in:
@@ -100,7 +100,7 @@ internal static class AlarmTriggerConfigCodec
|
||||
|
||||
case AlarmTriggerType.Expression:
|
||||
model.Expression = TryReadString(root, "expression");
|
||||
// M9-T28b: read optional analysisKind discriminator ("Strict" → strict;
|
||||
// Read optional analysisKind discriminator ("Strict" → strict;
|
||||
// absent/"Advisory"/anything else → Advisory default, preserving
|
||||
// today's behavior exactly — matches ValidationService.IsStrictAnalysis).
|
||||
if (root.TryGetProperty("analysisKind", out var ak)
|
||||
@@ -181,7 +181,7 @@ internal static class AlarmTriggerConfigCodec
|
||||
|
||||
case AlarmTriggerType.Expression:
|
||||
w.WriteString("expression", model.Expression ?? "");
|
||||
// M9-T28b: emit "analysisKind":"Strict" only when explicitly set;
|
||||
// Emit "analysisKind":"Strict" only when explicitly set;
|
||||
// Advisory is the default so the key is omitted to keep the payload
|
||||
// minimal and backward-compatible with older ValidationService versions.
|
||||
if (model.IsStrictAnalysisKind)
|
||||
@@ -357,7 +357,7 @@ internal sealed class AlarmTriggerModel
|
||||
/// </summary>
|
||||
public string? Expression { get; set; }
|
||||
|
||||
// M9-T28b: per-trigger analysis kind (Expression only). When true the
|
||||
// Per-trigger analysis kind (Expression only). When true the
|
||||
// codec serializes "analysisKind":"Strict"; when false (Advisory, the
|
||||
// default) the key is omitted. Matches ValidationService.IsStrictAnalysis.
|
||||
/// <summary>
|
||||
|
||||
@@ -538,7 +538,7 @@
|
||||
_thresholdText = FormatNullable(_model.ThresholdPerSecond);
|
||||
_windowText = FormatNullable(_model.WindowSeconds);
|
||||
_directionText = _model.Direction;
|
||||
// M9-T28b: sync the analysis-kind selector from the loaded model.
|
||||
// Sync the analysis-kind selector from the loaded model.
|
||||
_analysisKindValue = _model.IsStrictAnalysisKind ? "Strict" : "Advisory";
|
||||
_loLoText = FormatNullable(_model.LoLo);
|
||||
_loText = FormatNullable(_model.Lo);
|
||||
@@ -589,7 +589,7 @@
|
||||
<div class="form-text">
|
||||
A boolean C# expression — e.g. <code>Attributes["Temperature"] > 80</code>.
|
||||
</div>
|
||||
@* M9-T28b: analysis-kind selector — Advisory (default) keeps the blank-expression
|
||||
@* Analysis-kind selector — Advisory (default) keeps the blank-expression
|
||||
finding as a non-blocking warning; Strict escalates it to a deploy-blocking error. *@
|
||||
<div class="mt-2">
|
||||
<label for="alarm-trigger-kind" class="form-label small text-uppercase text-muted fw-semibold mb-1">
|
||||
@@ -612,7 +612,7 @@
|
||||
await Emit();
|
||||
}
|
||||
|
||||
// M9-T28b: backing field + handler for the Advisory|Strict selector.
|
||||
// Backing field + handler for the Advisory|Strict selector.
|
||||
private string _analysisKindValue = "Advisory";
|
||||
|
||||
private async Task OnAnalysisKindChanged()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@inject IJSRuntime JS
|
||||
|
||||
@* T34b: dark-mode toggle. Pure JS-interop + localStorage — no DI service and no
|
||||
@* Dark-mode toggle. Pure JS-interop + localStorage — no DI service and no
|
||||
server state. The actual theme switch happens in the browser via window.sbTheme
|
||||
(wwwroot/js/theme.js); this button just drives toggle() and reflects the result.
|
||||
The page-load default (no-flash) is owned by the inline pre-hydration script in
|
||||
|
||||
@@ -25,7 +25,7 @@ public class DialogService : IDialogService
|
||||
/// </summary>
|
||||
public DialogState? Current { get; private set; }
|
||||
|
||||
// CentralUI-015: the pending dialog result is held in a typed TCS that the
|
||||
// The pending dialog result is held in a typed TCS that the
|
||||
// host completes directly via Resolve(). The previous implementation
|
||||
// projected the result through Task.ContinueWith(..., TaskScheduler.Default),
|
||||
// which ran the projection lambda on a thread-pool thread. Completing a
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@namespace ZB.MOM.WW.ScadaBridge.CentralUI.Components.Shared
|
||||
|
||||
@* M6 (K12) reusable KPI trend chart. Dependency-free inline SVG inside a
|
||||
@* M6 reusable KPI trend chart. Dependency-free inline SVG inside a
|
||||
Bootstrap card, styled to sit beside the AuditKpiTiles / SiteCallKpiTiles
|
||||
KPI cards (card + card-body, small text-muted labels, muted single stroke).
|
||||
Three states: a ≥2-point polyline chart, a single-sample note, and an
|
||||
|
||||
@@ -6,8 +6,8 @@ using ZB.MOM.WW.ScadaBridge.Commons.Types.Kpi;
|
||||
namespace ZB.MOM.WW.ScadaBridge.CentralUI.Components.Shared;
|
||||
|
||||
/// <summary>
|
||||
/// Reusable dependency-free SVG trend chart for M6 "KPI History & Trends"
|
||||
/// (Task K12). Renders a <see cref="KpiSeriesPoint"/> series as a single muted
|
||||
/// Reusable dependency-free SVG trend chart for "KPI History & Trends".
|
||||
/// Renders a <see cref="KpiSeriesPoint"/> series as a single muted
|
||||
/// polyline inside a Bootstrap card, with a baseline (x-axis) and value/time
|
||||
/// labels. No third-party charting library — the project rule is custom Blazor
|
||||
/// components on Bootstrap CSS only.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@namespace ZB.MOM.WW.ScadaBridge.CentralUI.Components.Shared
|
||||
|
||||
@* T35a — reusable offset-pagination bar. Purely presentational: the host page
|
||||
@* Reusable offset-pagination bar. Purely presentational: the host page
|
||||
owns page-number state, query execution, and the HasNextPage decision.
|
||||
Parameters: Page, PageChanged, HasNextPage, TotalCount, PageSize, Disabled. *@
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
namespace ZB.MOM.WW.ScadaBridge.CentralUI.Components.Shared;
|
||||
|
||||
/// <summary>
|
||||
/// Pure helper for windowed pagination (CentralUI-016). Computes the set of
|
||||
/// Pure helper for windowed pagination. Computes the set of
|
||||
/// page numbers a pager should render: always the first and last page plus a
|
||||
/// small range around the current page, with the rest elided. Keeps the
|
||||
/// rendered button count bounded regardless of the total page count, instead
|
||||
|
||||
@@ -43,7 +43,7 @@ internal sealed class ScriptTriggerModel
|
||||
/// <summary>Fire mode (Conditional + Expression). Defaults to <see cref="ScriptTriggerMode.OnTrue"/>.</summary>
|
||||
public ScriptTriggerMode Mode { get; set; } = ScriptTriggerMode.OnTrue;
|
||||
|
||||
// M9-T28b: per-trigger analysis kind (Expression only). When true the
|
||||
// Per-trigger analysis kind (Expression only). When true the
|
||||
// codec serializes "analysisKind":"Strict"; when false (Advisory, the
|
||||
// default) the key is omitted. Matches ValidationService.IsStrictAnalysis.
|
||||
/// <summary>
|
||||
@@ -158,7 +158,7 @@ internal static class ScriptTriggerConfigCodec
|
||||
case ScriptTriggerKind.Expression:
|
||||
model.Expression = root.TryGetProperty("expression", out var e) ? e.GetString() : null;
|
||||
model.Mode = ReadMode(root);
|
||||
// M9-T28b: read optional analysisKind discriminator (matches
|
||||
// Read optional analysisKind discriminator (matches
|
||||
// ValidationService.IsStrictAnalysis — "Strict" case-insensitive → strict;
|
||||
// absent/"Advisory"/anything else → Advisory default).
|
||||
if (root.TryGetProperty("analysisKind", out var ak)
|
||||
@@ -215,7 +215,7 @@ internal static class ScriptTriggerConfigCodec
|
||||
case ScriptTriggerKind.Expression:
|
||||
w.WriteString("expression", model.Expression ?? "");
|
||||
w.WriteString("mode", model.Mode.ToString());
|
||||
// M9-T28b: emit "analysisKind":"Strict" only when explicitly set;
|
||||
// Emit "analysisKind":"Strict" only when explicitly set;
|
||||
// Advisory is the default so the key is omitted to stay backward-compatible.
|
||||
if (model.IsStrictAnalysisKind)
|
||||
w.WriteString("analysisKind", "Strict");
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
_operator = _model.Operator;
|
||||
_thresholdText = _model.Threshold?.ToString("R", CultureInfo.InvariantCulture);
|
||||
(_intervalText, _intervalUnit) = SplitInterval(_model.IntervalMs);
|
||||
// M9-T28b: sync the analysis-kind selector from the loaded model.
|
||||
// Sync the analysis-kind selector from the loaded model.
|
||||
_analysisKindValue = _model.IsStrictAnalysisKind ? "Strict" : "Advisory";
|
||||
}
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
<div class="form-text">
|
||||
A boolean C# expression — e.g. <code>Attributes["Temperature"] > 80</code>.
|
||||
</div>
|
||||
@* M9-T28b: analysis-kind selector — Advisory keeps the blank-expression finding
|
||||
@* Analysis-kind selector — Advisory keeps the blank-expression finding
|
||||
as a non-blocking warning; Strict escalates it to a deploy-blocking error. *@
|
||||
<div class="mt-2">
|
||||
<label for="script-trigger-kind" class="form-label small text-uppercase text-muted fw-semibold mb-1">
|
||||
@@ -297,7 +297,7 @@
|
||||
await Emit();
|
||||
}
|
||||
|
||||
// M9-T28b: backing field + handler for the Advisory|Strict selector.
|
||||
// Backing field + handler for the Advisory|Strict selector.
|
||||
private string _analysisKindValue = "Advisory";
|
||||
|
||||
private async Task OnAnalysisKindChanged()
|
||||
|
||||
@@ -34,7 +34,7 @@ public sealed class TemplateTreeNode
|
||||
/// <summary>
|
||||
/// True when this composition node is <em>inherited</em> — its underlying
|
||||
/// <c>TemplateComposition</c> row belongs to an ancestor of the template it is
|
||||
/// rendered under, not to that template itself (followup #9). Inherited nodes are
|
||||
/// rendered under, not to that template itself. Inherited nodes are
|
||||
/// badged read-only and their context menu suppresses Rename/Delete (those edit the
|
||||
/// base). Always false for folders and templates.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user