Skip to content

feat(start-os): name the installed web app after the server - #3879

Merged
MattDHill merged 1 commit into
masterfrom
feat/pwa-name-from-hostname
Sep 3, 2026
Merged

feat(start-os): name the installed web app after the server#3879
MattDHill merged 1 commit into
masterfrom
feat/pwa-name-from-hostname

Conversation

@MattDHill

Copy link
Copy Markdown
Member

Closes #2327

Summary

An installed StartOS web app is named after the server rather than StartOS.

RpcContext's router now serves /manifest.webmanifest itself, parsing the built manifest out of the embedded UI dir and replacing name and short_name with the hostname from AccountInfo. Every other context keeps falling through to the static file, so init and diagnostic mode still resolve the manifest.

Safari does not take the Home Screen name from the manifest — it reads apple-mobile-web-app-title, which index.html hard-codes. AppComponent now keeps that tag in step with serverInfo.hostname, alongside the language subscription that was already there. Chrome and Chromium desktop refresh an installed app's name from the manifest on their own; iOS needs the app removed and added again, which the changelog and the docs both say.

The manifest is dropped from ngsw-config.json's prefetch group. ngsw.json pins a sha1 of the bytes the build produced, and the served body is no longer those bytes — leaving it listed would fail the service worker's hash check and take it out of service. A note in projects/start-os/AGENTS.md warns the next person off putting it back.

Server Name dialog

The dialog now lists what the name is used for, since a rename reaches further than the .local address alone:

  • the server's address
  • every installed service's local address (services are served at <name>.local:<port>)
  • the browser tab and the installed app's name
  • SSH and system logs

Five new strings, translated across all five dictionaries. docs/src/server-name.md gains the same facts.

Verification

  • FMT_NATIVE=1 make start-core-format-check
  • npm run check:i18n
  • prettier over every changed TS, JSON and Markdown file

The Rust build and the web typechecks are left to CI.

The router serves /manifest.webmanifest with the server's hostname as its
name and short_name, so adding the UI to a home screen or installing it
from a desktop browser labels it with the server name instead of
"StartOS". Chrome refreshes an installed app's name from the manifest;
Safari reads apple-mobile-web-app-title instead, which the root component
now keeps in step with the hostname.

The built manifest is no longer a service-worker asset — ngsw hash-checks
the bytes it built, which the served body no longer matches.

The Server Name dialog now lists what the name is used for: the server's
address, every installed service's local address, the browser tab and
installed app name, and SSH and system logs.

Closes #2327

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MattDHill
MattDHill force-pushed the feat/pwa-name-from-hostname branch from 602d293 to f76f60b Compare September 3, 2026 02:05
@MattDHill
MattDHill merged commit 5175a75 into master Sep 3, 2026
32 checks passed
@MattDHill
MattDHill deleted the feat/pwa-name-from-hostname branch September 3, 2026 02:43
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.

[feat] customize PWA app name

2 participants