Repository navigation
chore: codebase audit - #30
Merged
Merged
Conversation
caveman-shrink only shortens tool descriptions, which Claude Code already defers, and it ran an unpinned npm package in the path of all MCP traffic. gopls now starts in crocmobile/, where the Go module lives; from the repo root it reported "not a Go workspace". .claude/settings.json is removed, so each user approves the project MCP servers and their tool permissions locally.
Add *.p8: the notary key path is user-supplied, so a key saved in the tree would surface as an untracked file. Drop /sdlc/, whose producing skills are gone. Directory-only rules now end in a slash.
Both lived under the removed sdlc/ pipeline output and are not in the repo.
The xcode-27 runner image carries 27.1 (27A9275), the same build used locally. gomobile binds clean, swift test and CrocAppTests pass, and the macOS, iOS Simulator and CrocApp Direct builds succeed on it. Only 27.0 gets simulator runtimes on that image; the iOS leg builds for the generic simulator destination, which needs the SDK alone.
… preview croc-banner.webp came from the upstream croc repo and nothing referenced it. social-preview.png is used in one place only, the repository's Settings > Social preview (the live image matches it byte for byte), so its name now says so.
The icon layer is the new source at scale 0.75, which renders the same composition as the old 512px layer at 1.5 without upsampling it. app/CrocApp/AppIcon.icon is synced to assets/CrocAppIcon.icon. mascot-web.webp is re-cut from the new source. The favicons stay: the old source already exceeded every favicon size, and re-cuts from the upscaled art were four times heavier.
The background is a 1x+2x TIFF, so it is sharp on Retina; create-dmg passes any file type through. Finder draws icon labels black on any background picture, in dark mode too, so light plates sit under both labels. Icons move up to y=170 and the hint to 316: with the path bar on, Finder shows only about 340pt of content under the title bar, which hid the old hint. brand.md also drops the banner row and records the renamed social preview, the 1024px mascot and the new screenshot layout.
…evice
The script drives one iPhone 17 Pro Max and one iPad Pro 13-inch simulator plus the Mac app through a local croc relay on 127.0.0.1 with a random password and random codes, waits on harness readiness files instead of fixed sleeps, checks permissions up front, and restores the appearance and deletes its simulators on every exit. Output is assets/screenshots/{mac,iphone,ipad}/<screen>-{light,dark}.png plus the App Store set in assets/screenshots/app-store/. The debug harness seeds varied history and real-content payloads. TransferController gains harnessShownRelay, set only from the DEBUG harness, so a local-relay run shows the default relay in the trust UI.
…write assets/AGENTS.md assets/AGENTS.md now matches the directory: what each file is, who uses it, and how to change the icon, the DMG background, the social preview and the screenshots.
ViewThatFits measured the phase content before its text wrapped, so it picked the unscrolled branch on screens whose wrapped height exceeded the window: the "Link ready" screen lost the bottom of its Done button on iPhone. Every phase shares this container. It is now a ScrollView whose content is at least the window height, so it stays centred when it fits and scrolls when it does not.
…f dark The store set now covers iphone-6.9, iphone-6.3 (Apple's required iPhone class), iphone-duo-outer, ipad-13 and mac, ten per class with odd positions light and even dark. Each simulator gets an h:mm time format, en_US and, on iPad, full-screen multitasking before its final boot, so the status bar reads 9:41 whatever the host's settings and iPad shots carry no window chrome. Stored-link shots show a crocapp.dev link through the DEBUG --shown-link-origin flag while the upload still goes to the local store server. iphone-duo-outer is captured but not upload-ready: the simulator lays the app out sideways and clips taller screens.
Same layout and mascot as before, drawn in the dark token values. GitHub keeps its own uploaded copy, so the repository settings need the new file uploaded by hand.
The icon was one flat 512px raster on the system background. It is now three layers cut from the 1024px mascot (whole silhouette, belly, ink outline), stacked pixel-exact so the flat render matches the mascot. Body and belly are glass with a layer-colour shadow; the outline sits in its own group without glass so the line art stays crisp. The background is a mint gradient, deep green in dark mode, and the outline turns white when tinted so the drawing still reads. ictool renders every iOS and macOS variant and actool compiles it without warnings. app/CrocApp/AppIcon.icon is synced.
Three solo runs of the shot all passed, so the earlier one-off failure did not reproduce.
CI drops the format-comment job (the failing lint check now prints the fix as an error annotation) and the separate CrocKit swift build, which swift test already covers, crockit-verify included. Scorecard runs on its weekly cron and branch_protection_rule only, without the SARIF artifact. The weekly Go cron moves off the hour. Pages gets pnpm from pnpm/action-setup instead of corepack, which Node 25 and later no longer ship. Dependabot commits as ci(deps) and build(deps), and the docs site updates monthly. The bug form asks where the app was installed from and links Troubleshooting; a new form covers docs and website problems; the PR template asks only for what CI cannot prove. AGENTS.md and the tooling docs now say Dependabot reads the Xcode project's Package.resolved but never bumps the go.mod tool requirements.
…6.04 Every other action pin already sits at its latest release. Ubuntu 26.04 runners are generally available, and ubuntu-latest moves to them in November 2026 anyway; the image carries the git, gh, nc and OpenSSL the Linux jobs call. setup-go 7.0.0 keeps the go-version-file and cache-dependency-path inputs. golangci-lint 2.15.0 reports no issues in crocmobile.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
Codebase audit, one area at a time. Commits on this branch:
AI assistance: substantial
Verification
.github/:actionlint1.7.12 clean (xcode-27andubuntu-26.04are labels it does not know yet);golangci-lint2.15.0 clean incrocmobile/;swift test --package-path CrocKitpasses and buildscrockit-verify. This PR's own run exercises the changed workflows.