Claude/api key review setup 79sajy - #98
Merged
Merged
Conversation
The request body used Chat Completions conventions that the /v1/responses endpoint rejects: response_format instead of text.format, content parts typed 'text' instead of plain strings, and strict:true alongside additionalProperties:true. Any run with a valid key would have failed with a 400 before this fix. Also harden response parsing (raw REST responses have no output_text convenience field), clarify the missing-key error message, and bump workflow actions off deprecated Node 20 runtimes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GM6nhbnf2bYhQQWzAh2Bwm
- Normalize assumption overrides per time block (year1..years16_20) so
block-keyed JSON overrides get numeric shorthand wrapped into {value}
objects and merge onto paths the engine reads; unknown block keys warn
instead of merging into dead paths.
- Route expansionRates and dcInferenceShare reads through resolveGrowthRate
so plain-number overrides no longer silently fall back to hardcoded
defaults.
- Add NODE_GROUP_MAP and use it in ChartsTab, SupplyEngineTab, and
MarketClearingTab, which indexed the NODE_GROUPS array by group letter
and always got undefined colors/names.
- Remove dead tight2026.demandAssumptions field and its helper (never
consumed by App or the engine; values were identical to base).
- Add supply expansion ceiling editing table to AssumptionsTab (engine read
these rates but the UI had no way to change them).
- Render the monthly assumption update log in AssumptionsTab (was written
by the updater but displayed nowhere).
- Harden update-assumptions.mjs: explicit output shape instructions in the
prompt, wrap unwrapped node overrides, protect updateLog history from
being overwritten by model output.
- Guard chart tooltips against null series values; fix hook-order violation
in GrowthRatesTab; stop ChartsTab node selector dropping nodes past 20.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GM6nhbnf2bYhQQWzAh2Bwm
- Reconnect gpu_inference fab capacity: it was defined (350K/mo) and grown but never consumed, silently deleting ~37% of accelerator supply. Both fab lines now feed the shared GPU pool; forecasts, tightness, utilization, and reported capacity use the combined figure. - Make MW gating sequential: built datacenter capacity is no longer a substitute for power hookups. Only grid_interconnect and off_grid_power pool (they are genuine alternatives); datacenter_mw gates separately, and grid/off-grid split MW demand by share instead of each seeing the full load (~3x double-count on the power chain). - Tie infrastructure to net fleet growth: buildings, hookups, transformers, construction, and ops staffing are reused when a GPU is replaced, so their demand tracks deployments minus retirements, and gating credits retired capacity. Previously a steady-state fleet generated perpetual phantom construction demand. - Fix glut/contraction: tightness now compares demand flow to production capacity (dividing by inventory+capacity made every balanced stock market read as hard glut); organic expansion pauses in glut instead of compounding into guaranteed overcapacity; deeply idle capacity contracts up to 10%/yr (floored at half); the demand forecast ratio can go below 1 so planning can see declines. - Align duplicate intensities: cowos/advanced_wafers inputIntensity in nodes.js matched to the TRANSLATION_INTENSITIES values the engine uses; cpu_server fallback matched to the node value. Verified in-browser: no non-finite values in any series across base and slowdown scenarios; slowdown now shows real capacity rationalization (HBM 10.1M -> 8.3M, CoWoS 222K -> 135K) which was previously impossible; base case no longer reports balanced markets as gluts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GM6nhbnf2bYhQQWzAh2Bwm
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.