# Phase 15: Dashboard & Tablos - 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-16
**Phase:** 15-dashboard-tablos
**Areas discussed:** Sidebar nav items, Project card format, App layout strategy, Sidebar footer

---

## Sidebar Nav Items

| Option | Description | Selected |
|--------|-------------|----------|
| All items as links | Show all nav items — Chat, Planning, Tasks, etc. link to existing routes even if not yet visually restyled | ✓ |
| Working routes only | Show only Dashboard/Tablos in Phase 15, add others as restyled in phases 16-17 | |
| All items, non-working ones disabled | Show all but render non-implemented destinations as visual-only | |

**Follow-up — which items specifically:**

| Option | Description | Selected |
|--------|-------------|----------|
| Dashboard + Tablos + Planning + Chat | The 4 routes that exist in the backend today | |
| Match go-backend exactly | All 7+ items — Dashboard, Tablos, Tasks, Planning, Chat, Files, Settings | ✓ |
| Just Dashboard + Tablos | Minimal sidebar | |

**Follow-up — non-implemented routes:**

| Option | Description | Selected |
|--------|-------------|----------|
| Link to / (home) as placeholder | All items have an href, non-implemented ones go to dashboard | |
| Real hrefs where they exist, visual-only where not | Dashboard, Planning get real links; Tasks, Files, Settings render as non-clickable nav items | ✓ |

**User's choice:** Match go-backend exactly for nav item set. Items with working routes get real hrefs; Tasks, Files, Settings (no standalone pages yet) render as visual-only.
**Notes:** Chat is per-tablo so it's Claude's discretion whether it appears in top nav or as visual-only.

---

## Project Card Format

| Option | Description | Selected |
|--------|-------------|----------|
| 3-column grid matching go-backend | Use .project-grid + .project-card CSS | ✓ |
| List layout instead | Vertical list, restyled with project-card visual | |

**Follow-up — color avatar when null:**

| Option | Description | Selected |
|--------|-------------|----------|
| Derive from title hash | Deterministic color from palette based on title string | |
| Default gray/neutral color | Fixed gray circle when color is null | ✓ |
| First letter on colored background | Initials-style avatar | |

**Follow-up — card data:**

| Option | Description | Selected |
|--------|-------------|----------|
| Match go-backend exactly | Avatar + title + creation date + edit icon + delete icon | ✓ |
| Avatar + title + description + actions | Description snippet instead of date | |
| Avatar + title + task count + actions | Open task count badge | |

**User's choice:** 3-column grid, default gray avatar when color null, match go-backend card data exactly.

---

## App Layout Strategy

| Option | Description | Selected |
|--------|-------------|----------|
| Create new AppLayout templ, keep Layout for legacy | New `AppLayout(title, user, csrfToken, activePath, tablos)` for dashboard pages | ✓ |
| Update Layout in-place | Modify existing `Layout` to include sidebar and new params | |

**Follow-up — active nav:**

| Option | Description | Selected |
|--------|-------------|----------|
| Pass activePath string param to AppLayout | Handlers pass current route path explicitly | ✓ |
| Derive from request URL in a Go helper | Helper extracts active path from context | |

**User's choice:** New `AppLayout` templ with explicit `activePath string` parameter.

---

## Sidebar Footer

| Option | Description | Selected |
|--------|-------------|----------|
| Email + logout button | Show user email with a logout button. Simpler. | |
| Match go-backend .sidebar-organization fully | Avatar circle (initial letter) + email + settings link | ✓ |
| No footer for Phase 15 | Keep footer minimal, defer | |

**User's choice:** Full `.sidebar-organization` treatment — avatar circle with first initial + email + logout. Settings page doesn't exist yet, so no settings navigation.

---

## Claude's Discretion

- Exact SVG icons for each nav item (copy from go-backend dashboard_components.templ)
- Whether sidebar-projects section is a separate templ component or inline in AppLayout
- Exact neutral avatar fallback color
- Whether sidebar-footer avatar background derives from email hash or a fixed brand color
- Chat nav item behavior (visual-only vs placeholder href)

## Deferred Ideas

- Sidebar collapse toggle (JS interaction) — needs client-side persistence
- Mobile-responsive sidebar (hamburger / slide-in drawer) — Phase 15 desktop-first
- Tablo color picker in create/edit form — color field exists in DB, no UI to set it yet
- Tasks, Files, Settings standalone pages — nav items shown visual-only until built
