* fix: extra blank lines being added to initial html transform
* fix: ignore selected texted when determining contextual heading level
* fix: ignore events already handled by another plugin
* feat(ci): add CI workflow
* chore: add package-lock.json
- Add isCursorInCodeBlock() helper that detects
fenced code blocks by scanning from line 0 to
cursor, toggling on backtick/tilde fences
- Add early-return guard in onPaste() to bypass
reformatting when cursor is inside a code block
- Archive openspec change proposal and update
paste-interception spec with new requirement
- Fix appliedTransformations flag being overwritten on
each heading iteration instead of accumulated
- Prevents double-paste when last heading needs no
adjustment by using logical OR assignment
- Apply same fix to both contextual cascade and
maxHeadingLevel cascade paths
- Add openspec proposal, spec, and task tracking for
the heading cascade flag fix
- Add paste-interception spec with heading cascade
transformation flag requirements
- Add convertToSingleSpaced setting to collapse multiple
consecutive blank lines into single blank lines
- Add "Convert to single-spaced" toggle in settings UI
positioned above "Remove empty lines"
- Implement conditional disabling when "Remove empty
lines" is enabled with visual indication
- Add transformer logic that processes before empty line
removal with optimization to skip when not needed
- Add OpenSpec documentation for markdown-transformations
capability
- Update version to 1.3.0
Reduce confliction with other paste handlers:
- Add discrete "Reformat and Paste" command
- Don't prevent default paste behavior if no reformatting took place