PWA-Ausprägung nachrüsten: Bottom-Bar + Standard-Layout für projax #2

Open
opened 2026-05-15 17:15:45 +00:00 by mAi · 1 comment
Collaborator

Request

m (2026-05-15, PWA voice):

Wir haben bei projax nicht die gleichen Standards verwendet, meine ich wie bisher. Es fehlt insbesondere ein PWA-Ausprägung mit verschiedenen Buttons am Boden. Ich möchte dies nachträglich implementieren.

(EN: "projax doesn't use the same standards as our other web apps. In particular, it's missing the PWA layer with buttons at the bottom. I'd like to retrofit this.")

The Phase-1 implementation of projax runs as a regular web app without a PWA layer (no manifest, no service worker, no bottom bar, not installable). m wants it lifted to the same PWA standard as the Otto PWA and msbls.de.

Scope

  1. PWA manifest + service worker per mWeb/docs/pwa-baseline.md. Make the app installable.

  2. Bottom bar with buttons for projax's main surfaces. Which items? Suggestions:

    • Projects (list)
    • Today (current tasks, if projax tracks them)
    • Promote/Demote (lifecycle actions; see mBrian [[concept-promotion-demotion-projects]])
    • Settings

    Final list should be confirmed with m — the initial researcher asks via mai-message or its own PWA form.

  3. Layout consistency with Otto PWA + msbls.de — same bottom-bar height, same icon set, same color-token system, same sidebar pattern where applicable.

  4. Mobile-first: m uses the PWA primarily on Android. Touch targets, safe-area insets, pull-to-refresh where appropriate.

Context

This dovetails with the larger "standards & defaults documentation" thread m opened in parallel (see m/mWeb#6). The projax PWA retrofit is the first concrete probe of whether the mWeb PWA baseline is actually plug-and-play or still has gaps. Findings from this implementation should flow back into mWeb/docs/pwa-baseline.md.

Out of scope

  • Push notifications for projax (connects to the open mAi#227 push bug — fix first, dock later).
  • Full UI rewrite — Phase 1 stays; we only add the PWA wrapper.
  • DataView standards (separate concern in mWeb#6; this issue is only the PWA wrapping).

Refs

  • m/mWeb:docs/pwa-baseline.md — existing PWA baseline.
  • m/mAi/pwa/ — Otto PWA as reference implementation.
  • m/projax:docs/design.md — source of truth for projax data model + Phase-1 state.
  • m/mWeb#6 — parent standards-framework issue.

Role: researcher first (walk the existing mWeb baseline + Otto PWA, confirm bottom-bar items with m, identify gaps), then coder for implementation.

## Request m (2026-05-15, PWA voice): > Wir haben bei projax nicht die gleichen Standards verwendet, meine ich wie bisher. Es fehlt insbesondere ein PWA-Ausprägung mit verschiedenen Buttons am Boden. Ich möchte dies nachträglich implementieren. (EN: "projax doesn't use the same standards as our other web apps. In particular, it's missing the PWA layer with buttons at the bottom. I'd like to retrofit this.") The Phase-1 implementation of projax runs as a regular web app without a PWA layer (no manifest, no service worker, no bottom bar, not installable). m wants it lifted to the same PWA standard as the Otto PWA and msbls.de. ## Scope 1. **PWA manifest** + **service worker** per `mWeb/docs/pwa-baseline.md`. Make the app installable. 2. **Bottom bar with buttons** for projax's main surfaces. Which items? Suggestions: - Projects (list) - Today (current tasks, if projax tracks them) - Promote/Demote (lifecycle actions; see mBrian `[[concept-promotion-demotion-projects]]`) - Settings Final list should be confirmed with m — the initial researcher asks via mai-message or its own PWA form. 3. **Layout consistency** with Otto PWA + msbls.de — same bottom-bar height, same icon set, same color-token system, same sidebar pattern where applicable. 4. **Mobile-first**: m uses the PWA primarily on Android. Touch targets, safe-area insets, pull-to-refresh where appropriate. ## Context This dovetails with the larger "standards & defaults documentation" thread m opened in parallel (see `m/mWeb#6`). The projax PWA retrofit is the first concrete probe of whether the mWeb PWA baseline is actually plug-and-play or still has gaps. Findings from this implementation should flow back into `mWeb/docs/pwa-baseline.md`. ## Out of scope - Push notifications for projax (connects to the open mAi#227 push bug — fix first, dock later). - Full UI rewrite — Phase 1 stays; we only add the PWA wrapper. - DataView standards (separate concern in mWeb#6; this issue is only the PWA wrapping). ## Refs - `m/mWeb:docs/pwa-baseline.md` — existing PWA baseline. - `m/mAi/pwa/` — Otto PWA as reference implementation. - `m/projax:docs/design.md` — source of truth for projax data model + Phase-1 state. - `m/mWeb#6` — parent standards-framework issue. Role: **researcher** first (walk the existing mWeb baseline + Otto PWA, confirm bottom-bar items with m, identify gaps), then **coder** for implementation.
mAi self-assigned this 2026-05-16 13:27:35 +00:00
Author
Collaborator

Head-Triage 2026-07-17: sieht vollständig ausgeliefert aus — bitte prüfen + schließen

Beim Session-Start als projax/head gegen den Live-Code geprüft (main @ bcf3412, deploy-verified). Alle vier Scope-Punkte sind da:

  1. PWA-Manifest + Service Workerweb/static/manifest.webmanifest (standalone, portrait, theme #1a1a1a) + web/static/sw.js, beide in layout.tmpl eingebunden. Icons vollständig: icon-192.png, icon-512.png, icon-maskable.png (purpose maskable). Installierbar.
  2. Bottom-Bar<nav class="projax-bottom-nav"> in web/templates/layout.tmpl, mit Active-State pro Route und web/layout_test.go als Guard. Items: Tree · Dash · (+) · Calendar — die zentrale (+)-Capture-Kreis-Taste statt der im Issue vorgeschlagenen Promote/Demote+Settings. Das ist eine bewusste Abweichung vom Issue-Vorschlag und m-facing: wenn du Promote/Demote oder Settings in der Bar willst, sag Bescheid, dann ist das ein Einzeiler.
  3. Layout-Konsistenz — eigene Icon-SVGs inline, Token-System in web/static/style.css.
  4. Mobile-first — Bottom-Nav + Safe-Area-Pattern in style.css.

Ein Fund, kein Blocker: das Manifest hat "start_url": "/dashboard", die Bottom-Nav zeigt aber auf /views/dashboard. Beide funktionieren (Phase 5j Q1=(c) hat die Legacy-URLs bewusst als Alias behalten), also kein Bug — aber die installierte PWA startet auf der Legacy-Route statt der kanonischen. Falls das stören sollte: einzeilige Manifest-Änderung. Sag Bescheid, dann filen wir das separat.

Ich schließe nicht selbst (nur m schließt). Aus Head-Sicht: erledigt.

## Head-Triage 2026-07-17: sieht vollständig ausgeliefert aus — bitte prüfen + schließen Beim Session-Start als projax/head gegen den Live-Code geprüft (`main` @ bcf3412, deploy-verified). Alle vier Scope-Punkte sind da: 1. **PWA-Manifest + Service Worker** — `web/static/manifest.webmanifest` (standalone, portrait, theme `#1a1a1a`) + `web/static/sw.js`, beide in `layout.tmpl` eingebunden. Icons vollständig: `icon-192.png`, `icon-512.png`, `icon-maskable.png` (purpose maskable). Installierbar. 2. **Bottom-Bar** — `<nav class="projax-bottom-nav">` in `web/templates/layout.tmpl`, mit Active-State pro Route und `web/layout_test.go` als Guard. Items: **Tree · Dash · (+) · Calendar** — die zentrale (+)-Capture-Kreis-Taste statt der im Issue vorgeschlagenen `Promote/Demote`+`Settings`. Das ist eine bewusste Abweichung vom Issue-Vorschlag und m-facing: wenn du Promote/Demote oder Settings in der Bar willst, sag Bescheid, dann ist das ein Einzeiler. 3. **Layout-Konsistenz** — eigene Icon-SVGs inline, Token-System in `web/static/style.css`. 4. **Mobile-first** — Bottom-Nav + Safe-Area-Pattern in style.css. **Ein Fund, kein Blocker:** das Manifest hat `"start_url": "/dashboard"`, die Bottom-Nav zeigt aber auf `/views/dashboard`. Beide funktionieren (Phase 5j Q1=(c) hat die Legacy-URLs bewusst als Alias behalten), also kein Bug — aber die installierte PWA startet auf der Legacy-Route statt der kanonischen. Falls das stören sollte: einzeilige Manifest-Änderung. Sag Bescheid, dann filen wir das separat. Ich schließe nicht selbst (nur m schließt). Aus Head-Sicht: **erledigt**.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: m/projax#2
No description provided.