Release Notes — v1.4¶
Release date: March 2026
This release adds plan display, DAG visualization, and rich result rendering — bringing notebook-native display, structured plan inspection, and exportable SVG DAGs to the engine.
Plan Mode Enhancements¶
explain() — Detailed Plan Breakdown¶
Plan mode results now include an explain() method that produces a
section-by-section breakdown of the execution plan:
The output includes:
- Dependencies with provenance (inferred vs explicit)
- Cache targets and their downstream consumers
- Lookup schedule with materialization points
- Per-thread detail — sources, targets, write modes, and step counts
For loom-scoped results, the output opens with a loom summary line showing the loom name and weave count.
summary() — Compact Plan View¶
The summary() method provides a compact execution group view with
cache markers (asterisk suffix) and footer counts for threads, cached
targets, and lookups:
DAG Visualization¶
result.dag() — Exportable SVG DAGs¶
Plan mode results expose a dag() method that returns a DAGDiagram
object:
result = ctx.run("nightly.loom", mode="plan")
dag = result.dag()
dag.save("plan.svg") # export to file
dag # renders inline in a notebook
For multi-weave looms, dag() returns a loom-level swimlane diagram
with weave containers stacked vertically. Single-weave results get a
standard DAG.
Lookup Nodes in DAGs¶
Lookups are rendered as distinct pill-shaped nodes in the DAG with directed edges showing producer-to-lookup and lookup-to-consumer relationships. Internal lookups (produced by a thread in the weave) show the producer edge; external lookups appear as standalone nodes feeding into their consumers.
ExecutionPlan.dag()¶
Individual execution plans also expose a dag() method for per-weave
access:
Rich Notebook Rendering¶
All result modes now render automatically as styled HTML when evaluated in a notebook cell:
- Execute — thread results table with status badges, row counts, write modes, and target paths
- Validate — check/error report with color-coded status
- Plan — summary table with embedded DAG diagram
- Preview — output shape table (columns x rows per thread)
The HTML rendering uses inline styles for compatibility with both light and dark Fabric notebook themes.
Resolved Thread Context¶
Plan mode results now carry resolved thread metadata (sources, targets,
step counts) through to display rendering. This enables the explain()
output and the enriched DAG nodes.
Planner: Lookup Producer/Consumer Tracking¶
The ExecutionPlan model now includes lookup_producers and
lookup_consumers mappings that track which threads produce and consume
each lookup. These fields power the lookup node rendering in DAGs and
the lookup section in explain() output.
Compatibility¶
No breaking changes. All existing configurations and API usage continue to work without modification.
| Component | Version |
|---|---|
| Python | 3.11 |
| PySpark | 3.5.x |
| Delta Lake | 3.2.x |
| Microsoft Fabric Runtime | 1.3 |