Annotations store absolute row indexes, but text rendering splits rows into type-specific table groups whose indexes restart at zero. As a result, annotations placed at a type boundary can disappear. Additionally, flush consumes at most one annotation at a row index, so consecutive Annotate calls at the same position discard all but the first annotation.
Acceptance criteria
- Add regression tests for annotations immediately before a struct type change and for multiple annotations at the same row position.
- Verify each annotation is emitted in insertion order at its intended location.
- Fix annotation tracking/rendering so grouping by struct type cannot invalidate annotation positions.
- Keep annotations intentionally excluded from JSON and YAML output.
- Run the relevant test suite.
Annotations store absolute row indexes, but text rendering splits rows into type-specific table groups whose indexes restart at zero. As a result, annotations placed at a type boundary can disappear. Additionally,
flushconsumes at most one annotation at a row index, so consecutiveAnnotatecalls at the same position discard all but the first annotation.Acceptance criteria