Repository navigation
fix: support swift.org Swift 6.3 toolchains - #216
Merged
Merged
Conversation
8 of 10 tasks
Owner
|
Thank you for your contribution! |
cte13
pushed a commit
to cte13/PokeTokenBar-iOS
that referenced
this pull request
Aug 23, 2026
Brings in upstream features and integrates them with the fork's iOS/OpenCode Go work: - Antigravity 2.0 / IDE official rate-limit tracking (chattymin#210, chattymin#219, chattymin#220) - French (fr) UI language (chattymin#185) — added fr strings to fork-only labels - Per-provider additional scan folders (chattymin#177/chattymin#187) - Account-labeled official limits (chattymin#199), swift.org Swift 6.3 toolchains (chattymin#216), claude-fable-5 pricing (chattymin#198) Conflicts resolved in Localization, UsageStore, PopoverView, and their tests by keeping both the fork's OpenCode Go limits and upstream's Antigravity limits, and by giving fork-only localized labels their French values. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
LeeTaek
added a commit
to LeeTaek/PokeTokenBar
that referenced
this pull request
Aug 24, 2026
Resolves conflicts with three changes that landed after this branch was cut. **French (chattymin#185) and Brazilian Portuguese (chattymin#215) UI languages.** `L.t(...)` now takes six arguments, so every Pokédex-entry string here gains `fr` and `pt` values. `AppLanguage.apiCodes` keeps the new `.fr`/`.pt` cases and applies this branch's lowercase `ja-hrkt` fix to `.ja`. `PokeAPIClient.langCodes` keeps the "union of apiCodes" invariant that chattymin#215 documented — the dead `"ja-Hrkt"` entry is corrected in place rather than dropped, so the lockstep rule still holds. **Representative Pokémon (chattymin#158)** was built on the cell-selection model this branch removes: a tap selected a cell and the footer offered a pin action. With taps now opening the detail view there is no selection to hang it on, so the action moves to the detail header, next to the shiny toggle — a species-level action on the species screen. That also frees the 332pt footer row, which `RepresentativeToggleLayoutTests` documents as too tight for the pin action plus species text in longer locales. The cell keeps the representative accent background (state, not action); the selection highlight is gone with selection itself. `RepresentativeFooterButton` is renamed to `RepresentativeToggleButton` since it no longer lives in a footer. **Swift 6.3 SwiftUI isolation guard (chattymin#216).** The new views here get explicit `@MainActor`. `FlavorCacheKey` is split across lines because the guard matches `": App"` as a substring and a one-line `let language: AppLanguage` tripped it. Portuguese also motivated a behavior change agreed for this branch: PokéAPI has no `pt` language at all, so a language whose entry list comes back completely empty now falls back to English with an on-screen notice. Per-version gaps still drop out silently — only a wholly empty language falls back, and English itself never does.
7 of 10 tasks
donky-ey
added a commit
to donky-ey/PokeDexBar
that referenced
this pull request
Oct 16, 2026
…c and plan (SP4 batch A) (#20) * docs: add SP4 upstream port triage spec Classify all 191 non-merge commits in main..upstream/main (v2.5.6, 77f789d): 56 already in the fork, 87 not applicable, 26 port candidates grouped into batches A-H, 22 needing a user decision (new providers, small UX features, save backups). Also checks open upstream issues chattymin#337, chattymin#443 and chattymin#439 against the fork's code; all three apply. * docs: record the confirmed SP4 scope in the spec The user confirmed the triage recommendations: new providers, the pet size ceiling, variable menu-bar width, the Low Power GIF policy and save backups stay out; the right-click menu (chattymin#373) joins batch E; chattymin#337 and chattymin#443 are in, with chattymin#443 skipping claude-code mirror rows unconditionally. chattymin#216 is deferred. * docs: add the SP4 upstream port plan Eight batches (A-H), one PR each, executed A -> D -> G -> B -> C -> E -> F -> H. * fix: isolate every app-support store from test runs (upstream chattymin#359) `swift test` uses the same storage name as the installed app, so any code that reached a store's default path read or wrote the user's real Application Support folder. Upstream chattymin#359 measured usage-cache.json being rewritten by one suite run. A sweep found the same class in more places: the sprite cache (a test wrote fake GIFs into it), and the save, base-index.json and weather.json, which were safe only because every test happened to inject a path. Instead of gating each store, isolate at the root: for non-bundled runs AppEnv.supportDirectory() returns a per-process temporary folder, and every Application Support path now goes through it. The session-key store already did this on its own and now shares the root. AppEnv.userSupportDirectory names the real location for comparisons without creating it. Guards: AppStorageIsolationTests pins the root branch, each store's default path, and a source scan that forbids composing Application Support paths outside AppEnv. All three fail when the isolation branch is reverted. The upstream regression test is ported as testDefaultPathCacheNeverRewritesTheUserFile. The screenshot generator clones the installed app's sprite cache read-only into the isolated cache so its renders still have sprites. CLAUDE.md: the test-storage rule now covers all app storage, not only credentials. * test: pin the locale when asserting grouped numbers (upstream chattymin#166) TokenFormatter.grouped follows the system region, as macOS does, but the test hardcoded comma grouping, so it failed on machines whose region groups digits differently. grouped now takes a locale defaulting to .current (production unchanged); the test pins en_US and adds an es_ES case that fails if the argument is ignored. * test: guard UI sources against Hangul string literals (upstream chattymin#222) Interpolation tests only see strings that already go through L, so a literal that never reaches the table is invisible to them. Scan the UI sources (plus the app entry file, which holds UI copy in this fork) and fail on any Hangul string literal; Korean comments stay allowed. Core and Player are left out because their per-language data tables hold Hangul legitimately. Only the test is ported; the Antigravity notice it shipped with does not exist here. * test: check the bundled storage namespace now that test runs are isolated testEveryStoredPathDerivesFromTheNamespace asserted that the support folder ends in the storage name, which held only because swift test used the real folder. Check the bundled path with the pure supportDirectoryURL(isBundledApp:) and keep the save-under-the-root check for the running process. * test: stop the seal test from failing on random ciphertext testPayloadIsNotReadableInTheFile searched the envelope for "42". The seal uses a fresh AES-GCM nonce each time, so those two characters show up in the base64 by chance in roughly 1.5% of runs, which failed the gate intermittently. Assert that the plaintext payload bytes are absent instead. * fix: tighten the storage-isolation guards and correct their description (review) - Put @discardableResult back on writeFile. The new tests had been inserted between the attribute and the helper, which added 41 unused-result warnings. - The source scan now also forbids AppEnv.userSupportDirectory outside AppEnv.swift. A future store could otherwise reach the real folder through the new accessor and pass every guard. - Comment stripping in the scan walks characters (shared SourceScan, also used by LocalizedUILiteralTests), so a "//" inside a string no longer hides the rest of the line. - The isolated folder is named with a UUID instead of the PID. PIDs are reused, so a later run could inherit an earlier run's cache. - Correct the claim in 6b52c9e and CLAUDE.md that all three isolation tests fail when the root branch is reverted. Mutation checks show: reverting the root fails the root-branch and per-store tests (plus the session-key test); the source scan does not react to that, and instead fails when a store composes the path itself (the old LocalUsageCache.defaultFileURL, restored) or uses userSupportDirectory. --------- Co-authored-by: 이동기 <ldg0831@midasin.com>
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.
Summary
Support building and testing PokeTokenBar with the swift.org/Homebrew Swift 6.3 toolchain
without changing runtime UI behavior.
AppandViewboundaries as@MainActorfor Swift 6.3's stricterisolation checks.
llvm-covfrom the active Swift toolchain so coverage profiles are read by acompatible LLVM version.
@preconcurrencyin the opt-in Codex memory performance test.Type of change
UI changes
Checklist
swift buildandswift testpass locally