Frontend PWA preview

Updated Jul 14, 2026

Corbusier now ships a repository-owned frontend-pwa/ workspace for the first browser-facing task slice. The current slice is intentionally fixture-backed: it renders task creation and task detail screens without depending on the live HTTP auth seam or backend mutations beyond the contract shape. Live transport is now available as an opt-in development seam.

Run the workspace from the repository root:

make frontend-install
make frontend-dev

To run the browser against the live backend during development, export the following environment variables before make frontend-dev:

export VITE_TASK_GATEWAY_MODE=http
export CORBUSIER_API_PROXY_TARGET=http://127.0.0.1:8080
export CORBUSIER_DEV_BEARER_TOKEN=<jwt>

Optional:

export VITE_CORBUSIER_API_BASE_URL=/api/v1

This development seam keeps the bearer token out of browser JavaScript by having Vite proxy /api/* requests to the backend and inject the Authorization header server-side. It is temporary and exists only to support local preview plus browser-path testing before the production browser-auth model is settled.

For installation conventions and consumer-facing configuration guidance, see the Whitaker user's guide.

The development server listens on http://127.0.0.1:4173.

Current routes:

  • /tasks/new renders the issue-to-task create form.
  • /tasks/<task_id> renders task detail with origin, state, timestamps, and branch or pull-request placeholders.

Quality gates for the workspace are also exposed through make:

  • make audit — audits both Rust and Node.js dependencies for known vulnerabilities; replaces the former frontend-only audit target. Run the sub-targets individually when needed:
  • make audit-node — audits Node.js/Bun dependencies only
  • make rust-audit — audits every Rust manifest for known vulnerabilities
  • make frontend-lint
  • make frontend-typecheck
  • make frontend-test
  • make frontend-test-a11y
  • make frontend-localizability
  • make frontend-semantic
  • make frontend-e2e

Current behaviour and limits:

  • Successful task creation stays inside the fixture adapter by default and then navigates directly to the task detail route.
  • Invalid task-creation input shows client-side validation feedback before any adapter call is made.
  • Unknown task ids render a not-found state.
  • Setting VITE_TASK_GATEWAY_MODE=http switches the slice to the live HTTP gateway without changing the shipped default.
  • The live development seam depends on a manually supplied bearer token and a same-origin Vite proxy.
  • Task state mutation is wired into the live HTTP adapter, but the current UI does not surface it until roadmap item 4.4.3.
  • Branch or pull-request associations remain deferred to roadmap items 4.4.4 and later.