Trevor PaughSystems engineer
Trevor PaughProject Chronicles

Chronicles / Eboda Gymnast

Comments

Milestone

The Comment tab is in: select and copy text, highlight, underline, and strike through, sticky notes, ink, free-text boxes, and moving or recoloring any of them. Every change is written as an incremental update and read back before it counts. Review caught two things: right-to-left text was being underlined along its top edge, and the branch had grown its own certification rule that disagreed with the shared one.

The fourth of the morning’s five branches brought the app its annotation tools, the thing most people reach for in a PDF reader after reading itself.

What it does

  • Text. Select, copy, and mark up with highlight, underline, or strikeout.
  • Notes and drawings. Sticky notes with their pop-ups, freehand ink, and free-text boxes.
  • Afterwards. Select any mark to move it or change its color.

Each change is appended to the file rather than rewriting it, and the app reloads the saved result and checks that the annotation is really there before reporting success. Pages that are rotated or cropped, encrypted files, and files whose permissions forbid annotating were all exercised in the real application, including a check that another reader shows the marks.

What review found

The reviewer’s brief, as always, was to try to break it. Two findings had to be fixed before merge. Text that runs right to left had been taken for upside-down text, so its underline was drawn along the top. And the branch had written its own test for whether a document is certified, which disagreed with the shared rule the certified-document fix had just put on main: it refused some documents it should have allowed and allowed some it should have refused. The fix uses the shared rule, works out each glyph’s orientation from the page rotation plus the character’s own angle, and adds a read-back test that deliberately corrupts the save in seven ways to prove each one is refused. Second review: approved, every mutation caught.