Tags: jlian/wingdex
Tags
chore(Release): 1.24.0 # [1.24.0](v1.23.0...v1.24.0) (2026-08-10) ### Bug Fixes * address app review feedback ([6dad5cf](6dad5cf)) * align geocoding provider contract ([f7380d0](f7380d0)) * **api:** harden provider credential ownership ([329f5de](329f5de)) * **auth:** accept only invalid_grant as an idempotent Apple revocation ([9ae9dd9](9ae9dd9)) * **auth:** bind Apple revocation grants to subject ([4ac055e](4ac055e)) * **Auth:** keep Apple sign-in after revocation token capture fails ([ebcc1db](ebcc1db)) * **auth:** reject a null JSON body on Apple credential capture ([e7b90af](e7b90af)) * **auth:** revoke providers before account deletion ([98fcb07](98fcb07)) * **auth:** route every account deletion through provider revocation ([b1ab9a4](b1ab9a4)) * **auth:** send the GitHub revocation body as JSON ([de12285](de12285)) * **auth:** treat already-revoked Apple grants as idempotent success ([fed6934](fed6934)) * **birdId:** accept the occurrence blob however the host encodes it ([fae9515](fae9515)) * **BirdID:** drop the BirdLife credit from the identification caption ([dc53d7a](dc53d7a)) * **ci:** inspect iOS release archives ([17591a4](17591a4)) * **ci:** restore TestFlight artifact path ([d50a45f](d50a45f)) * **ci:** rotate native Apple client secret ([2570ac8](2570ac8)) * **ci:** validate iOS before publishing releases ([60189c3](60189c3)) * **geocoding:** defer dropping coordination tables until worker is live ([e22c2d0](e22c2d0)) * **geocoding:** preserve current search provenance ([4dfb72e](4dfb72e)) * **geocoding:** rate limit the Geoapify-backed routes ([40bbc1d](40bbc1d)) * **geocoding:** reject a null JSON body on the geocoding routes ([efd52de](efd52de)) * **geocoding:** repair the Geoapify places lookup ([dce0dbb](dce0dbb)) * **Health:** hide internal outcome headers ([dabd348](dabd348)) * **migrations:** restore the original apple revocation migration filename ([26d3657](26d3657)) * **Privacy:** disclose location handling ([3feb81b](3feb81b)) * **privacy:** disclose proxied geocoding ([1d313d3](1d313d3)) * **privacy:** enforce geocoding retention ([530cb94](530cb94)) * **release:** harden privacy and version detection ([61b0deb](61b0deb)) * **Settings:** shorten the location copy and stop it meeting the toggle ([b3e1a70](b3e1a70)) * **web:** credit every location data source ([6ab937f](6ab937f)) * **web:** harden bird model downloads ([794b9a1](794b9a1)) * **web:** preserve canonical inferred species names ([12c9bec](12c9bec)) * **web:** preserve identity on account deletion ([5f13f1f](5f13f1f)) * **web:** submit geocoding through proxy ([f35e124](f35e124)) * **web:** use provider-aware account deletion ([1b064c7](1b064c7)) * **wikimedia:** credit each photo with its own creator and license ([0b23cbe](0b23cbe)) * **wikimedia:** identify every Wikimedia request and credit reference photos ([b5313ca](b5313ca)) ### Features * **api:** log geocoding cache outcomes ([1241c47](1241c47)) * **api:** proxy and rate-limit geocoding ([e9d5bed](e9d5bed)) * consolidate app observability ([315927e](315927e)) * expand application observability ([c34dd2b](c34dd2b)) * record the AI confidence behind each observation ([565d159](565d159)) ### Reverts * **migrations:** keep the geocoding table drop out of this release ([6e7411b](6e7411b))
chore(ios-release): 0.9.0 # [wingdex-ios-v0.9.0](ios-v0.8.0...ios-v0.9.0) (2026-08-10) ### Bug Fixes * address app review feedback ([6dad5cf](6dad5cf)) * **Auth:** keep Apple sign-in after revocation token capture fails ([ebcc1db](ebcc1db)) * **BirdID:** drop the BirdLife credit from the identification caption ([dc53d7a](dc53d7a)) * **ci:** inspect iOS release archives ([17591a4](17591a4)) * **geocoding:** preserve current search provenance ([4dfb72e](4dfb72e)) * **iOS:** capture Apple deletion credentials ([bfc679f](bfc679f)) * **iOS:** distinguish loading from empty tabs ([aac3190](aac3190)) * **iOS:** expand accessibility coverage ([343bf2f](343bf2f)) * **iOS:** improve Home accessibility ([1f3c98b](1f3c98b)) * **iOS:** keep the compared photos aligned when the credit wraps ([467b679](467b679)) * **iOS:** match the web reference caption layout ([250509e](250509e)) * **iOS:** mirror the trimmed display name back into the field ([e6b9955](e6b9955)) * **iOS:** rebuild the outing location control ([e6cea6f](e6cea6f)) * **iOS:** respect Reduce Motion on sign in ([542fd97](542fd97)) * **ios:** restore GPS location metadata ([fbb0ce7](fbb0ce7)) * **iOS:** show session validation progress ([68a85ad](68a85ad)) * **iOS:** support accessibility text sizes ([31e831a](31e831a)) * **iOS:** use built-in primitives for Settings and sign-in ([3f244c1](3f244c1)) * **iOS:** use proxied outing geocoding ([202eeea](202eeea)) * **Outings:** gate place-search loading state on a generation token ([4ae5d11](4ae5d11)) * **Privacy:** disclose location handling ([3feb81b](3feb81b)) * **privacy:** disclose proxied geocoding ([1d313d3](1d313d3)) * **Settings:** shorten the location copy and stop it meeting the toggle ([b3e1a70](b3e1a70)) * **wikimedia:** credit each photo with its own creator and license ([0b23cbe](0b23cbe)) * **wikimedia:** identify every Wikimedia request and credit reference photos ([b5313ca](b5313ca)) ### Features * consolidate app observability ([315927e](315927e)) * record the AI confidence behind each observation ([565d159](565d159))
chore(Release): 1.23.0 # [1.23.0](v1.22.3...v1.23.0) (2026-08-07) ### Bug Fixes * **BirdID:** address Copilot review on cache, parser and e2e robustness ([2038216](2038216)) * **BirdID:** credit iNaturalist for the occurrence prior, not BirdLife ([9c0e787](9c0e787)) * **BirdID:** floor absent species at 1e-12, the value the calibration was fit at ([c8897b3](c8897b3)) * **BirdID:** show a spinner during ID, and fix the download bar's total ([3bebcc1](3bebcc1)) * **BirdID:** stop rounding tiny confidences to 0%, and gate at 0.8 ([5c1a229](5c1a229)) * **BirdID:** stop shipping the deleted endpoint's client and buffering a copy ([f2484a2](f2484a2)) * **coreml:** load the parity fixtures the quantizer scores against ([a812d0a](a812d0a)) * correct download-gate copy, import style, and progress accounting ([fc41a39](fc41a39)) * correct the privacy policy, and survive a failed or abandoned download ([2ee54b2](2ee54b2)) * declare the Localhost launch args, label sizes as MB, unpin harness path ([222e3a9](222e3a9)) * **e2e:** run playwright with one worker, the suite shares a database ([f961c46](f961c46)) * **gate:** count the prior at its gzipped size so progress reaches 100 ([a25acaf](a25acaf)) * **gate:** quote the real transfer size and stop showing two totals ([6fe1773](6fe1773)) * **model-cache:** name the asset when a download fails ([2943ebb](2943ebb)) * **Outings:** keep location stable while confirming ([#281](#281)) ([0a6966d](0a6966d)) * **Outings:** prevent new outing self-match ([#281](#281)) ([e3a394b](e3a394b)) * stop applying January's prior to photos with unreadable EXIF dates ([54aa084](54aa084)) * validate occurrence header length and correct stale asset names ([256d36a](256d36a)) ### Features * **BirdID:** port the occurrence prior and Strategy I ranker to Swift ([1ada7e4](1ada7e4)) * on-device bird ID with WingCLIP-0.3, 95.0 percent top-1 in the browser ([12396a4](12396a4)) * on-device bird ID with WingCLIP-0.3, 95.0 percent top-1 in the browser ([#279](#279)) ([90c057b](90c057b)), closes [#260](#260) [#278](#278) [#278](#278) ### Performance Improvements * cut preprocessing peak memory ~4x, and version the model URLs ([d72f136](d72f136)) * decode photos at reduced scale instead of decoding then resizing ([b3dcf34](b3dcf34)), closes [hi#frequency](https://github.com/hi/issues/frequency) * halve identification memory by dropping two redundant copies of the photo ([467fc11](467fc11)) * **web:** enable threaded on-device inference ([e547965](e547965)), closes [#283](#283)
WingCLIP distillation research branch, PR #278. Preserved before the squash merge, which leaves the 239 original commits unreachable and eventually garbage-collected. The value here is the reasoning in the commit messages, not the final tree: the SSOT experiment log (phases A through H), the G20 floor refit, the H3 score-mismatch correction, and the Perch bioacoustics mistake are all recorded as they were found.
chore(ios-release): 0.8.0 # [wingdex-ios-v0.8.0](ios-v0.7.3...ios-v0.8.0) (2026-08-07) ### Bug Fixes * **BirdID:** credit iNaturalist for the occurrence prior, not BirdLife ([9c0e787](9c0e787)) * **BirdID:** drop the AI crop box, which nothing can populate any more ([9e342aa](9e342aa)) * **BirdID:** floor absent species at 1e-12, the value the calibration was fit at ([c8897b3](c8897b3)) * **BirdID:** harden the blob parser and take the real max in the softmax ([74dfbdf](74dfbdf)) * **BirdID:** stop rounding tiny confidences to 0%, and gate at 0.8 ([5c1a229](5c1a229)) * **BirdID:** swap the deprecated cblas_sgemv for vDSP_mmul ([aa6c333](aa6c333)) * declare the Localhost launch args, label sizes as MB, unpin harness path ([222e3a9](222e3a9)) * **ios:** compare generated assets by content, not modification time ([f77cfc9](f77cfc9)) * **ios:** fill the add photos wizard background ([e58a0e3](e58a0e3)), closes [#280](#280) * **ios:** pin the decode byte order and assert channel order ([c434366](c434366)) ### Features * **BirdID:** identify on device instead of calling the deleted endpoint ([60444d4](60444d4)) * **BirdID:** port CLIP preprocessing and decode photos at reduced scale ([bf24e7d](bf24e7d)) * **BirdID:** port the occurrence prior and Strategy I ranker to Swift ([1ada7e4](1ada7e4))
PreviousNext