
########## REFLOW stress (multi-edit survival) ##########

=== STRESS page 0: sequentially reflowing 4 targeted paragraphs ===
   page 0: 10/10 substrings survived: missing=[]

=== STRESS page 1: sequentially reflowing 4 targeted paragraphs ===
   page 1: 9/9 substrings survived: missing=[]

==> STRESS PASS

########## REFLOW no-op overlay (regression: left + justify paragraphs must stay ~baseline) ##########
overlay [0] anchor='Java Backend Developer' edit=no-op path=greedy dpi=150
   diff pixels = 35821 / 2103750 (1.703%)   bbox=(112, 263, 1150, 1435)
overlay [0] anchor='Java Backend Developer' edit=no-op path=lines dpi=150
   diff pixels = 35441 / 2103750 (1.685%)   bbox=(112, 263, 1150, 1435)

########## CENTER align smoke ##########
   'Software Engineer' heading not found (skip center smoke)

########## RAW TEXT StreamEditor smoke (P1a) ##########
   extract_text_objects(0) -> 727 objects
   replace obj#2 'FAISHAL' -> 'FAISHAX' : success=True
   re-extract obj#2 = 'FAISHAX'  (expected 'FAISHAX', match=True)
