Skip to content

offline navigations: serve fallback document offline (5/10)#93627

Draft
feedthejim wants to merge 1 commit intofeedthejim/offline-navigations-service-worker-cachefrom
feedthejim/offline-navigations-fallback-response
Draft

offline navigations: serve fallback document offline (5/10)#93627
feedthejim wants to merge 1 commit intofeedthejim/offline-navigations-service-worker-cachefrom
feedthejim/offline-navigations-fallback-response

Conversation

@feedthejim
Copy link
Copy Markdown
Contributor

@feedthejim feedthejim commented May 8, 2026

Stack Position

This is PR 5 of 10. It makes the service worker serve the fallback document when a document request fails offline.

Review guide:
https://gist.github.com/feedthejim/a10f757cf07c5550f731adf2fcf1077b

Full Stack

  1. offline navigations: add gated build primitives (1/10) #93736 offline navigations: add gated build primitives (1/10)
  2. offline navigations: generate fallback document artifacts (2/10) #93737 offline navigations: generate fallback document artifacts (2/10)
  3. offline navigations: register pass-through worker (3/10) #93625 offline navigations: register pass-through worker (3/10)
  4. offline navigations: cache fallback and current-build assets (4/10) #93626 offline navigations: cache fallback and current-build assets (4/10)
  5. This PR: offline navigations: serve fallback document offline (5/10) #93627 offline navigations: serve fallback document offline (5/10)
  6. offline navigations: add router-cache persistence primitives (6/10) #93630 offline navigations: add router-cache persistence primitives (6/10)
  7. offline navigations: persist cached router records (7/10) #93640 offline navigations: persist cached router records (7/10)
  8. offline navigations: bootstrap fallback from router records (8/10) #93644 offline navigations: bootstrap fallback from router records (8/10)
  9. offline navigations: support dynamic route patterns (9/10) #93647 offline navigations: support dynamic route patterns (9/10)
  10. offline navigations: add docs and examples (10/10) #93738 offline navigations: add docs and examples (10/10)

What This Changes

This connects the cached fallback document to failed document requests. When a same-origin navigation cannot reach the server, the service worker can return the generated fallback HTML so the client app has a chance to boot and decide whether the requested route can be reconstructed.

At this point, the client router still cannot reconstruct route data. The expected user-visible behavior is a clear offline miss after the fallback boots.

What Works After This PR

Offline hard reloads can receive the fallback document instead of a browser network error. The UI can show an intentional miss when no router data has been persisted yet.

What Does Not Work Yet

The fallback document cannot restore a prefetched route until router-cache persistence and bootstrap replay land in PRs 6-8.

Reviewer Focus

Please focus on the request boundary: only failed document navigations should fall back to the generated document. The service worker should continue to avoid route semantics and RSC parsing.

Proof in This PR

Fallback document serving and visible miss behavior are covered by:

  • HEADLESS=true pnpm test-start-turbo test/production/app-dir/offline-navigations/offline-navigations.test.ts
  • HEADLESS=true pnpm test-start-webpack test/production/app-dir/offline-navigations/offline-navigations.test.ts

Deferred Coverage

PR 8 turns this fallback boot into successful route reconstruction when the normal client router has already cached the needed records.

Docs Status

The user-facing guide and config reference land in PR 10.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Tests Passed

Commit: 0c954ca

@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from 77b9d6f to d4c2b9b Compare May 8, 2026 04:03
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 33c0b95 to 4001039 Compare May 8, 2026 04:03
Copy link
Copy Markdown
Contributor

@vercel vercel Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Suggestions:

  1. Inline snapshot in NFT test is missing the newly added /node_modules/next/dist/build/offline-navigation-service-worker.js entry, causing CI test failure.
  1. Inline snapshot in next-server-nft test is missing the new /node_modules/next/dist/build/offline-navigation-service-worker.js traced file, causing CI test failure.

Fix on Vercel

Copy link
Copy Markdown
Contributor

@vercel vercel Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additional Suggestion:

Inline snapshot in NFT test is missing the newly added /node_modules/next/dist/build/offline-navigation-service-worker.js entry, causing CI test failure.

Fix on Vercel

@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 4001039 to 829dcd8 Compare May 8, 2026 08:12
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from d4c2b9b to baf7074 Compare May 8, 2026 08:12
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 829dcd8 to 1284032 Compare May 8, 2026 17:45
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from baf7074 to b445f31 Compare May 8, 2026 17:45
@feedthejim feedthejim changed the title (6/10) Serve offline navigation fallback document offline navigations: serve fallback document (6/25) May 8, 2026
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 1284032 to f85d95c Compare May 8, 2026 20:30
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from b445f31 to 0e9f50a Compare May 8, 2026 20:30
@feedthejim feedthejim changed the title offline navigations: serve fallback document (6/25) offline navigations: serve fallback document offline (5/13) May 8, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Stats from current PR

🔴 1 regression

Metric Canary PR Change Trend
node_modules Size 505 MB 505 MB 🔴 +168 kB (+0%) ▁▁▁██
📊 All Metrics
📖 Metrics Glossary

Dev Server Metrics:

  • Listen = TCP port starts accepting connections
  • First Request = HTTP server returns successful response
  • Cold = Fresh build (no cache)
  • Warm = With cached build artifacts

Build Metrics:

  • Fresh = Clean build (no .next directory)
  • Cached = With existing .next directory

Change Thresholds:

  • Time: Changes < 50ms AND < 10%, OR < 2% are insignificant
  • Size: Changes < 1KB AND < 1% are insignificant
  • All other changes are flagged to catch regressions

⚡ Dev Server

Metric Canary PR Change Trend
Cold (Listen) 812ms 813ms ▁▅▅▃▅
Cold (Ready in log) 777ms 778ms ▆█▂▁▄
Cold (First Request) 1.197s 1.202s ▄▆▂▂▅
Warm (Listen) 813ms 812ms ▁▆▆▃▃
Warm (Ready in log) 775ms 776ms ▆█▂▂▄
Warm (First Request) 578ms 577ms ▇█▂▃▅
📦 Dev Server (Webpack) (Legacy)

📦 Dev Server (Webpack)

Metric Canary PR Change Trend
Cold (Listen) 810ms 810ms █████
Cold (Ready in log) 771ms 771ms ▇▇███
Cold (First Request) 3.179s 3.157s ▇▅▄██
Warm (Listen) 812ms 811ms █████
Warm (Ready in log) 772ms 771ms ▇▆▇██
Warm (First Request) 3.191s 3.189s ▅▃▃▇█

⚡ Production Builds

Metric Canary PR Change Trend
Fresh Build 4.676s 4.739s █▆▁▁▆
Cached Build 4.724s 4.751s ▆▅▁▄▅
📦 Production Builds (Webpack) (Legacy)

📦 Production Builds (Webpack)

Metric Canary PR Change Trend
Fresh Build 23.838s 23.546s ▅▆▅██
Cached Build 23.667s 23.724s ▄▄▆▆█
node_modules Size 505 MB 505 MB 🔴 +168 kB (+0%) ▁▁▁██
📦 Bundle Sizes

Bundle Sizes

⚡ Turbopack

Client

Main Bundles
Canary PR Change
0-_gc56kf9tfo.js gzip 154 B N/A -
047ad-p-61fjn.js gzip 156 B N/A -
04hm05ar7kldw.js gzip 5.73 kB N/A -
0714gv_gbisrs.js gzip 70.8 kB N/A -
0cz1d0mv5g_q7.js gzip 39.4 kB 39.4 kB
0dvitrl5zg37g.js gzip 8.82 kB N/A -
0sf7ysou-72zd.js gzip 8.71 kB N/A -
11ny9t-iyn9yw.js gzip 154 B N/A -
157abun3hwc_s.js gzip 10.3 kB N/A -
1bhal_i5byhy7.js gzip 162 B N/A -
1elt1qium-r2m.css gzip 115 B 115 B
1jfwzy3ri2pyr.js gzip 154 B N/A -
1jj68jv9537mc.js gzip 13.8 kB N/A -
1jpaub6y8xlfr.js gzip 2.3 kB N/A -
1ot0mvscrc_uf.js gzip 233 B N/A -
2_m3xv2uq3sjc.js gzip 1.46 kB N/A -
224i1-g0lqvss.js gzip 49.5 kB N/A -
24y34mwgrkqp4.js gzip 8.78 kB N/A -
28lrkt28g7fpx.js gzip 155 B N/A -
2c-fd4y1zozz8.js gzip 8.79 kB N/A -
2d7416h_xd36x.js gzip 8.71 kB N/A -
2extn3odmmem_.js gzip 12.9 kB N/A -
2fyhyy7niw9r6.js gzip 7.61 kB N/A -
2lyuhit6rn8fy.js gzip 9.44 kB N/A -
2q0gr8wfr3jwl.js gzip 8.77 kB N/A -
2qmtk0zius6fd.js gzip 157 B N/A -
2t9e75oz6r0zp.js gzip 8.76 kB N/A -
2uku_olcn15b7.js gzip 8.79 kB N/A -
30r8mm-46bdqy.js gzip 220 B 220 B
3c03ks8ic59bl.js gzip 160 B N/A -
3c03yiy5ds-h6.js gzip 65.5 kB N/A -
3d0blqiuhma_c.js gzip 155 B N/A -
3inab2jybr4k9.js gzip 450 B N/A -
3jkm5tdjvaf_q.js gzip 13.1 kB N/A -
3mix8ikliw_bj.js gzip 169 B N/A -
3mt67agm5wp40.js gzip 10.6 kB N/A -
3saabek4kohwi.js gzip 10 kB N/A -
3x_ftwxjtc4jr.js gzip 152 B N/A -
3x0-g47j0wg_t.js gzip 154 B N/A -
40pcd44z40i4a.js gzip 156 B N/A -
4189xmby9yu1p.js gzip 13.6 kB N/A -
turbopack-02..93y4.js gzip 4.2 kB N/A -
turbopack-0m..eii3.js gzip 4.2 kB N/A -
turbopack-0t..cm46.js gzip 4.2 kB N/A -
turbopack-13..1jkn.js gzip 4.2 kB N/A -
turbopack-1m..-lpg.js gzip 4.18 kB N/A -
turbopack-1s..s1zo.js gzip 4.21 kB N/A -
turbopack-23..--2_.js gzip 4.2 kB N/A -
turbopack-28..zluk.js gzip 4.2 kB N/A -
turbopack-2a..kxyc.js gzip 4.2 kB N/A -
turbopack-2s..sur4.js gzip 4.2 kB N/A -
turbopack-2z..x5dq.js gzip 4.19 kB N/A -
turbopack-3h..65h_.js gzip 4.2 kB N/A -
turbopack-3s..rdjl.js gzip 4.2 kB N/A -
turbopack-3y..gfl4.js gzip 4.2 kB N/A -
0_i7nqgx23st7.js gzip N/A 10 kB -
05e40c15cx1dd.js gzip N/A 7.61 kB -
06puhytyxk31p.js gzip N/A 8.82 kB -
0cgwxw9wez5uz.js gzip N/A 155 B -
0m34gln_kt4fg.js gzip N/A 5.73 kB -
0wjn_zvopg8j7.js gzip N/A 155 B -
1g3q1ww01thnl.js gzip N/A 2.3 kB -
1hraqxuiymq6v.js gzip N/A 8.79 kB -
1l9un1sl77287.js gzip N/A 1.46 kB -
1oj2783a6mjmk.js gzip N/A 153 B -
1tu42mhgspxaj.js gzip N/A 152 B -
2_n5io6i3e7-d.js gzip N/A 65.6 kB -
21-eavqb1k_36.js gzip N/A 13.9 kB -
2147zgtf14z-q.js gzip N/A 234 B -
23bz3xsg-5-1s.js gzip N/A 8.71 kB -
25m28ppgv1r-l.js gzip N/A 156 B -
27441mytv7pbm.js gzip N/A 9.43 kB -
2cjkwjgm1zcfs.js gzip N/A 8.71 kB -
2feeljlwn03ka.js gzip N/A 156 B -
2scd8zaoyb8md.js gzip N/A 8.79 kB -
2st_qs6p_9us0.js gzip N/A 13.1 kB -
2zo2exm1d8qj1.js gzip N/A 13.6 kB -
31gszfpoi49o_.js gzip N/A 157 B -
3g88fx8gbrpbb.js gzip N/A 159 B -
3hn75zuxly9az.js gzip N/A 10.3 kB -
3hqh7m128tvsn.js gzip N/A 8.77 kB -
3hqti_t-zy1x4.js gzip N/A 449 B -
3k_ox9mqvj991.js gzip N/A 162 B -
3lwd3rbxfr02f.js gzip N/A 157 B -
3mnawenie1flm.js gzip N/A 8.76 kB -
3sxqvx3vn2_or.js gzip N/A 155 B -
3ubsozlu6zs38.js gzip N/A 10.6 kB -
3vb9z2m8f0e3l.js gzip N/A 70.8 kB -
40i505hu7da0e.js gzip N/A 49.5 kB -
41_yhm_31fcf8.js gzip N/A 155 B -
41mf-x3mmsxae.js gzip N/A 12.9 kB -
41ovqpfyyufzz.js gzip N/A 168 B -
43iwfqjnx1cy_.js gzip N/A 8.78 kB -
turbopack-0g..-9g6.js gzip N/A 4.2 kB -
turbopack-0u..nlgl.js gzip N/A 4.18 kB -
turbopack-1b..n71_.js gzip N/A 4.2 kB -
turbopack-1e..hu78.js gzip N/A 4.2 kB -
turbopack-1g..7-n-.js gzip N/A 4.2 kB -
turbopack-1l..qd49.js gzip N/A 4.21 kB -
turbopack-1t..oruv.js gzip N/A 4.2 kB -
turbopack-2q..tzzk.js gzip N/A 4.2 kB -
turbopack-2s..khje.js gzip N/A 4.2 kB -
turbopack-31..xepd.js gzip N/A 4.2 kB -
turbopack-3q..wh7s.js gzip N/A 4.2 kB -
turbopack-3t..pfdy.js gzip N/A 4.2 kB -
turbopack-3y..qhsx.js gzip N/A 4.2 kB -
turbopack-43..rc4q.js gzip N/A 4.2 kB -
Total 468 kB 468 kB ⚠️ +61 B

Server

Middleware
Canary PR Change
middleware-b..fest.js gzip 716 B 718 B
Total 716 B 718 B ⚠️ +2 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 429 B 433 B
Total 429 B 433 B ⚠️ +4 B

📦 Webpack

Client

Main Bundles
Canary PR Change
2258-HASH.js gzip 61.1 kB N/A -
2266-HASH.js gzip 4.69 kB N/A -
3317.HASH.js gzip 169 B N/A -
4866-HASH.js gzip 5.64 kB N/A -
9e302639-HASH.js gzip 62.7 kB N/A -
framework-HASH.js gzip 59.5 kB 59.5 kB
main-app-HASH.js gzip 256 B 255 B
main-HASH.js gzip 39.9 kB 39.9 kB
webpack-HASH.js gzip 1.68 kB 1.68 kB
175fd0fd-HASH.js gzip N/A 62.7 kB -
2596-HASH.js gzip N/A 5.63 kB -
34-HASH.js gzip N/A 61 kB -
5691.HASH.js gzip N/A 169 B -
9156-HASH.js gzip N/A 4.68 kB -
Total 236 kB 236 kB ✅ -87 B
Polyfills
Canary PR Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Total 39.4 kB 39.4 kB
Pages
Canary PR Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 181 B 182 B
css-HASH.js gzip 334 B 332 B
dynamic-HASH.js gzip 1.79 kB 1.81 kB
edge-ssr-HASH.js gzip 255 B 255 B
head-HASH.js gzip 351 B 348 B
hooks-HASH.js gzip 385 B 384 B
image-HASH.js gzip 580 B 580 B
index-HASH.js gzip 257 B 259 B
link-HASH.js gzip 2.51 kB 2.52 kB
routerDirect..HASH.js gzip 318 B 319 B
script-HASH.js gzip 387 B 386 B
withRouter-HASH.js gzip 316 B 316 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Total 7.97 kB 7.99 kB ⚠️ +19 B

Server

Edge SSR
Canary PR Change
edge-ssr.js gzip 126 kB 126 kB
page.js gzip 275 kB 270 kB 🟢 5.24 kB (-2%)
Total 401 kB 396 kB ✅ -5.46 kB
Middleware
Canary PR Change
middleware-b..fest.js gzip 616 B 616 B
middleware-r..fest.js gzip 155 B 155 B
middleware.js gzip 44.5 kB 44.8 kB
edge-runtime..pack.js gzip 842 B 842 B
Total 46.1 kB 46.4 kB ⚠️ +228 B
Build Details
Build Manifests
Canary PR Change
_buildManifest.js gzip 719 B 717 B
Total 719 B 717 B ✅ -2 B
Build Cache
Canary PR Change
0.pack gzip 4.45 MB 4.45 MB
index.pack gzip 113 kB 115 kB 🔴 +1.51 kB (+1%)
index.pack.old gzip 113 kB 115 kB 🔴 +2.48 kB (+2%)
Total 4.67 MB 4.68 MB ⚠️ +7 kB

🔄 Shared (bundler-independent)

Runtimes
Canary PR Change
app-page-exp...dev.js gzip 349 kB 349 kB
app-page-exp..prod.js gzip 194 kB 194 kB
app-page-tur...dev.js gzip 349 kB 349 kB
app-page-tur..prod.js gzip 194 kB 194 kB
app-page-tur...dev.js gzip 345 kB 345 kB
app-page-tur..prod.js gzip 192 kB 192 kB
app-page.run...dev.js gzip 346 kB 346 kB
app-page.run..prod.js gzip 192 kB 192 kB
app-route-ex...dev.js gzip 77.5 kB 77.5 kB
app-route-ex..prod.js gzip 52.9 kB 52.9 kB
app-route-tu...dev.js gzip 77.6 kB 77.6 kB
app-route-tu..prod.js gzip 52.9 kB 52.9 kB
app-route-tu...dev.js gzip 77.2 kB 77.2 kB
app-route-tu..prod.js gzip 52.7 kB 52.7 kB
app-route.ru...dev.js gzip 77.1 kB 77.1 kB
app-route.ru..prod.js gzip 52.7 kB 52.7 kB
dist_client_...dev.js gzip 324 B 324 B
dist_client_...dev.js gzip 326 B 326 B
dist_client_...dev.js gzip 318 B 318 B
dist_client_...dev.js gzip 317 B 317 B
pages-api-tu...dev.js gzip 44.3 kB 44.3 kB
pages-api-tu..prod.js gzip 33.8 kB 33.8 kB
pages-api.ru...dev.js gzip 44.3 kB 44.3 kB
pages-api.ru..prod.js gzip 33.7 kB 33.7 kB
pages-turbo....dev.js gzip 53.7 kB 53.7 kB
pages-turbo...prod.js gzip 39.4 kB 39.4 kB
pages.runtim...dev.js gzip 53.6 kB 53.6 kB
pages.runtim..prod.js gzip 39.3 kB 39.3 kB
server.runti..prod.js gzip 63.2 kB 63.2 kB
use-cache-pr...dev.js gzip 69.7 kB 69.7 kB
use-cache-pr...dev.js gzip 69.7 kB 69.7 kB
use-cache-pr...dev.js gzip 68 kB 68 kB
use-cache-pr...dev.js gzip 68 kB 68 kB
Total 3.36 MB 3.36 MB ⚠️ +124 B
📝 Changed Files (9 files)

Files with changes:

  • app-page-exp..ntime.dev.js
  • app-page-exp..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page-tur..ntime.dev.js
  • app-page-tur..time.prod.js
  • app-page.runtime.dev.js
  • app-page.runtime.prod.js
  • server.runtime.prod.js
View diffs
app-page-exp..ntime.dev.js
failed to diff
app-page-exp..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js

Diff too large to display

app-page-tur..ntime.dev.js
failed to diff
app-page-tur..time.prod.js

Diff too large to display

app-page.runtime.dev.js
failed to diff
app-page.runtime.prod.js

Diff too large to display

server.runtime.prod.js

Diff too large to display

📎 Tarball URL
https://vercel-packages.vercel.app/next/commits/0e9f50a5477f0c444f18253f5c421f5904d884fd/next

Commit: 0e9f50a

@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from f85d95c to af1aeea Compare May 9, 2026 00:05
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch 2 times, most recently from 047192c to b61869a Compare May 10, 2026 15:41
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch 2 times, most recently from 1583af3 to ea10d83 Compare May 10, 2026 17:16
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from b61869a to 609a8b3 Compare May 10, 2026 17:16
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from ea10d83 to fe9e691 Compare May 10, 2026 17:42
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch 2 times, most recently from 1d279dc to fd21d23 Compare May 10, 2026 18:45
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 53e06ad to 7e1dae0 Compare May 10, 2026 18:45
@feedthejim feedthejim changed the title offline navigations: serve fallback document offline (5/13) offline navigations: serve fallback document offline (5/10) May 10, 2026
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from fd21d23 to 7c7baff Compare May 10, 2026 19:06
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch 2 times, most recently from 14ed755 to 5a91f11 Compare May 10, 2026 19:36
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from 7c7baff to 141944b Compare May 10, 2026 19:36
@feedthejim feedthejim changed the title offline navigations: serve fallback document offline (5/10) offline navigations: serve fallback document offline (5/11) May 10, 2026
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 5a91f11 to cfe3cce Compare May 10, 2026 20:21
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from 141944b to 1274b77 Compare May 10, 2026 20:21
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from cfe3cce to 694e1d0 Compare May 10, 2026 23:28
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from 1274b77 to b5b5f6c Compare May 10, 2026 23:28
@feedthejim feedthejim changed the title offline navigations: serve fallback document offline (5/11) offline navigations: serve fallback document offline (5/10) May 10, 2026
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from b5b5f6c to 67131c2 Compare May 11, 2026 03:04
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 694e1d0 to 1732a28 Compare May 11, 2026 03:04
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-fallback-response branch from 67131c2 to 0c954ca Compare May 11, 2026 04:41
@feedthejim feedthejim force-pushed the feedthejim/offline-navigations-service-worker-cache branch from 1732a28 to 2cb2dd5 Compare May 11, 2026 04:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant