Commit e006cf0
Fix all 10 demo-gallery live-test findings (0.3.9)
Every finding from the end-to-end live test of the demo gallery against
real Excel + ModelRisk, fixed and re-verified live (8/8 previously
failing flows now pass):
HIGH
- Array functions CSE-entered: create_copula, create_time_series and
fit_all_data_and_wire's copula U-block now array-enter over the full
range via new audit-logged safe_write_array_formula (FormulaArray).
Single-cell writes errored or - worst case - left U-slots empty so
wired marginals SILENTLY sampled uncorrelated. Re-verified: Clayton
wire now induces Spearman ~0.72 in simulated inputs.
- Merged-cell writes raise: COM silently discards writes into merged
non-anchor cells (an object 'written' under a merged note row
vanished -> all-zero simulation, no error). write_cell + array writes
now guard and raise an actionable message.
MEDIUM
- Text cells no longer scanned as live formulas (phantom outputs/
distributions, summary duplicates, audit noise): centralised
starts-with-'=' rule in list_inputs/outputs/distributions + audit
engine (extends bug #27's get_workbook_summary fix).
- Catalogue: phantom 'OutputSize' param stripped (extraction artifact
on array functions; real VoseTimeGBM sig starts at mu - verified
live both ways).
- Cross-sheet support: fit_all_data_and_wire gains target_sheet;
fit_tail/fit_and_rank/fit_copula_to_data accept qualified
Sheet!range data ranges (no more 'Model'!Data!D5:D44 COM blowups).
- fit_distribution_to_data gains as_object (FitObject form for
compute_distribution); params keyed off the spec's own names.
- generate_executive_summary: outputs deduped; true P80 (0.80 added to
default percentile set - previously fell back to P95).
LOW
- Chart names cleaned (Histogram_<output>, CDF_<output>).
- read_range orientation: values/formulas now agree for single-column
ranges (_as_2d_shaped reshapes by the range's true shape).
- _params_dict accepts positional {value}-only entries.
Demo gallery corrections: 02 asks for the OBJECT form in step 3; 09
steers helper objects to unmerged B30/B31; 10's named range renamed to
Revenue2030 (Rev2030 is a valid cell address). All 12 workbooks
re-verified: real-Excel recalc zero errors, format/path checks clean.
New: ExcelBridge.write_array_formula/clear_range/_guard_merged_cell,
ModelRiskBridge.safe_write_array_formula, _ChangeSet.write_array with
block rollback. 20+ new/updated unit tests; 635 green; ruff+mypy clean.
Version 0.3.8 -> 0.3.9.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 6edac8d commit e006cf0
30 files changed
Lines changed: 535 additions & 51 deletions
File tree
- examples/demos
- src/modelrisk_mcp
- audit
- bridge
- tools
- tests/unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
7 | 26 | | |
8 | 27 | | |
9 | 28 | | |
| |||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
0 commit comments