Skip to content

fix(ios): report downloaded runtimes whose disk nothing can reclaim - #144

Open
V3RON wants to merge 4 commits into
mainfrom
bug/79
Open

fix(ios): report downloaded runtimes whose disk nothing can reclaim#144
V3RON wants to merge 4 commits into
mainfrom
bug/79

Conversation

@V3RON

@V3RON V3RON commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Closes #79

simctl runtime delete unregisters a runtime and leaves its ~7.5 GiB download in macOS's asset store, where it keeps spending the free space the iOS download preflight measures and where nothing Simlock may do reclaims it. The driver now reports it instead of being blind to it.

advisories() lists the *.asset bundles in the store, reads each one's Info.plist for its build and version, drops the ones whose build the simctl list catalog still installs, and returns one runtime-cache-unreclaimable advisory naming the rest and pointing at Xcode → Settings → Platforms. doctor already renders driver advisories; there is no --fix, because deleting the bundles is root surgery on a system directory.

Builds decide the match whenever simctl reports one, so two downloads of the same marketing version are told apart; marketing version is the fallback for a simctl that reports no build. Read-only throughout, silent when the store is absent or unreadable, and it never measures the store — sizes come from a constant, not a walk.

Regression test: src/drivers/ios/index.test.ts → "reports downloaded runtime assets whose runtime is not in the catalog, and only those (#79)", the triage test, now passing. Five more cover build matching, ordering, an unidentifiable bundle, an unreadable store, and a store with no orphans.

Docs: the doctor finding in docs/CLI.md (plus the runtime delete refusal note it makes precise), and the accepted gap in docs/internal/KNOWN-PITFALLS.md.

pnpm check passes: typecheck, lint, format, 1836 unit tests, full e2e suite.

Written by an agent.

🤖 Generated with Claude Code

https://claude.ai/code/session_013DvemEX9mcew246mzysXEJ


Generated by Claude Code

V3RON and others added 4 commits September 9, 2026 20:52
…ntime delete and Simlock never reports them
`simctl runtime delete` unregisters a runtime and leaves its ~7.5 GiB
download in macOS's asset store, spending the free space the download
preflight measures. Nothing Simlock may do reclaims it, so the driver
reports it instead: `advisories()` compares the store's bundles against the
installed catalog by build and returns one `runtime-cache-unreclaimable`
advisory naming the leftovers, which `doctor` already renders.

Read-only and quiet on a store that is absent or unreadable; reads each
bundle's `Info.plist` and never its size.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013DvemEX9mcew246mzysXEJ
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.

iOS on-demand runtime downloads never actually free disk space (mobileassetd cache outlives simctl runtime delete)

2 participants