Repository navigation
MoneyMicros + Milliwatt → product consumers - #5227
gunbai-bot[bot] wants to merge 4 commits into
Conversation
Integrate latest main (auto-merge compute_fabric) and retrigger CI after the draft→ready cancel left a spurious cancelled check on HEAD. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closing in favor of #5235 (the canonical slice-1 fix). Manager intent-verification (by execution) found #5227 does NOT meet the slice-1 §3 goal: it leaves both scale-fixed aliases in #5235 removes both aliases from std/measure and rehomes them in the correct consumer direction (product.compute_fabric / product.hardware_selection), CI green, 2 approvals. The unique value in #5227 — the Hetzner extdeps field migration ( |
…#5282) * Hetzner catalog MoneyMicros migration + cost-quote witness (slice-1b) Salvage closed #5227 off #5235: migrate extdeps.cloud.hetzner pricing from bare Int micro-EUR fields to MoneyMicros (imported from product.compute_fabric), wire per_second_billed_cost_quote consumer, and prove end-to-end via claim-run witness. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix extdeps→product layer inversion: use std.measure MoneyAmountMicro Review on #5282: hetzner must not import product.compute_fabric. Catalog fields now use std.measure.MoneyAmountMicro (= MoneyAmount<Micro>) with std-side constructors; witness projects across the product boundary via money_micros(). Co-authored-by: Cursor <cursoragent@cursor.com> * Add dissolution trigger for MoneyAmountMicro / MoneyMicros dual alias Non-blocking review on #5282: both aliases collapse to MoneyAmount<Micro> in field positions once v2 parametric-in-field-position eval lands. Co-authored-by: Cursor <cursoragent@cursor.com> * Add Anchor source link to extdeps.cloud.hetzner header Operator guidance from smart-eagle-107: anchor extdeps modules on the cited upstream (Hetzner Cloud docs — server types + billing model authority). Co-authored-by: Cursor <cursoragent@cursor.com> * Audit fold-in: hetzner decomposition + anchor precision (#5282) - Anchor: docs.hetzner.com/cloud/servers/overview (CAX spec table) - vcpus/memory_bytes/disk_bytes -> HardwareThreadCount/ByteSize carriers - hourly/monthly_cap + currency: CurrencyCode (drop _eur field-name leak) - pricing_citation: opaque GE-D9256 doc-id only (no duplicated price prose) - Witness + unit_modeling lens rows updated; claim-run green Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
Ground the remaining product consumers on the
std.measuremoney and power carriers landed in the parent std session:extdeps.cloud.hetznercatalog pricing from bareIntmicro-EUR fields toMoneyMicros; add vendor-agnosticproduct.compute_fabric.per_second_billed_cost_quote+cost_estimate_unit_price_micros; prove end-to-end with a new claim-run witness (Hetzner CAX41 →CostEstimatewith 50500 micro-EUR unit price).product.hardware_selection(Model hardware decision-space: Pareto dominance over RAM/CPU/mobo/PSU #5076); no additional changes in this PR.Dissolves the interim Float-only cost_estimate comment target and removes resolved
unit_modelingadvisory rows for the old bare-Int field names.Test plan
gunbc run --source-root dsl --entry dsl/test/claim/hetzner_cost_quote_witness_test.dag --function hetzner_cost_quote_witness_holds --claim-run→truegunbc run --source-root dsl --entry dsl/test/claim/hardware_selection_witness_test.dag --function hardware_selection_holds --claim-run→true(Milliwatt + MoneyMicros regression)gunbc run --source-root dsl --entry dsl/product/compute_fabric.dag --function witness_shared_host_home_rejects_vm --claim-run→true(compute_fabric regression)