# Phase 18: App Shell & Navigation - Discussion Log

> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

**Date:** 2026-05-17
**Phase:** 18-App Shell & Navigation
**Areas discussed:** Figma source, Header bar design, Sidebar changes scope

---

## Figma Source

| Option | Description | Selected |
|--------|-------------|----------|
| I have a Figma file/link to share | User has both Figma and screenshots | ✓ |
| I'll describe from memory | No live Figma access | |
| Screenshots only | Exported screens only | |

**User's choice:** Has both a Figma file and screenshots.

| Option | Description | Selected |
|--------|-------------|----------|
| I'll paste the Figma URL now | Figma: https://www.figma.com/design/6z32tx1YhL3nJHlX6M4IA2/XTABLO-Design--bbellev---copie-?node-id=11013-36540 | ✓ |
| Screenshots in the repo | screenshots/ folder at repo root | ✓ |
| I'll attach separately | Provide at plan time | |

**User's choice:** Both — Figma URL provided + screenshots/ folder confirmed at repo root.

---

## Header Bar Design

| Option | Description | Selected |
|--------|-------------|----------|
| Visual placeholders only | Search + bell = static HTML, no backend | ✓ |
| Search functional | Wire search to tablo filtering | |
| Both functional | Wire search + notifications | |

**User's choice:** Visual placeholders only for search and notifications.

---

| Option | Description | Selected |
|--------|-------------|----------|
| Add params to AppLayout | Add `pageTitle string` + `breadcrumb []BreadcrumbItem` | ✓ |
| Use a struct for layout params | Bundle all layout data into `AppLayoutParams` | |
| Each page renders its own header | Pages include header component directly | |

**User's choice:** Add params to AppLayout.

---

| Option | Description | Selected |
|--------|-------------|----------|
| Open dropdown with logout | Small dropdown with settings + logout | ✓ (with specifics) |
| Link to account/settings | Navigate to profile page | |
| Non-interactive | Avatar static, logout stays in sidebar | |

**User's choice:** Open dropdown. User provided reference HTML from JS app with specific content:
- Workspace name + member count row
- Members list (avatar, name, email)
- Settings link → `/settings`
- Logout button (red)
- **No theme toggle buttons**

---

| Option | Description | Selected |
|--------|-------------|----------|
| Global bar only | Top bar = breadcrumb + placeholders + avatar | |
| Include per-page action slots now | AppLayout gets `headerActions templ.Component` slot | ✓ |

**User's choice:** Include per-page action slots now so downstream phases can fill them in.

---

## Sidebar Changes Scope

| Option | Description | Selected |
|--------|-------------|----------|
| Nav items + labels change, structure stays | Update nav list, adjust CSS tokens | |
| Full rebuild to Figma spec | New HTML structure from scratch | ✓ |
| CSS-only tweaks | Colors/spacing only | |

**User's choice:** Full rebuild to Figma spec, AND adapt the design system accordingly to keep solid foundations.

---

| Option | Description | Selected |
|--------|-------------|----------|
| Match Figma labels exactly | Home/My Tasks/Projects/Events/Team Members | ✓ |
| Keep Go app routes, update labels only | Rename existing items | |
| I'll specify the exact mapping | Freeform | |

**User's choice:** Match Figma labels exactly where possible.

---

| Option | Description | Selected |
|--------|-------------|----------|
| No — static sidebar only | Skip collapse | |
| Yes — with cookie persistence | Collapse + persist state | |
| Yes — without persistence | Collapse, resets on reload | ✓ |

**User's choice:** Implement collapse toggle without persistence (reset on reload).

---

## Claude's Discretion

- Avatar dropdown implementation mechanism (HTMX toggle, `<details>`, inline JS)
- Exact CSS class naming for new header bar components
- Whether `BreadcrumbItem` is a struct or string slice

## Deferred Ideas

- Sidebar collapse with cookie persistence → v5.0 (RESP-01)
- Sidebar responsive/mobile collapse → v5.0 (RESP-01)
- Search functionality → future phase
- Notifications / Inbox → future phase
- Settings page full implementation → future phase
