LeanProfiler

3.8. The resulting event tree🔗

After these choices, one file in the indexing capture has a clear structure:

indexer.run
├── source.read                step=17, activity=filesystem
├── source.parse               step=17, phase=parse
├── source.analyze             step=17, module=Project.Parser
│                              backend=incremental
└── index.write                step=17, phase=output

withStep supplies metadata; it does not create another span. The trace therefore keeps step 17 on each event while preserving the actual parent relationships. The summary combines repeated steps under stable keys. A synchronized foreign interval states what completion means, and any memory fields come from an identified adapter. Nothing in the report has to be interpreted as an unlabelled convention.