Repository navigation
Conversation
…and harness instruments, stack mechanics and exhaust thermal models Reads the ALTRAD8UD-1L2T manual v1.20 first-party and models what it settles: DC-IN on the 8-pin inputs with the 4-pin signal unused, a stated minimum of one input, pinouts, five fan headers, rear I/O, the FRONT-edge placement of every power and fan header, and the ambient range. The board profile shape and the input-population standing move from the Gigabyte module into extdeps.boards.types on their second consumer, as that module's own note directed. Adds cited rows, each graded by how it was read: Bambu PLA Basic and PETG HF sheets, Molex Mini-Fit Jr ratings, AWG copper resistance, the ATX12V +12 V band, dry-air properties, Arctic P8 airflow/mass/current/PST, Dynatron W1 mass and fan duty points, and the force, pressure, flow, density, specific-heat and acceleration carriers std.measure lacked. Product models for the operator's milk-crate direction: a derived stack pitch (stack_geometry), a per-node 12 V feed with typed refusals (node_power_feed), the power supply as a stack cassette with placement as a parameter and the earth obligations re-homed to it (power_cassette), a harness census that counts and measures every cable from the geometry (harness_census), a mass-roster identity join with bearing, buckling, tip-force and tip-acceleration limits and a creep boundary (stack_mechanics), and an exhaust-rise derivation against the sheet HDT (exhaust_thermal). Five witness files; the design and the reversed program-plan rulings are in docs/plans/milk-crate-stack-design.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UxN16vVsPsuTMMcJgqoEtm
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3aee8ee9ee
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let h = centre_of_mass_height_mm(unit: unit, station: station, node_count: node_count) | ||
| let half_base = footprint_half_width() / 1000 | ||
| if h == 0 { newton(count: no_mass) } else { newton(count: millinewton_count(f: weight_mn(m: column_mass(unit: unit, station: station, node_count: node_count))) * half_base / h / 1000) } |
There was a problem hiding this comment.
Use the stack-top height for the service-push moment
When service_push is the documented force applied at the top of the stack, dividing the restoring moment by the center-of-mass height overstates the force needed to tip the column—by roughly a factor of two for a uniform stack. This can make stack_admission accept columns that fail the declared push criterion; calculate the applied-force arm from the stack's top height instead.
Useful? React with 👍 / 👎.
| let node_moment = node_count * gram_count(g: unit) * (node_count * p) / 2 | ||
| let station_height = match station.placement { TopOfColumn => node_count * p + p / 2 BottomOfColumn => p / 2 BesideColumn => p / 2 } | ||
| let station_term = match station.placement { TopOfColumn => gram_count(g: station.mass) * station_height BottomOfColumn => gram_count(g: station.mass) * station_height BesideColumn => no_mass } |
There was a problem hiding this comment.
Shift node moments above a bottom-mounted station
When station.placement is BottomOfColumn, the power cassette occupies the first pitch and every node center is one pitch higher, but node_moment always places nodes from p/2 upward as if no station were beneath them. This understates the column center of mass and therefore overstates both tipping force and allowable acceleration, potentially inflating max_admitted_height for the placement the tests recommend.
Useful? React with 👍 / 👎.
| fn bank_flow(fans: Nat, duty: Percent) -> MillilitrePerSecond { | ||
| millilitre_per_second(count: fans * millilitre_per_second_count(f: arctic_p8_published_airflow) * percent_count(p: duty) / 100) |
There was a problem hiding this comment.
Derate fan airflow for the installed pressure load
When the fans are installed behind the modeled guards, vents, and chassis restrictions, multiplying their published maximum airflow by fan count and duty treats the free-air maximum as delivered system flow. Because mount_thermal_margin turns that optimistic flow directly into PrintedPartBelowHdt, it can report PLA safe even when the actual operating point has substantially less flow; the admission needs a measured/curve-derived installed-flow input or must remain unresolved.
Useful? React with 👍 / 👎.
| let drop = branch_drop_mv(resistance: resistance, length: inputs.branch_length, current: current) | ||
| let at_connector = match nat_sub(a: millivolt_count(v: inputs.station_setpoint), b: millivolt_count(v: drop)) { NatDifference { value: v } => millivolt(count: v) NatSubtrahendExceedsMinuend => millivolt(count: zero_ma) } | ||
| if millivolt_count(v: at_connector) < millivolt_count(v: inputs.regulation.minimum) { | ||
| NodeFeedRefused { cause: ConnectorVoltageBelowBand { at_connector: at_connector, band_minimum: inputs.regulation.minimum, drop: drop } } | ||
| } else { | ||
| NodeFeedAdmitted { feed: NodeFeed { node_current: current, inputs_populated: populated_count(current: current, limit: limit), per_input_limit: limit, branch_round_trip_drop: drop, at_connector: at_connector } } |
There was a problem hiding this comment.
Include pigtail resistance in connector voltage
For every DC-in plan with nonzero ATX12V pigtails, at_connector subtracts only the shared branch's drop even though harness_census separately models the pigtails between that branch and the board inputs. A long or thinner pigtail can therefore put the actual board connector below 11.4 V while node_feed returns NodeFeedAdmitted; include the split pigtail current, gauge, and length before evaluating the connector voltage.
Useful? React with 👍 / 👎.
| fn station_adequacy(station: PowerCassette, node_dc_loads: List<Watt>) -> PsuAdequacy { | ||
| let total = fold(node_dc_loads, init: 0, f: (acc, w) => acc + watt_count(w: w)) | ||
| psu_adequacy_for_load(load: watt(count: total), rated: station.supply_rated_output) |
There was a problem hiding this comment.
Enforce the station's declared node capacity
When the supplied load list contains more entries than station.nodes_fed, station_adequacy ignores that capacity and can return PsuAdequate whenever wattage is sufficient—for example, a high-rated four-branch station would admit eight nodes. This bypasses the declared protected-feed count, so adequacy must refuse or become undecidable when the load count exceeds nodes_fed.
Useful? React with 👍 / 👎.
| PstPassThrough { max_chained_standing: _ } => [ | ||
| CableRun { node_index_from_bottom: node, role: FanHeaderCable, count: 1, each: fan_header_run(plan: plan) }, | ||
| CableRun { node_index_from_bottom: node, role: FanPstLink, count: nat_minus(a: plan.fans_per_node, b: 1), each: millimeter(count: 100) }, | ||
| ] |
There was a problem hiding this comment.
Count required fan extension cables
When fan_header_run exceeds the fan's 400 mm lead, the census sets fan_header_extension_needed but this branch still emits exactly one FanHeaderCable per node. Consequently cable_count, the run roster, and downstream ordering omit the extension despite the adjacent contract describing it as a second cable; emit/count an extension run whenever the flag is true.
Useful? React with 👍 / 👎.
|
Heads-up before queueing: this PR adds |
|
Closed without folding in the v1 closeout bankruptcy (#13641). A conflicting printer consolidation (2026-10-04) with no owner. Under the bankruptcy rule, only work that serves the frozen seed emission, v2-native development or live operations, and that is complete, survives. The branch is kept for archaeology; no follow-up obligation is created. — sent from neat-wolf-604 |
Consolidates the cassette mechanical work onto
mainand prepares one shared design for ALTRAD8UD, NVIDIA GH200 P4261, Mt. Collins and Mt. Jade. The retained Altra prototype remains the geometry compatibility fixture; the larger platforms have planning layouts and explicit mounting obligations.Result
CitedFigureStanding. Portwell's Collins dimensions have an upstream scoped module and a direct publisher-locator read receipt; the shorter-axis/across-chassis assignment remains a product inference, and the metric/inch discrepancy is preserved.Boundaries
The existing Altra solid realization is preserved. The shared partition graph still needs larger-board panel/joinery solid realization, verified support/keep-out maps and retained-component placement. A 3 × 4 planning grid is not a fabrication-ready Jade/Collins tray. GH200 outline data remains unresolved. Proposed clip/pin retention, stack strength, creep and cooling remain unqualified; no safe loaded stack count is certified.
The cassette-wide
test.claim.cassette_entry was removed fromrequired_gate_prefixesat the operator's request. No replacement required-gate rows were added; existing changed-witness selection is unchanged.Slicing (#13223) and printer authorization (#13149 and its approval-client dependency) remain separate operational changes. No printer jobs were started by this update.
Validation
19 focused checks passed on the final allocator tree: six allocation/boundary/refusal checks, eight mechanical-evidence/review-emitter checks and five platform checks. Twelve existing ASRock standoff checks also passed during the preceding authority refactor. The combined review emitter succeeded. All 34 retained Altra part descriptions and the emitted CAD program compare identical to the prior review, so no additional CAD realization was needed for unchanged geometry.
Earlier exact CAD checks passed for 34 valid solids, including 28 connected printed solids under the bed bound, with no printed-part overlaps within one or two units and no printed/hardware-envelope intersections. Browser checks covered model loading, selection, rotation, piece view and mobile width. These do not establish load, material or thermal qualification.
The earlier full local floor passed its 63 changed witnesses but refused in the browser/KVM wet lane, including an unmet browser-runner premise on srv2. Full GitHub checks on the current head remain the merge gate; focused checks are not a green-gate claim.
Interactive Altra review: https://altra-chassis-workbench.briansrls448156.chatgpt.site/140mm.html (owner-private; Altra geometry unchanged by this allocator refactor).
Current execution queue:
docs/plans/cassette-completion-tasks.md. Mechanical sources, generated candidate table and verification boundaries:docs/plans/cassette-board-mechanical-references.md. Platform migration:docs/plans/cassette-platforms.md. Power interface:docs/plans/cassette-server-psu-interface.md.