Austin McKinley
020a85f029
Publish one bundle version to both OTA origins, not two
...
bundleUpdate.sh and denisPublish.sh each called `date +%s`, so a single dual-write
gave the same bytes two different bundle versions -- observed 1785102575 (denis)
and 1785102614 (ota1), 39 seconds apart, for commit b662cd43b .
That is not cosmetic. The bundle version is a path segment in every asset URL the
manifest hands the client:
https://updates.bsky.app/file/1.130.0/ <bundle-version>/bundles/<hash>
Both origins mint those URLs against updates.bsky.app, which resolves to whichever
origin Bunny currently points at. So each origin was serving a manifest whose
assets only IT has. A manifest fetched from one origin and assets fetched from the
other 404s -- which is exactly what a rollback of the Bunny origin does if it lands
between a client's manifest fetch and its asset fetch. The dual-write existed to
make rollback safe and was quietly making it unsafe.
Pin the version once in the job and let both scripts inherit it. Both fall back to
`date +%s` when BUNDLE_VERSION is unset, so the single-publisher callers are
unchanged: pull-request-commit.yml (denis only) and `pnpm make-deploy-bundle`.
The fallback uses `:-` rather than `-`, so an empty value also falls back --
`denis publish` rejects a non-numeric bundle version, so an empty one must never
propagate.
This does not make the two manifests byte-identical. createdAt still differs
(21:49:35Z vs 21:50:18Z for the commit above) because ota1's legacy uploader
stamps it server-side on receipt; the client posts a tarball, not a timestamp, so
nothing here can align it. That residual is inert in a way the bundle version was
not: the manifest id is content-addressed on metadata.json and is identical across
origins, so manifestHandler's `currentUpdateID == entry.Manifest.ID` check makes a
client that switches origins see the same update rather than a newer one. It goes
away with the dual-write in Phase 5.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-07-26 16:30:57 -07:00
Austin McKinley
b662cd43b5
Fix legacy ota1 OTA upload broken by the denis cutover ( #11290 )
2026-07-27 00:42:38 +03:00
Samuel Newman
66ec855efc
Add emoji to GitHub Actions step names for consistency ( #11286 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-07-27 00:03:45 +03:00
Samuel Newman
d9e76c3954
Restore PR OTA QR comment ( #11285 )
2026-07-26 23:07:41 +03:00
Samuel Newman
be70a31f4c
Fix silently-frozen OTA fingerprint baseline with artifacts ( #11231 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-26 23:07:20 +03:00
Austin McKinley
76a928a7af
ci: skip the per-PR OTA job for bot authors ( #11273 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-24 19:07:57 -07:00
Austin McKinley
9eb78c0f6c
ci: publish OTA to denis (S3) + automatic per-PR previews ( #11235 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-24 18:18:00 -07:00
Samuel Newman
3b6fbf315b
Fix Maestro E2E runtime environment ( #11247 )
2026-07-24 03:30:10 -07:00
dependabot[bot]
7d4b91dd38
Bump the actions group with 4 updates ( #11202 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 05:09:01 -07:00
dependabot[bot]
3eab767e89
Bump actions/setup-node from 6.4.0 to 7.0.0 ( #11203 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-21 05:08:41 -07:00
Samuel Newman
0fb7251c64
Add nightly Maestro E2E workflow ( #11181 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 07:42:53 -07:00
Samuel Newman
c4e80b4456
Fix Android release asset upload ( #11174 )
2026-07-20 07:42:35 -07:00
Samuel Newman
21d53ce0f8
Split mobile build/submit pipelines and de-duplicate OTA workflow ( #11133 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-20 07:07:30 -07:00
Samuel Newman
783dfe2a12
Cache main bundle stats for PR checks ( #11172 )
2026-07-17 07:28:08 +03:00
Samuel Newman
007c21fa8e
Add moduleSuffixes to tsconfig ( #11146 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-07-16 12:47:53 -07:00
Samuel Newman
f9384e44c7
Bump expected cocoapods version to match latest macos-26 runner image ( #11171 )
2026-07-16 09:33:07 -07:00
dependabot[bot]
19872124bf
Bump the actions group with 6 updates ( #11148 )
2026-07-13 23:48:14 +03:00
Samuel Newman
03ccd96661
Force native builds when package.json version changes in OTA deploy ( #11061 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-07-07 05:31:37 -07:00
Samuel Newman
640662d57c
Fix zizmor findings in build workflows ( #11046 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-07 04:20:50 -07:00
dependabot[bot]
52e8051fa3
Bump the actions group with 5 updates ( #11076 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 04:19:38 -07:00
dependabot[bot]
86c1cbbc95
Bump actions/cache from 5.0.5 to 6.1.0 ( #11078 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 04:18:26 -07:00
dependabot[bot]
545fec82fb
Bump dcarbone/install-jq-action from 3.2.0 to 4.0.1 ( #11077 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-07 04:17:43 -07:00
DS Boyce
133476e0cd
Update advanced search suggestions ( #11036 )
2026-06-30 14:26:50 -07:00
DS Boyce
5e7343b0d2
Fix yaml syntax in pull-request-commit.yml ( #11037 )
2026-06-30 14:15:28 -07:00
Samuel Newman
57dc53fbf5
Add "fingerprint changed" label to PRs with native changes ( #10742 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-30 15:19:24 -05:00
dependabot[bot]
de51ceb577
Bump actions/checkout from 6.0.3 to 7.0.0 ( #11022 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 14:20:43 -05:00
dependabot[bot]
eb755bc31d
Bump the actions group with 3 updates ( #11021 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-30 13:51:58 -05:00
DS Boyce
44f6a98f59
Use latest fingerprint-native action ( #11016 )
2026-06-30 13:40:37 -05:00
DS Boyce
75e2c40ba4
Use correct param name for setup-bundletool action ( #11020 )
2026-06-30 00:56:44 -07:00
Samuel Newman
a5ed41fa0f
Fix CI - grant workflows permission for internal sync push ( #11010 )
2026-06-29 16:30:01 +03:00
dependabot[bot]
fcbd23e7db
Bump actions/download-artifact from 7.0.0 to 8.0.1 ( #10971 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-26 07:40:12 -07:00
Samuel Newman
f3978d1a1f
Fix internal repo sync broken by actions/checkout v6 bump ( #10933 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 11:38:44 -05:00
Spence Pope
4308d75e49
Add TestFlight group selection to iOS build workflow ( #10979 )
2026-06-24 10:52:58 -04:00
Eric Bailey
dd452a4336
Fix nightly build workflow ( #10943 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-18 10:13:41 -05:00
Eric Bailey
6f916902e7
Add nightly iOS/Android build workflow ( #10940 )
...
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-17 17:53:08 -05:00
Samuel Newman
d10137fd78
Simplify Android build: bundletool + eas submit ( #9855 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Eric Bailey <git@esb.lol >
2026-06-17 16:42:55 -05:00
Samuel Newman
6af477bcc2
Replace setup-cocoapods action with inline version assert ( #10932 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 02:51:59 -07:00
Samuel Newman
b8a6a8c8ce
Pin every action to latest SHA ( #10779 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-16 14:35:19 -05:00
Austin McKinley
6c04170734
Replace broken @claude workflow with Bedrock-based claude-review/mention ( #10880 )
...
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 21:36:10 -07:00
Samuel Newman
f321122656
use opus 4.8 in github claude ( #10837 )
2026-06-10 01:55:03 -07:00
Samuel Newman
6d468c8ca4
[CI] Remove Wandalen/wretry.action, call pnpm install directly ( #10745 )
2026-06-05 22:49:02 +03:00
DS Boyce
f99837040e
Compile i18n before running lint ( #10711 )
2026-06-03 13:21:13 -07:00
DS Boyce
84d1785e12
Enable ESLint errors and suppress existing violations ( #10490 )
2026-06-03 11:27:44 -07:00
dependabot[bot]
d08ab487d8
Bump actions/create-github-app-token from 1 to 3 ( #10691 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 11:57:43 -07:00
dependabot[bot]
a2c8b47b87
Bump marocchino/sticky-pull-request-comment from 2 to 3 ( #10692 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 11:56:46 -07:00
dependabot[bot]
8e5ac6790f
Bump slackapi/slack-github-action from 2.1.1 to 3.0.3 ( #10693 )
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 11:55:39 -07:00
Austin McKinley
53fa6b2493
ci: add dependabot config with 7-day cooldown ( #10475 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-06-02 11:04:28 -07:00
DS Boyce
dfa82904ec
Run GitHub actions in parallel ( #10509 )
...
Co-authored-by: Eric Bailey <git@esb.lol >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 12:24:55 -05:00
DS Boyce
bdbf31a254
Use expo/expo-github-action v9 ( #10689 )
2026-06-02 09:47:22 -07:00
Samuel Newman
806f31dc93
Use pnpm to handle node/pnpm versions in Dockerfile ( #10642 )
2026-05-29 05:40:24 -07:00