Veritas can be installed from a trusted remote/server host as a browser PWA. Use this only with HTTPS, auth enabled, localhost bypass disabled, and the web app, /api, /ws, manifest, icons, and service worker served from the same public origin or subpath.
iOS uses Safari’s Add to Home Screen flow instead of the browser install prompt. The installed shell keeps the Veritas origin and session behavior from Safari.
Chrome shows the install prompt only when the manifest and service worker are reachable from the current origin.
Home returns to the top of the board page. Board jumps directly to the task columns, leaving the first column below the sticky toolbar. The jump uses the toolbar’s current rendered height so text-size changes do not obscure the column heading.
On narrow screens, use More views in the header to reach Activity, Backlog, Archive, and other views. Their separate wide-screen shortcuts are omitted to preserve room for the logo, connection status, and task controls. Dropdown menus remain anchored to their controls without changing the page scale.
The bottom navigation uses two rows on narrow phones so Home, Board, Alerts, Runs, Work, and Settings retain readable labels. Chat sits beside these destinations in the same reserved area instead of floating over task cards. Content and bottom notifications leave room for that area’s actual height, including larger text and the device safe area. Wider browser windows retain the floating chat button. Task Overview actions move below their summary when the panel is too narrow for a readable side-by-side layout.
The service worker caches only the static app shell, manifest, icons, and same-origin static assets. It does not cache /api responses, WebSocket traffic, task data, work products, tokens, comments, or mutation responses.
When the device is offline or realtime sync is reconnecting:
For a subpath deployment such as https://kanban.example.com/veritas/, build and serve the web app with VITE_BASE_PATH=/veritas/. The manifest uses relative start_url and scope, and the service worker registers under the same base path.
Reverse proxies should route these paths to the same Veritas host:
//api/ws/manifest.webmanifest/sw.js/favicon.png/apple-touch-icon.png/icons/*/assets/*If the app is served under a subpath, apply the same subpath prefix to each route.