You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .planning/MILESTONES.md
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,33 @@
1
1
# Milestones: Lumio
2
2
3
+
## v3.2 Deck Management UX (Shipped: 2026-03-17)
4
+
5
+
**Delivered:** Improved shared deck management UX in the Android app — Discovery promoted to 2nd tab, platform repo hidden, swipe-to-unsubscribe with atomic data cleanup, and full card browsing for shared decks.
6
+
7
+
**Phases completed:** 45-46 (3 plans, 6 tasks)
8
+
9
+
**Key accomplishments:**
10
+
11
+
- Discovery tab promoted to 2nd nav position (Dashboard → Discovery → Repos → Settings)
12
+
- Platform repo lumio-decks hidden from repo list, stats, and manual add with info toast
13
+
- Atomic unsubscribe_deck SECURITY DEFINER RPC (deletes card_review_schedule + user_repositories in one transaction)
14
+
- SharedDeckListItem with swipe-to-unsubscribe, confirmation dialog, and success toast
15
+
- Unified FlatList with discriminated union (kind: 'deck' | 'repo') merging shared decks and personal repos
16
+
- Subfolder-aware card list filtering and CardDetail navigation for shared decks
**Delivered:** End-to-end deck discovery pipeline — from deck.yaml metadata authoring in the deck builder, through Docora webhook indexing into a fulltext-searchable deck_index table, to a Discovery tab in the Android app where users search, browse by tag, and subscribe to shared decks with a single tap.
- ✓ Tab Discovery promosso a 2° posizione nav (Dashboard → Discovery → Repos → Settings) — v3.2
115
+
- ✓ Repo piattaforma lumio-decks nascosto da lista repo, stats, e add manuale con info toast — v3.2
116
+
- ✓ Unsubscribe atomico da mazzo condiviso via SECURITY DEFINER RPC (card_review_schedule + user_repositories) — v3.2
117
+
- ✓ Swipe-to-unsubscribe su mazzi condivisi con dialog conferma e toast — v3.2
118
+
- ✓ Lista unificata FlatList con discriminated union (deck | repo) per repos e mazzi condivisi — v3.2
119
+
- ✓ Filtro carte per subfolder e navigazione CardDetail per mazzi condivisi — v3.2
114
120
115
121
### Active
116
122
117
-
**Current Milestone: v3.2 Deck Management UX**
118
-
119
-
**Goal:** Migliorare la gestione dei mazzi condivisi nell'app Android — riordino tab, nascondi repo piattaforma, e parità funzionale (swipe unsubscribe, tap → carte) con i repo normali.
120
-
121
-
**Target features:**
122
-
- Riordino tab bottom: Discovery prima di Repository
123
-
- Nascondi repo condiviso lumio-decks dalla lista repository
124
-
- Swipe a sinistra su mazzi condivisi per disiscriversi (con cancellazione dati studio)
125
-
- Tap su mazzi condivisi per navigare a lista carte → dettaglio carta
123
+
(No active milestone — start next with `/gsd:new-milestone`)
126
124
127
125
### Out of Scope
128
126
@@ -160,7 +158,7 @@ Gli utenti studiano concetti tramite quiz generati dall'AI — il contenuto vien
@@ -167,48 +167,18 @@ Full details: `.planning/milestones/v3.1-ROADMAP.md`
167
167
168
168
</details>
169
169
170
-
### v3.2 Deck Management UX (In Progress)
171
-
172
-
**Milestone Goal:** Migliorare la gestione dei mazzi condivisi nell'app Android -- riordino tab, nascondi repo piattaforma, e parita funzionale (swipe unsubscribe, tap per carte) con i repo normali.
**Core value:** Gli utenti studiano concetti tramite quiz generati dall'AI -- il contenuto viene dai repository Git, le domande vengono generate e pre-cachate dal sistema.
- "CardListScreen handleCardPress silently no-ops when repository is null (empty deck edge case before sync) — affects DECK-03 in non-realistic scenario only"
Migliorare la gestione dei mazzi condivisi nell'app Android — riordino tab, nascondi repo piattaforma, e parità funzionale (swipe unsubscribe, tap per carte) con i repo normali.
-`CardListScreen.tsx` line 104: `handleCardPress` silently no-ops when `repository` is null. The fallback Repository is only constructed when `allCards.length > 0`. For empty shared decks (pre-sync), tapping would do nothing. In practice: empty list means nothing to tap, so not user-visible. Minimal fix: build fallback unconditionally when `subfolderPath` is set, or show error toast in else branch.
For current requirements, see `.planning/REQUIREMENTS.md`.
7
+
8
+
---
9
+
10
+
# Requirements: Lumio
11
+
12
+
**Defined:** 2026-03-17
13
+
**Core Value:** Gli utenti studiano concetti tramite quiz generati dall'AI — il contenuto viene dai repository Git, le domande vengono generate e pre-cachate dal sistema.
14
+
15
+
## v3.2 Requirements
16
+
17
+
Requirements for Deck Management UX milestone. Each maps to roadmap phases.
18
+
19
+
### Navigation
20
+
21
+
-[x]**NAV-01**: Tab Discovery appare prima di tab Repository nella bottom navigation
22
+
23
+
### Repository Display
24
+
25
+
-[x]**REPO-01**: Il repository condiviso lumio-decks non appare nella lista repository
26
+
27
+
### Shared Decks
28
+
29
+
-[x]**DECK-01**: L'utente può disiscriversi da un mazzo condiviso tramite swipe a sinistra nella pagina Repository (con cancellazione dati studio)
30
+
-[x]**DECK-02**: L'utente può fare tap su un mazzo condiviso per vedere la lista carte filtrate per subfolder
31
+
-[x]**DECK-03**: L'utente può navigare dal mazzo condiviso al dettaglio singola carta (markdown preview, code, LaTeX, immagini)
32
+
33
+
## Future Requirements
34
+
35
+
None — focused milestone.
36
+
37
+
## Out of Scope
38
+
39
+
| Feature | Reason |
40
+
|---------|--------|
41
+
| Modifica carte da app Android | Il deck builder web è l'editor, l'app è per lo studio |
42
+
| Gestione metadata mazzo da app | deck.yaml si gestisce dal deck builder web |
0 commit comments