From b0f3f0268e5c88403ca3f36a6a28a8005ae234e6 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 18:24:52 +0000 Subject: [PATCH 01/21] Model Mt. Jade class physical facts from OCP and Wiwynn SV328R. Keep CRPS inlet and shipped-cord voltage unstated until a unit photograph or PSU OPN names IEC 60320 and the AC range. Cite BMC firmware as MegaRAC or OpenBMC, not a default. Co-authored-by: Cursor --- dag/extdeps/ocp/mt_jade/platform.dag | 95 ++++++++++- dag/extdeps/vendor/wiwynn.dag | 29 ++++ dag/extdeps/wiwynn/sv328r/specifications.dag | 149 ++++++++++++++++++ dag/extdeps/wiwynn/sv328r/subject.dag | 64 ++++++++ dag/gunbc/extdeps_scope_frontier.dag | 3 + .../claim/mt_jade_platform_witness_test.dag | 37 +++++ dag/test/claim/wiwynn_sv328r_witness_test.dag | 82 ++++++++++ 7 files changed, 458 insertions(+), 1 deletion(-) create mode 100644 dag/extdeps/vendor/wiwynn.dag create mode 100644 dag/extdeps/wiwynn/sv328r/specifications.dag create mode 100644 dag/extdeps/wiwynn/sv328r/subject.dag create mode 100644 dag/test/claim/wiwynn_sv328r_witness_test.dag diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index c2f5190e4eb..5e58d6d0465 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -1,6 +1,6 @@ module extdeps.ocp.mt_jade.platform -import std.types { String, NonEmptyStr, List } +import std.types { String, NonEmptyStr, List, Bool } import std.integer { Int } import std.measure { Hertz, @@ -373,4 +373,97 @@ fn reference_part_roles_include(rows: List, wanted: Refe fold(rows, init: false, f: fn(acc, r) { acc || r.role == wanted }) } +// FEATURE LIST AND SECTION 7.2: FAN CONNECTOR POPULATIONS ARE CHASSIS-HEIGHT SPECIFIC. The +// motherboard carries both connector sets; a 2U chassis uses six 6056 dual-rotor fans and a 1U +// chassis uses eight 4056 dual-rotor fans. PWM/TACH in Table 9 restates the same split. +type MtJadeFanConnectorPopulation { + chassis_height_label: NonEmptyStr + connector_count: Int + fan_size_designation: NonEmptyStr + dual_rotor: Bool +} + +data mt_jade_fan_connectors_2u: MtJadeFanConnectorPopulation = MtJadeFanConnectorPopulation { + chassis_height_label: "2U", + connector_count: 6, + fan_size_designation: "6056", + dual_rotor: true, +} + +data mt_jade_fan_connectors_1u: MtJadeFanConnectorPopulation = MtJadeFanConnectorPopulation { + chassis_height_label: "1U", + connector_count: 8, + fan_size_designation: "4056", + dual_rotor: true, +} + +// FEATURE LIST: DUAL CRPS, 1+1, HOT-PLUG. The specification names the PSU mechanical class and +// redundancy and does not name IEC 60320 sheet, AC voltage range, or a wattage rating of any +// fitted module. Inventing C14 vs C20 from "CRPS" would be a fabricated inlet. +type MtJadeCrpsPower { + psu_count: Int + redundancy_label: NonEmptyStr + hot_plug: Bool +} + +data mt_jade_crps_power: MtJadeCrpsPower = MtJadeCrpsPower { + psu_count: 2, + redundancy_label: "1+1", + hot_plug: true, +} + +type MtJadeCrpsAcInletStanding + = InletUnstatedInCitedAuthorities { obligation: NonEmptyStr } + +data mt_jade_crps_ac_inlet: MtJadeCrpsAcInletStanding = InletUnstatedInCitedAuthorities { + obligation: "OCP Mt. Jade Rev 1.0 names two CRPS connectors and 1+1 hot-plug redundancy. It does not name an IEC 60320 inlet (C14 vs C20), a 120 V vs 200-240 V rating, or the cord the seller ships. Discriminator: a photograph or FRU of the fitted PSU face, or a PSU ordering part whose own datasheet names the inlet and AC range.", +} + +// FEATURE LIST: "MGMT 1x 1GbE from BMC to Rear RJ45 Connector". Section 7.6.1 names BMC ETH at +// 10/100/1000 and RTL8211E as the PHY (already a reference-part row). Bottom-side I/O is common +// between 1U and 2U: BMC UART/ETH/VGA sit with the power-supply end of the board. +type MtJadeBmcManagementNetwork { + phy_ordering_part_number: NonEmptyStr + port_count: Int + location_label: NonEmptyStr + media_label: NonEmptyStr +} + +data mt_jade_bmc_management_network: MtJadeBmcManagementNetwork = MtJadeBmcManagementNetwork { + phy_ordering_part_number: "RTL8211E", + port_count: 1, + location_label: "rear RJ45, power-supply / bottom-side I/O", + media_label: "10/100/1000 Mbps BMC ETH", +} + +// FEATURE LIST "BMC AMI MegaRAC, OpenBMC" IS A DISJUNCTION, NOT A DEFAULT. The specification +// names both stacks. A unit's family is a workflow observation (gunbc.machine_intake_access), +// never this row. megaRAC_* folds may run only after AmiMegaRac is observed. +type MtJadeCitedBmcFirmwareOption + = CitedAmiMegaRac + | CitedOpenBmc + +data mt_jade_cited_bmc_firmware_options: List = [ + CitedAmiMegaRac, + CitedOpenBmc, +] + +fn mt_jade_cited_bmc_firmware_includes_megarac(options: List) -> Bool { + fold(options, init: false, f: fn(acc, o) { + acc || match o { + CitedAmiMegaRac => true + CitedOpenBmc => false + } + }) +} + +fn mt_jade_cited_bmc_firmware_includes_openbmc(options: List) -> Bool { + fold(options, init: false, f: fn(acc, o) { + acc || match o { + CitedAmiMegaRac => false + CitedOpenBmc => true + } + }) +} + data extdeps_model_scope: ExternalModelScope = mt_jade_model_scope diff --git a/dag/extdeps/vendor/wiwynn.dag b/dag/extdeps/vendor/wiwynn.dag new file mode 100644 index 00000000000..895bf372183 --- /dev/null +++ b/dag/extdeps/vendor/wiwynn.dag @@ -0,0 +1,29 @@ +module extdeps.vendor.wiwynn + +import extdeps.vendor { Vendor } +import extdeps.hardware { Hardware } + +import std.decl_ref { DeclarationRef, WholeDeclaration } +import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef } +import extdeps.uri { Uri, Https } + +data extdeps_external_authority_anchor: ExternalAuthority = ExternalAuthority { + uri: Uri { + scheme: Https + locator: "www.wiwynn.com" + } +} + +data extdeps_model_scope: ExternalModelScope = ExternalModelScope { + subject: ExternalSubjectRef { + declaration: DeclarationRef { + module_path: "extdeps.vendor.wiwynn", + decl_name: "wiwynn_vendor", + field: WholeDeclaration + } + }, + first_citation: extdeps_external_authority_anchor, + further_citations: [] +} + +data wiwynn_vendor: Vendor = Vendor { legal_name: "Wiwynn Corporation" } diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag new file mode 100644 index 00000000000..f7239ad5fb0 --- /dev/null +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -0,0 +1,149 @@ +module extdeps.wiwynn.sv328r.specifications + +import std.types { String, NonEmptyStr, Bool } +import std.nat { Nat } +import std.decl_ref { DeclarationRef, WholeDeclaration } +import std.measure { + Bandwidth, Gram, Hertz, MegatransfersPerSecond, Micrometer, Millimeter, RackUnit, + bandwidth, gram, gram_count, hertz, megatransfers_per_second, micrometer, micrometer_count, + millimeter, rack_unit, +} +import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef } +import extdeps.wiwynn.sv328r.subject { + WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, +} + +data extdeps_external_authority_anchor: ExternalAuthority = sv328r_datasheet_authority + +data sv328r_specifications_subject: WiwynnSv328rProduct = wiwynn_sv328r_product + +// PHYSICAL AND PACKAGING ROW OF THE 2021-11-04 DATASHEET. Depth is 770.2 mm, carried as +// micrometres so the tenth of a millimetre is exact. Weight is printed 14.47 kg = 14470 g. +// The sheet does not say whether that mass includes processors, PSUs, or rails. +type Sv328rChassisDimensions { + height: Millimeter + width: Millimeter + depth: Micrometer + rack_units: RackUnit +} + +data sv328r_dimensions: Sv328rChassisDimensions = Sv328rChassisDimensions { + height: millimeter(count: 87), + width: millimeter(count: 438), + depth: micrometer(count: 770200), + rack_units: rack_unit(count: 2), +} + +data sv328r_stated_weight: Gram = gram(count: 14470) + +type Sv328rCooling { + fan_count: Nat + fan_size_designation: NonEmptyStr +} + +data sv328r_cooling: Sv328rCooling = Sv328rCooling { + fan_count: 6, + fan_size_designation: "6056", +} + +type Sv328rPowerSupply { + psu_count: Nat + form_factor_label: NonEmptyStr + redundant: Bool +} + +data sv328r_power: Sv328rPowerSupply = Sv328rPowerSupply { + psu_count: 2, + form_factor_label: "CRPS", + redundant: true, +} + +type Sv328rCrpsAcInletStanding + = InletUnstatedInCitedAuthorities { obligation: NonEmptyStr } + +data sv328r_crps_ac_inlet: Sv328rCrpsAcInletStanding = InletUnstatedInCitedAuthorities { + obligation: "The SV328R datasheet names 2x CRPS form factor, redundant, and does not name IEC 60320 C14 vs C20, a 120 V vs 200-240 V rating, or a shipped cord. Discriminator: a photograph of the fitted PSU inlet on a unit of this class, or a PSU OPN whose vendor sheet names the inlet.", +} + +type OnboardNetworkController { + controller: NonEmptyStr + port_count: Nat + per_port_bandwidth: Bandwidth + purpose: NonEmptyStr +} + +data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetworkController { + controller: "dedicated BMC port (datasheet: One GbE Dedicated BMC Port; iKVM over IP)", + port_count: 1, + per_port_bandwidth: bandwidth(count: 1000000000), + purpose: "BMC manageability", +} + +type Sv328rProcessorConfiguration { + socket_count: Nat + cores_per_socket_stated_max: Nat + architecture_label: NonEmptyStr + max_core_clock: Hertz +} + +data sv328r_processors: Sv328rProcessorConfiguration = Sv328rProcessorConfiguration { + socket_count: 2, + cores_per_socket_stated_max: 80, + architecture_label: "Ampere Altra, 64-bit Arm", + max_core_clock: hertz(count: 3000000000), +} + +type Sv328rMemoryConfiguration { + dimm_slots_total: Nat + dimms_per_processor: Nat + channels_per_processor: Nat + max_data_rate: MegatransfersPerSecond + module_class_label: NonEmptyStr +} + +data sv328r_memory: Sv328rMemoryConfiguration = Sv328rMemoryConfiguration { + dimm_slots_total: 32, + dimms_per_processor: 16, + channels_per_processor: 8, + max_data_rate: megatransfers_per_second(count: 3200), + module_class_label: "RDIMM", +} + +type Sv328rStorageBays { + front_u2_bays: Nat + onboard_m2_nvme_slots: Nat +} + +data sv328r_storage: Sv328rStorageBays = Sv328rStorageBays { + front_u2_bays: 24, + onboard_m2_nvme_slots: 2, +} + +type Sv328rOcpSlotStanding + = OcpNic30SffSlotPresent { occupancy_note: NonEmptyStr } + +data sv328r_ocp_slot: Sv328rOcpSlotStanding = OcpNic30SffSlotPresent { + occupancy_note: "Datasheet states One PCI-E 4.0 x16 OCP NIC 3.0 (small form factor). It does not state a bundled card.", +} + +data sv328r_specifications_model_scope: ExternalModelScope = ExternalModelScope { + subject: ExternalSubjectRef { + declaration: DeclarationRef { + module_path: "extdeps.wiwynn.sv328r.specifications", + decl_name: "sv328r_dimensions", + field: WholeDeclaration, + } + }, + first_citation: sv328r_datasheet_authority, + further_citations: [], +} + +data extdeps_model_scope: ExternalModelScope = sv328r_specifications_model_scope + +fn sv328r_weight_grams() -> Nat { + gram_count(g: sv328r_stated_weight) +} + +fn sv328r_depth_micrometers() -> Nat { + micrometer_count(m: sv328r_dimensions.depth) +} diff --git a/dag/extdeps/wiwynn/sv328r/subject.dag b/dag/extdeps/wiwynn/sv328r/subject.dag new file mode 100644 index 00000000000..c090d09f58c --- /dev/null +++ b/dag/extdeps/wiwynn/sv328r/subject.dag @@ -0,0 +1,64 @@ +module extdeps.wiwynn.sv328r.subject + +import std.types { String, NonEmptyStr } +import std.decl_ref { DeclarationRef, WholeDeclaration } +import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef } +import extdeps.uri { Uri, Https } +import extdeps.publication { DocumentPublicationStatus, PubliclyPublishedWithRestrictiveMarking } +import extdeps.vendor { Vendor } +import extdeps.hardware { Hardware } +import extdeps.vendor.wiwynn { wiwynn_vendor } + +// WIWYNN SV328R IS AN INDEPENDENTLY VERSIONED PRODUCT that inhabits the OCP Mt. Jade motherboard +// class. It is not a nickname for extdeps.ocp.mt_jade.subject: a Wiwynn chassis change must not +// require editing the OCP specification module, and an OCP motherboard revision must not rewrite +// this datasheet. + +data extdeps_external_authority_anchor: ExternalAuthority = ExternalAuthority { + uri: Uri { + scheme: Https, + locator: "www.wiwynn.com/hubfs/Datasheet-SV328R_211104_internal.pdf", + } +} + +data sv328r_datasheet_authority: ExternalAuthority = extdeps_external_authority_anchor + +data sv328r_datasheet_title: NonEmptyStr = "Wiwynn SV328R 64-bit ARM Server" + +data sv328r_datasheet_file_identity: NonEmptyStr = "Datasheet-SV328R_211104_internal.pdf" + +data sv328r_datasheet_publication_status: DocumentPublicationStatus = PubliclyPublishedWithRestrictiveMarking { + marking: "Datasheet footer as fetched 2026-09-17: 'Copyright (C) 2015 by Wiwynn Corporation. All rights reserved.' plus a reservation of the right to change the document without notice and an express disclaimer of merchantability and fitness. Marketing collateral distributed publicly and marked; no licence is granted by it.", +} + +type Sv328rDatasheet20211104 {} + +type Sv328rDatasheetRevision = Sv328rDatasheet20211104 + +type WiwynnSv328rProduct { + marketing_name: NonEmptyStr + revision: Sv328rDatasheetRevision + file_identity: NonEmptyStr + publisher: Vendor +} + +data wiwynn_sv328r_product: WiwynnSv328rProduct = WiwynnSv328rProduct { + marketing_name: "SV328R", + revision: Sv328rDatasheet20211104 {}, + file_identity: sv328r_datasheet_file_identity, + publisher: wiwynn_vendor, +} + +data sv328r_model_scope: ExternalModelScope = ExternalModelScope { + subject: ExternalSubjectRef { + declaration: DeclarationRef { + module_path: "extdeps.wiwynn.sv328r.subject", + decl_name: "wiwynn_sv328r_product", + field: WholeDeclaration, + } + }, + first_citation: sv328r_datasheet_authority, + further_citations: [], +} + +data extdeps_model_scope: ExternalModelScope = sv328r_model_scope diff --git a/dag/gunbc/extdeps_scope_frontier.dag b/dag/gunbc/extdeps_scope_frontier.dag index 7ef94515367..179bc42cc50 100644 --- a/dag/gunbc/extdeps_scope_frontier.dag +++ b/dag/gunbc/extdeps_scope_frontier.dag @@ -259,6 +259,9 @@ data scope_carrier_paths: List = [ "dag/extdeps/rust/cargo_message.dag", "dag/extdeps/boards/gigabyte.dag", "dag/extdeps/vendor/gigabyte.dag", + "dag/extdeps/vendor/wiwynn.dag", + "dag/extdeps/wiwynn/sv328r/subject.dag", + "dag/extdeps/wiwynn/sv328r/specifications.dag", "dag/extdeps/climbing_holds/types.dag", "dag/extdeps/climbing_holds/atomik.dag", "dag/extdeps/vendor/atomik.dag", diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 09a3d6c3c34..53f40bf7589 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -58,7 +58,16 @@ import extdeps.ocp.mt_jade.platform { mt_jade_dimm_speed_at_two_dpc, mt_jade_platform_subject, mt_jade_bmc_chip_catalog, + mt_jade_bmc_management_network, + mt_jade_cited_bmc_firmware_includes_megarac, + mt_jade_cited_bmc_firmware_includes_openbmc, + mt_jade_cited_bmc_firmware_options, + mt_jade_crps_ac_inlet, + mt_jade_crps_power, + mt_jade_fan_connectors_1u, + mt_jade_fan_connectors_2u, mt_jade_reference_parts, + InletUnstatedInCitedAuthorities, processor_power_rail_enable_order, processor_power_rail_name, processor_socket_role_name, @@ -273,3 +282,31 @@ test fn w_mt_jade_bmc_chip_catalog_joins_the_aspeed_ast2500_authority() -> Bool (mt_jade_bmc_chip_catalog.ordering_part_number as String) == "AST2500" && mt_jade_bmc_chip_catalog == aspeed_ast2500_catalog } + +test fn w_2u_fan_connectors_are_six_6056_dual_rotor() -> Bool { + mt_jade_fan_connectors_2u.connector_count == 6 + && (mt_jade_fan_connectors_2u.fan_size_designation as String) == "6056" + && mt_jade_fan_connectors_2u.dual_rotor + && mt_jade_fan_connectors_1u.connector_count == 8 + && (mt_jade_fan_connectors_1u.fan_size_designation as String) == "4056" +} + +test fn w_crps_is_dual_redundant_and_inlet_is_unstated() -> Bool { + mt_jade_crps_power.psu_count == 2 + && mt_jade_crps_power.hot_plug + && (mt_jade_crps_power.redundancy_label as String) == "1+1" + && match mt_jade_crps_ac_inlet { + InletUnstatedInCitedAuthorities { obligation: _ } => true + } +} + +test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { + (mt_jade_bmc_management_network.phy_ordering_part_number as String) == "RTL8211E" + && mt_jade_bmc_management_network.port_count == 1 + && (mt_jade_bmc_management_network.location_label as String) == "rear RJ45, power-supply / bottom-side I/O" +} + +test fn w_cited_bmc_firmware_is_a_disjunction_not_a_default() -> Bool { + mt_jade_cited_bmc_firmware_includes_megarac(options: mt_jade_cited_bmc_firmware_options) + && mt_jade_cited_bmc_firmware_includes_openbmc(options: mt_jade_cited_bmc_firmware_options) +} diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag new file mode 100644 index 00000000000..3e78aab2bfd --- /dev/null +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -0,0 +1,82 @@ +module test.claim.wiwynn_sv328r_witness + +import std.types { Bool, String } +import std.measure { + bandwidth_count, gram_count, hertz_count, megatransfers_per_second_count, + micrometer_count, millimeter_count, rack_unit_count, +} +import extdeps.wiwynn.sv328r.subject { wiwynn_sv328r_product } +import extdeps.wiwynn.sv328r.specifications { + InletUnstatedInCitedAuthorities, + OcpNic30SffSlotPresent, + sv328r_bmc_manageability_network, + sv328r_cooling, + sv328r_crps_ac_inlet, + sv328r_depth_micrometers, + sv328r_dimensions, + sv328r_memory, + sv328r_ocp_slot, + sv328r_power, + sv328r_processors, + sv328r_stated_weight, + sv328r_storage, + sv328r_weight_grams, +} +import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } + +data live_tree_disposition: LiveTreeDisposition = SubstrateInputsOnly + +test fn w_product_name_is_sv328r() -> Bool { + (wiwynn_sv328r_product.marketing_name as String) == "SV328R" +} + +test fn w_chassis_is_2u_770_point_2_mm_deep() -> Bool { + millimeter_count(m: sv328r_dimensions.height) == 87 + && millimeter_count(m: sv328r_dimensions.width) == 438 + && micrometer_count(m: sv328r_dimensions.depth) == 770200 + && rack_unit_count(u: sv328r_dimensions.rack_units) == 2 + && sv328r_depth_micrometers() == 770200 +} + +test fn w_stated_weight_is_14470_grams() -> Bool { + gram_count(g: sv328r_stated_weight) == 14470 + && sv328r_weight_grams() == 14470 +} + +test fn w_cooling_is_six_6056_and_power_is_dual_crps_with_unstated_inlet() -> Bool { + sv328r_cooling.fan_count == 6 + && (sv328r_cooling.fan_size_designation as String) == "6056" + && sv328r_power.psu_count == 2 + && sv328r_power.redundant + && (sv328r_power.form_factor_label as String) == "CRPS" + && match sv328r_crps_ac_inlet { + InletUnstatedInCitedAuthorities { obligation: _ } => true + } +} + +test fn w_bmc_port_is_dedicated_one_gigabit() -> Bool { + sv328r_bmc_manageability_network.port_count == 1 + && bandwidth_count(b: sv328r_bmc_manageability_network.per_port_bandwidth) == 1000000000 +} + +test fn w_memory_is_32_rdimm_slots_ddr4_3200() -> Bool { + sv328r_memory.dimm_slots_total == 32 + && sv328r_memory.dimms_per_processor == 16 + && sv328r_memory.channels_per_processor == 8 + && megatransfers_per_second_count(r: sv328r_memory.max_data_rate) == 3200 + && (sv328r_memory.module_class_label as String) == "RDIMM" +} + +test fn w_processors_are_dual_altra_80_core_class() -> Bool { + sv328r_processors.socket_count == 2 + && sv328r_processors.cores_per_socket_stated_max == 80 + && hertz_count(h: sv328r_processors.max_core_clock) == 3000000000 +} + +test fn w_storage_and_ocp_slot_match_the_sheet() -> Bool { + sv328r_storage.front_u2_bays == 24 + && sv328r_storage.onboard_m2_nvme_slots == 2 + && match sv328r_ocp_slot { + OcpNic30SffSlotPresent { occupancy_note: _ } => true + } +} From 8d500de69450277876c99c5f303841b2a68128b1 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 18:42:06 +0000 Subject: [PATCH 02/21] Separate Mt. Jade identity from one specimen's NIC and PSU. AmpereMtJade is a baseboard arm, not a catalog row that would force a BMC family. Physical Ethernet ports and PSU standing are shared intake types so a dual-RJ45 host module plus dedicated BMC jack is not a dedicated-management Bool, and two installed supplies are not redundancy. Co-authored-by: Cursor --- dag/extdeps/boards/types.dag | 3 + dag/extdeps/wiwynn/sv328r/specifications.dag | 2 +- dag/gunbc/machine_intake/ethernet.dag | 50 ++++++++++++ .../mtcollins1_platform_observation.dag | 16 ++-- dag/gunbc/machine_intake/power_supply.dag | 20 +++++ .../machine_intake_ethernet_witness_test.dag | 76 +++++++++++++++++++ dag/test/claim/wiwynn_sv328r_witness_test.dag | 3 +- 7 files changed, 158 insertions(+), 12 deletions(-) create mode 100644 dag/gunbc/machine_intake/ethernet.dag create mode 100644 dag/gunbc/machine_intake/power_supply.dag create mode 100644 dag/test/claim/machine_intake_ethernet_witness_test.dag diff --git a/dag/extdeps/boards/types.dag b/dag/extdeps/boards/types.dag index cb83042e15e..a61a7484cfc 100644 --- a/dag/extdeps/boards/types.dag +++ b/dag/extdeps/boards/types.dag @@ -24,6 +24,7 @@ type BaseboardModel = AsrockRackAltrad8ud1l2t | GigabyteMp72Hb0 | AmpereMtCollins + | AmpereMtJade type BaseboardCatalogRow { model: BaseboardModel @@ -32,6 +33,8 @@ type BaseboardCatalogRow { bmc_firmware: BmcFirmwareFamily } +data ampere_mt_jade_identity_note: NonEmptyStr = "AmpereMtJade is the OCP/Ampere dual-socket Altra motherboard identity. Wiwynn chassis manufacture is a separate product (extdeps.wiwynn.sv328r). Fitted PSU wattage, NIC occupancy, and BMC firmware family are unit observations, not this coproduct. No BaseboardCatalogRow is authored here because that row currently requires a BmcFirmwareFamily and Mt. Jade's cited options are AMI MegaRAC OR OpenBMC." + type ServerBaseboard { catalog: BaseboardCatalogRow bmc: BmcEndpoint diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index f7239ad5fb0..1bd59aa9433 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -123,7 +123,7 @@ type Sv328rOcpSlotStanding = OcpNic30SffSlotPresent { occupancy_note: NonEmptyStr } data sv328r_ocp_slot: Sv328rOcpSlotStanding = OcpNic30SffSlotPresent { - occupancy_note: "Datasheet states One PCI-E 4.0 x16 OCP NIC 3.0 (small form factor). It does not state a bundled card.", + occupancy_note: "Datasheet states One PCI-E 4.0 x16 OCP NIC 3.0 (small form factor). It does not state a bundled card. Occupancy of that slot, or of a PCIe riser NIC, is a per-unit observation.", } data sv328r_specifications_model_scope: ExternalModelScope = ExternalModelScope { diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag new file mode 100644 index 00000000000..ec9694e8cc6 --- /dev/null +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -0,0 +1,50 @@ +module gunbc.machine_intake_ethernet + +import std.types { Bool, NonEmptyStr, String } + +// ONE PHYSICAL CONNECTOR IS NOT ONE FUNCTION. Mt. Collins initially misread a second BMC +// address as the host PXE interface. Mt. Jade's rear panel can carry a dedicated BMC RJ45 +// plus a dual-port host module, and one of those host ports may also bind BMC NCSI. A Bool +// "is dedicated management" cannot represent that. Connector identity and function bindings +// are therefore separate types. + +type EthernetAttachment + = BaseboardOnboard + | PcieCem + | OcpNic3 + | AttachmentUnobserved { discriminator: NonEmptyStr } + +type PhysicalEthernetPort { + panel_label: NonEmptyStr + connector_label: NonEmptyStr + attachment: EthernetAttachment +} + +type EthernetFunction + = BmcDedicated + | BmcNcsi + | HostData + | PrebootNetwork + +type EthernetFunctionBinding { + port: PhysicalEthernetPort + function: EthernetFunction +} + +fn ethernet_function_eq(a: EthernetFunction, b: EthernetFunction) -> Bool { + match a { + BmcDedicated => match b { BmcDedicated => true, _ => false } + BmcNcsi => match b { BmcNcsi => true, _ => false } + HostData => match b { HostData => true, _ => false } + PrebootNetwork => match b { PrebootNetwork => true, _ => false } + } +} + +fn ethernet_port_may_carry_multiple_functions( + a: EthernetFunctionBinding, + b: EthernetFunctionBinding, +) -> Bool { + (a.port.panel_label as String) == (b.port.panel_label as String) + && (a.port.connector_label as String) == (b.port.connector_label as String) + && ethernet_function_eq(a: a.function, b: b.function) == false +} diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index cf3e1ddeb7a..e8e28609167 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -2,6 +2,7 @@ module gunbc.machine_intake_mtcollins1_platform_observation import std.types { Bool, Int, List, NonEmptyStr, String } import std.process { ExitSuccess, ProcessExit, exit_failure } +import gunbc.machine_intake_power_supply { PowerSupplyStanding, power_supplies_redundant } // PLATFORM FACTS OBSERVED WHILE DOING SOMETHING ELSE, which is why they are recorded here rather // than left in a session transcript. None of these was the object of a measurement; each surfaced @@ -49,13 +50,6 @@ data mtcollins1_single_ac_path_accepted: AcceptedPowerRisk = AcceptedPowerRisk { accepted_condition: "the unit runs on one AC path; PSU2 is installed with no AC input and contributes nothing", revisit_trigger: "this unit acquiring dependents — becoming a boot or serving dependency for other machines, at which point its availability becomes theirs", } -type PowerSupplyStanding { - sensor_name: NonEmptyStr - present: Bool - ac_input_present: Bool - output_watts: Int - fan_rpm: Int -} data mtcollins1_psu1_standing: PowerSupplyStanding = PowerSupplyStanding { sensor_name: "PSU1_Status", @@ -79,9 +73,8 @@ data mtcollins1_power_redundancy_observed_at: NonEmptyStr = "2026-09-06T02:30Z" // input are separate fields rather than one health flag. An absent supply is a visible gap in a // chassis; a present one with no cord looks correct from the front and reports itself as installed. // Redundancy is a property of the POWERED supplies, not the installed ones. -fn power_supplies_redundant(a: PowerSupplyStanding, b: PowerSupplyStanding) -> Bool { - a.present && a.ac_input_present && b.present && b.ac_input_present -} +// The fold lives in gunbc.machine_intake_power_supply so a second dual-PSU platform does not +// re-author it. // THE CONTROLLER HAS TWO NETWORK INTERFACES AND ONLY ONE IS THE ONE WE USE. 192.168.1.228 is the // dedicated management port; 192.168.1.231 is a second interface on the SAME controller, which is @@ -95,6 +88,9 @@ fn power_supplies_redundant(a: PowerSupplyStanding, b: PowerSupplyStanding) -> B // a PXE client identifies itself as PXEClient:Arch:NNNNN and asks for a boot file, while a Linux // DHCP client does neither. A second management address that answers to the same credentials is // also a second reachable surface, which is a fact an access policy should know about the unit. +// THE BOOL ON ControllerInterface IS TOO WEAK FOR A SECOND PLATFORM. One physical port may bind +// host data and BMC NCSI together. The shared model is gunbc.machine_intake_ethernet +// PhysicalEthernetPort / EthernetFunctionBinding. These rows stay as the Collins receipt they are. type ControllerInterface { address: NonEmptyStr mac: NonEmptyStr diff --git a/dag/gunbc/machine_intake/power_supply.dag b/dag/gunbc/machine_intake/power_supply.dag new file mode 100644 index 00000000000..9c79155ca05 --- /dev/null +++ b/dag/gunbc/machine_intake/power_supply.dag @@ -0,0 +1,20 @@ +module gunbc.machine_intake_power_supply + +import std.types { Bool, Int, NonEmptyStr } + +// EXTRACTED FROM gunbc.machine_intake_mtcollins1_platform_observation WHEN A SECOND DUAL-PSU +// PLATFORM ARRIVED. Presence and AC input are independent: a supply can be installed with no +// cord. Redundancy is a property of powered supplies, never of installed count. Output watts +// and fan RPM are the corroborating sensors, not a second health flag. + +type PowerSupplyStanding { + sensor_name: NonEmptyStr + present: Bool + ac_input_present: Bool + output_watts: Int + fan_rpm: Int +} + +fn power_supplies_redundant(a: PowerSupplyStanding, b: PowerSupplyStanding) -> Bool { + a.present && a.ac_input_present && b.present && b.ac_input_present +} diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag new file mode 100644 index 00000000000..f622f9c67c2 --- /dev/null +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -0,0 +1,76 @@ +module test.claim.machine_intake_ethernet_witness + +import std.types { Bool, String } +import extdeps.boards.types { AmpereMtCollins, AmpereMtJade } +import gunbc.machine_intake_ethernet { + AttachmentUnobserved, + BmcNcsi, + EthernetFunctionBinding, + HostData, + PhysicalEthernetPort, + ethernet_port_may_carry_multiple_functions, +} +import gunbc.machine_intake_power_supply { + PowerSupplyStanding, + power_supplies_redundant, +} +import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } + +data live_tree_disposition: LiveTreeDisposition = SubstrateInputsOnly + +data jade_lower_bmc: PhysicalEthernetPort = PhysicalEthernetPort { + panel_label: "rear lower I/O row", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "fixture: dedicated BMC jack is onboard; not a unit observation", + }, +} + +data jade_upper_left: PhysicalEthernetPort = PhysicalEthernetPort { + panel_label: "rear upper expansion module left", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "fixture: OCP 3.0 versus PCIe CEM is unobserved until lspci", + }, +} + +test fn w_ampere_mt_jade_is_a_distinct_baseboard_arm() -> Bool { + AmpereMtJade != AmpereMtCollins +} + +test fn w_one_port_can_bind_host_data_and_bmc_ncsi() -> Bool { + ethernet_port_may_carry_multiple_functions( + a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, + b: EthernetFunctionBinding { port: jade_upper_left, function: BmcNcsi }, + ) +} + +test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { + (jade_lower_bmc.panel_label as String) != (jade_upper_left.panel_label as String) +} + +test fn w_present_without_ac_is_not_redundant() -> Bool { + let powered = PowerSupplyStanding { + sensor_name: "PSU1", + present: true, + ac_input_present: true, + output_watts: 100, + fan_rpm: 4000, + } + let installed_dark = PowerSupplyStanding { + sensor_name: "PSU2", + present: true, + ac_input_present: false, + output_watts: 0, + fan_rpm: 0, + } + let both_live = PowerSupplyStanding { + sensor_name: "PSU2", + present: true, + ac_input_present: true, + output_watts: 80, + fan_rpm: 4000, + } + power_supplies_redundant(a: powered, b: installed_dark) == false + && power_supplies_redundant(a: powered, b: both_live) +} diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index 3e78aab2bfd..23c721e8653 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -77,6 +77,7 @@ test fn w_storage_and_ocp_slot_match_the_sheet() -> Bool { sv328r_storage.front_u2_bays == 24 && sv328r_storage.onboard_m2_nvme_slots == 2 && match sv328r_ocp_slot { - OcpNic30SffSlotPresent { occupancy_note: _ } => true + OcpNic30SffSlotPresent { occupancy_note: n } => + string_contains(s: n as String, pattern: "per-unit observation") } } From 1ac6fe4488a3a2693849a354b39a7fe612ea64d4 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 19:14:38 +0000 Subject: [PATCH 03/21] Give shared PSU sensors measure carriers and a real ethernet consumer. PowerSupplyStanding now uses Watt and RPM. Collins BMC LANs inhabit PhysicalEthernetPort instead of a dedicated-management Bool. BMC firmware membership is one fold. The Jade identity note is an annotation, not a String row. Co-authored-by: Cursor --- dag/extdeps/boards/types.dag | 8 +- dag/extdeps/ocp/mt_jade/platform.dag | 21 ++--- dag/gunbc/machine_intake/ethernet.dag | 11 +-- .../mtcollins1_platform_observation.dag | 78 +++++++++++++------ dag/gunbc/machine_intake/power_supply.dag | 11 +-- .../machine_intake_ethernet_witness_test.dag | 20 +++-- .../claim/mt_jade_platform_witness_test.dag | 15 +++- 7 files changed, 96 insertions(+), 68 deletions(-) diff --git a/dag/extdeps/boards/types.dag b/dag/extdeps/boards/types.dag index a61a7484cfc..742afd11807 100644 --- a/dag/extdeps/boards/types.dag +++ b/dag/extdeps/boards/types.dag @@ -20,6 +20,12 @@ data extdeps_external_authority_anchor: ExternalAuthority = ExternalAuthority { // dual-socket profile against a vendor-grounded row rather than against prose. An arm with no // instantiation carries a dissolution trigger: if no asset cites it once the procurement gate // closes either way, delete the arm. +// AmpereMtJade is the OCP/Ampere dual-socket Altra motherboard identity. Wiwynn chassis +// manufacture is a separate product (extdeps.wiwynn.sv328r). Fitted PSU wattage, NIC occupancy, +// and BMC firmware family are unit observations, not this coproduct. No BaseboardCatalogRow is +// authored here because that row currently requires a BmcFirmwareFamily and Mt. Jade's cited +// options are AMI MegaRAC OR OpenBMC. Named consumer after this lands on public main: +// strategy.mt_jade_held_specimen / strategy.mt_jade_class in gunbc-private. type BaseboardModel = AsrockRackAltrad8ud1l2t | GigabyteMp72Hb0 @@ -33,8 +39,6 @@ type BaseboardCatalogRow { bmc_firmware: BmcFirmwareFamily } -data ampere_mt_jade_identity_note: NonEmptyStr = "AmpereMtJade is the OCP/Ampere dual-socket Altra motherboard identity. Wiwynn chassis manufacture is a separate product (extdeps.wiwynn.sv328r). Fitted PSU wattage, NIC occupancy, and BMC firmware family are unit observations, not this coproduct. No BaseboardCatalogRow is authored here because that row currently requires a BmcFirmwareFamily and Mt. Jade's cited options are AMI MegaRAC OR OpenBMC." - type ServerBaseboard { catalog: BaseboardCatalogRow bmc: BmcEndpoint diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 5e58d6d0465..0ea008191d0 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -448,22 +448,11 @@ data mt_jade_cited_bmc_firmware_options: List = [ CitedOpenBmc, ] -fn mt_jade_cited_bmc_firmware_includes_megarac(options: List) -> Bool { - fold(options, init: false, f: fn(acc, o) { - acc || match o { - CitedAmiMegaRac => true - CitedOpenBmc => false - } - }) -} - -fn mt_jade_cited_bmc_firmware_includes_openbmc(options: List) -> Bool { - fold(options, init: false, f: fn(acc, o) { - acc || match o { - CitedAmiMegaRac => false - CitedOpenBmc => true - } - }) +fn mt_jade_cited_bmc_firmware_options_include( + options: List, + wanted: MtJadeCitedBmcFirmwareOption, +) -> Bool { + fold(options, init: false, f: fn(acc, o) { acc || o == wanted }) } data extdeps_model_scope: ExternalModelScope = mt_jade_model_scope diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index ec9694e8cc6..2f45b1fa26d 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -31,20 +31,11 @@ type EthernetFunctionBinding { function: EthernetFunction } -fn ethernet_function_eq(a: EthernetFunction, b: EthernetFunction) -> Bool { - match a { - BmcDedicated => match b { BmcDedicated => true, _ => false } - BmcNcsi => match b { BmcNcsi => true, _ => false } - HostData => match b { HostData => true, _ => false } - PrebootNetwork => match b { PrebootNetwork => true, _ => false } - } -} - fn ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding, b: EthernetFunctionBinding, ) -> Bool { (a.port.panel_label as String) == (b.port.panel_label as String) && (a.port.connector_label as String) == (b.port.connector_label as String) - && ethernet_function_eq(a: a.function, b: b.function) == false + && (a.function == b.function) == false } diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index e8e28609167..e5b3efc42d4 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -1,8 +1,17 @@ module gunbc.machine_intake_mtcollins1_platform_observation -import std.types { Bool, Int, List, NonEmptyStr, String } +import std.types { Bool, NonEmptyStr, String } import std.process { ExitSuccess, ProcessExit, exit_failure } +import std.measure { rpm, watt } import gunbc.machine_intake_power_supply { PowerSupplyStanding, power_supplies_redundant } +import gunbc.machine_intake_ethernet { + AttachmentUnobserved, + BaseboardOnboard, + BmcDedicated, + EthernetFunctionBinding, + PhysicalEthernetPort, + ethernet_port_may_carry_multiple_functions, +} // PLATFORM FACTS OBSERVED WHILE DOING SOMETHING ELSE, which is why they are recorded here rather // than left in a session transcript. None of these was the object of a measurement; each surfaced @@ -55,16 +64,16 @@ data mtcollins1_psu1_standing: PowerSupplyStanding = PowerSupplyStanding { sensor_name: "PSU1_Status", present: true, ac_input_present: true, - output_watts: 160, - fan_rpm: 5000, + output: watt(count: 160), + fan_speed: rpm(count: 5000), } data mtcollins1_psu2_standing: PowerSupplyStanding = PowerSupplyStanding { sensor_name: "PSU2_Status", present: true, ac_input_present: false, - output_watts: 0, - fan_rpm: 0, + output: watt(count: 0), + fan_speed: rpm(count: 0), } data mtcollins1_power_redundancy_observed_at: NonEmptyStr = "2026-09-06T02:30Z" @@ -88,27 +97,46 @@ data mtcollins1_power_redundancy_observed_at: NonEmptyStr = "2026-09-06T02:30Z" // a PXE client identifies itself as PXEClient:Arch:NNNNN and asks for a boot file, while a Linux // DHCP client does neither. A second management address that answers to the same credentials is // also a second reachable surface, which is a fact an access policy should know about the unit. -// THE BOOL ON ControllerInterface IS TOO WEAK FOR A SECOND PLATFORM. One physical port may bind -// host data and BMC NCSI together. The shared model is gunbc.machine_intake_ethernet -// PhysicalEthernetPort / EthernetFunctionBinding. These rows stay as the Collins receipt they are. -type ControllerInterface { - address: NonEmptyStr - mac: NonEmptyStr - is_dedicated_management_port: Bool +// Bindings inhabit gunbc.machine_intake_ethernet so a second platform does not re-author a Bool. +data mtcollins1_dedicated_mgmt_port: PhysicalEthernetPort = PhysicalEthernetPort { + panel_label: "dedicated BMC management RJ45", + connector_label: "RJ45", + attachment: BaseboardOnboard, } -data mtcollins1_controller_interfaces: List = [ - ControllerInterface { - address: "192.168.1.228", - mac: "28:c1:3c:8a:d6:4c", - is_dedicated_management_port: true, - }, - ControllerInterface { - address: "192.168.1.231", - mac: "28:c1:3c:8a:d6:4d", - is_dedicated_management_port: false, +data mtcollins1_second_bmc_port: PhysicalEthernetPort = PhysicalEthernetPort { + panel_label: "second BMC controller interface", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "Second BMC IP on the same controller. NCSI versus a second PHY is unobserved; it is not the host PXE NIC.", }, -] +} + +data mtcollins1_dedicated_bmc_binding: EthernetFunctionBinding = EthernetFunctionBinding { + port: mtcollins1_dedicated_mgmt_port, + function: BmcDedicated, +} + +data mtcollins1_second_bmc_binding: EthernetFunctionBinding = EthernetFunctionBinding { + port: mtcollins1_second_bmc_port, + function: BmcDedicated, +} + +data mtcollins1_dedicated_bmc_address: NonEmptyStr = "192.168.1.228" + +data mtcollins1_dedicated_bmc_mac: NonEmptyStr = "28:c1:3c:8a:d6:4c" + +data mtcollins1_second_bmc_address: NonEmptyStr = "192.168.1.231" + +data mtcollins1_second_bmc_mac: NonEmptyStr = "28:c1:3c:8a:d6:4d" + +fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { + ethernet_port_may_carry_multiple_functions( + a: mtcollins1_dedicated_bmc_binding, + b: mtcollins1_second_bmc_binding, + ) == false + && (mtcollins1_dedicated_bmc_address as String) != (mtcollins1_second_bmc_address as String) +} // THE FOLD IS EXERCISED AGAINST THE MEASURED ROWS AND AGAINST A CORRECTED PAIR. The second is what // makes the first mean something: a redundancy check that answered "not redundant" unconditionally @@ -117,8 +145,8 @@ data mtcollins1_psu2_if_corded: PowerSupplyStanding = PowerSupplyStanding { sensor_name: "PSU2_Status", present: true, ac_input_present: true, - output_watts: 80, - fan_rpm: 4800, + output: watt(count: 80), + fan_speed: rpm(count: 4800), } fn mtcollins1_power_redundancy_probe() -> ProcessExit { diff --git a/dag/gunbc/machine_intake/power_supply.dag b/dag/gunbc/machine_intake/power_supply.dag index 9c79155ca05..a9fb9229141 100644 --- a/dag/gunbc/machine_intake/power_supply.dag +++ b/dag/gunbc/machine_intake/power_supply.dag @@ -1,18 +1,19 @@ module gunbc.machine_intake_power_supply -import std.types { Bool, Int, NonEmptyStr } +import std.types { Bool, NonEmptyStr } +import std.measure { RevolutionsPerMinute, Watt } // EXTRACTED FROM gunbc.machine_intake_mtcollins1_platform_observation WHEN A SECOND DUAL-PSU // PLATFORM ARRIVED. Presence and AC input are independent: a supply can be installed with no -// cord. Redundancy is a property of powered supplies, never of installed count. Output watts -// and fan RPM are the corroborating sensors, not a second health flag. +// cord. Redundancy is a property of powered supplies, never of installed count. Output and fan +// speed are the corroborating sensors, not a second health flag. type PowerSupplyStanding { sensor_name: NonEmptyStr present: Bool ac_input_present: Bool - output_watts: Int - fan_rpm: Int + output: Watt + fan_speed: RevolutionsPerMinute } fn power_supplies_redundant(a: PowerSupplyStanding, b: PowerSupplyStanding) -> Bool { diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index f622f9c67c2..86ed8464cb8 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -1,6 +1,7 @@ module test.claim.machine_intake_ethernet_witness import std.types { Bool, String } +import std.measure { rpm, watt } import extdeps.boards.types { AmpereMtCollins, AmpereMtJade } import gunbc.machine_intake_ethernet { AttachmentUnobserved, @@ -14,6 +15,9 @@ import gunbc.machine_intake_power_supply { PowerSupplyStanding, power_supplies_redundant, } +import gunbc.machine_intake_mtcollins1_platform_observation { + mtcollins1_bmc_interfaces_are_distinct_ports, +} import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } data live_tree_disposition: LiveTreeDisposition = SubstrateInputsOnly @@ -49,27 +53,31 @@ test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { (jade_lower_bmc.panel_label as String) != (jade_upper_left.panel_label as String) } +test fn w_collins_bmc_lans_are_distinct_ports() -> Bool { + mtcollins1_bmc_interfaces_are_distinct_ports() +} + test fn w_present_without_ac_is_not_redundant() -> Bool { let powered = PowerSupplyStanding { sensor_name: "PSU1", present: true, ac_input_present: true, - output_watts: 100, - fan_rpm: 4000, + output: watt(count: 100), + fan_speed: rpm(count: 4000), } let installed_dark = PowerSupplyStanding { sensor_name: "PSU2", present: true, ac_input_present: false, - output_watts: 0, - fan_rpm: 0, + output: watt(count: 0), + fan_speed: rpm(count: 0), } let both_live = PowerSupplyStanding { sensor_name: "PSU2", present: true, ac_input_present: true, - output_watts: 80, - fan_rpm: 4000, + output: watt(count: 80), + fan_speed: rpm(count: 4000), } power_supplies_redundant(a: powered, b: installed_dark) == false && power_supplies_redundant(a: powered, b: both_live) diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 53f40bf7589..a47e6644ab1 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -59,8 +59,9 @@ import extdeps.ocp.mt_jade.platform { mt_jade_platform_subject, mt_jade_bmc_chip_catalog, mt_jade_bmc_management_network, - mt_jade_cited_bmc_firmware_includes_megarac, - mt_jade_cited_bmc_firmware_includes_openbmc, + CitedAmiMegaRac, + CitedOpenBmc, + mt_jade_cited_bmc_firmware_options_include, mt_jade_cited_bmc_firmware_options, mt_jade_crps_ac_inlet, mt_jade_crps_power, @@ -307,6 +308,12 @@ test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { } test fn w_cited_bmc_firmware_is_a_disjunction_not_a_default() -> Bool { - mt_jade_cited_bmc_firmware_includes_megarac(options: mt_jade_cited_bmc_firmware_options) - && mt_jade_cited_bmc_firmware_includes_openbmc(options: mt_jade_cited_bmc_firmware_options) + mt_jade_cited_bmc_firmware_options_include( + options: mt_jade_cited_bmc_firmware_options, + wanted: CitedAmiMegaRac, + ) + && mt_jade_cited_bmc_firmware_options_include( + options: mt_jade_cited_bmc_firmware_options, + wanted: CitedOpenBmc, + ) } From aba1d1c4cef5ec0b1d1f1d39f97e603db791c649 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 19:44:35 +0000 Subject: [PATCH 04/21] Share OnboardNetworkController and stop encoding fans and BMC media as strings. The controller shape lives in the nic-attachment hub. Fan frames are millimetres and chassis height is RackUnit. Distinct-port standing compares panel labels so it can go red. Co-authored-by: Cursor --- .../specifications.dag | 8 +---- dag/extdeps/ocp/mt_jade/platform.dag | 35 ++++++++++++------- dag/extdeps/standards/nic_attachment.dag | 9 +++++ dag/extdeps/wiwynn/sv328r/specifications.dag | 14 +++----- dag/gunbc/machine_intake/ethernet.dag | 4 +++ .../mtcollins1_platform_observation.dag | 11 +++--- .../machine_intake_ethernet_witness_test.dag | 15 ++++---- .../claim/mt_jade_platform_witness_test.dag | 27 +++++++++----- dag/test/claim/wiwynn_sv328r_witness_test.dag | 8 +++-- 9 files changed, 78 insertions(+), 53 deletions(-) diff --git a/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag b/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag index 23e7cc9143e..ab326366ed8 100644 --- a/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag +++ b/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag @@ -12,6 +12,7 @@ import extdeps.external_authority { ExternalAuthority, ExternalModelScope, Exter import extdeps.ampere.mt_collins_1u_product_brief.subject { MtCollins1UPublicProductBrief, mt_collins_1u_public_product_brief, mt_collins_1u_brief_authority, } +import extdeps.standards.nic_attachment { OnboardNetworkController } data extdeps_external_authority_anchor: ExternalAuthority = mt_collins_1u_brief_authority @@ -38,13 +39,6 @@ data mt_collins_1u_specifications_subject: MtCollins1UPublicProductBrief = mt_co // OCP_OPT1_Temp and OCP_OPT2_Temp were read on 2026-09-06 - sensors that name a slot and an // optical zone, which is evidence the chassis is wired for one, not evidence a card is fitted. -type OnboardNetworkController { - controller: NonEmptyStr - port_count: Nat - per_port_bandwidth: Bandwidth - purpose: NonEmptyStr -} - data mt_collins_1u_onboard_data_network: OnboardNetworkController = OnboardNetworkController { controller: "Intel i350", port_count: 2, diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 0ea008191d0..479b94274db 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -3,16 +3,23 @@ module extdeps.ocp.mt_jade.platform import std.types { String, NonEmptyStr, List, Bool } import std.integer { Int } import std.measure { + Bandwidth, Hertz, MegatransfersPerSecond, Microsecond, Micrometer, + Millimeter, + RackUnit, + bandwidth, hertz, megatransfers_per_second, microsecond, micrometer, micrometer_count, + millimeter, + rack_unit, } +import extdeps.standards.nic_attachment { OnboardNetworkController } import extdeps.external_authority { ExternalAuthority, ExternalModelScope } import extdeps.bmc.aspeed_ast2500 { AspeedAst2500CatalogRow, aspeed_ast2500_catalog } import extdeps.ocp.mt_jade.subject { @@ -377,23 +384,26 @@ fn reference_part_roles_include(rows: List, wanted: Refe // motherboard carries both connector sets; a 2U chassis uses six 6056 dual-rotor fans and a 1U // chassis uses eight 4056 dual-rotor fans. PWM/TACH in Table 9 restates the same split. type MtJadeFanConnectorPopulation { - chassis_height_label: NonEmptyStr + chassis_height: RackUnit connector_count: Int - fan_size_designation: NonEmptyStr + frame_width: Millimeter + frame_thickness: Millimeter dual_rotor: Bool } data mt_jade_fan_connectors_2u: MtJadeFanConnectorPopulation = MtJadeFanConnectorPopulation { - chassis_height_label: "2U", + chassis_height: rack_unit(count: 2), connector_count: 6, - fan_size_designation: "6056", + frame_width: millimeter(count: 60), + frame_thickness: millimeter(count: 56), dual_rotor: true, } data mt_jade_fan_connectors_1u: MtJadeFanConnectorPopulation = MtJadeFanConnectorPopulation { - chassis_height_label: "1U", + chassis_height: rack_unit(count: 1), connector_count: 8, - fan_size_designation: "4056", + frame_width: millimeter(count: 40), + frame_thickness: millimeter(count: 56), dual_rotor: true, } @@ -423,17 +433,18 @@ data mt_jade_crps_ac_inlet: MtJadeCrpsAcInletStanding = InletUnstatedInCitedAuth // 10/100/1000 and RTL8211E as the PHY (already a reference-part row). Bottom-side I/O is common // between 1U and 2U: BMC UART/ETH/VGA sit with the power-supply end of the board. type MtJadeBmcManagementNetwork { - phy_ordering_part_number: NonEmptyStr - port_count: Int + network: OnboardNetworkController location_label: NonEmptyStr - media_label: NonEmptyStr } data mt_jade_bmc_management_network: MtJadeBmcManagementNetwork = MtJadeBmcManagementNetwork { - phy_ordering_part_number: "RTL8211E", - port_count: 1, + network: OnboardNetworkController { + controller: "RTL8211E", + port_count: 1, + per_port_bandwidth: bandwidth(count: 1000000000), + purpose: "BMC manageability", + }, location_label: "rear RJ45, power-supply / bottom-side I/O", - media_label: "10/100/1000 Mbps BMC ETH", } // FEATURE LIST "BMC AMI MegaRAC, OpenBMC" IS A DISJUNCTION, NOT A DEFAULT. The specification diff --git a/dag/extdeps/standards/nic_attachment.dag b/dag/extdeps/standards/nic_attachment.dag index 5cc4f898109..73e5bd91881 100644 --- a/dag/extdeps/standards/nic_attachment.dag +++ b/dag/extdeps/standards/nic_attachment.dag @@ -1,7 +1,9 @@ module extdeps.standards.nic_attachment import std.types { NonEmptyStr } +import std.nat { Nat } import std.decl_ref { DeclarationRef, WholeDeclaration } +import std.measure { Bandwidth } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef } import extdeps.uri { Uri, Https } import extdeps.standards.ocp_nic_2_0 { OcpNic2PhysicalVariant } @@ -23,6 +25,13 @@ type NicAttachmentClass | PcieCem | VendorDaughterCard { form_authority: ExternalAuthority, form_name: NonEmptyStr } +type OnboardNetworkController { + controller: NonEmptyStr + port_count: Nat + per_port_bandwidth: Bandwidth + purpose: NonEmptyStr +} + data extdeps_model_scope: ExternalModelScope = ExternalModelScope { subject: ExternalSubjectRef { declaration: DeclarationRef { module_path: "extdeps.standards.nic_attachment", decl_name: "NicAttachmentClass", field: WholeDeclaration, diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index 1bd59aa9433..c72e4b1c06f 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -9,6 +9,7 @@ import std.measure { millimeter, rack_unit, } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef } +import extdeps.standards.nic_attachment { OnboardNetworkController } import extdeps.wiwynn.sv328r.subject { WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, } @@ -38,12 +39,14 @@ data sv328r_stated_weight: Gram = gram(count: 14470) type Sv328rCooling { fan_count: Nat - fan_size_designation: NonEmptyStr + frame_width: Millimeter + frame_thickness: Millimeter } data sv328r_cooling: Sv328rCooling = Sv328rCooling { fan_count: 6, - fan_size_designation: "6056", + frame_width: millimeter(count: 60), + frame_thickness: millimeter(count: 56), } type Sv328rPowerSupply { @@ -65,13 +68,6 @@ data sv328r_crps_ac_inlet: Sv328rCrpsAcInletStanding = InletUnstatedInCitedAutho obligation: "The SV328R datasheet names 2x CRPS form factor, redundant, and does not name IEC 60320 C14 vs C20, a 120 V vs 200-240 V rating, or a shipped cord. Discriminator: a photograph of the fitted PSU inlet on a unit of this class, or a PSU OPN whose vendor sheet names the inlet.", } -type OnboardNetworkController { - controller: NonEmptyStr - port_count: Nat - per_port_bandwidth: Bandwidth - purpose: NonEmptyStr -} - data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetworkController { controller: "dedicated BMC port (datasheet: One GbE Dedicated BMC Port; iKVM over IP)", port_count: 1, diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index 2f45b1fa26d..9575e0be72b 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -31,6 +31,10 @@ type EthernetFunctionBinding { function: EthernetFunction } +fn ethernet_ports_are_distinct(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { + (a.panel_label as String) != (b.panel_label as String) +} + fn ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding, b: EthernetFunctionBinding, diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index e5b3efc42d4..ffe6e6eecb6 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -10,7 +10,7 @@ import gunbc.machine_intake_ethernet { BmcDedicated, EthernetFunctionBinding, PhysicalEthernetPort, - ethernet_port_may_carry_multiple_functions, + ethernet_ports_are_distinct, } // PLATFORM FACTS OBSERVED WHILE DOING SOMETHING ELSE, which is why they are recorded here rather @@ -131,11 +131,10 @@ data mtcollins1_second_bmc_address: NonEmptyStr = "192.168.1.231" data mtcollins1_second_bmc_mac: NonEmptyStr = "28:c1:3c:8a:d6:4d" fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { - ethernet_port_may_carry_multiple_functions( - a: mtcollins1_dedicated_bmc_binding, - b: mtcollins1_second_bmc_binding, - ) == false - && (mtcollins1_dedicated_bmc_address as String) != (mtcollins1_second_bmc_address as String) + ethernet_ports_are_distinct( + a: mtcollins1_dedicated_mgmt_port, + b: mtcollins1_second_bmc_port, + ) } // THE FOLD IS EXERCISED AGAINST THE MEASURED ROWS AND AGAINST A CORRECTED PAIR. The second is what diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index 86ed8464cb8..61e6c44cbcc 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -1,8 +1,7 @@ module test.claim.machine_intake_ethernet_witness -import std.types { Bool, String } +import std.types { Bool } import std.measure { rpm, watt } -import extdeps.boards.types { AmpereMtCollins, AmpereMtJade } import gunbc.machine_intake_ethernet { AttachmentUnobserved, BmcNcsi, @@ -10,6 +9,7 @@ import gunbc.machine_intake_ethernet { HostData, PhysicalEthernetPort, ethernet_port_may_carry_multiple_functions, + ethernet_ports_are_distinct, } import gunbc.machine_intake_power_supply { PowerSupplyStanding, @@ -38,19 +38,20 @@ data jade_upper_left: PhysicalEthernetPort = PhysicalEthernetPort { }, } -test fn w_ampere_mt_jade_is_a_distinct_baseboard_arm() -> Bool { - AmpereMtJade != AmpereMtCollins -} - test fn w_one_port_can_bind_host_data_and_bmc_ncsi() -> Bool { ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, b: EthernetFunctionBinding { port: jade_upper_left, function: BmcNcsi }, ) + && ethernet_port_may_carry_multiple_functions( + a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, + b: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, + ) == false + && ethernet_ports_are_distinct(a: jade_upper_left, b: jade_upper_left) == false } test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { - (jade_lower_bmc.panel_label as String) != (jade_upper_left.panel_label as String) + ethernet_ports_are_distinct(a: jade_lower_bmc, b: jade_upper_left) } test fn w_collins_bmc_lans_are_distinct_ports() -> Bool { diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index a47e6644ab1..5b43513d760 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -2,7 +2,10 @@ module test.claim.mt_jade_platform_witness import std.types { Bool, String, NonEmptyStr, List, list_length } import std.integer { Int } -import std.measure { hertz_count, microsecond_count, micrometer_count, megatransfers_per_second_count } +import std.measure { + hertz_count, microsecond_count, micrometer_count, megatransfers_per_second_count, + millimeter_count, rack_unit_count, bandwidth_count, +} import gunbc.specification_citation_read_provenance { DocumentMirrorLocatorFetchedAndTextIngested, DocumentLocatorFetchRefused, @@ -284,26 +287,32 @@ test fn w_mt_jade_bmc_chip_catalog_joins_the_aspeed_ast2500_authority() -> Bool && mt_jade_bmc_chip_catalog == aspeed_ast2500_catalog } -test fn w_2u_fan_connectors_are_six_6056_dual_rotor() -> Bool { - mt_jade_fan_connectors_2u.connector_count == 6 - && (mt_jade_fan_connectors_2u.fan_size_designation as String) == "6056" +test fn w_2u_fan_connectors_are_six_60_by_56_dual_rotor() -> Bool { + rack_unit_count(u: mt_jade_fan_connectors_2u.chassis_height) == 2 + && mt_jade_fan_connectors_2u.connector_count == 6 + && millimeter_count(m: mt_jade_fan_connectors_2u.frame_width) == 60 + && millimeter_count(m: mt_jade_fan_connectors_2u.frame_thickness) == 56 && mt_jade_fan_connectors_2u.dual_rotor + && rack_unit_count(u: mt_jade_fan_connectors_1u.chassis_height) == 1 && mt_jade_fan_connectors_1u.connector_count == 8 - && (mt_jade_fan_connectors_1u.fan_size_designation as String) == "4056" + && millimeter_count(m: mt_jade_fan_connectors_1u.frame_width) == 40 + && millimeter_count(m: mt_jade_fan_connectors_1u.frame_thickness) == 56 } -test fn w_crps_is_dual_redundant_and_inlet_is_unstated() -> Bool { +test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Bool { mt_jade_crps_power.psu_count == 2 && mt_jade_crps_power.hot_plug && (mt_jade_crps_power.redundancy_label as String) == "1+1" && match mt_jade_crps_ac_inlet { - InletUnstatedInCitedAuthorities { obligation: _ } => true + InletUnstatedInCitedAuthorities { obligation } => + string_contains(s: obligation as String, pattern: "C14 vs C20") } } test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { - (mt_jade_bmc_management_network.phy_ordering_part_number as String) == "RTL8211E" - && mt_jade_bmc_management_network.port_count == 1 + (mt_jade_bmc_management_network.network.controller as String) == "RTL8211E" + && mt_jade_bmc_management_network.network.port_count == 1 + && bandwidth_count(b: mt_jade_bmc_management_network.network.per_port_bandwidth) == 1000000000 && (mt_jade_bmc_management_network.location_label as String) == "rear RJ45, power-supply / bottom-side I/O" } diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index 23c721e8653..32651b591e2 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -43,14 +43,16 @@ test fn w_stated_weight_is_14470_grams() -> Bool { && sv328r_weight_grams() == 14470 } -test fn w_cooling_is_six_6056_and_power_is_dual_crps_with_unstated_inlet() -> Bool { +test fn w_cooling_is_six_60_by_56_and_power_is_dual_crps_with_owed_inlet() -> Bool { sv328r_cooling.fan_count == 6 - && (sv328r_cooling.fan_size_designation as String) == "6056" + && millimeter_count(m: sv328r_cooling.frame_width) == 60 + && millimeter_count(m: sv328r_cooling.frame_thickness) == 56 && sv328r_power.psu_count == 2 && sv328r_power.redundant && (sv328r_power.form_factor_label as String) == "CRPS" && match sv328r_crps_ac_inlet { - InletUnstatedInCitedAuthorities { obligation: _ } => true + InletUnstatedInCitedAuthorities { obligation } => + string_contains(s: obligation as String, pattern: "C14 vs C20") } } From cfb1deaa9500dfe25777681944e265f511262b6e Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 20:13:47 +0000 Subject: [PATCH 05/21] Use one uncited-inlet standing and stop classifying the second BMC LAN as dedicated. CRPS inlet standing is TranscribedUncited. The Collins second controller address is FunctionUnobserved, with address and MAC joined on ObservedEthernetLan. Co-authored-by: Cursor --- dag/extdeps/ocp/mt_jade/platform.dag | 9 ++-- dag/extdeps/wiwynn/sv328r/specifications.dag | 9 ++-- dag/gunbc/machine_intake/ethernet.dag | 7 +++ .../mtcollins1_platform_observation.dag | 43 ++++++++++++------- .../machine_intake_ethernet_witness_test.dag | 9 +++- .../claim/mt_jade_platform_witness_test.dag | 8 ++-- dag/test/claim/wiwynn_sv328r_witness_test.dag | 7 +-- 7 files changed, 56 insertions(+), 36 deletions(-) diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 479b94274db..4835099d24c 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -20,7 +20,7 @@ import std.measure { rack_unit, } import extdeps.standards.nic_attachment { OnboardNetworkController } -import extdeps.external_authority { ExternalAuthority, ExternalModelScope } +import extdeps.external_authority { ExternalAuthority, ExternalModelScope, CitedFigureStanding, TranscribedUncited } import extdeps.bmc.aspeed_ast2500 { AspeedAst2500CatalogRow, aspeed_ast2500_catalog } import extdeps.ocp.mt_jade.subject { mt_jade_subject_authority_anchor, @@ -422,11 +422,8 @@ data mt_jade_crps_power: MtJadeCrpsPower = MtJadeCrpsPower { hot_plug: true, } -type MtJadeCrpsAcInletStanding - = InletUnstatedInCitedAuthorities { obligation: NonEmptyStr } - -data mt_jade_crps_ac_inlet: MtJadeCrpsAcInletStanding = InletUnstatedInCitedAuthorities { - obligation: "OCP Mt. Jade Rev 1.0 names two CRPS connectors and 1+1 hot-plug redundancy. It does not name an IEC 60320 inlet (C14 vs C20), a 120 V vs 200-240 V rating, or the cord the seller ships. Discriminator: a photograph or FRU of the fitted PSU face, or a PSU ordering part whose own datasheet names the inlet and AC range.", +data mt_jade_crps_ac_inlet: CitedFigureStanding = TranscribedUncited { + read_obligation: "OCP Mt. Jade Rev 1.0 names two CRPS connectors and 1+1 hot-plug redundancy. It does not name an IEC 60320 inlet (C14 vs C20), a 120 V vs 200-240 V rating, or the cord the seller ships. Discriminator: a photograph or FRU of the fitted PSU face, or a PSU ordering part whose own datasheet names the inlet and AC range.", } // FEATURE LIST: "MGMT 1x 1GbE from BMC to Rear RJ45 Connector". Section 7.6.1 names BMC ETH at diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index c72e4b1c06f..b87d622eaff 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -8,7 +8,7 @@ import std.measure { bandwidth, gram, gram_count, hertz, megatransfers_per_second, micrometer, micrometer_count, millimeter, rack_unit, } -import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef } +import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } import extdeps.standards.nic_attachment { OnboardNetworkController } import extdeps.wiwynn.sv328r.subject { WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, @@ -61,11 +61,8 @@ data sv328r_power: Sv328rPowerSupply = Sv328rPowerSupply { redundant: true, } -type Sv328rCrpsAcInletStanding - = InletUnstatedInCitedAuthorities { obligation: NonEmptyStr } - -data sv328r_crps_ac_inlet: Sv328rCrpsAcInletStanding = InletUnstatedInCitedAuthorities { - obligation: "The SV328R datasheet names 2x CRPS form factor, redundant, and does not name IEC 60320 C14 vs C20, a 120 V vs 200-240 V rating, or a shipped cord. Discriminator: a photograph of the fitted PSU inlet on a unit of this class, or a PSU OPN whose vendor sheet names the inlet.", +data sv328r_crps_ac_inlet: CitedFigureStanding = TranscribedUncited { + read_obligation: "The SV328R datasheet names 2x CRPS form factor, redundant, and does not name IEC 60320 C14 vs C20, a 120 V vs 200-240 V rating, or a shipped cord. Discriminator: a photograph of the fitted PSU inlet on a unit of this class, or a PSU OPN whose vendor sheet names the inlet.", } data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetworkController { diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index 9575e0be72b..64956a46b43 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -25,12 +25,19 @@ type EthernetFunction | BmcNcsi | HostData | PrebootNetwork + | FunctionUnobserved { discriminator: NonEmptyStr } type EthernetFunctionBinding { port: PhysicalEthernetPort function: EthernetFunction } +type ObservedEthernetLan { + binding: EthernetFunctionBinding + address: NonEmptyStr + mac: NonEmptyStr +} + fn ethernet_ports_are_distinct(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { (a.panel_label as String) != (b.panel_label as String) } diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index ffe6e6eecb6..5729f1a1103 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -8,6 +8,8 @@ import gunbc.machine_intake_ethernet { AttachmentUnobserved, BaseboardOnboard, BmcDedicated, + FunctionUnobserved, + ObservedEthernetLan, EthernetFunctionBinding, PhysicalEthernetPort, ethernet_ports_are_distinct, @@ -112,29 +114,38 @@ data mtcollins1_second_bmc_port: PhysicalEthernetPort = PhysicalEthernetPort { }, } -data mtcollins1_dedicated_bmc_binding: EthernetFunctionBinding = EthernetFunctionBinding { - port: mtcollins1_dedicated_mgmt_port, - function: BmcDedicated, +data mtcollins1_dedicated_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { + binding: EthernetFunctionBinding { + port: mtcollins1_dedicated_mgmt_port, + function: BmcDedicated, + }, + address: "192.168.1.228", + mac: "28:c1:3c:8a:d6:4c", } -data mtcollins1_second_bmc_binding: EthernetFunctionBinding = EthernetFunctionBinding { - port: mtcollins1_second_bmc_port, - function: BmcDedicated, +data mtcollins1_second_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { + binding: EthernetFunctionBinding { + port: mtcollins1_second_bmc_port, + function: FunctionUnobserved { + discriminator: "Second BMC IP on the same controller. Not classified as dedicated management. NCSI versus a second PHY is unobserved.", + }, + }, + address: "192.168.1.231", + mac: "28:c1:3c:8a:d6:4d", } -data mtcollins1_dedicated_bmc_address: NonEmptyStr = "192.168.1.228" - -data mtcollins1_dedicated_bmc_mac: NonEmptyStr = "28:c1:3c:8a:d6:4c" - -data mtcollins1_second_bmc_address: NonEmptyStr = "192.168.1.231" - -data mtcollins1_second_bmc_mac: NonEmptyStr = "28:c1:3c:8a:d6:4d" - fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { ethernet_ports_are_distinct( - a: mtcollins1_dedicated_mgmt_port, - b: mtcollins1_second_bmc_port, + a: mtcollins1_dedicated_bmc_lan.binding.port, + b: mtcollins1_second_bmc_lan.binding.port, ) + && (mtcollins1_dedicated_bmc_lan.address as String) != (mtcollins1_second_bmc_lan.address as String) + && (mtcollins1_dedicated_bmc_lan.mac as String) != (mtcollins1_second_bmc_lan.mac as String) + && mtcollins1_dedicated_bmc_lan.binding.function == BmcDedicated + && match mtcollins1_second_bmc_lan.binding.function { + FunctionUnobserved { discriminator: _ } => true + _ => false + } } // THE FOLD IS EXERCISED AGAINST THE MEASURED ROWS AND AGAINST A CORRECTED PAIR. The second is what diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index 61e6c44cbcc..e383810624e 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -5,6 +5,7 @@ import std.measure { rpm, watt } import gunbc.machine_intake_ethernet { AttachmentUnobserved, BmcNcsi, + FunctionUnobserved, EthernetFunctionBinding, HostData, PhysicalEthernetPort, @@ -47,7 +48,13 @@ test fn w_one_port_can_bind_host_data_and_bmc_ncsi() -> Bool { a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, b: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, ) == false - && ethernet_ports_are_distinct(a: jade_upper_left, b: jade_upper_left) == false + && ethernet_port_may_carry_multiple_functions( + a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, + b: EthernetFunctionBinding { + port: jade_upper_left, + function: FunctionUnobserved { discriminator: "fixture: function unobserved" }, + }, + ) } test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 5b43513d760..4957038cc7e 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -71,7 +71,6 @@ import extdeps.ocp.mt_jade.platform { mt_jade_fan_connectors_1u, mt_jade_fan_connectors_2u, mt_jade_reference_parts, - InletUnstatedInCitedAuthorities, processor_power_rail_enable_order, processor_power_rail_name, processor_socket_role_name, @@ -80,7 +79,7 @@ import extdeps.ocp.mt_jade.platform { soc_pwrgd_minimum_system_clock_cycles, platform_sequencing_handshake_chain, } -import extdeps.external_authority { external_subject_ref_eq, ExternalSubjectRef } +import extdeps.external_authority { external_subject_ref_eq, ExternalSubjectRef, CitedToAuthority, TranscribedUncited } import std.decl_ref { DeclarationRef, WholeDeclaration } import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } @@ -304,8 +303,9 @@ test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Boo && mt_jade_crps_power.hot_plug && (mt_jade_crps_power.redundancy_label as String) == "1+1" && match mt_jade_crps_ac_inlet { - InletUnstatedInCitedAuthorities { obligation } => - string_contains(s: obligation as String, pattern: "C14 vs C20") + TranscribedUncited { read_obligation } => + string_contains(s: read_obligation as String, pattern: "C14 vs C20") + CitedToAuthority { authority: _ } => false } } diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index 32651b591e2..efd5351c595 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -7,7 +7,6 @@ import std.measure { } import extdeps.wiwynn.sv328r.subject { wiwynn_sv328r_product } import extdeps.wiwynn.sv328r.specifications { - InletUnstatedInCitedAuthorities, OcpNic30SffSlotPresent, sv328r_bmc_manageability_network, sv328r_cooling, @@ -22,6 +21,7 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_storage, sv328r_weight_grams, } +import extdeps.external_authority { CitedToAuthority, TranscribedUncited } import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } data live_tree_disposition: LiveTreeDisposition = SubstrateInputsOnly @@ -51,8 +51,9 @@ test fn w_cooling_is_six_60_by_56_and_power_is_dual_crps_with_owed_inlet() -> Bo && sv328r_power.redundant && (sv328r_power.form_factor_label as String) == "CRPS" && match sv328r_crps_ac_inlet { - InletUnstatedInCitedAuthorities { obligation } => - string_contains(s: obligation as String, pattern: "C14 vs C20") + TranscribedUncited { read_obligation } => + string_contains(s: read_obligation as String, pattern: "C14 vs C20") + CitedToAuthority { authority: _ } => false } } From 1bc568e38e75491d50c163e07b072b43dd23cf72 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 20:43:38 +0000 Subject: [PATCH 06/21] Do not widen BaseboardModel for Mt. Jade. Identity stays on the OCP and Wiwynn modules. Adding a board must not edit the generic product enum. Co-authored-by: Cursor --- dag/extdeps/boards/types.dag | 7 ------- dag/extdeps/ocp/mt_jade/platform.dag | 4 ++++ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/dag/extdeps/boards/types.dag b/dag/extdeps/boards/types.dag index 742afd11807..cb83042e15e 100644 --- a/dag/extdeps/boards/types.dag +++ b/dag/extdeps/boards/types.dag @@ -20,17 +20,10 @@ data extdeps_external_authority_anchor: ExternalAuthority = ExternalAuthority { // dual-socket profile against a vendor-grounded row rather than against prose. An arm with no // instantiation carries a dissolution trigger: if no asset cites it once the procurement gate // closes either way, delete the arm. -// AmpereMtJade is the OCP/Ampere dual-socket Altra motherboard identity. Wiwynn chassis -// manufacture is a separate product (extdeps.wiwynn.sv328r). Fitted PSU wattage, NIC occupancy, -// and BMC firmware family are unit observations, not this coproduct. No BaseboardCatalogRow is -// authored here because that row currently requires a BmcFirmwareFamily and Mt. Jade's cited -// options are AMI MegaRAC OR OpenBMC. Named consumer after this lands on public main: -// strategy.mt_jade_held_specimen / strategy.mt_jade_class in gunbc-private. type BaseboardModel = AsrockRackAltrad8ud1l2t | GigabyteMp72Hb0 | AmpereMtCollins - | AmpereMtJade type BaseboardCatalogRow { model: BaseboardModel diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 4835099d24c..55ccf6e7388 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -31,6 +31,10 @@ import extdeps.ocp.mt_jade.subject { data extdeps_external_authority_anchor: ExternalAuthority = mt_jade_subject_authority_anchor +// This module does not widen extdeps.boards.types BaseboardModel. Mt. Jade identity lives here +// and in extdeps.ocp.mt_jade.subject; Wiwynn SV328R is a separate product. Adding a board must +// not edit a generic product enum (same standing as extdeps.ocp.mt_mitchell.platform). + data platform_subject_edge_note: String = "PLATFORM FACTS MUST JOIN THE ENTITY THEY DESCRIBE IN THE GRAPH, NOT ONLY THE SHARED OCP LOCATOR. extdeps.ocp.mt_jade.subject owns mt_jade_reference_platform; this row is the typed subject edge that binds every mechanical, sequencing, CPLD, clock and reference-part fact in this module to that declaration — the same pattern as extdeps.sec.issuer.gitlab_facts gitlab_facts_subject." data mt_jade_platform_subject: MtJadeReferencePlatform = mt_jade_reference_platform From f15fe7dd8356d1fc16d5637ea33f5159813d4199 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 21:35:35 +0000 Subject: [PATCH 07/21] Distinguish named vs unstated onboard NIC controllers. The SV328R datasheet does not name a PHY/MAC, so that field is an unstated identity with a read obligation rather than citation prose in the part slot. Fan connector_count is Nat so a negative count is unwritable. Co-authored-by: Cursor --- .../ampere/mt_collins_1u_product_brief/specifications.dag | 6 +++--- dag/extdeps/ocp/mt_jade/platform.dag | 7 ++++--- dag/extdeps/standards/nic_attachment.dag | 6 +++++- dag/extdeps/wiwynn/sv328r/specifications.dag | 6 ++++-- dag/test/claim/machine_intake_ethernet_witness_test.dag | 1 + dag/test/claim/mt_jade_platform_witness_test.dag | 6 +++++- dag/test/claim/wiwynn_sv328r_witness_test.dag | 5 +++++ 7 files changed, 27 insertions(+), 10 deletions(-) diff --git a/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag b/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag index ab326366ed8..a75a7a76e65 100644 --- a/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag +++ b/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag @@ -12,7 +12,7 @@ import extdeps.external_authority { ExternalAuthority, ExternalModelScope, Exter import extdeps.ampere.mt_collins_1u_product_brief.subject { MtCollins1UPublicProductBrief, mt_collins_1u_public_product_brief, mt_collins_1u_brief_authority, } -import extdeps.standards.nic_attachment { OnboardNetworkController } +import extdeps.standards.nic_attachment { NamedOnboardController, OnboardNetworkController } data extdeps_external_authority_anchor: ExternalAuthority = mt_collins_1u_brief_authority @@ -40,14 +40,14 @@ data mt_collins_1u_specifications_subject: MtCollins1UPublicProductBrief = mt_co // optical zone, which is evidence the chassis is wired for one, not evidence a card is fitted. data mt_collins_1u_onboard_data_network: OnboardNetworkController = OnboardNetworkController { - controller: "Intel i350", + controller: NamedOnboardController { part: "Intel i350" }, port_count: 2, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "host data networking", } data mt_collins_1u_bmc_manageability_network: OnboardNetworkController = OnboardNetworkController { - controller: "Realtek RTL8211E", + controller: NamedOnboardController { part: "Realtek RTL8211E" }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability port", diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 55ccf6e7388..df743a41ec3 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -2,6 +2,7 @@ module extdeps.ocp.mt_jade.platform import std.types { String, NonEmptyStr, List, Bool } import std.integer { Int } +import std.nat { Nat } import std.measure { Bandwidth, Hertz, @@ -19,7 +20,7 @@ import std.measure { millimeter, rack_unit, } -import extdeps.standards.nic_attachment { OnboardNetworkController } +import extdeps.standards.nic_attachment { NamedOnboardController, OnboardNetworkController } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, CitedFigureStanding, TranscribedUncited } import extdeps.bmc.aspeed_ast2500 { AspeedAst2500CatalogRow, aspeed_ast2500_catalog } import extdeps.ocp.mt_jade.subject { @@ -389,7 +390,7 @@ fn reference_part_roles_include(rows: List, wanted: Refe // chassis uses eight 4056 dual-rotor fans. PWM/TACH in Table 9 restates the same split. type MtJadeFanConnectorPopulation { chassis_height: RackUnit - connector_count: Int + connector_count: Nat frame_width: Millimeter frame_thickness: Millimeter dual_rotor: Bool @@ -440,7 +441,7 @@ type MtJadeBmcManagementNetwork { data mt_jade_bmc_management_network: MtJadeBmcManagementNetwork = MtJadeBmcManagementNetwork { network: OnboardNetworkController { - controller: "RTL8211E", + controller: NamedOnboardController { part: "RTL8211E" }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability", diff --git a/dag/extdeps/standards/nic_attachment.dag b/dag/extdeps/standards/nic_attachment.dag index 73e5bd91881..b3f088544ff 100644 --- a/dag/extdeps/standards/nic_attachment.dag +++ b/dag/extdeps/standards/nic_attachment.dag @@ -25,8 +25,12 @@ type NicAttachmentClass | PcieCem | VendorDaughterCard { form_authority: ExternalAuthority, form_name: NonEmptyStr } +type OnboardControllerIdentity + = NamedOnboardController { part: NonEmptyStr } + | OnboardControllerUnstated { read_obligation: NonEmptyStr } + type OnboardNetworkController { - controller: NonEmptyStr + controller: OnboardControllerIdentity port_count: Nat per_port_bandwidth: Bandwidth purpose: NonEmptyStr diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index b87d622eaff..ff230595467 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -9,7 +9,7 @@ import std.measure { millimeter, rack_unit, } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } -import extdeps.standards.nic_attachment { OnboardNetworkController } +import extdeps.standards.nic_attachment { OnboardControllerUnstated, OnboardNetworkController } import extdeps.wiwynn.sv328r.subject { WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, } @@ -66,7 +66,9 @@ data sv328r_crps_ac_inlet: CitedFigureStanding = TranscribedUncited { } data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetworkController { - controller: "dedicated BMC port (datasheet: One GbE Dedicated BMC Port; iKVM over IP)", + controller: OnboardControllerUnstated { + read_obligation: "The SV328R datasheet names One GbE Dedicated BMC Port and iKVM over IP. It does not name a PHY or MAC controller OPN. Discriminator: a board silkscreen, FRU, or lspci/ethtool census of a unit of this class.", + }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability", diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index e383810624e..6c83c171e44 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -55,6 +55,7 @@ test fn w_one_port_can_bind_host_data_and_bmc_ncsi() -> Bool { function: FunctionUnobserved { discriminator: "fixture: function unobserved" }, }, ) + && ethernet_ports_are_distinct(a: jade_upper_left, b: jade_upper_left) == false } test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 4957038cc7e..5e06511c8be 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -30,6 +30,7 @@ import extdeps.ocp.mt_jade.subject { mt_jade_specification_version_label, } import extdeps.bmc.aspeed_ast2500 { aspeed_ast2500_catalog } +import extdeps.standards.nic_attachment { NamedOnboardController } import extdeps.ocp.mt_jade.platform { BaseboardManagementController, CpuBmcGpioVoltageIsolation, @@ -310,7 +311,10 @@ test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Boo } test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { - (mt_jade_bmc_management_network.network.controller as String) == "RTL8211E" + match mt_jade_bmc_management_network.network.controller { + NamedOnboardController { part } => (part as String) == "RTL8211E" + _ => false + } && mt_jade_bmc_management_network.network.port_count == 1 && bandwidth_count(b: mt_jade_bmc_management_network.network.per_port_bandwidth) == 1000000000 && (mt_jade_bmc_management_network.location_label as String) == "rear RJ45, power-supply / bottom-side I/O" diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index efd5351c595..a08ac1db430 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -21,6 +21,7 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_storage, sv328r_weight_grams, } +import extdeps.standards.nic_attachment { OnboardControllerUnstated, NamedOnboardController } import extdeps.external_authority { CitedToAuthority, TranscribedUncited } import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } @@ -60,6 +61,10 @@ test fn w_cooling_is_six_60_by_56_and_power_is_dual_crps_with_owed_inlet() -> Bo test fn w_bmc_port_is_dedicated_one_gigabit() -> Bool { sv328r_bmc_manageability_network.port_count == 1 && bandwidth_count(b: sv328r_bmc_manageability_network.per_port_bandwidth) == 1000000000 + && match sv328r_bmc_manageability_network.controller { + OnboardControllerUnstated { read_obligation: _ } => true + NamedOnboardController { part: _ } => false + } } test fn w_memory_is_32_rdimm_slots_ddr4_3200() -> Bool { From 3d77b4a46a94fadb35b3a36848135b874c5fc453 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 22:03:51 +0000 Subject: [PATCH 08/21] Climb Jade PSU count to Nat and type the SV328R OCP slot. A negative PSU count was writable on Mt. Jade while SV328R already used Nat. The SV328R OCP row was a one-arm coproduct of commentary; the sheet names OCP NIC 3.0 SFF and leaves occupancy unstated. Co-authored-by: Cursor --- dag/extdeps/ocp/mt_jade/platform.dag | 2 +- dag/extdeps/wiwynn/sv328r/specifications.dag | 12 +++++++----- dag/test/claim/wiwynn_sv328r_witness_test.dag | 16 ++++++++++++---- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index df743a41ec3..3ecdaf0d7eb 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -416,7 +416,7 @@ data mt_jade_fan_connectors_1u: MtJadeFanConnectorPopulation = MtJadeFanConnecto // redundancy and does not name IEC 60320 sheet, AC voltage range, or a wattage rating of any // fitted module. Inventing C14 vs C20 from "CRPS" would be a fabricated inlet. type MtJadeCrpsPower { - psu_count: Int + psu_count: Nat redundancy_label: NonEmptyStr hot_plug: Bool } diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index ff230595467..eabd7de578c 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -9,7 +9,8 @@ import std.measure { millimeter, rack_unit, } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } -import extdeps.standards.nic_attachment { OnboardControllerUnstated, OnboardNetworkController } +import extdeps.standards.nic_attachment { NicAttachmentClass, OcpNic3, OnboardControllerUnstated, OnboardNetworkController } +import extdeps.standards.ocp_nic_3_0 { Sff } import extdeps.wiwynn.sv328r.subject { WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, } @@ -114,11 +115,12 @@ data sv328r_storage: Sv328rStorageBays = Sv328rStorageBays { onboard_m2_nvme_slots: 2, } -type Sv328rOcpSlotStanding - = OcpNic30SffSlotPresent { occupancy_note: NonEmptyStr } +// Datasheet: One PCI-E 4.0 x16 OCP NIC 3.0 (small form factor). Occupancy of that +// slot, or of a PCIe riser NIC, is a per-unit observation, not a class fact. +data sv328r_ocp_slot: NicAttachmentClass = OcpNic3 { physical_variant: Sff } -data sv328r_ocp_slot: Sv328rOcpSlotStanding = OcpNic30SffSlotPresent { - occupancy_note: "Datasheet states One PCI-E 4.0 x16 OCP NIC 3.0 (small form factor). It does not state a bundled card. Occupancy of that slot, or of a PCIe riser NIC, is a per-unit observation.", +data sv328r_ocp_slot_occupancy: CitedFigureStanding = TranscribedUncited { + read_obligation: "The SV328R datasheet names an OCP NIC 3.0 SFF slot and does not name a bundled card. Discriminator: a photograph, FRU, or lspci census of a unit of this class.", } data sv328r_specifications_model_scope: ExternalModelScope = ExternalModelScope { diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index a08ac1db430..4da0da215fe 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -7,7 +7,6 @@ import std.measure { } import extdeps.wiwynn.sv328r.subject { wiwynn_sv328r_product } import extdeps.wiwynn.sv328r.specifications { - OcpNic30SffSlotPresent, sv328r_bmc_manageability_network, sv328r_cooling, sv328r_crps_ac_inlet, @@ -15,13 +14,15 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_dimensions, sv328r_memory, sv328r_ocp_slot, + sv328r_ocp_slot_occupancy, sv328r_power, sv328r_processors, sv328r_stated_weight, sv328r_storage, sv328r_weight_grams, } -import extdeps.standards.nic_attachment { OnboardControllerUnstated, NamedOnboardController } +import extdeps.standards.nic_attachment { OnboardControllerUnstated, NamedOnboardController, OcpNic3 } +import extdeps.standards.ocp_nic_3_0 { Sff, Lff } import extdeps.external_authority { CitedToAuthority, TranscribedUncited } import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } @@ -85,7 +86,14 @@ test fn w_storage_and_ocp_slot_match_the_sheet() -> Bool { sv328r_storage.front_u2_bays == 24 && sv328r_storage.onboard_m2_nvme_slots == 2 && match sv328r_ocp_slot { - OcpNic30SffSlotPresent { occupancy_note: n } => - string_contains(s: n as String, pattern: "per-unit observation") + OcpNic3 { physical_variant } => match physical_variant { + Sff => true + Lff => false + } + _ => false + } + && match sv328r_ocp_slot_occupancy { + TranscribedUncited { read_obligation: _ } => true + CitedToAuthority { authority: _ } => false } } From 39f1ea92a5babde6e1c32ca98a08e011ad1e63e2 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 22:33:26 +0000 Subject: [PATCH 09/21] Derive the Jade BMC PHY name from the reference-part row. The network controller was a second RTL8211E literal in the same module. The BMC Ethernet PHY row is now a named declaration consumed by both the reference-part list and the onboard controller. Co-authored-by: Cursor --- dag/extdeps/ocp/mt_jade/platform.dag | 16 +++++++++------- dag/test/claim/mt_jade_platform_witness_test.dag | 3 ++- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 3ecdaf0d7eb..2efde2e6374 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -318,6 +318,13 @@ type MtJadeReferencePartRow { // retyping the part number as the only source of chip identity. data mt_jade_bmc_chip_catalog: AspeedAst2500CatalogRow = aspeed_ast2500_catalog +data mt_jade_bmc_ethernet_phy: MtJadeReferencePartRow = MtJadeReferencePartRow { + ordering_part_number: "RTL8211E", + vendor_label: "Realtek", + role: BmcEthernetPhy, + authority: mt_jade_subject_authority_anchor, +} + data mt_jade_reference_parts: List = [ MtJadeReferencePartRow { ordering_part_number: "AST2500", @@ -343,12 +350,7 @@ data mt_jade_reference_parts: List = [ role: BmcSpiFlash, authority: mt_jade_subject_authority_anchor, }, - MtJadeReferencePartRow { - ordering_part_number: "RTL8211E", - vendor_label: "Realtek", - role: BmcEthernetPhy, - authority: mt_jade_subject_authority_anchor, - }, + mt_jade_bmc_ethernet_phy, MtJadeReferencePartRow { ordering_part_number: "9FGV1006B", vendor_label: "Renesas (IDT)", @@ -441,7 +443,7 @@ type MtJadeBmcManagementNetwork { data mt_jade_bmc_management_network: MtJadeBmcManagementNetwork = MtJadeBmcManagementNetwork { network: OnboardNetworkController { - controller: NamedOnboardController { part: "RTL8211E" }, + controller: NamedOnboardController { part: mt_jade_bmc_ethernet_phy.ordering_part_number }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability", diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 5e06511c8be..e7e54b19bf3 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -62,6 +62,7 @@ import extdeps.ocp.mt_jade.platform { mt_jade_dimm_speed_at_two_dpc, mt_jade_platform_subject, mt_jade_bmc_chip_catalog, + mt_jade_bmc_ethernet_phy, mt_jade_bmc_management_network, CitedAmiMegaRac, CitedOpenBmc, @@ -312,7 +313,7 @@ test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Boo test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { match mt_jade_bmc_management_network.network.controller { - NamedOnboardController { part } => (part as String) == "RTL8211E" + NamedOnboardController { part } => part == mt_jade_bmc_ethernet_phy.ordering_part_number _ => false } && mt_jade_bmc_management_network.network.port_count == 1 From 86acd29d30ebe1a82b8626e5aa5d6c9483f0b4cf Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 23:03:54 +0000 Subject: [PATCH 10/21] Stop minting a second PcieCem/OcpNic3 on intake ethernet. EthernetAttachment now wraps NicAttachmentClass for expansion cards and keeps only onboard and unobserved observation arms, so the standard constructors keep one meaning. Co-authored-by: Cursor --- dag/gunbc/machine_intake/ethernet.dag | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index 64956a46b43..6072f6148d7 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -1,17 +1,18 @@ module gunbc.machine_intake_ethernet import std.types { Bool, NonEmptyStr, String } +import extdeps.standards.nic_attachment { NicAttachmentClass } // ONE PHYSICAL CONNECTOR IS NOT ONE FUNCTION. Mt. Collins initially misread a second BMC // address as the host PXE interface. Mt. Jade's rear panel can carry a dedicated BMC RJ45 // plus a dual-port host module, and one of those host ports may also bind BMC NCSI. A Bool // "is dedicated management" cannot represent that. Connector identity and function bindings -// are therefore separate types. +// are therefore separate types. Expansion-card attachment is the standard +// NicAttachmentClass, not a second PcieCem/OcpNic3 spelling. type EthernetAttachment = BaseboardOnboard - | PcieCem - | OcpNic3 + | NicClass { class: NicAttachmentClass } | AttachmentUnobserved { discriminator: NonEmptyStr } type PhysicalEthernetPort { From 28906a975371be71b76ce93cbf2ccb3af13c2d77 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Thu, 17 Sep 2026 23:33:52 +0000 Subject: [PATCH 11/21] Consume BmcFirmwareFamily and DimmBuffering instead of nicknames. Jade's cited BMC stacks are the existing firmware-family arms, not a second two-arm enum. SV328R registered DIMMs use DimmBuffering like Mt. Mitchell. Co-authored-by: Cursor --- dag/extdeps/ocp/mt_jade/platform.dag | 15 ++++++--------- dag/extdeps/wiwynn/sv328r/specifications.dag | 5 +++-- dag/test/claim/mt_jade_platform_witness_test.dag | 7 +++---- dag/test/claim/wiwynn_sv328r_witness_test.dag | 3 ++- 4 files changed, 14 insertions(+), 16 deletions(-) diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 2efde2e6374..9c2e0061038 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -23,6 +23,7 @@ import std.measure { import extdeps.standards.nic_attachment { NamedOnboardController, OnboardNetworkController } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, CitedFigureStanding, TranscribedUncited } import extdeps.bmc.aspeed_ast2500 { AspeedAst2500CatalogRow, aspeed_ast2500_catalog } +import extdeps.bmc.endpoint { BmcFirmwareFamily, AmiMegaRac, OpenBmc } import extdeps.ocp.mt_jade.subject { mt_jade_subject_authority_anchor, mt_jade_model_scope, @@ -454,18 +455,14 @@ data mt_jade_bmc_management_network: MtJadeBmcManagementNetwork = MtJadeBmcManag // FEATURE LIST "BMC AMI MegaRAC, OpenBMC" IS A DISJUNCTION, NOT A DEFAULT. The specification // names both stacks. A unit's family is a workflow observation (gunbc.machine_intake_access), // never this row. megaRAC_* folds may run only after AmiMegaRac is observed. -type MtJadeCitedBmcFirmwareOption - = CitedAmiMegaRac - | CitedOpenBmc - -data mt_jade_cited_bmc_firmware_options: List = [ - CitedAmiMegaRac, - CitedOpenBmc, +data mt_jade_cited_bmc_firmware_options: List = [ + AmiMegaRac, + OpenBmc, ] fn mt_jade_cited_bmc_firmware_options_include( - options: List, - wanted: MtJadeCitedBmcFirmwareOption, + options: List, + wanted: BmcFirmwareFamily, ) -> Bool { fold(options, init: false, f: fn(acc, o) { acc || o == wanted }) } diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index eabd7de578c..a9865634404 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -9,6 +9,7 @@ import std.measure { millimeter, rack_unit, } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } +import extdeps.memory.types { DimmBuffering, Registered } import extdeps.standards.nic_attachment { NicAttachmentClass, OcpNic3, OnboardControllerUnstated, OnboardNetworkController } import extdeps.standards.ocp_nic_3_0 { Sff } import extdeps.wiwynn.sv328r.subject { @@ -94,7 +95,7 @@ type Sv328rMemoryConfiguration { dimms_per_processor: Nat channels_per_processor: Nat max_data_rate: MegatransfersPerSecond - module_class_label: NonEmptyStr + buffering: DimmBuffering } data sv328r_memory: Sv328rMemoryConfiguration = Sv328rMemoryConfiguration { @@ -102,7 +103,7 @@ data sv328r_memory: Sv328rMemoryConfiguration = Sv328rMemoryConfiguration { dimms_per_processor: 16, channels_per_processor: 8, max_data_rate: megatransfers_per_second(count: 3200), - module_class_label: "RDIMM", + buffering: Registered, } type Sv328rStorageBays { diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index e7e54b19bf3..d2aa2aab22d 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -30,6 +30,7 @@ import extdeps.ocp.mt_jade.subject { mt_jade_specification_version_label, } import extdeps.bmc.aspeed_ast2500 { aspeed_ast2500_catalog } +import extdeps.bmc.endpoint { AmiMegaRac, OpenBmc } import extdeps.standards.nic_attachment { NamedOnboardController } import extdeps.ocp.mt_jade.platform { BaseboardManagementController, @@ -64,8 +65,6 @@ import extdeps.ocp.mt_jade.platform { mt_jade_bmc_chip_catalog, mt_jade_bmc_ethernet_phy, mt_jade_bmc_management_network, - CitedAmiMegaRac, - CitedOpenBmc, mt_jade_cited_bmc_firmware_options_include, mt_jade_cited_bmc_firmware_options, mt_jade_crps_ac_inlet, @@ -324,10 +323,10 @@ test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { test fn w_cited_bmc_firmware_is_a_disjunction_not_a_default() -> Bool { mt_jade_cited_bmc_firmware_options_include( options: mt_jade_cited_bmc_firmware_options, - wanted: CitedAmiMegaRac, + wanted: AmiMegaRac, ) && mt_jade_cited_bmc_firmware_options_include( options: mt_jade_cited_bmc_firmware_options, - wanted: CitedOpenBmc, + wanted: OpenBmc, ) } diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index 4da0da215fe..c8beb8cda7f 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -21,6 +21,7 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_storage, sv328r_weight_grams, } +import extdeps.memory.types { Registered } import extdeps.standards.nic_attachment { OnboardControllerUnstated, NamedOnboardController, OcpNic3 } import extdeps.standards.ocp_nic_3_0 { Sff, Lff } import extdeps.external_authority { CitedToAuthority, TranscribedUncited } @@ -73,7 +74,7 @@ test fn w_memory_is_32_rdimm_slots_ddr4_3200() -> Bool { && sv328r_memory.dimms_per_processor == 16 && sv328r_memory.channels_per_processor == 8 && megatransfers_per_second_count(r: sv328r_memory.max_data_rate) == 3200 - && (sv328r_memory.module_class_label as String) == "RDIMM" + && sv328r_memory.buffering == Registered } test fn w_processors_are_dual_altra_80_core_class() -> Bool { From 4ab90b9b92d503b8ca41051b0ab58cf22194197a Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 00:40:49 +0000 Subject: [PATCH 12/21] Admit the six TargetChanged bindings this hoist produced. Required CI refused namespace-wave-admission on unadjudicated relocations of OnboardNetworkController and PowerSupplyStanding onto the shared homes. Co-authored-by: Cursor --- ...ility_network_OnboardNetworkController.dag | 19 +++++++++++++++++++ ..._data_network_OnboardNetworkController.dag | 19 +++++++++++++++++++ ...undancy_probe_power_supplies_redundant.dag | 19 +++++++++++++++++++ ...ins1_psu1_standing_PowerSupplyStanding.dag | 19 +++++++++++++++++++ ...ns1_psu2_if_corded_PowerSupplyStanding.dag | 19 +++++++++++++++++++ ...ins1_psu2_standing_PowerSupplyStanding.dag | 19 +++++++++++++++++++ 6 files changed, 114 insertions(+) create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardNetworkController.dag create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardNetworkController.dag create mode 100644 dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag create mode 100644 dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu1_standing_PowerSupplyStanding.dag create mode 100644 dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_if_corded_PowerSupplyStanding.dag create mode 100644 dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_standing_PowerSupplyStanding.dag diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardNetworkController.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardNetworkController.dag new file mode 100644 index 00000000000..d0bcd50f460 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardNetworkController.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardNetworkController + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardNetworkController: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_bmc_manageability_network"), + spelling: "OnboardNetworkController" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardNetworkController")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardNetworkController.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardNetworkController.dag new file mode 100644 index 00000000000..c20e0819c1d --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardNetworkController.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardNetworkController + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardNetworkController: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_onboard_data_network"), + spelling: "OnboardNetworkController" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardNetworkController")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag new file mode 100644 index 00000000000..8e43e23b78a --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("gunbc.machine_intake_mtcollins1_platform_observation", "mtcollins1_power_redundancy_probe"), + spelling: "power_supplies_redundant" as NonEmptyStr, + expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "power_supplies_redundant")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu1_standing_PowerSupplyStanding.dag b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu1_standing_PowerSupplyStanding.dag new file mode 100644 index 00000000000..03b687e8cd7 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu1_standing_PowerSupplyStanding.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu1_standing_PowerSupplyStanding + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu1_standing_PowerSupplyStanding: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("gunbc.machine_intake_mtcollins1_platform_observation", "mtcollins1_psu1_standing"), + spelling: "PowerSupplyStanding" as NonEmptyStr, + expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "PowerSupplyStanding")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_if_corded_PowerSupplyStanding.dag b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_if_corded_PowerSupplyStanding.dag new file mode 100644 index 00000000000..822de3a6f30 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_if_corded_PowerSupplyStanding.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_if_corded_PowerSupplyStanding + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_if_corded_PowerSupplyStanding: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("gunbc.machine_intake_mtcollins1_platform_observation", "mtcollins1_psu2_if_corded"), + spelling: "PowerSupplyStanding" as NonEmptyStr, + expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "PowerSupplyStanding")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_standing_PowerSupplyStanding.dag b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_standing_PowerSupplyStanding.dag new file mode 100644 index 00000000000..7fbd35d593f --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_standing_PowerSupplyStanding.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_standing_PowerSupplyStanding + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_psu2_standing_PowerSupplyStanding: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("gunbc.machine_intake_mtcollins1_platform_observation", "mtcollins1_psu2_standing"), + spelling: "PowerSupplyStanding" as NonEmptyStr, + expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "PowerSupplyStanding")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} From e6b116e0b675d3d99e199a96ac5a7ac35fef2e0a Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 01:39:17 +0000 Subject: [PATCH 13/21] Delete consumed namespace-wave admissions on this roster touch. Adding the six hoist rows edits the admission directory, which makes already-consumed rows due. The wall asked for those files to be removed from dag/gunbc/namespace/transition_admission/. Co-authored-by: Cursor --- ...ator_cli_dispatch_deployment_spec_srv1.dag | 19 ------------------- ...erved_legacy_srv1_deployment_spec_srv1.dag | 19 ------------------- ..._srv1_with_access_deployment_spec_srv1.dag | 19 ------------------- ..._srv1_with_access_deployment_spec_srv1.dag | 19 ------------------- ...til_service_ready_deployment_spec_srv1.dag | 19 ------------------- ...ent_receipt_bound_deployment_spec_srv1.dag | 19 ------------------- ...m_routed_base_url_deployment_spec_srv1.dag | 19 ------------------- ...nit_standing_fact_deployment_spec_srv1.dag | 19 ------------------- ...t_upsert_commands_deployment_spec_srv1.dag | 19 ------------------- ...evboot_store_root_deployment_spec_srv1.dag | 19 ------------------- ...deploy_apply_path_deployment_spec_srv1.dag | 19 ------------------- ...nner_unit_owns_it_deployment_spec_srv1.dag | 19 ------------------- ...onverged_mutation_deployment_spec_srv1.dag | 19 ------------------- ...and_post_mutation_deployment_spec_srv1.dag | 19 ------------------- ...blishing_the_tree_deployment_spec_srv1.dag | 19 ------------------- ...s_the_staged_caps_deployment_spec_srv1.dag | 19 ------------------- ...ides_with_nothing_deployment_spec_srv1.dag | 19 ------------------- ...e_production_root_deployment_spec_srv1.dag | 19 ------------------- ...ng_of_the_release_deployment_spec_srv1.dag | 19 ------------------- ...t_applies_no_caps_deployment_spec_srv1.dag | 19 ------------------- ...ng_of_productions_deployment_spec_srv1.dag | 19 ------------------- ...ory_member_roster_deployment_spec_srv1.dag | 19 ------------------- ...d_by_deploy_apply_deployment_spec_srv1.dag | 19 ------------------- ...ber_fragment_text_deployment_spec_srv1.dag | 19 ------------------- ...and_tree_sync_env_deployment_spec_srv1.dag | 19 ------------------- ..._parent_directory_deployment_spec_srv1.dag | 19 ------------------- ...nd_scopes_no_path_deployment_spec_srv1.dag | 19 ------------------- ...ctions_spawn_root_deployment_spec_srv1.dag | 19 ------------------- ..._its_own_endpoint_deployment_spec_srv1.dag | 19 ------------------- ...ed_scoped_removal_deployment_spec_srv1.dag | 19 ------------------- ...deployments_order_deployment_spec_srv1.dag | 19 ------------------- ...in_system_account_deployment_spec_srv1.dag | 19 ------------------- ...ence_and_no_rsync_deployment_spec_srv1.dag | 19 ------------------- ...ized_target_units_deployment_spec_srv1.dag | 19 ------------------- ...d_not_productions_deployment_spec_srv1.dag | 19 ------------------- ...d_not_productions_deployment_spec_srv1.dag | 19 ------------------- ...g_production_owns_deployment_spec_srv1.dag | 19 ------------------- ...ply_preamble_text_deployment_spec_srv1.dag | 19 ------------------- ...emd_and_tailscale_deployment_spec_srv1.dag | 19 ------------------- ...apply_script_text_deployment_spec_srv1.dag | 19 ------------------- ...p_deploy_consumer_deployment_spec_srv1.dag | 19 ------------------- ...candidate_differs_deployment_spec_srv1.dag | 19 ------------------- ...admitted_revision_deployment_spec_srv1.dag | 19 ------------------- ..._the_emitted_line_deployment_spec_srv1.dag | 19 ------------------- ..._vs_ensured_typed_deployment_spec_srv1.dag | 19 ------------------- ...ves_serve_service_deployment_spec_srv1.dag | 19 ------------------- ...d_sudoers_install_deployment_spec_srv1.dag | 19 ------------------- ...script_owned_only_deployment_spec_srv1.dag | 19 ------------------- ...tract_script_text_deployment_spec_srv1.dag | 19 ------------------- ...sten_port_is_8080_deployment_spec_srv1.dag | 19 ------------------- ...spec_targets_srv1_deployment_spec_srv1.dag | 19 ------------------- ...t_package_manager_deployment_spec_srv1.dag | 19 ------------------- ...temd_unit_emitted_deployment_spec_srv1.dag | 19 ------------------- ...opagates_optional_deployment_spec_srv1.dag | 19 ------------------- ...nt_not_fabricated_deployment_spec_srv1.dag | 19 ------------------- ...gnoses_on_failure_deployment_spec_srv1.dag | 19 ------------------- ...ervice_ready_gate_deployment_spec_srv1.dag | 19 ------------------- ...uired_on_readback_deployment_spec_srv1.dag | 19 ------------------- ...and_modeled_sleep_deployment_spec_srv1.dag | 19 ------------------- ...ses_at_poll_bound_deployment_spec_srv1.dag | 19 ------------------- ...round_mock_stdout_deployment_spec_srv1.dag | 19 ------------------- ...localhost_healthz_deployment_spec_srv1.dag | 19 ------------------- ...witness_live_spec_deployment_spec_srv1.dag | 19 ------------------- ...admitted_operands_deployment_spec_srv1.dag | 19 ------------------- ..._operands_refused_deployment_spec_srv1.dag | 19 ------------------- ...st_srv1_repo_root_deployment_spec_srv1.dag | 19 ------------------- ...srv1_service_user_deployment_spec_srv1.dag | 19 ------------------- ...st_srv1_unit_text_deployment_spec_srv1.dag | 19 ------------------- ...r_checkout_corpus_deployment_spec_srv1.dag | 19 ------------------- ...witness_live_spec_deployment_spec_srv1.dag | 19 ------------------- ...argv_embed_budget_deployment_spec_srv1.dag | 19 ------------------- 71 files changed, 1349 deletions(-) delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_cli_fleet_converge_operator_cli_dispatch_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_timer_retirement_observed_legacy_srv1_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_apply_srv1_with_access_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_retract_srv1_with_access_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_live_deploy_readiness_live_deploy_poll_until_service_ready_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_launch_deployment_receipt_bound_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_routed_base_url_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_unit_standing_fact_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_belt_tick_receipt_home_witness_belt_upsert_commands_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_no_retract_can_remove_the_devboot_store_root_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_the_devboot_store_root_reaches_the_deploy_apply_path_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_fleet_converge_launch_environment_scope_witness_the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_fixture_converged_mutation_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_witness_digest_readback_script_is_bounded_and_post_mutation_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_binary_only_plan_installs_and_restarts_without_publishing_the_tree_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_matching_authorization_applies_the_staged_caps_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_twin_deployment_on_one_host_collides_with_nothing_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_withheld_decision_applies_no_caps_at_the_production_root_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_an_authorization_for_another_host_applies_no_caps_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_emitted_twin_retract_removes_nothing_of_productions_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fabric_event_log_root_joins_the_directory_member_roster_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fleet_converge_timer_not_installed_by_deploy_apply_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_member_fragment_text_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_carries_its_own_handler_and_tree_sync_env_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_creates_productions_binary_parent_directory_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_serves_its_own_endpoint_and_scopes_no_path_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_belt_unit_carries_productions_spawn_root_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_retract_offs_its_own_endpoint_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_retract_is_not_emitted_without_an_observed_scoped_removal_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_full_plan_lands_its_members_in_the_deployments_order_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_preamble_ensures_the_publication_principal_as_a_nologin_system_account_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_publication_member_emits_convergence_and_no_rsync_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_writer_reverts_only_the_authorized_target_units_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_apply_serves_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_retract_offs_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_teardown_removes_nothing_production_owns_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_preamble_text_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_contains_systemd_and_tailscale_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_text_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_wires_memory_cap_deploy_consumer_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_at_another_candidate_differs_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_carries_exactly_the_admitted_revision_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_omitting_the_revision_is_not_the_emitted_line_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_owned_vs_ensured_typed_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_owned_process_removes_serve_service_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_preamble_acknowledges_shared_sudoers_install_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_owned_only_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_text_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_listen_port_is_8080_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_targets_srv1_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_uses_apt_package_manager_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_systemd_unit_emitted_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_domain_propagates_optional_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_url_absent_not_fabricated_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tree_sync_restart_diagnoses_on_failure_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_readback_requires_service_ready_gate_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_service_ready_gate_is_required_on_readback_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_red_control_readiness_never_ready_refuses_at_poll_bound_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_probe_targets_localhost_healthz_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_live_deploy_unit_emission_oracle_witness_live_spec_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_admitted_operands_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_operands_refused_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_repo_root_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_service_user_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_unit_text_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_roadmap_publication_helper_witness_live_spec_deployment_spec_srv1.dag delete mode 100644 dag/gunbc/namespace/transition_admission/test_claim_shell_exec_run_argv_embed_witness_witness_apply_script_stays_under_argv_embed_budget_deployment_spec_srv1.dag diff --git a/dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_cli_fleet_converge_operator_cli_dispatch_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_cli_fleet_converge_operator_cli_dispatch_deployment_spec_srv1.dag deleted file mode 100644 index c8c22c4ad36..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_cli_fleet_converge_operator_cli_dispatch_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_fleet_converge_plan_cli_fleet_converge_operator_cli_dispatch_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_fleet_converge_plan_cli_fleet_converge_operator_cli_dispatch_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.fleet_converge_plan_cli", "fleet_converge_operator_cli_dispatch"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_timer_retirement_observed_legacy_srv1_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_timer_retirement_observed_legacy_srv1_deployment_spec_srv1.dag deleted file mode 100644 index 01ab84a50b2..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_fleet_converge_plan_timer_retirement_observed_legacy_srv1_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_fleet_converge_plan_timer_retirement_observed_legacy_srv1_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_fleet_converge_plan_timer_retirement_observed_legacy_srv1_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.fleet_converge_plan", "timer_retirement_observed_legacy_srv1"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_apply_srv1_with_access_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_apply_srv1_with_access_deployment_spec_srv1.dag deleted file mode 100644 index 6cdfa2cc271..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_apply_srv1_with_access_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_live_deploy_apply_live_deploy_apply_srv1_with_access_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_live_deploy_apply_live_deploy_apply_srv1_with_access_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.live_deploy.apply", "live_deploy_apply_srv1_with_access"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_retract_srv1_with_access_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_retract_srv1_with_access_deployment_spec_srv1.dag deleted file mode 100644 index 83568c35bf1..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_apply_live_deploy_retract_srv1_with_access_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_live_deploy_apply_live_deploy_retract_srv1_with_access_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_live_deploy_apply_live_deploy_retract_srv1_with_access_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.live_deploy.apply", "live_deploy_retract_srv1_with_access"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_readiness_live_deploy_poll_until_service_ready_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_readiness_live_deploy_poll_until_service_ready_deployment_spec_srv1.dag deleted file mode 100644 index c4ea22ecf68..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_live_deploy_readiness_live_deploy_poll_until_service_ready_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_live_deploy_readiness_live_deploy_poll_until_service_ready_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_live_deploy_readiness_live_deploy_poll_until_service_ready_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.live_deploy.readiness", "live_deploy_poll_until_service_ready"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_launch_deployment_receipt_bound_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_launch_deployment_receipt_bound_deployment_spec_srv1.dag deleted file mode 100644 index 46e9537b6d2..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_launch_deployment_receipt_bound_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_roadmap_launch_deployment_cli_rlm_launch_deployment_receipt_bound_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_roadmap_launch_deployment_cli_rlm_launch_deployment_receipt_bound_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.roadmap_launch_deployment_cli", "rlm_launch_deployment_receipt_bound"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_routed_base_url_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_routed_base_url_deployment_spec_srv1.dag deleted file mode 100644 index bf690844e36..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_rlm_routed_base_url_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_roadmap_launch_deployment_cli_rlm_routed_base_url_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_roadmap_launch_deployment_cli_rlm_routed_base_url_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.roadmap_launch_deployment_cli", "rlm_routed_base_url"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_unit_standing_fact_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_unit_standing_fact_deployment_spec_srv1.dag deleted file mode 100644 index 8733360b46d..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_roadmap_launch_deployment_cli_unit_standing_fact_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_roadmap_launch_deployment_cli_unit_standing_fact_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_roadmap_launch_deployment_cli_unit_standing_fact_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.roadmap_launch_deployment_cli", "unit_standing_fact"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_belt_tick_receipt_home_witness_belt_upsert_commands_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_belt_tick_receipt_home_witness_belt_upsert_commands_deployment_spec_srv1.dag deleted file mode 100644 index faf3f8d6f4f..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_belt_tick_receipt_home_witness_belt_upsert_commands_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_belt_tick_receipt_home_witness_belt_upsert_commands_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_belt_tick_receipt_home_witness_belt_upsert_commands_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.belt_tick_receipt_home_witness", "belt_upsert_commands"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_no_retract_can_remove_the_devboot_store_root_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_no_retract_can_remove_the_devboot_store_root_deployment_spec_srv1.dag deleted file mode 100644 index b0bda76b17a..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_no_retract_can_remove_the_devboot_store_root_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_devboot_subject_identity_witness_no_retract_can_remove_the_devboot_store_root_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_devboot_subject_identity_witness_no_retract_can_remove_the_devboot_store_root_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.devboot_subject_identity_witness", "no_retract_can_remove_the_devboot_store_root"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_the_devboot_store_root_reaches_the_deploy_apply_path_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_the_devboot_store_root_reaches_the_deploy_apply_path_deployment_spec_srv1.dag deleted file mode 100644 index 07246544aa1..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_devboot_subject_identity_witness_the_devboot_store_root_reaches_the_deploy_apply_path_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_devboot_subject_identity_witness_the_devboot_store_root_reaches_the_deploy_apply_path_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_devboot_subject_identity_witness_the_devboot_store_root_reaches_the_deploy_apply_path_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.devboot_subject_identity_witness", "the_devboot_store_root_reaches_the_deploy_apply_path"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_fleet_converge_launch_environment_scope_witness_the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_fleet_converge_launch_environment_scope_witness_the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it_deployment_spec_srv1.dag deleted file mode 100644 index 5c56e230b49..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_fleet_converge_launch_environment_scope_witness_the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_fleet_converge_launch_environment_scope_witness_the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_fleet_converge_launch_environment_scope_witness_the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.fleet_converge_launch_environment_scope_witness", "the_launch_environment_owns_no_runner_unit_and_no_runner_unit_owns_it"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_fixture_converged_mutation_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_fixture_converged_mutation_deployment_spec_srv1.dag deleted file mode 100644 index 93b5382fe2a..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_fixture_converged_mutation_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_apply_fixture_converged_mutation_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_apply_fixture_converged_mutation_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.apply", "fixture_converged_mutation"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_witness_digest_readback_script_is_bounded_and_post_mutation_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_witness_digest_readback_script_is_bounded_and_post_mutation_deployment_spec_srv1.dag deleted file mode 100644 index d4ec75650db..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_apply_witness_digest_readback_script_is_bounded_and_post_mutation_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_apply_witness_digest_readback_script_is_bounded_and_post_mutation_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_apply_witness_digest_readback_script_is_bounded_and_post_mutation_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.apply", "witness_digest_readback_script_is_bounded_and_post_mutation"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_binary_only_plan_installs_and_restarts_without_publishing_the_tree_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_binary_only_plan_installs_and_restarts_without_publishing_the_tree_deployment_spec_srv1.dag deleted file mode 100644 index affad786ba3..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_binary_only_plan_installs_and_restarts_without_publishing_the_tree_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_a_binary_only_plan_installs_and_restarts_without_publishing_the_tree_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_a_binary_only_plan_installs_and_restarts_without_publishing_the_tree_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "a_binary_only_plan_installs_and_restarts_without_publishing_the_tree"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_matching_authorization_applies_the_staged_caps_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_matching_authorization_applies_the_staged_caps_deployment_spec_srv1.dag deleted file mode 100644 index 812b180ae43..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_matching_authorization_applies_the_staged_caps_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_a_matching_authorization_applies_the_staged_caps_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_a_matching_authorization_applies_the_staged_caps_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "a_matching_authorization_applies_the_staged_caps"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_twin_deployment_on_one_host_collides_with_nothing_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_twin_deployment_on_one_host_collides_with_nothing_deployment_spec_srv1.dag deleted file mode 100644 index 8c0ead6d1da..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_twin_deployment_on_one_host_collides_with_nothing_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_a_twin_deployment_on_one_host_collides_with_nothing_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_a_twin_deployment_on_one_host_collides_with_nothing_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "a_twin_deployment_on_one_host_collides_with_nothing"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_withheld_decision_applies_no_caps_at_the_production_root_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_withheld_decision_applies_no_caps_at_the_production_root_deployment_spec_srv1.dag deleted file mode 100644 index 8bfe624e6cd..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_withheld_decision_applies_no_caps_at_the_production_root_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_a_withheld_decision_applies_no_caps_at_the_production_root_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_a_withheld_decision_applies_no_caps_at_the_production_root_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "a_withheld_decision_applies_no_caps_at_the_production_root"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release_deployment_spec_srv1.dag deleted file mode 100644 index 46be7cef7d4..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "a_zero_mutation_plan_installs_publishes_and_restarts_nothing_of_the_release"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_an_authorization_for_another_host_applies_no_caps_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_an_authorization_for_another_host_applies_no_caps_deployment_spec_srv1.dag deleted file mode 100644 index c7543a3ad31..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_an_authorization_for_another_host_applies_no_caps_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_an_authorization_for_another_host_applies_no_caps_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_an_authorization_for_another_host_applies_no_caps_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "an_authorization_for_another_host_applies_no_caps"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_emitted_twin_retract_removes_nothing_of_productions_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_emitted_twin_retract_removes_nothing_of_productions_deployment_spec_srv1.dag deleted file mode 100644 index 1dfc22688ec..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_emitted_twin_retract_removes_nothing_of_productions_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_emitted_twin_retract_removes_nothing_of_productions_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_emitted_twin_retract_removes_nothing_of_productions_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "emitted_twin_retract_removes_nothing_of_productions"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fabric_event_log_root_joins_the_directory_member_roster_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fabric_event_log_root_joins_the_directory_member_roster_deployment_spec_srv1.dag deleted file mode 100644 index 25f912b7c48..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fabric_event_log_root_joins_the_directory_member_roster_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_fabric_event_log_root_joins_the_directory_member_roster_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_fabric_event_log_root_joins_the_directory_member_roster_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "fabric_event_log_root_joins_the_directory_member_roster"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fleet_converge_timer_not_installed_by_deploy_apply_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fleet_converge_timer_not_installed_by_deploy_apply_deployment_spec_srv1.dag deleted file mode 100644 index da2ef893468..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_fleet_converge_timer_not_installed_by_deploy_apply_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_fleet_converge_timer_not_installed_by_deploy_apply_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_fleet_converge_timer_not_installed_by_deploy_apply_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "fleet_converge_timer_not_installed_by_deploy_apply"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_member_fragment_text_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_member_fragment_text_deployment_spec_srv1.dag deleted file mode 100644 index 188167388a5..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_member_fragment_text_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_member_fragment_text_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_member_fragment_text_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "member_fragment_text"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_carries_its_own_handler_and_tree_sync_env_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_carries_its_own_handler_and_tree_sync_env_deployment_spec_srv1.dag deleted file mode 100644 index 593aa287f99..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_carries_its_own_handler_and_tree_sync_env_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_production_apply_carries_its_own_handler_and_tree_sync_env_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_production_apply_carries_its_own_handler_and_tree_sync_env_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "production_apply_carries_its_own_handler_and_tree_sync_env"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_creates_productions_binary_parent_directory_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_creates_productions_binary_parent_directory_deployment_spec_srv1.dag deleted file mode 100644 index d6c5954cda5..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_creates_productions_binary_parent_directory_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_production_apply_creates_productions_binary_parent_directory_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_production_apply_creates_productions_binary_parent_directory_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "production_apply_creates_productions_binary_parent_directory"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_serves_its_own_endpoint_and_scopes_no_path_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_serves_its_own_endpoint_and_scopes_no_path_deployment_spec_srv1.dag deleted file mode 100644 index 19968579d6c..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_apply_serves_its_own_endpoint_and_scopes_no_path_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_production_apply_serves_its_own_endpoint_and_scopes_no_path_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_production_apply_serves_its_own_endpoint_and_scopes_no_path_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "production_apply_serves_its_own_endpoint_and_scopes_no_path"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_belt_unit_carries_productions_spawn_root_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_belt_unit_carries_productions_spawn_root_deployment_spec_srv1.dag deleted file mode 100644 index a358287966d..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_belt_unit_carries_productions_spawn_root_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_production_belt_unit_carries_productions_spawn_root_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_production_belt_unit_carries_productions_spawn_root_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "production_belt_unit_carries_productions_spawn_root"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_retract_offs_its_own_endpoint_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_retract_offs_its_own_endpoint_deployment_spec_srv1.dag deleted file mode 100644 index a6fe3eef890..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_production_retract_offs_its_own_endpoint_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_production_retract_offs_its_own_endpoint_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_production_retract_offs_its_own_endpoint_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "production_retract_offs_its_own_endpoint"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_retract_is_not_emitted_without_an_observed_scoped_removal_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_retract_is_not_emitted_without_an_observed_scoped_removal_deployment_spec_srv1.dag deleted file mode 100644 index 12ba3c17ce8..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_retract_is_not_emitted_without_an_observed_scoped_removal_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_retract_is_not_emitted_without_an_observed_scoped_removal_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_retract_is_not_emitted_without_an_observed_scoped_removal_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "retract_is_not_emitted_without_an_observed_scoped_removal"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_full_plan_lands_its_members_in_the_deployments_order_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_full_plan_lands_its_members_in_the_deployments_order_deployment_spec_srv1.dag deleted file mode 100644 index 0fec49a234f..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_full_plan_lands_its_members_in_the_deployments_order_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_the_full_plan_lands_its_members_in_the_deployments_order_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_the_full_plan_lands_its_members_in_the_deployments_order_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "the_full_plan_lands_its_members_in_the_deployments_order"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_preamble_ensures_the_publication_principal_as_a_nologin_system_account_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_preamble_ensures_the_publication_principal_as_a_nologin_system_account_deployment_spec_srv1.dag deleted file mode 100644 index c3057b5a2c9..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_preamble_ensures_the_publication_principal_as_a_nologin_system_account_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_the_preamble_ensures_the_publication_principal_as_a_nologin_system_account_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_the_preamble_ensures_the_publication_principal_as_a_nologin_system_account_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "the_preamble_ensures_the_publication_principal_as_a_nologin_system_account"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_publication_member_emits_convergence_and_no_rsync_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_publication_member_emits_convergence_and_no_rsync_deployment_spec_srv1.dag deleted file mode 100644 index 796315996e8..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_publication_member_emits_convergence_and_no_rsync_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_the_publication_member_emits_convergence_and_no_rsync_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_the_publication_member_emits_convergence_and_no_rsync_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "the_publication_member_emits_convergence_and_no_rsync"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_writer_reverts_only_the_authorized_target_units_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_writer_reverts_only_the_authorized_target_units_deployment_spec_srv1.dag deleted file mode 100644 index 643e8e201a4..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_the_writer_reverts_only_the_authorized_target_units_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_the_writer_reverts_only_the_authorized_target_units_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_the_writer_reverts_only_the_authorized_target_units_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "the_writer_reverts_only_the_authorized_target_units"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_apply_serves_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_apply_serves_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag deleted file mode 100644 index eb3755197af..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_apply_serves_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_twin_apply_serves_its_own_endpoint_and_not_productions_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_twin_apply_serves_its_own_endpoint_and_not_productions_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "twin_apply_serves_its_own_endpoint_and_not_productions"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_retract_offs_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_retract_offs_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag deleted file mode 100644 index 8a81205d89b..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_retract_offs_its_own_endpoint_and_not_productions_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_twin_retract_offs_its_own_endpoint_and_not_productions_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_twin_retract_offs_its_own_endpoint_and_not_productions_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "twin_retract_offs_its_own_endpoint_and_not_productions"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_teardown_removes_nothing_production_owns_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_teardown_removes_nothing_production_owns_deployment_spec_srv1.dag deleted file mode 100644 index 8951ade8db7..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_twin_teardown_removes_nothing_production_owns_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_twin_teardown_removes_nothing_production_owns_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_twin_teardown_removes_nothing_production_owns_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "twin_teardown_removes_nothing_production_owns"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_preamble_text_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_preamble_text_deployment_spec_srv1.dag deleted file mode 100644 index 8928ecfd7ee..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_preamble_text_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_apply_preamble_text_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_apply_preamble_text_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_apply_preamble_text"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_contains_systemd_and_tailscale_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_contains_systemd_and_tailscale_deployment_spec_srv1.dag deleted file mode 100644 index 3996795f179..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_contains_systemd_and_tailscale_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_apply_script_contains_systemd_and_tailscale_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_apply_script_contains_systemd_and_tailscale_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_apply_script_contains_systemd_and_tailscale"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_text_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_text_deployment_spec_srv1.dag deleted file mode 100644 index 8fbb99a9302..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_text_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_apply_script_text_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_apply_script_text_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_apply_script_text"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_wires_memory_cap_deploy_consumer_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_wires_memory_cap_deploy_consumer_deployment_spec_srv1.dag deleted file mode 100644 index 3b0b6e8874f..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_apply_script_wires_memory_cap_deploy_consumer_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_apply_script_wires_memory_cap_deploy_consumer_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_apply_script_wires_memory_cap_deploy_consumer_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_apply_script_wires_memory_cap_deploy_consumer"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_at_another_candidate_differs_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_at_another_candidate_differs_deployment_spec_srv1.dag deleted file mode 100644 index ce35398902e..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_at_another_candidate_differs_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_execstart_at_another_candidate_differs_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_execstart_at_another_candidate_differs_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_execstart_at_another_candidate_differs"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_carries_exactly_the_admitted_revision_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_carries_exactly_the_admitted_revision_deployment_spec_srv1.dag deleted file mode 100644 index b211790677a..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_carries_exactly_the_admitted_revision_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_execstart_carries_exactly_the_admitted_revision_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_execstart_carries_exactly_the_admitted_revision_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_execstart_carries_exactly_the_admitted_revision"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_omitting_the_revision_is_not_the_emitted_line_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_omitting_the_revision_is_not_the_emitted_line_deployment_spec_srv1.dag deleted file mode 100644 index 315db01a30d..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_execstart_omitting_the_revision_is_not_the_emitted_line_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_execstart_omitting_the_revision_is_not_the_emitted_line_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_execstart_omitting_the_revision_is_not_the_emitted_line_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_execstart_omitting_the_revision_is_not_the_emitted_line"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_owned_vs_ensured_typed_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_owned_vs_ensured_typed_deployment_spec_srv1.dag deleted file mode 100644 index b7cc8dac58a..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_owned_vs_ensured_typed_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_owned_vs_ensured_typed_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_owned_vs_ensured_typed_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_owned_vs_ensured_typed"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_owned_process_removes_serve_service_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_owned_process_removes_serve_service_deployment_spec_srv1.dag deleted file mode 100644 index 7fc07eda0fa..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_owned_process_removes_serve_service_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_retract_owned_process_removes_serve_service_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_retract_owned_process_removes_serve_service_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_retract_owned_process_removes_serve_service"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_preamble_acknowledges_shared_sudoers_install_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_preamble_acknowledges_shared_sudoers_install_deployment_spec_srv1.dag deleted file mode 100644 index 43b1fec7e26..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_preamble_acknowledges_shared_sudoers_install_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_retract_preamble_acknowledges_shared_sudoers_install_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_retract_preamble_acknowledges_shared_sudoers_install_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_retract_preamble_acknowledges_shared_sudoers_install"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_owned_only_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_owned_only_deployment_spec_srv1.dag deleted file mode 100644 index b304a3a3fbc..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_owned_only_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_retract_script_owned_only_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_retract_script_owned_only_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_retract_script_owned_only"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_text_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_text_deployment_spec_srv1.dag deleted file mode 100644 index fed64f8318f..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_retract_script_text_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_retract_script_text_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_retract_script_text_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_retract_script_text"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_listen_port_is_8080_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_listen_port_is_8080_deployment_spec_srv1.dag deleted file mode 100644 index 5a97ce5b335..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_listen_port_is_8080_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_spec_listen_port_is_8080_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_spec_listen_port_is_8080_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_spec_listen_port_is_8080"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_targets_srv1_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_targets_srv1_deployment_spec_srv1.dag deleted file mode 100644 index de9b6eb10ad..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_targets_srv1_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_spec_targets_srv1_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_spec_targets_srv1_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_spec_targets_srv1"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_uses_apt_package_manager_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_uses_apt_package_manager_deployment_spec_srv1.dag deleted file mode 100644 index 16f3cad589c..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_spec_uses_apt_package_manager_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_spec_uses_apt_package_manager_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_spec_uses_apt_package_manager_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_spec_uses_apt_package_manager"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_systemd_unit_emitted_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_systemd_unit_emitted_deployment_spec_srv1.dag deleted file mode 100644 index 5df3ed00aae..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_systemd_unit_emitted_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_systemd_unit_emitted_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_systemd_unit_emitted_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_systemd_unit_emitted"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_domain_propagates_optional_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_domain_propagates_optional_deployment_spec_srv1.dag deleted file mode 100644 index 7a75f82e39d..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_domain_propagates_optional_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_tailnet_domain_propagates_optional_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_tailnet_domain_propagates_optional_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_tailnet_domain_propagates_optional"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_url_absent_not_fabricated_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_url_absent_not_fabricated_deployment_spec_srv1.dag deleted file mode 100644 index 94a87c1662e..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tailnet_url_absent_not_fabricated_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_tailnet_url_absent_not_fabricated_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_tailnet_url_absent_not_fabricated_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_tailnet_url_absent_not_fabricated"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tree_sync_restart_diagnoses_on_failure_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tree_sync_restart_diagnoses_on_failure_deployment_spec_srv1.dag deleted file mode 100644 index db90bbea0d1..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_emit_witness_tree_sync_restart_diagnoses_on_failure_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_emit_witness_tree_sync_restart_diagnoses_on_failure_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_emit_witness_tree_sync_restart_diagnoses_on_failure_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.emit", "witness_tree_sync_restart_diagnoses_on_failure"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_readback_requires_service_ready_gate_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_readback_requires_service_ready_gate_deployment_spec_srv1.dag deleted file mode 100644 index 33f98a4221c..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_readback_requires_service_ready_gate_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_intent_witness_readback_requires_service_ready_gate_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_intent_witness_readback_requires_service_ready_gate_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.intent", "witness_readback_requires_service_ready_gate"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_service_ready_gate_is_required_on_readback_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_service_ready_gate_is_required_on_readback_deployment_spec_srv1.dag deleted file mode 100644 index ed4a107bb6d..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_intent_witness_service_ready_gate_is_required_on_readback_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_intent_witness_service_ready_gate_is_required_on_readback_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_intent_witness_service_ready_gate_is_required_on_readback_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.intent", "witness_service_ready_gate_is_required_on_readback"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep_deployment_spec_srv1.dag deleted file mode 100644 index 882b6813a4e..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_readiness_witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_readiness_witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.readiness", "witness_bounded_poll_one_iteration_composes_probe_and_modeled_sleep"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_red_control_readiness_never_ready_refuses_at_poll_bound_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_red_control_readiness_never_ready_refuses_at_poll_bound_deployment_spec_srv1.dag deleted file mode 100644 index 6b48fddc054..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_red_control_readiness_never_ready_refuses_at_poll_bound_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_readiness_witness_red_control_readiness_never_ready_refuses_at_poll_bound_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_readiness_witness_red_control_readiness_never_ready_refuses_at_poll_bound_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.readiness", "witness_red_control_readiness_never_ready_refuses_at_poll_bound"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout_deployment_spec_srv1.dag deleted file mode 100644 index 3a728a7076d..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_readiness_witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_readiness_witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.readiness", "witness_transport_get_probe_over_ssh_does_not_ground_mock_stdout"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_probe_targets_localhost_healthz_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_probe_targets_localhost_healthz_deployment_spec_srv1.dag deleted file mode 100644 index 544d9d52080..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_readiness_witness_transport_probe_targets_localhost_healthz_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_readiness_witness_transport_probe_targets_localhost_healthz_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_readiness_witness_transport_probe_targets_localhost_healthz_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy.readiness", "witness_transport_probe_targets_localhost_healthz"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_unit_emission_oracle_witness_live_spec_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_unit_emission_oracle_witness_live_spec_deployment_spec_srv1.dag deleted file mode 100644 index 4cb55353d83..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_live_deploy_unit_emission_oracle_witness_live_spec_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_live_deploy_unit_emission_oracle_witness_live_spec_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_live_deploy_unit_emission_oracle_witness_live_spec_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.live_deploy_unit_emission_oracle_witness", "live_spec"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_admitted_operands_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_admitted_operands_deployment_spec_srv1.dag deleted file mode 100644 index 47cca7a6577..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_admitted_operands_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_repository_convergence_placement_witness_test_admitted_operands_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_repository_convergence_placement_witness_test_admitted_operands_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.repository_convergence_placement_witness_test", "admitted_operands"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_operands_refused_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_operands_refused_deployment_spec_srv1.dag deleted file mode 100644 index dc151d71aec..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_operands_refused_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_repository_convergence_placement_witness_test_operands_refused_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_repository_convergence_placement_witness_test_operands_refused_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.repository_convergence_placement_witness_test", "operands_refused"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_repo_root_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_repo_root_deployment_spec_srv1.dag deleted file mode 100644 index 6a44283cc5d..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_repo_root_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_repository_convergence_placement_witness_test_srv1_repo_root_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_repository_convergence_placement_witness_test_srv1_repo_root_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.repository_convergence_placement_witness_test", "srv1_repo_root"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_service_user_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_service_user_deployment_spec_srv1.dag deleted file mode 100644 index 71ed9b5c4fa..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_service_user_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_repository_convergence_placement_witness_test_srv1_service_user_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_repository_convergence_placement_witness_test_srv1_service_user_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.repository_convergence_placement_witness_test", "srv1_service_user"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_unit_text_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_unit_text_deployment_spec_srv1.dag deleted file mode 100644 index bb289ccc48b..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_srv1_unit_text_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_repository_convergence_placement_witness_test_srv1_unit_text_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_repository_convergence_placement_witness_test_srv1_unit_text_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.repository_convergence_placement_witness_test", "srv1_unit_text"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus_deployment_spec_srv1.dag deleted file mode 100644 index 84e8b360f9c..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_repository_convergence_placement_witness_test_the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_repository_convergence_placement_witness_test_the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_repository_convergence_placement_witness_test_the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.repository_convergence_placement_witness_test", "the_unit_runs_the_admitted_binary_over_the_runner_checkout_corpus"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_roadmap_publication_helper_witness_live_spec_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_roadmap_publication_helper_witness_live_spec_deployment_spec_srv1.dag deleted file mode 100644 index 752650bebc5..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_roadmap_publication_helper_witness_live_spec_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_roadmap_publication_helper_witness_live_spec_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_roadmap_publication_helper_witness_live_spec_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.roadmap_publication_helper_witness", "live_spec"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/test_claim_shell_exec_run_argv_embed_witness_witness_apply_script_stays_under_argv_embed_budget_deployment_spec_srv1.dag b/dag/gunbc/namespace/transition_admission/test_claim_shell_exec_run_argv_embed_witness_witness_apply_script_stays_under_argv_embed_budget_deployment_spec_srv1.dag deleted file mode 100644 index cfda1f48ac4..00000000000 --- a/dag/gunbc/namespace/transition_admission/test_claim_shell_exec_run_argv_embed_witness_witness_apply_script_stays_under_argv_embed_budget_deployment_spec_srv1.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.test_claim_shell_exec_run_argv_embed_witness_witness_apply_script_stays_under_argv_embed_budget_deployment_spec_srv1 - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data test_claim_shell_exec_run_argv_embed_witness_witness_apply_script_stays_under_argv_embed_budget_deployment_spec_srv1: TransitionAdmission = TransitionAdmission { - label: "CONVERGENCE-ONE C2 deployment_spec_srv1 home gunbc.live_deploy.desired" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("test.claim.shell_exec_run_argv_embed_witness", "witness_apply_script_stays_under_argv_embed_budget"), - spelling: "deployment_spec_srv1" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.live_deploy.desired", "deployment_spec_srv1")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11425 as UInt32, -} From eceb14cb07eac88a9de0f7bbe361919a1c2afe07 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 04:11:47 +0000 Subject: [PATCH 14/21] Stop calling dual-AC a redundant path, and stop calling a PHY a controller. both_supplies_have_ac requires distinct sensors and does not mint feed redundancy. OnboardNetworkController now has a PHY field; Jade/Collins BMC RTL8211E is that PHY. Ethernet ports are keyed by unit standing plus locator, and observed LANs use Ipv4Address and Eui48Address. Co-authored-by: Cursor --- .../specifications.dag | 10 +++- dag/extdeps/ocp/mt_jade/platform.dag | 7 ++- dag/extdeps/standards/nic_attachment.dag | 5 ++ dag/extdeps/wiwynn/sv328r/specifications.dag | 5 +- dag/gunbc/machine_intake/ethernet.dag | 48 +++++++++++++++++-- .../mtcollins1_platform_observation.dag | 39 ++++++++++----- dag/gunbc/machine_intake/power_supply.dag | 14 ++++-- ..._manageability_network_NamedOnboardPhy.dag | 19 ++++++++ ...lity_network_OnboardControllerUnstated.dag | 19 ++++++++ ...nboard_data_network_OnboardPhyUnstated.dag | 19 ++++++++ ...bmc_management_network_NamedOnboardPhy.dag | 19 ++++++++ ...ment_network_OnboardControllerUnstated.dag | 19 ++++++++ ...nageability_network_OnboardPhyUnstated.dag | 19 ++++++++ ...edundancy_probe_both_supplies_have_ac.dag} | 10 ++-- .../machine_intake_ethernet_witness_test.dag | 29 +++++++++-- .../claim/mt_jade_platform_witness_test.dag | 16 ++++--- 16 files changed, 256 insertions(+), 41 deletions(-) create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag create mode 100644 dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag rename dag/gunbc/namespace/transition_admission/{gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag => gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag} (69%) diff --git a/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag b/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag index a75a7a76e65..6b9aff379dd 100644 --- a/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag +++ b/dag/extdeps/ampere/mt_collins_1u_product_brief/specifications.dag @@ -12,7 +12,7 @@ import extdeps.external_authority { ExternalAuthority, ExternalModelScope, Exter import extdeps.ampere.mt_collins_1u_product_brief.subject { MtCollins1UPublicProductBrief, mt_collins_1u_public_product_brief, mt_collins_1u_brief_authority, } -import extdeps.standards.nic_attachment { NamedOnboardController, OnboardNetworkController } +import extdeps.standards.nic_attachment { NamedOnboardController, NamedOnboardPhy, OnboardPhyUnstated, OnboardControllerUnstated, OnboardNetworkController } data extdeps_external_authority_anchor: ExternalAuthority = mt_collins_1u_brief_authority @@ -41,13 +41,19 @@ data mt_collins_1u_specifications_subject: MtCollins1UPublicProductBrief = mt_co data mt_collins_1u_onboard_data_network: OnboardNetworkController = OnboardNetworkController { controller: NamedOnboardController { part: "Intel i350" }, + phy: OnboardPhyUnstated { + read_obligation: "The Mt. Collins 1U brief names Intel i350 as the host data controller. It does not name a PHY OPN. Discriminator: a board silkscreen, FRU, or ethtool/lspci census of a unit of this class.", + }, port_count: 2, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "host data networking", } data mt_collins_1u_bmc_manageability_network: OnboardNetworkController = OnboardNetworkController { - controller: NamedOnboardController { part: "Realtek RTL8211E" }, + controller: OnboardControllerUnstated { + read_obligation: "The Mt. Collins 1U brief names Realtek RTL8211E on the BMC manageability port. That part is a PHY. The MAC/controller OPN is unstated. Discriminator: a board silkscreen, FRU, or lspci census of a unit of this class.", + }, + phy: NamedOnboardPhy { part: "Realtek RTL8211E" }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability port", diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index 9c2e0061038..eca89dea26e 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -20,7 +20,7 @@ import std.measure { millimeter, rack_unit, } -import extdeps.standards.nic_attachment { NamedOnboardController, OnboardNetworkController } +import extdeps.standards.nic_attachment { NamedOnboardPhy, OnboardControllerUnstated, OnboardNetworkController } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, CitedFigureStanding, TranscribedUncited } import extdeps.bmc.aspeed_ast2500 { AspeedAst2500CatalogRow, aspeed_ast2500_catalog } import extdeps.bmc.endpoint { BmcFirmwareFamily, AmiMegaRac, OpenBmc } @@ -444,7 +444,10 @@ type MtJadeBmcManagementNetwork { data mt_jade_bmc_management_network: MtJadeBmcManagementNetwork = MtJadeBmcManagementNetwork { network: OnboardNetworkController { - controller: NamedOnboardController { part: mt_jade_bmc_ethernet_phy.ordering_part_number }, + controller: OnboardControllerUnstated { + read_obligation: "OCP Mt. Jade Rev 1.0 names RTL8211E as the BMC Ethernet PHY and AST2500 as the BMC. It does not name a MAC/controller OPN for the manageability port. Discriminator: a board silkscreen, FRU, or lspci census of a unit of this class.", + }, + phy: NamedOnboardPhy { part: mt_jade_bmc_ethernet_phy.ordering_part_number }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability", diff --git a/dag/extdeps/standards/nic_attachment.dag b/dag/extdeps/standards/nic_attachment.dag index b3f088544ff..2dcd0120dbf 100644 --- a/dag/extdeps/standards/nic_attachment.dag +++ b/dag/extdeps/standards/nic_attachment.dag @@ -29,8 +29,13 @@ type OnboardControllerIdentity = NamedOnboardController { part: NonEmptyStr } | OnboardControllerUnstated { read_obligation: NonEmptyStr } +type OnboardPhyIdentity + = NamedOnboardPhy { part: NonEmptyStr } + | OnboardPhyUnstated { read_obligation: NonEmptyStr } + type OnboardNetworkController { controller: OnboardControllerIdentity + phy: OnboardPhyIdentity port_count: Nat per_port_bandwidth: Bandwidth purpose: NonEmptyStr diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index a9865634404..3174bab1127 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -10,7 +10,7 @@ import std.measure { } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } import extdeps.memory.types { DimmBuffering, Registered } -import extdeps.standards.nic_attachment { NicAttachmentClass, OcpNic3, OnboardControllerUnstated, OnboardNetworkController } +import extdeps.standards.nic_attachment { NicAttachmentClass, OcpNic3, OnboardControllerUnstated, OnboardPhyUnstated, OnboardNetworkController } import extdeps.standards.ocp_nic_3_0 { Sff } import extdeps.wiwynn.sv328r.subject { WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, @@ -71,6 +71,9 @@ data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetwork controller: OnboardControllerUnstated { read_obligation: "The SV328R datasheet names One GbE Dedicated BMC Port and iKVM over IP. It does not name a PHY or MAC controller OPN. Discriminator: a board silkscreen, FRU, or lspci/ethtool census of a unit of this class.", }, + phy: OnboardPhyUnstated { + read_obligation: "The SV328R datasheet does not name a PHY OPN. Discriminator: a board silkscreen, FRU, or ethtool census of a unit of this class.", + }, port_count: 1, per_port_bandwidth: bandwidth(count: 1000000000), purpose: "BMC manageability", diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index 6072f6148d7..f8b3b0c11ab 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -2,6 +2,9 @@ module gunbc.machine_intake_ethernet import std.types { Bool, NonEmptyStr, String } import extdeps.standards.nic_attachment { NicAttachmentClass } +import extdeps.network.ipv4 { Ipv4Address, ipv4_address_eq } +import extdeps.network.mac { Eui48Address } +import gunbc.machine_intake_subject { UnitKey } // ONE PHYSICAL CONNECTOR IS NOT ONE FUNCTION. Mt. Collins initially misread a second BMC // address as the host PXE interface. Mt. Jade's rear panel can carry a dedicated BMC RJ45 @@ -9,13 +12,19 @@ import extdeps.standards.nic_attachment { NicAttachmentClass } // "is dedicated management" cannot represent that. Connector identity and function bindings // are therefore separate types. Expansion-card attachment is the standard // NicAttachmentClass, not a second PcieCem/OcpNic3 spelling. +// Panel text is an observation. Identity is unit + locator + attachment. type EthernetAttachment = BaseboardOnboard | NicClass { class: NicAttachmentClass } | AttachmentUnobserved { discriminator: NonEmptyStr } +type EthernetPortUnit + = PortOnUnit { key: UnitKey } + | PortUnitUnobserved { discriminator: NonEmptyStr } + type PhysicalEthernetPort { + unit: EthernetPortUnit panel_label: NonEmptyStr connector_label: NonEmptyStr attachment: EthernetAttachment @@ -33,21 +42,50 @@ type EthernetFunctionBinding { function: EthernetFunction } +type EthernetLinkAddress + = ConfiguredLink { configured: Eui48Address } + | PermanentAndConfigured { permanent: Eui48Address, configured: Eui48Address } + type ObservedEthernetLan { binding: EthernetFunctionBinding - address: NonEmptyStr - mac: NonEmptyStr + network_address: Ipv4Address + link: EthernetLinkAddress +} + +fn ethernet_port_units_agree(a: EthernetPortUnit, b: EthernetPortUnit) -> Bool { + match a { + PortOnUnit { key: ka } => + match b { + PortOnUnit { key: kb } => (ka as String) == (kb as String) + PortUnitUnobserved { discriminator: _ } => false + } + PortUnitUnobserved { discriminator: da } => + match b { + PortOnUnit { key: _ } => false + PortUnitUnobserved { discriminator: db } => (da as String) == (db as String) + } + } +} + +fn ethernet_ports_are_the_same_connector(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { + ethernet_port_units_agree(a: a.unit, b: b.unit) + && (a.panel_label as String) == (b.panel_label as String) + && (a.connector_label as String) == (b.connector_label as String) + && a.attachment == b.attachment } fn ethernet_ports_are_distinct(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { - (a.panel_label as String) != (b.panel_label as String) + ethernet_ports_are_the_same_connector(a: a, b: b) == false } fn ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding, b: EthernetFunctionBinding, ) -> Bool { - (a.port.panel_label as String) == (b.port.panel_label as String) - && (a.port.connector_label as String) == (b.port.connector_label as String) + ethernet_ports_are_the_same_connector(a: a.port, b: b.port) && (a.function == b.function) == false } + +fn observed_lans_have_distinct_addresses(a: ObservedEthernetLan, b: ObservedEthernetLan) -> Bool { + ipv4_address_eq(a: a.network_address, b: b.network_address) == false +} diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index 5729f1a1103..60aa5f56926 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -3,17 +3,22 @@ module gunbc.machine_intake_mtcollins1_platform_observation import std.types { Bool, NonEmptyStr, String } import std.process { ExitSuccess, ProcessExit, exit_failure } import std.measure { rpm, watt } -import gunbc.machine_intake_power_supply { PowerSupplyStanding, power_supplies_redundant } +import gunbc.machine_intake_power_supply { PowerSupplyStanding, both_supplies_have_ac } import gunbc.machine_intake_ethernet { AttachmentUnobserved, BaseboardOnboard, BmcDedicated, + ConfiguredLink, FunctionUnobserved, ObservedEthernetLan, EthernetFunctionBinding, PhysicalEthernetPort, + PortUnitUnobserved, ethernet_ports_are_distinct, + observed_lans_have_distinct_addresses, } +import extdeps.network.ipv4 { ipv4_address } +import extdeps.network.mac { mac_address } // PLATFORM FACTS OBSERVED WHILE DOING SOMETHING ELSE, which is why they are recorded here rather // than left in a session transcript. None of these was the object of a measurement; each surfaced @@ -100,13 +105,22 @@ data mtcollins1_power_redundancy_observed_at: NonEmptyStr = "2026-09-06T02:30Z" // DHCP client does neither. A second management address that answers to the same credentials is // also a second reachable surface, which is a fact an access policy should know about the unit. // Bindings inhabit gunbc.machine_intake_ethernet so a second platform does not re-author a Bool. +// Redundancy is a property of independent power paths, not of this fold. This fold +// only answers whether two distinct sensor rows both report AC. + data mtcollins1_dedicated_mgmt_port: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortUnitUnobserved { + discriminator: "mtcollins1 BMC ports: board serial is not bound on this observation row", + }, panel_label: "dedicated BMC management RJ45", connector_label: "RJ45", attachment: BaseboardOnboard, } data mtcollins1_second_bmc_port: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortUnitUnobserved { + discriminator: "mtcollins1 BMC ports: board serial is not bound on this observation row", + }, panel_label: "second BMC controller interface", connector_label: "RJ45", attachment: AttachmentUnobserved { @@ -119,8 +133,10 @@ data mtcollins1_dedicated_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { port: mtcollins1_dedicated_mgmt_port, function: BmcDedicated, }, - address: "192.168.1.228", - mac: "28:c1:3c:8a:d6:4c", + network_address: ipv4_address(octet1: 192, octet2: 168, octet3: 1, octet4: 228), + link: ConfiguredLink { + configured: mac_address(octet1: 40, octet2: 193, octet3: 60, octet4: 138, octet5: 214, octet6: 76), + }, } data mtcollins1_second_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { @@ -130,8 +146,10 @@ data mtcollins1_second_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { discriminator: "Second BMC IP on the same controller. Not classified as dedicated management. NCSI versus a second PHY is unobserved.", }, }, - address: "192.168.1.231", - mac: "28:c1:3c:8a:d6:4d", + network_address: ipv4_address(octet1: 192, octet2: 168, octet3: 1, octet4: 231), + link: ConfiguredLink { + configured: mac_address(octet1: 40, octet2: 193, octet3: 60, octet4: 138, octet5: 214, octet6: 77), + }, } fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { @@ -139,8 +157,7 @@ fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { a: mtcollins1_dedicated_bmc_lan.binding.port, b: mtcollins1_second_bmc_lan.binding.port, ) - && (mtcollins1_dedicated_bmc_lan.address as String) != (mtcollins1_second_bmc_lan.address as String) - && (mtcollins1_dedicated_bmc_lan.mac as String) != (mtcollins1_second_bmc_lan.mac as String) + && observed_lans_have_distinct_addresses(a: mtcollins1_dedicated_bmc_lan, b: mtcollins1_second_bmc_lan) && mtcollins1_dedicated_bmc_lan.binding.function == BmcDedicated && match mtcollins1_second_bmc_lan.binding.function { FunctionUnobserved { discriminator: _ } => true @@ -160,11 +177,11 @@ data mtcollins1_psu2_if_corded: PowerSupplyStanding = PowerSupplyStanding { } fn mtcollins1_power_redundancy_probe() -> ProcessExit { - if power_supplies_redundant(a: mtcollins1_psu1_standing, b: mtcollins1_psu2_standing) { - return exit_failure(reason: "power redundancy: the measured rows were reported REDUNDANT, but PSU2 asserts [Power Supply AC lost] with 0 W output and 0 RPM") + if both_supplies_have_ac(a: mtcollins1_psu1_standing, b: mtcollins1_psu2_standing) { + return exit_failure(reason: "both-AC probe: the measured rows were reported as both having AC, but PSU2 asserts [Power Supply AC lost] with 0 W output and 0 RPM") } - if power_supplies_redundant(a: mtcollins1_psu1_standing, b: mtcollins1_psu2_if_corded) == false { - return exit_failure(reason: "power redundancy: two present, powered supplies were NOT reported redundant, so the check cannot distinguish the corded case and its verdict on the live rows carries no information") + if both_supplies_have_ac(a: mtcollins1_psu1_standing, b: mtcollins1_psu2_if_corded) == false { + return exit_failure(reason: "both-AC probe: two present, powered supplies were NOT reported as both having AC, so the check cannot distinguish the corded case and its verdict on the live rows carries no information") } return ExitSuccess } diff --git a/dag/gunbc/machine_intake/power_supply.dag b/dag/gunbc/machine_intake/power_supply.dag index a9fb9229141..015b5c90f85 100644 --- a/dag/gunbc/machine_intake/power_supply.dag +++ b/dag/gunbc/machine_intake/power_supply.dag @@ -1,12 +1,12 @@ module gunbc.machine_intake_power_supply -import std.types { Bool, NonEmptyStr } +import std.types { Bool, NonEmptyStr, String } import std.measure { RevolutionsPerMinute, Watt } // EXTRACTED FROM gunbc.machine_intake_mtcollins1_platform_observation WHEN A SECOND DUAL-PSU // PLATFORM ARRIVED. Presence and AC input are independent: a supply can be installed with no -// cord. Redundancy is a property of powered supplies, never of installed count. Output and fan -// speed are the corroborating sensors, not a second health flag. +// cord. This fold answers whether two DISTINCT sensor rows both report AC, not feed redundancy. +// Independent A/B feeds are a different fact; two cords on one breaker are not this predicate. type PowerSupplyStanding { sensor_name: NonEmptyStr @@ -16,6 +16,10 @@ type PowerSupplyStanding { fan_speed: RevolutionsPerMinute } -fn power_supplies_redundant(a: PowerSupplyStanding, b: PowerSupplyStanding) -> Bool { - a.present && a.ac_input_present && b.present && b.ac_input_present +fn both_supplies_have_ac(a: PowerSupplyStanding, b: PowerSupplyStanding) -> Bool { + (a.sensor_name as String) != (b.sensor_name as String) + && a.present + && a.ac_input_present + && b.present + && b.ac_input_present } diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag new file mode 100644 index 00000000000..e54a4673ca1 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_bmc_manageability_network"), + spelling: "NamedOnboardPhy" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "NamedOnboardPhy")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag new file mode 100644 index 00000000000..2feb4195f40 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_bmc_manageability_network"), + spelling: "OnboardControllerUnstated" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardControllerUnstated")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag new file mode 100644 index 00000000000..e210e886483 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_onboard_data_network"), + spelling: "OnboardPhyUnstated" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardPhyUnstated")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag b/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag new file mode 100644 index 00000000000..9a4b2c7ac6a --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ocp.mt_jade.platform", "mt_jade_bmc_management_network"), + spelling: "NamedOnboardPhy" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "NamedOnboardPhy")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag new file mode 100644 index 00000000000..a877ed1b2e6 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.ocp.mt_jade.platform", "mt_jade_bmc_management_network"), + spelling: "OnboardControllerUnstated" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardControllerUnstated")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag new file mode 100644 index 00000000000..bbd077eb7f3 --- /dev/null +++ b/dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag @@ -0,0 +1,19 @@ +module gunbc.namespace.transition_admission.extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated + +import std.types { NonEmptyStr, List } +import std.integer { UInt32 } +import std.decl_ref { decl_ref } +import gunbc.compiler_frontend_program_interlock { TargetChanged } +import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } + +data extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, + subject: Binding { + enclosing: decl_ref("extdeps.wiwynn.sv328r.specifications", "sv328r_bmc_manageability_network"), + spelling: "OnboardPhyUnstated" as NonEmptyStr, + expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardPhyUnstated")], + }, + disposition: TargetChanged, + deletion_follow_up: NotAuthored, + owner_pull_request: 11529 as UInt32, +} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag similarity index 69% rename from dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag rename to dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag index 8e43e23b78a..97869dccb8b 100644 --- a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant.dag +++ b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag @@ -1,4 +1,4 @@ -module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant +module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac import std.types { NonEmptyStr, List } import std.integer { UInt32 } @@ -6,12 +6,12 @@ import std.decl_ref { decl_ref } import gunbc.compiler_frontend_program_interlock { TargetChanged } import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } -data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_power_supplies_redundant: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 hoist OnboardNetworkController and PowerSupplyStanding onto shared homes" as NonEmptyStr, +data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac: TransitionAdmission = TransitionAdmission { + label: "gunbc#11529 hoist both_supplies_have_ac onto the shared PSU home" as NonEmptyStr, subject: Binding { enclosing: decl_ref("gunbc.machine_intake_mtcollins1_platform_observation", "mtcollins1_power_redundancy_probe"), - spelling: "power_supplies_redundant" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "power_supplies_redundant")], + spelling: "both_supplies_have_ac" as NonEmptyStr, + expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "both_supplies_have_ac")], }, disposition: TargetChanged, deletion_follow_up: NotAuthored, diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index 6c83c171e44..1e28f848f3b 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -9,21 +9,27 @@ import gunbc.machine_intake_ethernet { EthernetFunctionBinding, HostData, PhysicalEthernetPort, + PortOnUnit, ethernet_port_may_carry_multiple_functions, ethernet_ports_are_distinct, } import gunbc.machine_intake_power_supply { PowerSupplyStanding, - power_supplies_redundant, + both_supplies_have_ac, } import gunbc.machine_intake_mtcollins1_platform_observation { mtcollins1_bmc_interfaces_are_distinct_ports, } +import gunbc.machine_intake_subject { UnitKey } import v2.std.live_tree { LiveTreeDisposition, SubstrateInputsOnly } data live_tree_disposition: LiveTreeDisposition = SubstrateInputsOnly +data jade_unit_a: UnitKey = "fixture-jade-a" as UnitKey +data jade_unit_b: UnitKey = "fixture-jade-b" as UnitKey + data jade_lower_bmc: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortOnUnit { key: jade_unit_a }, panel_label: "rear lower I/O row", connector_label: "RJ45", attachment: AttachmentUnobserved { @@ -32,6 +38,7 @@ data jade_lower_bmc: PhysicalEthernetPort = PhysicalEthernetPort { } data jade_upper_left: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortOnUnit { key: jade_unit_a }, panel_label: "rear upper expansion module left", connector_label: "RJ45", attachment: AttachmentUnobserved { @@ -39,6 +46,15 @@ data jade_upper_left: PhysicalEthernetPort = PhysicalEthernetPort { }, } +data other_unit_same_labels: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortOnUnit { key: jade_unit_b }, + panel_label: "rear lower I/O row", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "fixture: dedicated BMC jack is onboard; not a unit observation", + }, +} + test fn w_one_port_can_bind_host_data_and_bmc_ncsi() -> Bool { ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, @@ -62,11 +78,15 @@ test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { ethernet_ports_are_distinct(a: jade_lower_bmc, b: jade_upper_left) } +test fn w_same_panel_labels_on_different_units_are_distinct_ports() -> Bool { + ethernet_ports_are_distinct(a: jade_lower_bmc, b: other_unit_same_labels) +} + test fn w_collins_bmc_lans_are_distinct_ports() -> Bool { mtcollins1_bmc_interfaces_are_distinct_ports() } -test fn w_present_without_ac_is_not_redundant() -> Bool { +test fn w_present_without_ac_is_not_both_live() -> Bool { let powered = PowerSupplyStanding { sensor_name: "PSU1", present: true, @@ -88,6 +108,7 @@ test fn w_present_without_ac_is_not_redundant() -> Bool { output: watt(count: 80), fan_speed: rpm(count: 4000), } - power_supplies_redundant(a: powered, b: installed_dark) == false - && power_supplies_redundant(a: powered, b: both_live) + both_supplies_have_ac(a: powered, b: installed_dark) == false + && both_supplies_have_ac(a: powered, b: both_live) + && both_supplies_have_ac(a: powered, b: powered) == false } diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index d2aa2aab22d..0579027cbde 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -31,7 +31,7 @@ import extdeps.ocp.mt_jade.subject { } import extdeps.bmc.aspeed_ast2500 { aspeed_ast2500_catalog } import extdeps.bmc.endpoint { AmiMegaRac, OpenBmc } -import extdeps.standards.nic_attachment { NamedOnboardController } +import extdeps.standards.nic_attachment { NamedOnboardPhy, OnboardControllerUnstated } import extdeps.ocp.mt_jade.platform { BaseboardManagementController, CpuBmcGpioVoltageIsolation, @@ -297,9 +297,8 @@ test fn w_2u_fan_connectors_are_six_60_by_56_dual_rotor() -> Bool { && mt_jade_fan_connectors_1u.connector_count == 8 && millimeter_count(m: mt_jade_fan_connectors_1u.frame_width) == 40 && millimeter_count(m: mt_jade_fan_connectors_1u.frame_thickness) == 56 + && mt_jade_fan_connectors_1u.dual_rotor } - -test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Bool { mt_jade_crps_power.psu_count == 2 && mt_jade_crps_power.hot_plug && (mt_jade_crps_power.redundancy_label as String) == "1+1" @@ -310,18 +309,23 @@ test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Boo } } -test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e() -> Bool { +test fn w_bmc_management_nic_is_one_rear_rj45_rtl8211e_phy() -> Bool { match mt_jade_bmc_management_network.network.controller { - NamedOnboardController { part } => part == mt_jade_bmc_ethernet_phy.ordering_part_number + OnboardControllerUnstated { read_obligation: _ } => true _ => false } + && match mt_jade_bmc_management_network.network.phy { + NamedOnboardPhy { part } => part == mt_jade_bmc_ethernet_phy.ordering_part_number + _ => false + } && mt_jade_bmc_management_network.network.port_count == 1 && bandwidth_count(b: mt_jade_bmc_management_network.network.per_port_bandwidth) == 1000000000 && (mt_jade_bmc_management_network.location_label as String) == "rear RJ45, power-supply / bottom-side I/O" } test fn w_cited_bmc_firmware_is_a_disjunction_not_a_default() -> Bool { - mt_jade_cited_bmc_firmware_options_include( + list_length(items: mt_jade_cited_bmc_firmware_options) == 2 + && mt_jade_cited_bmc_firmware_options_include( options: mt_jade_cited_bmc_firmware_options, wanted: AmiMegaRac, ) From b855647453dc15c86a47e170eb1570b530ebb10d Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 04:19:06 +0000 Subject: [PATCH 15/21] Restore the CRPS witness declaration the fan dual_rotor edit dropped. The file no longer parsed: the CRPS body was left outside any item. Co-authored-by: Cursor --- dag/test/claim/mt_jade_platform_witness_test.dag | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 0579027cbde..199219dce1f 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -299,6 +299,8 @@ test fn w_2u_fan_connectors_are_six_60_by_56_dual_rotor() -> Bool { && millimeter_count(m: mt_jade_fan_connectors_1u.frame_thickness) == 56 && mt_jade_fan_connectors_1u.dual_rotor } + +test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Bool { mt_jade_crps_power.psu_count == 2 && mt_jade_crps_power.hot_plug && (mt_jade_crps_power.redundancy_label as String) == "1+1" From b3c9c2eb1e42da3ddcf098809edddbf7581f973e Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 04:51:04 +0000 Subject: [PATCH 16/21] Refuse unit identity from unobserved port prose, and decompose 1+1 into counts. Matching PortUnitUnobserved discriminators was answering SameUnit; CRPS redundancy was a string leaf. Co-authored-by: Cursor --- dag/extdeps/ocp/mt_jade/platform.dag | 13 ++-- dag/gunbc/machine_intake/ethernet.dag | 67 +++++++++++++++---- .../mtcollins1_platform_observation.dag | 13 +++- .../machine_intake_ethernet_witness_test.dag | 65 ++++++++++++++++++ .../claim/mt_jade_platform_witness_test.dag | 3 +- 5 files changed, 138 insertions(+), 23 deletions(-) diff --git a/dag/extdeps/ocp/mt_jade/platform.dag b/dag/extdeps/ocp/mt_jade/platform.dag index eca89dea26e..d09442f52c0 100644 --- a/dag/extdeps/ocp/mt_jade/platform.dag +++ b/dag/extdeps/ocp/mt_jade/platform.dag @@ -415,18 +415,21 @@ data mt_jade_fan_connectors_1u: MtJadeFanConnectorPopulation = MtJadeFanConnecto dual_rotor: true, } -// FEATURE LIST: DUAL CRPS, 1+1, HOT-PLUG. The specification names the PSU mechanical class and -// redundancy and does not name IEC 60320 sheet, AC voltage range, or a wattage rating of any -// fitted module. Inventing C14 vs C20 from "CRPS" would be a fabricated inlet. +// FEATURE LIST: DUAL CRPS, 1+1, HOT-PLUG. "1+1" is required_count + spare_count, not a label. +// The specification names the PSU mechanical class and does not name IEC 60320 sheet, AC +// voltage range, or a wattage rating of any fitted module. Inventing C14 vs C20 from "CRPS" +// would be a fabricated inlet. type MtJadeCrpsPower { psu_count: Nat - redundancy_label: NonEmptyStr + required_count: Nat + spare_count: Nat hot_plug: Bool } data mt_jade_crps_power: MtJadeCrpsPower = MtJadeCrpsPower { psu_count: 2, - redundancy_label: "1+1", + required_count: 1, + spare_count: 1, hot_plug: true, } diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index f8b3b0c11ab..73afd202bf1 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -12,7 +12,9 @@ import gunbc.machine_intake_subject { UnitKey } // "is dedicated management" cannot represent that. Connector identity and function bindings // are therefore separate types. Expansion-card attachment is the standard // NicAttachmentClass, not a second PcieCem/OcpNic3 spelling. -// Panel text is an observation. Identity is unit + locator + attachment. +// Panel text is an observation. Identity is an observed unit key + locator + attachment. +// An unobserved unit cannot mint SameUnit or DistinctUnits; matching discriminator prose +// is not a unit key. type EthernetAttachment = BaseboardOnboard @@ -52,38 +54,75 @@ type ObservedEthernetLan { link: EthernetLinkAddress } -fn ethernet_port_units_agree(a: EthernetPortUnit, b: EthernetPortUnit) -> Bool { +type PortUnitIdentityStanding + = ObservedSameUnit + | ObservedDistinctUnits + | PortUnitIdentityUnobserved { discriminator: NonEmptyStr } + +type ConnectorIdentityStanding + = SameConnector + | DistinctConnectors + | ConnectorIdentityUnobserved { discriminator: NonEmptyStr } + +fn ethernet_port_unit_identity(a: EthernetPortUnit, b: EthernetPortUnit) -> PortUnitIdentityStanding { match a { PortOnUnit { key: ka } => match b { - PortOnUnit { key: kb } => (ka as String) == (kb as String) - PortUnitUnobserved { discriminator: _ } => false + PortOnUnit { key: kb } => + if (ka as String) == (kb as String) { + ObservedSameUnit + } else { + ObservedDistinctUnits + } + PortUnitUnobserved { discriminator: _ } => + PortUnitIdentityUnobserved { + discriminator: "one port binds a unit key and the other does not", + } } - PortUnitUnobserved { discriminator: da } => - match b { - PortOnUnit { key: _ } => false - PortUnitUnobserved { discriminator: db } => (da as String) == (db as String) + PortUnitUnobserved { discriminator: _ } => + PortUnitIdentityUnobserved { + discriminator: "at least one port has no unit key; matching unobserved prose is not unit identity", } } } -fn ethernet_ports_are_the_same_connector(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { - ethernet_port_units_agree(a: a.unit, b: b.unit) - && (a.panel_label as String) == (b.panel_label as String) +fn ethernet_locator_and_attachment_match(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { + (a.panel_label as String) == (b.panel_label as String) && (a.connector_label as String) == (b.connector_label as String) && a.attachment == b.attachment } +fn ethernet_connector_identity(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> ConnectorIdentityStanding { + match ethernet_port_unit_identity(a: a.unit, b: b.unit) { + ObservedDistinctUnits => DistinctConnectors + ObservedSameUnit => + if ethernet_locator_and_attachment_match(a: a, b: b) { + SameConnector + } else { + DistinctConnectors + } + PortUnitIdentityUnobserved { discriminator: d } => + ConnectorIdentityUnobserved { discriminator: d } + } +} + fn ethernet_ports_are_distinct(a: PhysicalEthernetPort, b: PhysicalEthernetPort) -> Bool { - ethernet_ports_are_the_same_connector(a: a, b: b) == false + match ethernet_connector_identity(a: a, b: b) { + DistinctConnectors => true + SameConnector => false + ConnectorIdentityUnobserved { discriminator: _ } => false + } } fn ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding, b: EthernetFunctionBinding, ) -> Bool { - ethernet_ports_are_the_same_connector(a: a.port, b: b.port) - && (a.function == b.function) == false + match ethernet_connector_identity(a: a.port, b: b.port) { + SameConnector => (a.function == b.function) == false + DistinctConnectors => false + ConnectorIdentityUnobserved { discriminator: _ } => false + } } fn observed_lans_have_distinct_addresses(a: ObservedEthernetLan, b: ObservedEthernetLan) -> Bool { diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index 60aa5f56926..814e3e4b9cb 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -9,12 +9,15 @@ import gunbc.machine_intake_ethernet { BaseboardOnboard, BmcDedicated, ConfiguredLink, + ConnectorIdentityUnobserved, + DistinctConnectors, FunctionUnobserved, ObservedEthernetLan, EthernetFunctionBinding, PhysicalEthernetPort, PortUnitUnobserved, - ethernet_ports_are_distinct, + SameConnector, + ethernet_connector_identity, observed_lans_have_distinct_addresses, } import extdeps.network.ipv4 { ipv4_address } @@ -153,10 +156,14 @@ data mtcollins1_second_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { } fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { - ethernet_ports_are_distinct( + match ethernet_connector_identity( a: mtcollins1_dedicated_bmc_lan.binding.port, b: mtcollins1_second_bmc_lan.binding.port, - ) + ) { + ConnectorIdentityUnobserved { discriminator: _ } => true + SameConnector => false + DistinctConnectors => false + } && observed_lans_have_distinct_addresses(a: mtcollins1_dedicated_bmc_lan, b: mtcollins1_second_bmc_lan) && mtcollins1_dedicated_bmc_lan.binding.function == BmcDedicated && match mtcollins1_second_bmc_lan.binding.function { diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index 1e28f848f3b..f990f4abdfc 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -5,12 +5,21 @@ import std.measure { rpm, watt } import gunbc.machine_intake_ethernet { AttachmentUnobserved, BmcNcsi, + ConnectorIdentityUnobserved, + DistinctConnectors, FunctionUnobserved, EthernetFunctionBinding, HostData, + ObservedDistinctUnits, + ObservedSameUnit, PhysicalEthernetPort, PortOnUnit, + PortUnitIdentityUnobserved, + PortUnitUnobserved, + SameConnector, + ethernet_connector_identity, ethernet_port_may_carry_multiple_functions, + ethernet_port_unit_identity, ethernet_ports_are_distinct, } import gunbc.machine_intake_power_supply { @@ -82,6 +91,62 @@ test fn w_same_panel_labels_on_different_units_are_distinct_ports() -> Bool { ethernet_ports_are_distinct(a: jade_lower_bmc, b: other_unit_same_labels) } +data unobserved_bmc_a: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortUnitUnobserved { + discriminator: "fixture: board serial is not bound on this observation row", + }, + panel_label: "dedicated BMC management RJ45", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "fixture: attachment unobserved", + }, +} + +data unobserved_bmc_b_same_prose: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortUnitUnobserved { + discriminator: "fixture: board serial is not bound on this observation row", + }, + panel_label: "second BMC controller interface", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "fixture: attachment unobserved", + }, +} + +data unobserved_bmc_same_labels: PhysicalEthernetPort = PhysicalEthernetPort { + unit: PortUnitUnobserved { + discriminator: "fixture: board serial is not bound on this observation row", + }, + panel_label: "dedicated BMC management RJ45", + connector_label: "RJ45", + attachment: AttachmentUnobserved { + discriminator: "fixture: attachment unobserved", + }, +} + +test fn w_matching_unobserved_unit_prose_is_not_unit_identity() -> Bool { + match ethernet_port_unit_identity(a: unobserved_bmc_a.unit, b: unobserved_bmc_b_same_prose.unit) { + PortUnitIdentityUnobserved { discriminator: _ } => true + ObservedSameUnit => false + ObservedDistinctUnits => false + } + && match ethernet_connector_identity(a: unobserved_bmc_a, b: unobserved_bmc_b_same_prose) { + ConnectorIdentityUnobserved { discriminator: _ } => true + SameConnector => false + DistinctConnectors => false + } + && ethernet_ports_are_distinct(a: unobserved_bmc_a, b: unobserved_bmc_b_same_prose) == false + && match ethernet_connector_identity(a: unobserved_bmc_a, b: unobserved_bmc_same_labels) { + ConnectorIdentityUnobserved { discriminator: _ } => true + SameConnector => false + DistinctConnectors => false + } + && ethernet_port_may_carry_multiple_functions( + a: EthernetFunctionBinding { port: unobserved_bmc_a, function: HostData }, + b: EthernetFunctionBinding { port: unobserved_bmc_same_labels, function: BmcNcsi }, + ) == false +} + test fn w_collins_bmc_lans_are_distinct_ports() -> Bool { mtcollins1_bmc_interfaces_are_distinct_ports() } diff --git a/dag/test/claim/mt_jade_platform_witness_test.dag b/dag/test/claim/mt_jade_platform_witness_test.dag index 199219dce1f..9617c7ee7c7 100644 --- a/dag/test/claim/mt_jade_platform_witness_test.dag +++ b/dag/test/claim/mt_jade_platform_witness_test.dag @@ -302,8 +302,9 @@ test fn w_2u_fan_connectors_are_six_60_by_56_dual_rotor() -> Bool { test fn w_crps_is_dual_redundant_and_inlet_names_the_owed_discriminator() -> Bool { mt_jade_crps_power.psu_count == 2 + && mt_jade_crps_power.required_count == 1 + && mt_jade_crps_power.spare_count == 1 && mt_jade_crps_power.hot_plug - && (mt_jade_crps_power.redundancy_label as String) == "1+1" && match mt_jade_crps_ac_inlet { TranscribedUncited { read_obligation } => string_contains(s: read_obligation as String, pattern: "C14 vs C20") From f5887a47e36cc0b772a746bab7fe0646a511995a Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 05:14:33 +0000 Subject: [PATCH 17/21] Bind Collins BMC ports to the unit key, and count SV328R cores as PhysicalCoreCount. Unobserved-unit success made the distinct-ports witness green on identity refusal; the datasheet core max was a bare Nat beside Hertz. Co-authored-by: Cursor --- dag/extdeps/wiwynn/sv328r/specifications.dag | 8 ++--- .../mtcollins1_platform_observation.dag | 35 ++++++++++--------- dag/test/claim/wiwynn_sv328r_witness_test.dag | 4 +-- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index 3174bab1127..66b9d633294 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -4,9 +4,9 @@ import std.types { String, NonEmptyStr, Bool } import std.nat { Nat } import std.decl_ref { DeclarationRef, WholeDeclaration } import std.measure { - Bandwidth, Gram, Hertz, MegatransfersPerSecond, Micrometer, Millimeter, RackUnit, + Bandwidth, Gram, Hertz, MegatransfersPerSecond, Micrometer, Millimeter, PhysicalCoreCount, RackUnit, bandwidth, gram, gram_count, hertz, megatransfers_per_second, micrometer, micrometer_count, - millimeter, rack_unit, + millimeter, physical_core_count, rack_unit, } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } import extdeps.memory.types { DimmBuffering, Registered } @@ -81,14 +81,14 @@ data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetwork type Sv328rProcessorConfiguration { socket_count: Nat - cores_per_socket_stated_max: Nat + cores_per_socket_stated_max: PhysicalCoreCount architecture_label: NonEmptyStr max_core_clock: Hertz } data sv328r_processors: Sv328rProcessorConfiguration = Sv328rProcessorConfiguration { socket_count: 2, - cores_per_socket_stated_max: 80, + cores_per_socket_stated_max: physical_core_count(count: 80), architecture_label: "Ampere Altra, 64-bit Arm", max_core_clock: hertz(count: 3000000000), } diff --git a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag index 814e3e4b9cb..a5c2fb47d5e 100644 --- a/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag +++ b/dag/gunbc/machine_intake/mtcollins1_platform_observation.dag @@ -9,17 +9,18 @@ import gunbc.machine_intake_ethernet { BaseboardOnboard, BmcDedicated, ConfiguredLink, - ConnectorIdentityUnobserved, - DistinctConnectors, + EthernetPortUnit, FunctionUnobserved, ObservedEthernetLan, EthernetFunctionBinding, PhysicalEthernetPort, + PortOnUnit, PortUnitUnobserved, - SameConnector, - ethernet_connector_identity, + ethernet_ports_are_distinct, observed_lans_have_distinct_addresses, } +import gunbc.machine_intake_mtcollins1_bmc_secure_observation { mtcollins1_unit_key_standing } +import gunbc.machine_intake_subject { UnitKeyBound, UnitKeyRefused } import extdeps.network.ipv4 { ipv4_address } import extdeps.network.mac { mac_address } @@ -111,19 +112,25 @@ data mtcollins1_power_redundancy_observed_at: NonEmptyStr = "2026-09-06T02:30Z" // Redundancy is a property of independent power paths, not of this fold. This fold // only answers whether two distinct sensor rows both report AC. +fn mtcollins1_observed_port_unit() -> EthernetPortUnit { + match mtcollins1_unit_key_standing { + UnitKeyBound { key: k } => PortOnUnit { key: k } + UnitKeyRefused { cause: _ } => + PortUnitUnobserved { + discriminator: "mtcollins1 unit key refused; BMC ports cannot share a fabricated unit", + } + } +} + data mtcollins1_dedicated_mgmt_port: PhysicalEthernetPort = PhysicalEthernetPort { - unit: PortUnitUnobserved { - discriminator: "mtcollins1 BMC ports: board serial is not bound on this observation row", - }, + unit: mtcollins1_observed_port_unit(), panel_label: "dedicated BMC management RJ45", connector_label: "RJ45", attachment: BaseboardOnboard, } data mtcollins1_second_bmc_port: PhysicalEthernetPort = PhysicalEthernetPort { - unit: PortUnitUnobserved { - discriminator: "mtcollins1 BMC ports: board serial is not bound on this observation row", - }, + unit: mtcollins1_observed_port_unit(), panel_label: "second BMC controller interface", connector_label: "RJ45", attachment: AttachmentUnobserved { @@ -156,14 +163,10 @@ data mtcollins1_second_bmc_lan: ObservedEthernetLan = ObservedEthernetLan { } fn mtcollins1_bmc_interfaces_are_distinct_ports() -> Bool { - match ethernet_connector_identity( + ethernet_ports_are_distinct( a: mtcollins1_dedicated_bmc_lan.binding.port, b: mtcollins1_second_bmc_lan.binding.port, - ) { - ConnectorIdentityUnobserved { discriminator: _ } => true - SameConnector => false - DistinctConnectors => false - } + ) && observed_lans_have_distinct_addresses(a: mtcollins1_dedicated_bmc_lan, b: mtcollins1_second_bmc_lan) && mtcollins1_dedicated_bmc_lan.binding.function == BmcDedicated && match mtcollins1_second_bmc_lan.binding.function { diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index c8beb8cda7f..94fa29b84ff 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -3,7 +3,7 @@ module test.claim.wiwynn_sv328r_witness import std.types { Bool, String } import std.measure { bandwidth_count, gram_count, hertz_count, megatransfers_per_second_count, - micrometer_count, millimeter_count, rack_unit_count, + micrometer_count, millimeter_count, physical_core_count_value, rack_unit_count, } import extdeps.wiwynn.sv328r.subject { wiwynn_sv328r_product } import extdeps.wiwynn.sv328r.specifications { @@ -79,7 +79,7 @@ test fn w_memory_is_32_rdimm_slots_ddr4_3200() -> Bool { test fn w_processors_are_dual_altra_80_core_class() -> Bool { sv328r_processors.socket_count == 2 - && sv328r_processors.cores_per_socket_stated_max == 80 + && physical_core_count_value(c: sv328r_processors.cores_per_socket_stated_max) == 80 && hertz_count(h: sv328r_processors.max_core_clock) == 3000000000 } From b1fd2b60018e72c8a657836826c2c93424692f1a Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 06:17:23 +0000 Subject: [PATCH 18/21] Delete stale PHY/PSU namespace-wave admissions that never matched the merge-base. The floor refused seven unused TargetChanged rows whose spellings are not bindings at base; the live hoist is still the five OnboardNetworkController and PowerSupplyStanding files. Co-authored-by: Cursor --- ..._manageability_network_NamedOnboardPhy.dag | 19 ------------------- ...lity_network_OnboardControllerUnstated.dag | 19 ------------------- ...nboard_data_network_OnboardPhyUnstated.dag | 19 ------------------- ...bmc_management_network_NamedOnboardPhy.dag | 19 ------------------- ...ment_network_OnboardControllerUnstated.dag | 19 ------------------- ...nageability_network_OnboardPhyUnstated.dag | 19 ------------------- ...redundancy_probe_both_supplies_have_ac.dag | 19 ------------------- 7 files changed, 133 deletions(-) delete mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag delete mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag delete mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag delete mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag delete mode 100644 dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag delete mode 100644 dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag delete mode 100644 dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag deleted file mode 100644 index e54a4673ca1..00000000000 --- a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_NamedOnboardPhy: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_bmc_manageability_network"), - spelling: "NamedOnboardPhy" as NonEmptyStr, - expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "NamedOnboardPhy")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag deleted file mode 100644 index 2feb4195f40..00000000000 --- a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_bmc_manageability_network_OnboardControllerUnstated: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_bmc_manageability_network"), - spelling: "OnboardControllerUnstated" as NonEmptyStr, - expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardControllerUnstated")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag deleted file mode 100644 index e210e886483..00000000000 --- a/dag/gunbc/namespace/transition_admission/extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data extdeps_ampere_mt_collins_1u_product_brief_specifications_mt_collins_1u_onboard_data_network_OnboardPhyUnstated: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("extdeps.ampere.mt_collins_1u_product_brief.specifications", "mt_collins_1u_onboard_data_network"), - spelling: "OnboardPhyUnstated" as NonEmptyStr, - expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardPhyUnstated")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag b/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag deleted file mode 100644 index 9a4b2c7ac6a..00000000000 --- a/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_NamedOnboardPhy: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("extdeps.ocp.mt_jade.platform", "mt_jade_bmc_management_network"), - spelling: "NamedOnboardPhy" as NonEmptyStr, - expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "NamedOnboardPhy")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag deleted file mode 100644 index a877ed1b2e6..00000000000 --- a/dag/gunbc/namespace/transition_admission/extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data extdeps_ocp_mt_jade_platform_mt_jade_bmc_management_network_OnboardControllerUnstated: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("extdeps.ocp.mt_jade.platform", "mt_jade_bmc_management_network"), - spelling: "OnboardControllerUnstated" as NonEmptyStr, - expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardControllerUnstated")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag b/dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag deleted file mode 100644 index bbd077eb7f3..00000000000 --- a/dag/gunbc/namespace/transition_admission/extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data extdeps_wiwynn_sv328r_specifications_sv328r_bmc_manageability_network_OnboardPhyUnstated: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 separate onboard MAC/controller from PHY identity" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("extdeps.wiwynn.sv328r.specifications", "sv328r_bmc_manageability_network"), - spelling: "OnboardPhyUnstated" as NonEmptyStr, - expected_candidates: [decl_ref("extdeps.standards.nic_attachment", "OnboardPhyUnstated")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} diff --git a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag b/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag deleted file mode 100644 index 97869dccb8b..00000000000 --- a/dag/gunbc/namespace/transition_admission/gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac.dag +++ /dev/null @@ -1,19 +0,0 @@ -module gunbc.namespace.transition_admission.gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac - -import std.types { NonEmptyStr, List } -import std.integer { UInt32 } -import std.decl_ref { decl_ref } -import gunbc.compiler_frontend_program_interlock { TargetChanged } -import gunbc.namespace.transition_admission { TransitionAdmission, Binding, NotAuthored } - -data gunbc_machine_intake_mtcollins1_platform_observation_mtcollins1_power_redundancy_probe_both_supplies_have_ac: TransitionAdmission = TransitionAdmission { - label: "gunbc#11529 hoist both_supplies_have_ac onto the shared PSU home" as NonEmptyStr, - subject: Binding { - enclosing: decl_ref("gunbc.machine_intake_mtcollins1_platform_observation", "mtcollins1_power_redundancy_probe"), - spelling: "both_supplies_have_ac" as NonEmptyStr, - expected_candidates: [decl_ref("gunbc.machine_intake_power_supply", "both_supplies_have_ac")], - }, - disposition: TargetChanged, - deletion_follow_up: NotAuthored, - owner_pull_request: 11529 as UInt32, -} From 44a23cde59ed81d8526cfc75662d62da2f6439ed Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 06:46:18 +0000 Subject: [PATCH 19/21] Refuse unobserved Ethernet functions as a third standing, not a Bool. HostData versus FunctionUnobserved was answering that one connector carried two functions, and two unobserved rows compared by discriminator prose. Co-authored-by: Cursor --- dag/gunbc/machine_intake/ethernet.dag | 75 +++++++++++++++++-- .../machine_intake_ethernet_witness_test.dag | 73 +++++++++++++++--- 2 files changed, 134 insertions(+), 14 deletions(-) diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index 73afd202bf1..985640352c9 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -14,7 +14,8 @@ import gunbc.machine_intake_subject { UnitKey } // NicAttachmentClass, not a second PcieCem/OcpNic3 spelling. // Panel text is an observation. Identity is an observed unit key + locator + attachment. // An unobserved unit cannot mint SameUnit or DistinctUnits; matching discriminator prose -// is not a unit key. +// is not a unit key. An unobserved function cannot mint SameFunction or DistinctFunctions; +// matching discriminator prose is not a function key. type EthernetAttachment = BaseboardOnboard @@ -64,6 +65,17 @@ type ConnectorIdentityStanding | DistinctConnectors | ConnectorIdentityUnobserved { discriminator: NonEmptyStr } +type FunctionIdentityStanding + = ObservedSameFunction + | ObservedDistinctFunctions + | FunctionIdentityUnobserved { discriminator: NonEmptyStr } + +type ConnectorFunctionStanding + = ObservedMultipleFunctions + | ObservedSingleFunction + | FunctionsOnDistinctConnectors + | ConnectorFunctionUnobserved { discriminator: NonEmptyStr } + fn ethernet_port_unit_identity(a: EthernetPortUnit, b: EthernetPortUnit) -> PortUnitIdentityStanding { match a { PortOnUnit { key: ka } => @@ -114,14 +126,67 @@ fn ethernet_ports_are_distinct(a: PhysicalEthernetPort, b: PhysicalEthernetPort) } } +fn ethernet_function_identity(a: EthernetFunction, b: EthernetFunction) -> FunctionIdentityStanding { + match a { + FunctionUnobserved { discriminator: _ } => + FunctionIdentityUnobserved { + discriminator: "at least one function is unobserved; matching discriminator prose is not function identity", + } + BmcDedicated => ethernet_observed_function_against(observed: BmcDedicated, other: b) + BmcNcsi => ethernet_observed_function_against(observed: BmcNcsi, other: b) + HostData => ethernet_observed_function_against(observed: HostData, other: b) + PrebootNetwork => ethernet_observed_function_against(observed: PrebootNetwork, other: b) + } +} + +fn ethernet_observed_function_against(observed: EthernetFunction, other: EthernetFunction) -> FunctionIdentityStanding { + match other { + FunctionUnobserved { discriminator: _ } => + FunctionIdentityUnobserved { + discriminator: "at least one function is unobserved; matching discriminator prose is not function identity", + } + BmcDedicated => + if observed == BmcDedicated { + ObservedSameFunction + } else { + ObservedDistinctFunctions + } + BmcNcsi => + if observed == BmcNcsi { + ObservedSameFunction + } else { + ObservedDistinctFunctions + } + HostData => + if observed == HostData { + ObservedSameFunction + } else { + ObservedDistinctFunctions + } + PrebootNetwork => + if observed == PrebootNetwork { + ObservedSameFunction + } else { + ObservedDistinctFunctions + } + } +} + fn ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding, b: EthernetFunctionBinding, -) -> Bool { +) -> ConnectorFunctionStanding { match ethernet_connector_identity(a: a.port, b: b.port) { - SameConnector => (a.function == b.function) == false - DistinctConnectors => false - ConnectorIdentityUnobserved { discriminator: _ } => false + SameConnector => + match ethernet_function_identity(a: a.function, b: b.function) { + ObservedDistinctFunctions => ObservedMultipleFunctions + ObservedSameFunction => ObservedSingleFunction + FunctionIdentityUnobserved { discriminator: d } => + ConnectorFunctionUnobserved { discriminator: d } + } + DistinctConnectors => FunctionsOnDistinctConnectors + ConnectorIdentityUnobserved { discriminator: d } => + ConnectorFunctionUnobserved { discriminator: d } } } diff --git a/dag/test/claim/machine_intake_ethernet_witness_test.dag b/dag/test/claim/machine_intake_ethernet_witness_test.dag index f990f4abdfc..37f9ceb4c55 100644 --- a/dag/test/claim/machine_intake_ethernet_witness_test.dag +++ b/dag/test/claim/machine_intake_ethernet_witness_test.dag @@ -5,19 +5,27 @@ import std.measure { rpm, watt } import gunbc.machine_intake_ethernet { AttachmentUnobserved, BmcNcsi, + ConnectorFunctionUnobserved, ConnectorIdentityUnobserved, DistinctConnectors, + FunctionIdentityUnobserved, FunctionUnobserved, + FunctionsOnDistinctConnectors, EthernetFunctionBinding, HostData, + ObservedDistinctFunctions, ObservedDistinctUnits, + ObservedMultipleFunctions, + ObservedSameFunction, ObservedSameUnit, + ObservedSingleFunction, PhysicalEthernetPort, PortOnUnit, PortUnitIdentityUnobserved, PortUnitUnobserved, SameConnector, ethernet_connector_identity, + ethernet_function_identity, ethernet_port_may_carry_multiple_functions, ethernet_port_unit_identity, ethernet_ports_are_distinct, @@ -65,22 +73,64 @@ data other_unit_same_labels: PhysicalEthernetPort = PhysicalEthernetPort { } test fn w_one_port_can_bind_host_data_and_bmc_ncsi() -> Bool { - ethernet_port_may_carry_multiple_functions( + match ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, b: EthernetFunctionBinding { port: jade_upper_left, function: BmcNcsi }, - ) - && ethernet_port_may_carry_multiple_functions( + ) { + ObservedMultipleFunctions => true + ObservedSingleFunction => false + FunctionsOnDistinctConnectors => false + ConnectorFunctionUnobserved { discriminator: _ } => false + } + && match ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, b: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, - ) == false - && ethernet_port_may_carry_multiple_functions( + ) { + ObservedSingleFunction => true + ObservedMultipleFunctions => false + FunctionsOnDistinctConnectors => false + ConnectorFunctionUnobserved { discriminator: _ } => false + } + && ethernet_ports_are_distinct(a: jade_upper_left, b: jade_upper_left) == false +} + +test fn w_unobserved_function_is_not_a_second_function() -> Bool { + match ethernet_function_identity( + a: HostData, + b: FunctionUnobserved { discriminator: "fixture: function unobserved" }, + ) { + FunctionIdentityUnobserved { discriminator: _ } => true + ObservedSameFunction => false + ObservedDistinctFunctions => false + } + && match ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding { port: jade_upper_left, function: HostData }, b: EthernetFunctionBinding { port: jade_upper_left, function: FunctionUnobserved { discriminator: "fixture: function unobserved" }, }, - ) - && ethernet_ports_are_distinct(a: jade_upper_left, b: jade_upper_left) == false + ) { + ConnectorFunctionUnobserved { discriminator: _ } => true + ObservedMultipleFunctions => false + ObservedSingleFunction => false + FunctionsOnDistinctConnectors => false + } + && match ethernet_function_identity( + a: FunctionUnobserved { discriminator: "fixture: function unobserved" }, + b: FunctionUnobserved { discriminator: "fixture: function unobserved" }, + ) { + FunctionIdentityUnobserved { discriminator: _ } => true + ObservedSameFunction => false + ObservedDistinctFunctions => false + } + && match ethernet_function_identity( + a: FunctionUnobserved { discriminator: "fixture: function unobserved A" }, + b: FunctionUnobserved { discriminator: "fixture: function unobserved B" }, + ) { + FunctionIdentityUnobserved { discriminator: _ } => true + ObservedSameFunction => false + ObservedDistinctFunctions => false + } } test fn w_dedicated_bmc_jack_is_not_the_upper_host_module() -> Bool { @@ -141,10 +191,15 @@ test fn w_matching_unobserved_unit_prose_is_not_unit_identity() -> Bool { SameConnector => false DistinctConnectors => false } - && ethernet_port_may_carry_multiple_functions( + && match ethernet_port_may_carry_multiple_functions( a: EthernetFunctionBinding { port: unobserved_bmc_a, function: HostData }, b: EthernetFunctionBinding { port: unobserved_bmc_same_labels, function: BmcNcsi }, - ) == false + ) { + ConnectorFunctionUnobserved { discriminator: _ } => true + ObservedMultipleFunctions => false + ObservedSingleFunction => false + FunctionsOnDistinctConnectors => false + } } test fn w_collins_bmc_lans_are_distinct_ports() -> Bool { From 483096be9f62b4f7ae5bebe818386b25e96f56c9 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 07:03:07 +0000 Subject: [PATCH 20/21] Fold Ethernet function identity onto coproduct ==, and drop unused SV328R Nat accessors. Observed-function comparison was a 4x4 helper that reimplemented ==; weight and depth accessors existed only so the witness could restate gram_count and micrometer_count. Co-authored-by: Cursor --- dag/extdeps/wiwynn/sv328r/specifications.dag | 10 +--- dag/gunbc/machine_intake/ethernet.dag | 48 +++++-------------- dag/test/claim/wiwynn_sv328r_witness_test.dag | 4 -- 3 files changed, 13 insertions(+), 49 deletions(-) diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index 66b9d633294..faff5520f40 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -5,7 +5,7 @@ import std.nat { Nat } import std.decl_ref { DeclarationRef, WholeDeclaration } import std.measure { Bandwidth, Gram, Hertz, MegatransfersPerSecond, Micrometer, Millimeter, PhysicalCoreCount, RackUnit, - bandwidth, gram, gram_count, hertz, megatransfers_per_second, micrometer, micrometer_count, + bandwidth, gram, hertz, megatransfers_per_second, micrometer, millimeter, physical_core_count, rack_unit, } import extdeps.external_authority { ExternalAuthority, ExternalModelScope, ExternalSubjectRef, CitedFigureStanding, TranscribedUncited } @@ -140,11 +140,3 @@ data sv328r_specifications_model_scope: ExternalModelScope = ExternalModelScope } data extdeps_model_scope: ExternalModelScope = sv328r_specifications_model_scope - -fn sv328r_weight_grams() -> Nat { - gram_count(g: sv328r_stated_weight) -} - -fn sv328r_depth_micrometers() -> Nat { - micrometer_count(m: sv328r_dimensions.depth) -} diff --git a/dag/gunbc/machine_intake/ethernet.dag b/dag/gunbc/machine_intake/ethernet.dag index 985640352c9..b6f2b873931 100644 --- a/dag/gunbc/machine_intake/ethernet.dag +++ b/dag/gunbc/machine_intake/ethernet.dag @@ -132,42 +132,18 @@ fn ethernet_function_identity(a: EthernetFunction, b: EthernetFunction) -> Funct FunctionIdentityUnobserved { discriminator: "at least one function is unobserved; matching discriminator prose is not function identity", } - BmcDedicated => ethernet_observed_function_against(observed: BmcDedicated, other: b) - BmcNcsi => ethernet_observed_function_against(observed: BmcNcsi, other: b) - HostData => ethernet_observed_function_against(observed: HostData, other: b) - PrebootNetwork => ethernet_observed_function_against(observed: PrebootNetwork, other: b) - } -} - -fn ethernet_observed_function_against(observed: EthernetFunction, other: EthernetFunction) -> FunctionIdentityStanding { - match other { - FunctionUnobserved { discriminator: _ } => - FunctionIdentityUnobserved { - discriminator: "at least one function is unobserved; matching discriminator prose is not function identity", - } - BmcDedicated => - if observed == BmcDedicated { - ObservedSameFunction - } else { - ObservedDistinctFunctions - } - BmcNcsi => - if observed == BmcNcsi { - ObservedSameFunction - } else { - ObservedDistinctFunctions - } - HostData => - if observed == HostData { - ObservedSameFunction - } else { - ObservedDistinctFunctions - } - PrebootNetwork => - if observed == PrebootNetwork { - ObservedSameFunction - } else { - ObservedDistinctFunctions + _ => + match b { + FunctionUnobserved { discriminator: _ } => + FunctionIdentityUnobserved { + discriminator: "at least one function is unobserved; matching discriminator prose is not function identity", + } + _ => + if a == b { + ObservedSameFunction + } else { + ObservedDistinctFunctions + } } } } diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index 94fa29b84ff..260484449d5 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -10,7 +10,6 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_bmc_manageability_network, sv328r_cooling, sv328r_crps_ac_inlet, - sv328r_depth_micrometers, sv328r_dimensions, sv328r_memory, sv328r_ocp_slot, @@ -19,7 +18,6 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_processors, sv328r_stated_weight, sv328r_storage, - sv328r_weight_grams, } import extdeps.memory.types { Registered } import extdeps.standards.nic_attachment { OnboardControllerUnstated, NamedOnboardController, OcpNic3 } @@ -38,12 +36,10 @@ test fn w_chassis_is_2u_770_point_2_mm_deep() -> Bool { && millimeter_count(m: sv328r_dimensions.width) == 438 && micrometer_count(m: sv328r_dimensions.depth) == 770200 && rack_unit_count(u: sv328r_dimensions.rack_units) == 2 - && sv328r_depth_micrometers() == 770200 } test fn w_stated_weight_is_14470_grams() -> Bool { gram_count(g: sv328r_stated_weight) == 14470 - && sv328r_weight_grams() == 14470 } test fn w_cooling_is_six_60_by_56_and_power_is_dual_crps_with_owed_inlet() -> Bool { From 8f4a3245bfa0a7aebf514933f57d3b1aa1131731 Mon Sep 17 00:00:00 2001 From: gunbc-ci-auto-heal Date: Fri, 18 Sep 2026 07:33:36 +0000 Subject: [PATCH 21/21] Cite Ampere vendor, Altra family authority, and AArch64 on SV328R instead of an architecture string. The datasheet phrase packed three facts the corpus already owns; a SKU row is not implied. Co-authored-by: Cursor --- dag/extdeps/wiwynn/sv328r/specifications.dag | 13 +++++++++++-- dag/test/claim/wiwynn_sv328r_witness_test.dag | 6 ++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/dag/extdeps/wiwynn/sv328r/specifications.dag b/dag/extdeps/wiwynn/sv328r/specifications.dag index faff5520f40..14ca0701ab4 100644 --- a/dag/extdeps/wiwynn/sv328r/specifications.dag +++ b/dag/extdeps/wiwynn/sv328r/specifications.dag @@ -12,6 +12,11 @@ import extdeps.external_authority { ExternalAuthority, ExternalModelScope, Exter import extdeps.memory.types { DimmBuffering, Registered } import extdeps.standards.nic_attachment { NicAttachmentClass, OcpNic3, OnboardControllerUnstated, OnboardPhyUnstated, OnboardNetworkController } import extdeps.standards.ocp_nic_3_0 { Sff } +import extdeps.toolchain.types { Architecture, Aarch64 } +import extdeps.vendor { Vendor } +import extdeps.hardware { Hardware } +import extdeps.vendor.ampere { ampere_vendor } +import extdeps.cpu.ampere { ampere_altra_family_product_brief_authority } import extdeps.wiwynn.sv328r.subject { WiwynnSv328rProduct, sv328r_datasheet_authority, wiwynn_sv328r_product, } @@ -82,14 +87,18 @@ data sv328r_bmc_manageability_network: OnboardNetworkController = OnboardNetwork type Sv328rProcessorConfiguration { socket_count: Nat cores_per_socket_stated_max: PhysicalCoreCount - architecture_label: NonEmptyStr + vendor: Vendor + altra_family_authority: ExternalAuthority + architecture: Architecture max_core_clock: Hertz } data sv328r_processors: Sv328rProcessorConfiguration = Sv328rProcessorConfiguration { socket_count: 2, cores_per_socket_stated_max: physical_core_count(count: 80), - architecture_label: "Ampere Altra, 64-bit Arm", + vendor: ampere_vendor, + altra_family_authority: ampere_altra_family_product_brief_authority, + architecture: Aarch64, max_core_clock: hertz(count: 3000000000), } diff --git a/dag/test/claim/wiwynn_sv328r_witness_test.dag b/dag/test/claim/wiwynn_sv328r_witness_test.dag index 260484449d5..83b1c2bfbf1 100644 --- a/dag/test/claim/wiwynn_sv328r_witness_test.dag +++ b/dag/test/claim/wiwynn_sv328r_witness_test.dag @@ -19,6 +19,9 @@ import extdeps.wiwynn.sv328r.specifications { sv328r_stated_weight, sv328r_storage, } +import extdeps.cpu.ampere { ampere_altra_family_product_brief_authority } +import extdeps.vendor.ampere { ampere_vendor } +import extdeps.toolchain.types { Aarch64 } import extdeps.memory.types { Registered } import extdeps.standards.nic_attachment { OnboardControllerUnstated, NamedOnboardController, OcpNic3 } import extdeps.standards.ocp_nic_3_0 { Sff, Lff } @@ -76,6 +79,9 @@ test fn w_memory_is_32_rdimm_slots_ddr4_3200() -> Bool { test fn w_processors_are_dual_altra_80_core_class() -> Bool { sv328r_processors.socket_count == 2 && physical_core_count_value(c: sv328r_processors.cores_per_socket_stated_max) == 80 + && sv328r_processors.vendor == ampere_vendor + && sv328r_processors.altra_family_authority == ampere_altra_family_product_brief_authority + && sv328r_processors.architecture == Aarch64 && hertz_count(h: sv328r_processors.max_core_clock) == 3000000000 }