100 lines
3.7 KiB
JSON
100 lines
3.7 KiB
JSON
{
|
|
"planPath": "archreview/plans/R2-06-serverhistorian-failfast-plan.md",
|
|
"lastUpdated": "2026-07-12",
|
|
"tasks": [
|
|
{
|
|
"id": "T1",
|
|
"subject": "RED: misconfig repro test \u2014 HistorianGatewayClientAdapter.Create with empty/malformed Endpoint must throw a named InvalidOperationException (currently UriFormatException; test MUST fail on current code)",
|
|
"status": "completed",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": "T2",
|
|
"subject": "GREEN: adapter guard \u2014 Uri.TryCreate + InvalidOperationException naming ServerHistorian:Endpoint in HistorianGatewayClientAdapter.Create (defense in depth)",
|
|
"status": "completed",
|
|
"blockedBy": [
|
|
"T1"
|
|
]
|
|
},
|
|
{
|
|
"id": "T3",
|
|
"subject": "RED: ServerHistorianOptionsValidator unit tests (7 cases incl. the AlarmHistorian-enabled/ServerHistorian-disabled corner naming both sections)",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T1"
|
|
]
|
|
},
|
|
{
|
|
"id": "T4",
|
|
"subject": "GREEN: implement ServerHistorianOptionsValidator (OptionsValidatorBase, ctor IConfiguration, consumed = Enabled || AlarmHistorian:Enabled, fail on empty/non-absolute/non-http(s) Endpoint)",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T3"
|
|
]
|
|
},
|
|
{
|
|
"id": "T5",
|
|
"subject": "Wiring: AddValidatedOptions<ServerHistorianOptions, ServerHistorianOptionsValidator> in Program.cs hasDriver block + OptionsValidationException wiring test + residual alarm-only-mode startup warning",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T4"
|
|
]
|
|
},
|
|
{
|
|
"id": "T6",
|
|
"subject": "Warning parity: malformed-endpoint warning in ServerHistorianOptions.Validate() + Runtime.Tests case; commit 1 (S-11) after T1-T6 green",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T4"
|
|
]
|
|
},
|
|
{
|
|
"id": "T7",
|
|
"subject": "U-7 pin: GatewayTagProvisionerTests Boolean_definition_carries_explicit_Int1_presence (asserts HistorianDataType.Int1 AND HasDataType \u2014 0.2.0 proto3-optional presence witness; pin, no RED phase)",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": "T8",
|
|
"subject": "U-7 live leg: HISTGW_BOOL_SANDBOX_TAG in GatewayLiveFixture + EnsureTags_boolean_sandbox_provisions_as_Int1 + EnsureTags_type_change_outcome_is_observable retype probe (skip-clean offline; verify all-skip run)",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T7"
|
|
]
|
|
},
|
|
{
|
|
"id": "T9",
|
|
"subject": "U-7 docs: migration/assessment note (EnsureTags is upsert; pre-bump Float Booleans; three retype hypotheses; failed=N tally observability) in docs/Historian.md + CLAUDE.md HISTGW_BOOL_SANDBOX_TAG recipe update; commit 2 (U-7) after T7-T9",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T8"
|
|
]
|
|
},
|
|
{
|
|
"id": "T10",
|
|
"subject": "C-7: keep-populating decision + dead-Quality doc comments at GatewayHistorianValueWriter.cs:63, ContinuousHistorizationRecorder.GoodQuality, docs/Historian.md (cites 0.2.0 Contracts C-002); commit 3 (C-7)",
|
|
"status": "pending",
|
|
"blockedBy": []
|
|
},
|
|
{
|
|
"id": "T11",
|
|
"subject": "Bookkeeping: update archreview/plans/STATUS.md + 06-gateway-integrations.md prior-finding rows for S-11/U-7/C-7 when the work lands",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T6",
|
|
"T9",
|
|
"T10"
|
|
]
|
|
},
|
|
{
|
|
"id": "T12",
|
|
"subject": "OPERATOR GATE: run Category=LiveIntegration on the VPN against a 0.2.0 gateway (all 6 tests, incl. Boolean EnsureTags + retype probe); record the observed retype policy back into docs/Historian.md + STATUS.md; also discharges 06/U-2's full documented run",
|
|
"status": "pending",
|
|
"blockedBy": [
|
|
"T9",
|
|
"T11"
|
|
]
|
|
}
|
|
]
|
|
}
|