- segments.py: a block of plain text with inline links now stays ONE wire
segment (Mark/Span) — the link label crosses in sentence context, so
translations come back grammatically coherent instead of incompatible
snippets. join() re-inserts the link markdown into the translated block
at weight-mapped positions (word units; CJK ideographs and kana runs
count one unit each), degrading to the source label on empty slices and
still rejecting markup injection. No sentinels on the wire: boundaries
are found by text processing alone.
- translate.py: the Dispatcher tracks Span (offsets + link marks) for the
in-flight job.