test: markdown parser subsystem (58) + custom-emoji readers (32)
Via subagents, probe-verified against real output, no bugs:
- markdown: internal/utils (11), inline/runner (7), inline/parser (21 — bold/
italic/underline/strike/code/spoiler/link, nesting, precedence, URL lookbehind),
block/parser (19 — headings/code-fences/quotes/lists/<br>/escapes). Closes the
biggest coverage hole (core message rendering).
- custom-emoji: PackMetaReader (6), PackImageReader (7), PackImagesReader (4),
utils equality+makeImagePacks (5), recent-emoji promote/increment/100-cap (10).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>