docs(t-paliad-149): renumber migrations 058→060 (PR 1) and 059→061 (PR 2)

058 = paliadin_poc (t-146), 059 = profession_vs_responsibility (t-148), both shipped on main 2026-05-07. Next available is 060.

Per maria's coder-shift instruction.
This commit is contained in:
m
2026-05-07 22:15:22 +02:00
parent 597d76e21c
commit 438e73fd13

View File

@@ -9,7 +9,7 @@
m answered the 4 surfaced questions:
- **Q1 default landing:** Last-viewed restore (sessionStorage; first-ever visit falls back to Tree + Alle + top-level only)
- **New-Q20 Cards default content:** Rich (~9 facts)
- **New-Q21 Cards customisation:** Full drag-rearrange + named layouts (needs new `paliad.user_card_layouts` table — migration 059)
- **New-Q21 Cards customisation:** Full drag-rearrange + named layouts (needs new `paliad.user_card_layouts` table — migration 061)
- **Q13 search shape:** Both simultaneously (in-place tree/cards filter on page + global Cmd-K palette stays as the from-anywhere shortcut)
These 4 are LOCKED. The other 17 recommendations remain READY-FOR-REVIEW;
@@ -22,7 +22,7 @@ m may challenge any in the review pass.
Angepinnt / Status / Typ / Mit aktiven Fristen) with **AND-across-chips,
OR-within-multi-select** combinatorics, plus a single prominent search input that
filters the active view (in-place for tree; substring filter for cards / flat).
Pinning is a per-user dot table (`paliad.user_pinned_projects`, migration 058) with
Pinning is a per-user dot table (`paliad.user_pinned_projects`, migration 060) with
a star marker on every row/card + an "Angepinnt" filter chip.
**Cards view** (m's addition 2026-05-07 22:00) is a quick-overview surface:
@@ -110,7 +110,7 @@ m's framing 2026-05-07 21:52:
3. Visibility (`paliad.can_see_project`) already extends through ancestors
+ descendants + partner-unit derivation (t-139 shipped). Nothing to add
on the visibility front.
4. Migration tracker is at 057 (next available is 058).
4. Migration tracker is at 059 on main (058 = paliadin_poc t-146, 059 = profession_vs_responsibility t-148, both shipped 2026-05-07). Next available is 060 (PR 1) and 061 (PR 2).
5. The Custom Views substrate (t-144) is **NOT** the right place for projects
— see §6.
@@ -329,7 +329,7 @@ row but the row is full-width and tappable.
### 4.7 Pinning storage (Q9, Q11)
New table `paliad.user_pinned_projects`. Migration 058 (next available).
New table `paliad.user_pinned_projects`. Migration 060 (next available).
```sql
CREATE TABLE paliad.user_pinned_projects (
@@ -532,7 +532,7 @@ Default visible facts (all on by default):
m chose **full per-user customisation with named layouts**. Implementation:
**New table — migration 059:**
**New table — migration 061:**
```sql
CREATE TABLE paliad.user_card_layouts (
@@ -806,10 +806,10 @@ size today. Lazy-loading deferred to when telemetry shows it matters.
## 7. Data model
One new table (migration 058):
One new table (migration 060):
```sql
-- 058_user_pinned_projects.up.sql
-- 060_user_pinned_projects.up.sql
CREATE TABLE paliad.user_pinned_projects (
user_id uuid NOT NULL REFERENCES paliad.users(id) ON DELETE CASCADE,
@@ -973,7 +973,7 @@ would be nice but is a v2 follow-on. Out of scope.
**Two-PR split** (added with Cards-view scope):
- **PR 1 — Tree-first redesign + chips + pinning + search.** ~1100-1400 LoC.
- Migration 058 (`paliad.user_pinned_projects`, ~30 LoC).
- Migration 060 (`paliad.user_pinned_projects`, ~30 LoC).
- PinService (~80 LoC) + handlers (~50 LoC).
- `BuildTree` extension with `BuildTreeOptions` (~250 LoC) — chip filters,
subtree counts, `?scope=mine` greyed-ancestor branch, `?q=…` server-side.
@@ -986,7 +986,7 @@ would be nice but is a v2 follow-on. Out of scope.
- **PR 2 — Project Cards view + drag-rearrange named layouts.** ~1300-1700
LoC (bumped from ~700-900 by the locked Q21 = full drag-rearrange).
- Migration 059 (`paliad.user_card_layouts`, ~40 LoC).
- Migration 061 (`paliad.user_card_layouts`, ~40 LoC).
- `CardLayoutService` (CRUD + auto-seed default + tx-flip-default) (~150 LoC).
- Layout-JSON validator (`layout_spec.go`, fact-key registry, count
bounds, title-row invariant) (~120 LoC).
@@ -1074,7 +1074,7 @@ metadata that Tree already has.
### 11.7 Cards customisation in localStorage vs server table
m chose option (c) — server-side `paliad.user_card_layouts` (migration 059)
m chose option (c) — server-side `paliad.user_card_layouts` (migration 061)
with named layouts and drag-rearrange. Layouts follow the user across
devices automatically. Trade-off: more surface to ship, more UX to design
(layout dropdown, edit mode, drag-and-drop, save/discard semantics). Cost
@@ -1110,7 +1110,7 @@ The 4 surfaced questions answered by m via AskUserQuestion this session:
Seed "Standard" layout = title + type + status + clientmatter + parent
path + deadline counts + next 3 + last 3 + team. See §5b.4.
3. **New-Q21 Cards customisation → (c) Full drag-rearrange + named layouts.**
New `paliad.user_card_layouts` table (migration 059). HTML5 drag-and-drop
New `paliad.user_card_layouts` table (migration 061). HTML5 drag-and-drop
edit mode. CRUD endpoints. See §5b.3.
4. **Q13 search shape → (c) Both simultaneously.**
Page input does in-place filter on the active view (Tree / Cards / Flat).
@@ -1126,7 +1126,7 @@ in the next pass. Recommendations m hasn't explicitly addressed:
- Q6 lazy-loading (deferred — full tree fits today)
- Q7 inline counts (subtree-aggregated default, "nur direkt" toggle)
- Q8 affordances (always-visible pin star + click-row-open + no context menu)
- Q9 pin storage (paliad.user_pinned_projects, migration 058)
- Q9 pin storage (paliad.user_pinned_projects, migration 060)
- Q10 pin display (recommended option (a) — star marker only)
- Q11 pins per-user (confirmed)
- Q12 search scope (title + parent path + reference + clientmatter)
@@ -1145,8 +1145,8 @@ in the next pass. Recommendations m hasn't explicitly addressed:
### PR 1 — Tree + chips + pin + search
Backend:
- `internal/db/migrations/058_user_pinned_projects.up.sql` (NEW, ~30 LoC)
- `internal/db/migrations/058_user_pinned_projects.down.sql` (NEW)
- `internal/db/migrations/060_user_pinned_projects.up.sql` (NEW, ~30 LoC)
- `internal/db/migrations/060_user_pinned_projects.down.sql` (NEW)
- `internal/services/pin_service.go` (NEW, ~80 LoC)
- `internal/services/project_service.go` (extend `BuildTree`, ~250 LoC)
- `internal/handlers/projects.go` (route registration, query-param parsing, ~80 LoC)
@@ -1167,8 +1167,8 @@ Frontend:
### PR 2 — Cards view + drag-rearrange named layouts
Backend:
- `internal/db/migrations/059_user_card_layouts.up.sql` (NEW, ~40 LoC)
- `internal/db/migrations/059_user_card_layouts.down.sql` (NEW)
- `internal/db/migrations/061_user_card_layouts.up.sql` (NEW, ~40 LoC)
- `internal/db/migrations/061_user_card_layouts.down.sql` (NEW)
- `internal/services/layout_spec.go` (NEW, fact-key registry + JSON validator, ~120 LoC)
- `internal/services/card_layout_service.go` (NEW, CRUD + auto-seed
default + tx-flip-default, ~150 LoC)