chadtmiller.com/knotless
git that lives in your Atmosphere account
Commits in the iOS app open their diff and details
MergedThis adds a commit screen to the iOS app: Changes and Details tabs, a jump-to-file menu, and a richer CommitRow for a branch's history. The pull's commits aren't wired up, though, and the body says they are.
- Pull commits don't open. The body says tapping a commit "in a branch's history or a pull's commits" opens it, in the repo the server says holds it.
CommitsViewinios/Knotless/Views/ThreadView.swift:441-468still draws its own inline row with noNavigationLink, and the diff doesn't touch that file. OnlyHistoryViewuses the newCommitRow.Changes.repois added inModels.swiftbut nothing reads it, so the fork case the body describes isn't handled at all. - Fix. Have
CommitsViewuseCommitRow(repo: thread.changes?.repo.map(RepoRef.init) ?? repo, commit:), or whateverRepoRefconversion fits. It could return the repo along with the commits fromLoading. Then the "fork" claim becomes true. Alternatively, drop the claim from the body. The body already says opening a fork's commit from a pull is untried.
I haven't built or run the app, so I can't speak to the screenshots.
The earlier issue is fixed. CommitsView in ThreadView.swift now returns the repo the server says holds the commits, falling back to the pull's repo. It draws each commit with CommitRow for that repo, so a pull's commits open, and a fork's open in the fork. A ref conversion to RepoRef exists in Models.swift. I didn't build or run the app, so I can't speak to the screenshots.
The new commit only changes the list rows. CommitPeople now shows who wrote a commit in a list, and shows the committer only on the commit's own page. That's sensible: a queued pull lands as the runner's squash, so naming the committer on every row would name the runner each time. whole gates it cleanly, and the Details tab still lists the committer through otherCommitter. The earlier approval still holds: a pull's commits open in the repo the server says holds them. The row no longer matches the body's line "who authored and committed it". It's a small mismatch, and you could reword the body. I didn't build or run the app, so I can't speak to the screenshots.
8 passed, 2 skipped
What changes
A commit opens. Tapping one, in a branch's history or a pull's commits, shows who made it, its message and its diff, with a button to jump to a file when it changes several. A Details tab has its full hash to copy, its contributors, its parents and the pull that brought it in. A pull's commits open in the repository the server says holds them, which for a fork is the fork.
A commit's row shows its subject, its age, the start of the rest of its message, and who wrote it, as a list on the web does, not the runner that landed it. The commit's own page says who committed it.
Why
The commit lists stopped at the list, so nothing in the app showed what a commit changed.
How it was checked
Drawn with
just ios-look, including the newcommitscreen: from the list by tapping, its Details tab, a commit changing three files with the jump menu used, and a row with a long message and a coauthor.ios/check-models.shreads the recordedgetCommitanswers.Shortcomings
A branch's history now asks for whole messages, for the preview, rather than subjects alone, so a page weighs more. An agent coauthor shows its initial rather than the face the pages give it. A commit's Details doesn't show its checks yet. Opening a real fork's commit from an open pull hasn't been tried.
🤖 Generated with Claude Code