The owner’s standing order through the week was to keep going and say when the next build was ready. On the morning of 15 October they added the closing condition: once a fresh build existed, wrap up and summarise everything since the last one they had tested. By the evening the batch was merged and the build handed over.
What went in
Five branches, each with its own review:
- Editing follow-ups. The fixes reviewers had asked for on comments, stamps, print, and export.
- Fill from saved answers. The parked idea pulled forward, covered in its own entry.
- The first quality sweep. The previous build used as a person would use it: 136 checks, 126 passing, 6 failing, 4 that could not be tested on this machine. Every failure fixed.
- Scanning follow-ups. Compare now pairs pages by their text rather than their position, reads them a few at a time with progress and a Cancel button, and pairs a blank page with a blank page instead of with whatever was inserted beside it. The batch runner fails closed and reports a staged file it could not remove. Compression works on an encrypted file. Redaction measures an embedded font without widths by its encoding and takes a removed font out of the form’s resources too.
- Signing follow-ups. The change checker, hardened through four review rounds as described in the entry before this one, plus the smaller things: the app wipes its own copies of a certificate’s password once it is done with them, and a recent file’s thumbnail refreshes when the app’s own save makes it stale.
The count
Three review rounds on the scanning branch and four on the signing branch. Every finding fixed, none documented as a limit. The project’s handoff now reads the way the owner asked: the roadmap delivered, the follow-ups delivered, a build on their desk, and nothing in flight until they have tried it.