Download the airport database instead of building it - #44
Open
RISCfuture wants to merge 1 commit into
Open
Conversation
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 07:34
8857c58 to
52140e4
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 08:00
52140e4 to
162b256
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
2 times, most recently
from
September 8, 2026 08:03
51f007e to
5f1ad13
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 15:48
5f1ad13 to
25a7e4e
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 16:13
25a7e4e to
3391004
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 16:20
3391004 to
3613c3b
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 16:26
3613c3b to
f4645a9
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 16:33
f4645a9 to
f8be41b
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 16:36
f8be41b to
15ddcda
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 16:58
15ddcda to
3ef137c
Compare
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 17:10
3ef137c to
cc416d7
Compare
This is what the rest of the work was for. The app asks for the store that was built for this cycle, expands it into a new generation, and switches to it — so the minutes it spent inserting a decoded property list into SwiftData become a transfer and a decompression. Cycles are asked for by name and walked backwards, one at a time. A manifest states the window it is effective for, which a mutable "latest" pointer could not, and a cycle whose publish failed therefore costs the pilot the previous cycle's data rather than four weeks with no update at all. The published schema fingerprint is checked before anything is downloaded, let alone opened. SwiftData answers a near-miss by migrating the store rather than refusing it, so a build that opened first would get a silent, slow migration where a clean fall back to importing was wanted. The download is checked against the digest its manifest published, and the expanded store still has to open and hold airports before anything switches to it. The OurAirports processing date comes across in the manifest, so About reports it whichever path installed the data. Nothing in the store file records when its non-FAA airports were gathered, and a store that arrived prebuilt would otherwise report none. The consent screen no longer claims the wait is a few minutes. It is seconds when the prepared store is there, and only the property-list fallback behind it still takes minutes. Every step may fail and none of them is fatal: a cycle nobody published, a store built for a different schema, a truncated transfer — each falls back to importing the property list, which is still published and still works. That is what keeps this an optimization rather than a dependency, and it is why the import path was kept rather than replaced. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq
RISCfuture
force-pushed
the
navdata/prefer-prebuilt-store
branch
from
September 8, 2026 18:09
cc416d7 to
7d36d45
Compare
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.
This is what the rest of the work was for. The app asks for the store
that was built for this cycle, expands it into a new generation, and
switches to it — so the minutes it spent inserting a decoded property
list into SwiftData become a transfer and a decompression.
Cycles are asked for by name and walked backwards, one at a time. A
manifest states the window it is effective for, which a mutable "latest"
pointer could not, and a cycle whose publish failed therefore costs the
pilot the previous cycle's data rather than four weeks with no update at
all.
The published schema fingerprint is checked before anything is
downloaded, let alone opened. SwiftData answers a near-miss by migrating
the store rather than refusing it, so a build that opened first would get
a silent, slow migration where a clean fall back to importing was wanted.
The download is checked against the digest its manifest published, and
the expanded store still has to open and hold airports before anything
switches to it.
Every step may fail and none of them is fatal: a cycle nobody published,
a store built for a different schema, a truncated transfer — each falls
back to importing the property list, which is still published and still
works. That is what keeps this an optimization rather than a dependency,
and it is why the import path was kept rather than replaced.
Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq
Stack created with GitHub Stacks CLI • Give Feedback 💬
🤖 Generated with Claude Code
https://claude.ai/code/session_01471376Uhug2TYZN8RDFGtq