webclient: an App section, and a link to any settings section
Settings gains an App section: how to install Navi in the browser — a real
Install button where the browser offers beforeinstallprompt, per-platform
steps where it cannot, since Safari and Firefox never expose that API and iOS
goes through the share sheet — and the Android APK, with its version, size and
checksum, behind a download the app hands to the system browser. The PWA
listener is armed from main.js because beforeinstallprompt fires once, during
startup, long before the panel is ever mounted.

App is now the first tab and every section is linkable: #settings/app,
#settings/mcp, and so on. Parsing moved into utils/hash.js, which the three
places in App.vue that route on the hash now share — before it, #settings/app
was read as the id of a session and opened an empty chat. Switching tabs
rewrites the address with replaceState, so Back leaves Settings instead of
walking back through the tabs, and a bare or unknown #settings normalises to
the first tab.

Checked in Chromium against both the dev server and the built bundle: each
hash opens its section, no /api/sessions/ request is ever made for one, a tab
click leaves history.length alone, and at 390 and 320px the strip keeps five
tabs with the active one scrolled into view and no sideways overflow.
1 parent 431f60c commit 349f85b2b1fee354e6428bc0bd8610b680193b44
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 4 hours ago
Showing 18 changed files
View
docs/api_tokens.md
View
webclient/dist/assets/index-Bh62-gNR.js 100644 → 0
Not supported
View
webclient/dist/assets/index-DbgpOcTo.css 100644 → 0
View
webclient/dist/assets/index-x9irBNbN.css 0 → 100644
View
webclient/dist/assets/index-xKn2-Jqe.js 0 → 100644
Not supported
View
webclient/dist/index.html
View
webclient/dist/sw.js
View
webclient/src/App.vue
View
webclient/src/components/settings/AppPanel.vue 0 → 100644
View
webclient/src/components/settings/SettingsView.vue
View
webclient/src/composables/usePwa.js 0 → 100644
View
webclient/src/main.js
View
webclient/src/utils/hash.js 0 → 100644
View
webclient/tests/unit/components/appRouting.test.js 0 → 100644
View
webclient/tests/unit/components/settings/appPanel.test.js 0 → 100644
View
webclient/tests/unit/components/settings/settingsView.test.js
View
webclient/tests/unit/composables/usePwa.test.js 0 → 100644
View
webclient/tests/unit/utils/hash.test.js 0 → 100644