feat: show and copy what a finished mission produced - #96
Merged
Conversation
Going back to a completed mission told you only that you had completed it. If you needed the address you derived, or the npub you generated, the app had it and would not show you: the only way back to the value was to redo the mission, which the backend refuses. Revisiting a finished mission now shows the artifact it produced, in a labelled block with a Copy button. The label is per mission kind, so it reads "The address you derived" rather than "proof". Two missions are deliberately excluded. Knowledge missions submit the string "acknowledged", which is noise. Mission 11 submits a sha256 commitment of the seed phrase, and commitment plumbing was removed from the learner view on purpose, so it stays out; the seed itself lives in the browser and never on the server. The stepper also had to unlock. Its gating stops a learner skipping ahead to the Do step, but on a mission they already finished there is nothing left to skip, and the Do step is exactly where the artifact lives. Before this, coming back for an address meant re-reading the lesson and re-passing the quiz to reach it. Completed missions now allow free movement between Read, Quiz and Do. Composite proofs are formatted rather than dumped: the passphrase mission's two addresses are split and labelled, and a signed Nostr event is indented back into readable JSON. Verified with a new browser test (7 assertions) that walks back to a finished mission, opens the Do step, and checks the npub is shown, labelled, copyable, and that the way forward still returns the learner to where they were. Screenshotted to confirm it reads well on a phone viewport. Full suite green: 30 unit, 30 integration, e2e 7/6/15/7/5/19/ 10/3/5, tsc and build clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Going back to a completed mission told you only that you had completed it. If you needed the address you derived, or the npub you generated, the app had it and would not show you. The only route back to the value was to redo the mission, which the backend refuses.
Revisiting a finished mission now shows the artifact in a labelled block with a Copy button:
The label is per mission kind, so it reads "The address you derived" rather than "proof".
Two exclusions, on purpose
"acknowledged". Noise, hidden.secret-revealasserts its absence), so it stays out. The seed itself lives in the browser and never on our server.The stepper had to unlock too
This is the part that wasn't obvious until the test failed. The Read / Quiz / Do gating exists to stop a learner skipping ahead to the Do step. On a mission they already finished there is nothing left to skip, and the Do step is exactly where the artifact lives, so coming back for an address meant re-reading the lesson and re-passing the quiz to reach it. Completed missions now allow free movement between all three steps.
Formatting
Composite proofs are formatted rather than dumped: the passphrase mission's two addresses are split and labelled, and a signed Nostr event is indented back into readable JSON.
Verification
New browser test (7 assertions) walks back to a finished mission, opens the Do step, and checks the npub is shown, labelled and copyable, and that the way forward returns the learner to where they were. Screenshotted on a phone viewport to confirm it reads well.
Full suite green: secret-reveal 7/6, sign-event 15, review-archive 7, publish-confirm 5, badge-share 19, passphrase-fork 10, mission-prose 3, solo-rank 5. Plus 30 unit, 30 integration, tsc and build clean.
🤖 Generated with Claude Code