v1.1.0 — Roundtrip fidelity + config-knob enforcement + tool-ID symmetry
Correctness pass. The v0.3.0 schema additions (junction, tab locked/env, group g/info/x/y/w/h, comment w/h) were declared in flows-json.ts but never propagated through the decompile→compile pipeline, so any author tool re-staging a flow silently dropped them. This release closes that gap, wires the previously dead config knobs, and resolves the asymmetry between Node-RED IDs in list_flows output and authoring keys in author-tool inputs.
Fixes — lossy decompile/compile roundtrip
- Junction nodes round-trip via new
TabSpec.junctions/SubflowDefSpec.junctions. - Tab
locked+envround-trip via typedTabSpecfields. - Group
x/y/w/h/g/inforound-trip as top-level fields (previously dropped or misshaped intostyle). - Comment
w/hround-trip viaCommentSpec.size. wire-targetsvalidator now checks junction outgoing wires.- Analyze structural counters and orphan-detection now include junctions.
Added — config-knob enforcement (previously declared but unenforced)
MAX_FLOW_SIZE_BYTES,ALLOWED_NODE_TYPES,BLOCKED_NODE_TYPESenforced in author + dangerous flow-mutating paths.REQUIRE_SNAPSHOT_BEFORE_DEPLOY=falseskips the pre-deploy snapshot and returnssnapshot_before: null.REQUIRE_DIFF_BEFORE_DEPLOY=truerefuses no-op deploys.SNAPSHOT_RETENTIONauto-prunes per env on everysave();pre-dangerousandforcedtags are protected.
Changed — list_flows and resolveTabId accept either form
list_flowsexposes bothid(Node-RED tab ID) andauthoring_keyon each tab entry.- Every author tool's
tab_idparameter accepts either form.
Changed — read-tier annotation overrides
set_targetandexport_snapshotdeclarereadOnlyHint: false, idempotentHint: false.
Breaking changes
deploy_staged_change.snapshot_beforeoutput widened fromstringtostring | null(impacts only whenREQUIRE_SNAPSHOT_BEFORE_DEPLOY=false).- Author tools no longer silently drop junctions / tab
locked/ group geometry on re-stage.
Verification
538 unit + 17 property + 82 integration tests · 60/60 tool coverage · npm audit --omit=dev: 0 vulnerabilities.
Full notes: CHANGELOG.md § 1.1.0