Skip to content

A module-final lesson's collectible is earned without ever being shown #504

Description

@maximsan

backlog · blocked on the design source. Nothing to build until prototype/ says how this looks — filed so the gap is written down, not so it is picked up. Nothing is broken and no card is lost, so this waits for the design to be thought through properly rather than being patched around.

The gap

Every lesson hands over a collectible, and the lesson ending is where a learner sees it. A lesson that is last in its module never plays that ending: the flow branches to the module ending instead (app.jsxisLastInModule), which shows the module's reward on its back face. So the lesson's own card is collected in silence.

Measured against the shipped banks, that is five cards, one per module:

Module Last lesson The card it hands over
m1 m1l7 The Cherry in Section
m2 m2l6 Decaf
m3 m3l6 Caffeine
m4 m4l7 Your Grinder
m5 m5l6 Your First Cup

The card is still collected and still on the Cards tab. What is missing is the beat where the app says here is what you just earned — in an app whose reward loop is that beat.

Why it is open again

#458 ruled on 31 Aug that "the design has that hole; the app does not take it", and the module ending grew a row reporting the closing lesson's card. #490 restyled both endings onto the 3 Sep drop's anatomy, where the module front is a points line and a freeze line and carries no list — so the row went.

The 3 Sep drop did not revisit this. The branch in app.jsx is unchanged, and the restyled ModuleCompleteScreen takes no lesson-card prop at all. The hole is exactly where #458 found it; only the app's cover for it is gone.

What is owed, and in what order

  1. The design decides. prototype/rewards.jsx has no slot for this today. Whether it is a row on the module front, a second face, a line under the points, or deliberately nothing is a design call, and the app should not invent a fourth answer — the last one it invented is what this ticket is undoing.
  2. Then the app follows, which is small: a row, a field on ModuleEndingRun, a test.

Not urgent: nothing is broken, no card is lost, and the moment is missing rather than wrong.

Acceptance

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogReal and agreed, but not scheduled — do not pick this up as ready workdesign-parityCloses a finding in the app-vs-prototype divergence register

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions