feat(boardwalk): expose the admin build id and show a reload banner when a new build is deployed (quick-261028-rqb)

- boardwalk.BuildID hashes the dist tree plus the binary's build info once
  per handler; X-Summer-Build on every response, {prefix}/build.json and the
  summer-admin-build meta carry it
- the SPA reads the booted build, re-checks on focus, visibility and every
  5 minutes, and shows UpdateBanner on a different build
This commit is contained in:
Jakub Zych
2026-10-28 21:19:36 +01:00
parent 4957e5ce25
commit 291b18fb1e
12 changed files with 404 additions and 5 deletions

View File

@@ -3,6 +3,7 @@ import { computed, watchEffect } from 'vue'
import { RouterView, useRoute } from 'vue-router'
import { documentTitleForRoute } from './app/pageTitle'
import AppShell from './components/shell/AppShell.vue'
import UpdateBanner from './components/ui/UpdateBanner.vue'
import { remountRevision } from './state/useRemount'
const route = useRoute()
@@ -17,11 +18,13 @@ watchEffect(() => {
<!-- Keyed by path, not full path: a new controller or record remounts its
view, while list query changes (search, sort, page) keep it. The
remount revision is part of the key, so a view can remount itself in
place (Create and new). -->
place (Create and new). The new-version banner sits outside the
v-if, so it also shows on the login screen. -->
<AppShell v-if="inShell">
<RouterView v-slot="{ Component, route: current }">
<component :is="Component" :key="`${current.path}#${remountRevision}`" />
</RouterView>
</AppShell>
<RouterView v-else />
<UpdateBanner />
</template>