Skip to content

Fix what a read of the whole tree turned up, and cut the comments - #139

Open
andiwand wants to merge 1 commit into
mainfrom
review/correctness-and-comments
Open

Fix what a read of the whole tree turned up, and cut the comments#139
andiwand wants to merge 1 commit into
mainfrom
review/correctness-and-comments

Conversation

@andiwand

@andiwand andiwand commented Aug 7, 2026

Copy link
Copy Markdown
Member

A pass over the whole repo for correctness, comments and conciseness. 24 files, -480/+392.

App

  • Document reported to its delegate from UIDocument's read queue, so the first open drove UIKit — progress bar, webview.load, alert presentation — off the main thread.
  • setVCconstraints added a banner height == 50 the storyboard already has as bannerViewHeight; in Full, hideBannerView sets that outlet to 0, so two required constraints contradicted each other.
  • The one-time view setup sat in viewWillAppear and stacked another constraint set on every appearance.
  • The search query went into evaluateJavaScript unescaped, so a " broke the call apart rather than searching for itself.
  • CoreWrapper kept a document handle across a failed translate, close() ran twice on the way out, the progress bar stuck on the error path, and the search button stayed disabled after one failure — so an encrypted document had no search even after the right password.

Release pipeline

  • The signing keychain relocked after 15 minutes, but the job now archives both apps on it: the second export failed with "User interaction is not allowed", 20 minutes in.
  • deliver ran a full precheck on every upload and discarded the verdict — submit_for_review is already false, so nothing read it.
  • An empty build number only surfaced in record, i.e. after both apps were uploaded.
  • paths-ignore: '**/*.md' never matched a root file, so every changelog edit triggered a full simulator+device build.

Scripts

  • changelog-section.py wrote its errors to stdout, which both callers redirect: a missing section failed the pre-build check silently, and record wrote the error text into the release notes. A too-strict heading regex also let sections bleed into each other.
  • CHANGELOG.md had two compare links against tag 1.37, which exists nowhere; README.md documented a toggle in a CoreWrapper.mm that does not exist.

Comments

Three passes. The ones restating the next line are gone, the stale ones are gone, what is left is the why.

Both schemes build with only the two pre-existing deprecation warnings, all 27 tests pass, format.sh --check is clean.

Two for a human

  • The Full app ships Google's public sample AdMob app ID — probably only to satisfy the linked SDK, but that is what got rejected under 5.1.1 in Write our own ATT purpose string instead of Google's sample #137. Left alone; I do not know the real one.
  • The 1.37 changelog heading was dated but never shipped (build 44 was rejected, no build/* tags exist), so I removed the date. Correct me if it did go live.

🤖 Generated with Claude Code

Correctness, across the app, the release pipeline and the scripts. The
app fixes worth naming: Document reported to its delegate from
UIDocument's read queue, so the first open drove UIKit off the main
thread; setVCconstraints added a banner height constraint the storyboard
already had, which in the Full app contradicted the zero hideBannerView
sets; the one-time view setup sat in viewWillAppear and stacked another
constraint set on every appearance; and the search query went into
evaluateJavaScript unescaped.

In the release path, the signing keychain relocked after fifteen minutes
while the job now archives both apps on it, deliver ran a precheck whose
verdict it then discarded, an empty build number only failed after both
uploads had gone out, and paths-ignore never matched a root .md.
changelog-section.py wrote its errors to stdout, which both callers
redirect: a missing section failed silently, and record wrote the error
into the release notes.

The comments got three passes. The ones restating the next line are
gone, the stale ones are gone, and what is left is the why.

Both schemes build, the suite passes, format.sh --check is clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gu9vyCGNhZbUeF4195ByUv
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant