feat(library): anonymous seed-lesson SSR detail (share funnel last step) #87
No reviewers
Labels
No labels
backend
bug
completed
documentation
duplicate
enhancement
feature
frontend
good first issue
help wanted
in-progress
invalid
performance
phase-1
Phase1
Phase2
Phase3
planning
question
refactor
security
test
testing
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Kalle/ATM!87
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/library-public-detail"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Plan
Anonyme Besucher (Landing-Card, Share-Link) laufen auf
/[locale]/library/[id]in ein Dead-End: SSR zeigt nur "Lektion wird geladen…", der Client-Fallback/api/lessons/list401t, dann "nicht gefunden". Die Lektion muss ohne Konto les- und hörbar sein; OG-Preview muss den echten Titel zeigen, ohne den Per-User-Store zu lesen.Outcome
Neuaufbau der PR-#87-Linie auf aktuellem dev (alter Branch: 27+ Commits Drift, Konflikt mit inzwischen gemergtem #85):
page.tsx: SSR viagetPublicSeedLessonDetail(Allowlist-Projektion, niePersistentMap/User-Store) +initialLesson-PropLessonDetailClient:initialLesson+isReadOnly— per-user Flächen versteckt (Edit/Delete/Share/Favorit, Status-Writes, Notizen, Voice-Settings), Play-Button bleibt (anonym hören via public audio URL; Produkt-Entscheidung auf #85-Basis)anon_invite/anon_sign_in, 9 Locales)/api/lessons/[id]: Volltext statt PreviewImpact
Share-Funnel erstmals komplett: Landing-Card → lesbare + hörbare Lektion in Session 1, ohne Login-Wall. Blackbox +6 Checks (Test 27, 113→119), Unit +13 (411→424). OG-Privacy: User-Lektionen erscheinen nie in anonymen Metadaten.
Blackbox
Six-perspectives check
Risk
Authed-Pfad unverändert (
isReadOnlylöst sich bei Store-Hit auf, Test pinnt es); Rollback = Revert, keine Migration. Residual: testing rot bis Deploy (erwarteter Pre-Deploy-Zustand).Checklist
Verdict: P2 — Self-review, requesting human review.
Self-review against the P0–P3 rubric:
next buildexit 0,tsc --noEmitclean. The single red blackbox check ("Lesson audio field present") is pre-existing on testing and belongs to open #85. No Feldenkrais-principle violations (no correction/judgement language; logged-out copy is neutral and open-ended). No push todev/main.Lessonfields cannot leak anonymously.audio_urlis duplicated from #85's helper rather than imported, deliberately — importing it would break the build on currentdevsince that export lands with #85. The two are byte-identical and trivially converge on merge.Blackbox: 12/13 on testing (unchanged; single red pre-existing, owned by #85).
Roadmap impact: "Lessons catalog & seed"
[~]→[x].One convergence note for the reviewer: this PR and #85 both emit
audio_urlon lesson payloads — this one on the detail projection, #85 on the catalog + audio route. They are intentionally contract-identical, so merging in either order is safe.This review was created by an AI agent (OpenHands) on behalf of the ATM team.