feat: first-launch welcome screen explaining the loop (#14)#21
feat: first-launch welcome screen explaining the loop (#14)#21abhiksark wants to merge 1 commit into
Conversation
Closes #14. On a genuine first launch (no prior progress), pylings now shows a dismissible welcome overlay that explains the core loop — edit the file in your editor, save, the check reruns, remove the '# I AM NOT DONE' marker to advance — plus the key shortcuts. This removes the 'what do I do now?' drop-off after a beginner lands in their first exercise. - New WelcomeScreen modal + pure welcome_text(); reuses the existing state.seen_intro flag (persisted), so it shows once. Dismiss with Enter or Esc; non-blocking. - Shown only when launching into an exercise (not on 'pylings topics', which already has the picker's first-run banner). - Tests: welcome_text content (unit) + pilot tests for shown-on-first- launch, not-shown-when-seen, and dismissal persisting the flag. Existing pilot helper now seeds seen_intro so returning-user tests are unaffected. - Centered modal styling mirroring the docs window.
|
Warning Review limit reached
More reviews will be available in 21 minutes and 15 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Superseded by the v0.4.0 pylings→pythonlings rename on main (old package layout, conflicts). Re-implementing the welcome screen fresh on v0.4.0. |
Closes #14
Part of the 0.3.0 adoption roadmap — First-run UX. Built test-first (TDD). Pairs with #13 (auto-init): a beginner lands in a fresh workspace and now gets a short explainer instead of a bare editor.
What
On a genuine first launch (no prior progress), pylings shows a dismissible
welcome overlay explaining the core loop — edit the file in your editor, save,
the check reruns, remove
# I AM NOT DONEto advance — plus the key shortcuts.WelcomeScreenmodal + purewelcome_text(). Reuses the existingstate.seen_introflag (already persisted), so it shows exactly once.Dismiss with Enter/Esc; non-blocking.
pylings topics, whichalready has the picker's own first-run "Start here" banner.
Tests (TDD)
welcome_textcontent (unit).seen_introis set, anddismissal persists the flag.
seen_introso the returning-user solvingtests are unaffected; the first-run banner test keeps genuine first-run state.
Full suite 125 → 129 passed, verified on Python 3.9 and 3.13.
Note
Independent of #20 (touches
app.py/welcome.py/tcss, disjoint from #20'scurriculum/cli/progress/track), so the two can merge in any order.