Repair a Legacy BSheet Reader
The model run preflight validates committed sheet documents. That does not prove
the model’s Python helper can discover each document. A compatibility warning
names the exact known legacy lib/native_sheet_reader.py digest that only reads
.btsheet.json files when the same commit contains valid .bsheet.json input
sheets. The warning does not block execution and does not infer compatibility
from arbitrary custom helper code.
Upgrade while preserving existing imports
Section titled “Upgrade while preserving existing imports”The v1.5.0 release publishes two modules. bsheet_reader.py reads both current
.bsheet.json and historical .btsheet.json inputs. Its companion
native_sheet_reader.py is a compatibility shim that keeps existing
from lib.native_sheet_reader import NativeSheetReader imports working. The
shim imports bsheet_reader.py from beside it, so install and verify both.
Download both files outside the network-isolated model sandbox and verify their exact release digests:
tmp_dir="$(mktemp -d)"curl -fL -o "$tmp_dir/bsheet_reader.py" \ https://github.com/Bridge-Town/financial-modeling-mcp/releases/download/model-authoring-helpers-v1.5.0/bsheet_reader.pycurl -fL -o "$tmp_dir/native_sheet_reader.py" \ https://github.com/Bridge-Town/financial-modeling-mcp/releases/download/model-authoring-helpers-v1.5.0/native_sheet_reader.pyprintf '%s %s\n' \ c431799998019c63b7639aa09ba4d9e97a0461172664cce9655a0cea128f3e2b \ "$tmp_dir/bsheet_reader.py" \ d1151742f43d9de1252abd8ad343155cb690806ca528933b9c0f0af65bef16ce \ "$tmp_dir/native_sheet_reader.py" | sha256sum --checkBefore updating the model, inspect its current helper files and model changes.
If lib/native_sheet_reader.py matches the diagnosed legacy digest
824fa62413de6ceb804ceb15a437e51db6ab6d08b9d3e5c054fbcdb1de66a9ca, install
the two verified v1.5.0 files together at lib/bsheet_reader.py and
lib/native_sheet_reader.py, then commit them as one model change. Existing
NativeSheetReader imports continue to work through the shim. New code can
import BSheetReader from lib.bsheet_reader.
If either current helper has a different digest or a local diff, preserve it and review the customization before changing the model. Port intended behavior onto the v1.5.0 reader or shim manually, keeping the verified standard files separate where possible. Do not overwrite custom code automatically and do not replace or rename sheet files to perform this repair. The v1.5.0 helper source and checksums are in the immutable release.
After committing the helper update, run the model against the sheet commit.
Record the model commit SHA, returned run ID, and successful run receipt. Check
that the run reads the expected exact values and emits
/outputs/native_sheet_read_set.json with the expected sheet, tab, and A1
identities. The read-set contains identities and status labels, not financial
values. A clean sheet preflight alone is not evidence that model execution or
recovery succeeded.