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:
@@ -73,7 +73,7 @@ public sealed class BundleExporter : IBundleExporter
|
||||
var resolved = await _resolver.ResolveAsync(selection, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
// 2. Convert to the wire-shaped DTO (strips EF identity, refs-by-name).
|
||||
// M8 (B4): the resolver's site/dataConnection/instance closure is wired
|
||||
// The resolver's site/dataConnection/instance closure is wired
|
||||
// through via object-initializer — without this the aggregate would
|
||||
// carry the empty defaults and the bundle would ship empty site/
|
||||
// instance arrays even when those were selected (review item I3).
|
||||
@@ -86,16 +86,16 @@ public sealed class BundleExporter : IBundleExporter
|
||||
DatabaseConnections: resolved.DatabaseConnections,
|
||||
NotificationLists: resolved.NotificationLists,
|
||||
SmtpConfigurations: resolved.SmtpConfigs,
|
||||
// Inbound API keys are not transported between environments (re-arch C4).
|
||||
// Inbound API keys are not transported between environments.
|
||||
ApiMethods: resolved.ApiMethods)
|
||||
{
|
||||
Sites = resolved.Sites,
|
||||
DataConnections = resolved.DataConnections,
|
||||
Instances = resolved.Instances,
|
||||
// SMS (S10b): wire the resolver's SMS config closure through the
|
||||
// Wire the resolver's SMS config closure through the
|
||||
// aggregate. Without this the aggregate carries the empty default and the
|
||||
// bundle ships an empty smsConfigs array even when SMS configs were
|
||||
// selected — mirrors the M8 site/instance fix (review item I3).
|
||||
// selected — mirrors the site/instance fix (review item I3).
|
||||
SmsConfigurations = resolved.SmsConfigs,
|
||||
};
|
||||
var contentDto = _entitySerializer.ToBundleContent(aggregate);
|
||||
@@ -110,7 +110,7 @@ public sealed class BundleExporter : IBundleExporter
|
||||
NotificationLists: resolved.NotificationLists.Count,
|
||||
SmtpConfigs: resolved.SmtpConfigs.Count,
|
||||
ApiMethods: resolved.ApiMethods.Count,
|
||||
// M8 (B3): additive site/dataConnection/instance counts. Sourced from
|
||||
// Additive site/dataConnection/instance counts. Sourced from
|
||||
// the serialized content DTO — the same arrays the importer reads —
|
||||
// so the manifest summary always matches the packed payload. These
|
||||
// arrays default to empty until B1/B2 populate them, so the counts
|
||||
@@ -118,7 +118,7 @@ public sealed class BundleExporter : IBundleExporter
|
||||
Sites: contentDto.Sites.Count,
|
||||
DataConnections: contentDto.DataConnections.Count,
|
||||
Instances: contentDto.Instances.Count,
|
||||
// SMS (S10b): additive count sourced from the serialized content DTO — the
|
||||
// Additive count sourced from the serialized content DTO — the
|
||||
// same array the importer reads — so the manifest summary always matches
|
||||
// the packed payload.
|
||||
SmsConfigs: contentDto.SmsConfigs.Count);
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace ZB.MOM.WW.ScadaBridge.Transport.Export;
|
||||
/// Templates are returned topologically sorted (base-before-derived) via Kahn's
|
||||
/// algorithm so importers can apply them in order.
|
||||
/// <para>
|
||||
/// M8 adds site/instance-scoped expansion: selecting a site pulls its
|
||||
/// Site/instance-scoped expansion: selecting a site pulls its
|
||||
/// <c>DataConnection</c>s and <c>Instance</c>s; selecting an instance (with
|
||||
/// <see cref="ExportSelection.IncludeDependencies"/>) pulls its owning site, the
|
||||
/// data connections it binds, and feeds its template into the existing template
|
||||
@@ -111,7 +111,7 @@ public sealed class DependencyResolver
|
||||
if (sm is not null) smtpConfigs[sm.Id] = sm;
|
||||
}
|
||||
|
||||
// SMS provider configs (S10b): mirror the SMTP seed exactly — resolve each
|
||||
// SMS provider configs: mirror the SMTP seed exactly — resolve each
|
||||
// selected id via the by-id repository accessor; missing ids are skipped.
|
||||
var smsConfigs = new Dictionary<int, SmsConfiguration>();
|
||||
foreach (var id in selection.SmsConfigurationIds.Distinct())
|
||||
@@ -121,7 +121,7 @@ public sealed class DependencyResolver
|
||||
}
|
||||
|
||||
// Inbound API keys are intentionally NOT resolved into the bundle: per the
|
||||
// inbound-API-key re-architecture (C4) keys are not transported between
|
||||
// inbound-API-key re-architecture, keys are not transported between
|
||||
// environments. Only API methods travel.
|
||||
var apiMethods = new Dictionary<int, ApiMethod>();
|
||||
foreach (var id in selection.ApiMethodIds.Distinct())
|
||||
@@ -130,7 +130,7 @@ public sealed class DependencyResolver
|
||||
if (m is not null) apiMethods[m.Id] = m;
|
||||
}
|
||||
|
||||
// ---- Seed: site/instance-scoped selection (M8) ----
|
||||
// ---- Seed: site/instance-scoped selection ----
|
||||
// sites/dataConnections/instances are keyed by surrogate id for dedup.
|
||||
var sites = new Dictionary<int, Site>();
|
||||
var dataConnections = new Dictionary<int, DataConnection>();
|
||||
@@ -200,7 +200,7 @@ public sealed class DependencyResolver
|
||||
// ---- Topological sort of templates (base-before-derived) ----
|
||||
var orderedTemplates = TopologicallySortTemplates(templates.Values);
|
||||
|
||||
// ---- Deterministic site/instance ordering (M8) ----
|
||||
// ---- Deterministic site/instance ordering ----
|
||||
// siteId → SiteIdentifier map: every connection's/instance's owning site lands
|
||||
// in `sites` after closure expansion, so ordering + dependsOn edges resolve names.
|
||||
var siteIdentifierById = sites.Values.ToDictionary(s => s.Id, s => s.SiteIdentifier);
|
||||
@@ -266,13 +266,13 @@ public sealed class DependencyResolver
|
||||
Sites = orderedSites,
|
||||
DataConnections = orderedDataConnections,
|
||||
Instances = orderedInstances,
|
||||
// SMS (S10b): ordered by AccountSid — the natural key the importer matches
|
||||
// SMS: ordered by AccountSid — the natural key the importer matches
|
||||
// on, mirroring how SMTP is ordered by Host.
|
||||
SmsConfigs = smsConfigs.Values.OrderBy(s => s.AccountSid, StringComparer.Ordinal).ToList(),
|
||||
};
|
||||
}
|
||||
|
||||
// ---- Instance child loading (M8) ----
|
||||
// ---- Instance child loading ----
|
||||
// Loads an instance and attaches its overrides/bindings onto the entity's own
|
||||
// navigation collections, so the serializer reads children off the entity (the
|
||||
// same shape central-config entities use). Returns null if the instance is gone.
|
||||
@@ -293,7 +293,7 @@ public sealed class DependencyResolver
|
||||
return instance;
|
||||
}
|
||||
|
||||
// ---- Site/instance closure (M8) ----
|
||||
// ---- Site/instance closure ----
|
||||
// For every gathered instance: ensure its owning Site is in the bundle, include
|
||||
// the DataConnections it binds (via ConnectionBinding.DataConnectionId resolved
|
||||
// within the instance's site, plus NativeAlarmSourceOverride.ConnectionNameOverride
|
||||
@@ -618,19 +618,19 @@ public sealed class DependencyResolver
|
||||
{
|
||||
entries.Add(new ManifestContentEntry("SmtpConfiguration", s.Host, 1, Array.Empty<string>()));
|
||||
}
|
||||
// SMS (S10b): mirror SMTP — one manifest row per config, keyed by AccountSid
|
||||
// SMS: mirror SMTP — one manifest row per config, keyed by AccountSid
|
||||
// (the natural key the importer matches on).
|
||||
foreach (var s in smsConfigs.OrderBy(x => x.AccountSid, StringComparer.Ordinal))
|
||||
{
|
||||
entries.Add(new ManifestContentEntry("SmsConfiguration", s.AccountSid, 1, Array.Empty<string>()));
|
||||
}
|
||||
// Inbound API keys are not transported (re-arch C4) — no ApiKey manifest entries.
|
||||
// Inbound API keys are not transported — no ApiKey manifest entries.
|
||||
foreach (var m in apiMethods.OrderBy(x => x.Name, StringComparer.Ordinal))
|
||||
{
|
||||
entries.Add(new ManifestContentEntry("ApiMethod", m.Name, 1, Array.Empty<string>()));
|
||||
}
|
||||
|
||||
// ---- M8: site/instance-scoped manifest rows ----
|
||||
// ---- Site/instance-scoped manifest rows ----
|
||||
// Sites are roots (no dependsOn). DataConnections depend on their site.
|
||||
// Instances depend on their template, their site, and each data connection
|
||||
// they bind. Inputs arrive pre-ordered, so iterate as-is for determinism.
|
||||
|
||||
@@ -25,11 +25,11 @@ public sealed record ResolvedExport(
|
||||
IReadOnlyList<DatabaseConnectionDefinition> DatabaseConnections,
|
||||
IReadOnlyList<NotificationList> NotificationLists,
|
||||
IReadOnlyList<SmtpConfiguration> SmtpConfigs,
|
||||
// Inbound API keys are not transported between environments (re-arch C4); only methods.
|
||||
// Inbound API keys are not transported between environments; only methods.
|
||||
IReadOnlyList<ApiMethod> ApiMethods,
|
||||
IReadOnlyList<ManifestContentEntry> ContentManifest)
|
||||
{
|
||||
// M8: site/instance-scoped closure. Additive init-only collections with empty
|
||||
// Site/instance-scoped closure. Additive init-only collections with empty
|
||||
// defaults so the positional ctor stays source-compatible for callers/tests
|
||||
// that only resolve central-config selections (sites/instances stay empty).
|
||||
// The resolver opts in via object-initializer. Each <see cref="Instance"/>
|
||||
@@ -59,7 +59,7 @@ public sealed record ResolvedExport(
|
||||
|
||||
/// <summary>
|
||||
/// SMS provider configurations in the closure, ordered by
|
||||
/// <see cref="SmsConfiguration.AccountSid"/> (S10b). Mirrors
|
||||
/// <see cref="SmsConfiguration.AccountSid"/>. Mirrors
|
||||
/// <see cref="SmtpConfigs"/>; init-only with an empty default so callers that
|
||||
/// only resolve other selections keep compiling.
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user