Skip to content

feat: add roast challenge dismiss mechanism for Firm mode#24

Merged
yagizdo merged 2 commits into
mainfrom
feat/firm-roast-challenge
May 29, 2026
Merged

feat: add roast challenge dismiss mechanism for Firm mode#24
yagizdo merged 2 commits into
mainfrom
feat/firm-roast-challenge

Conversation

@yagizdo

@yagizdo yagizdo commented May 29, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add .roastChallenge(sentenceCount: Int) as Firm tier 4 (final escalation tier)
  • User must type 3 randomly selected self-deprecating sentences to earn a skip
  • Snarky app responses appear between each sentence with timed transitions
  • Anti-paste protection matches existing PhraseDismissView behavior

Details

Firm discipline now has 5 tiers (was 4):

Tier Delay Mechanism
0 base typePhrase
1 base+5 typePhrase
2 base+10 findButton
3 base+15 typePhrase (with confirmation)
4 base+20 roastChallenge (3 sentences)

15 sentences in the pool, sampled without replacement per session (455 combinations).

Test plan

  • enforcementPolicyFirmUsesPreferences updated for 5 tiers
  • enforcementPolicyFirmTierClampsToRoastChallenge verifies tier(at: 99) returns roast challenge
  • All 106 tests pass
  • Clean build with no warnings

yagizdo added 2 commits May 29, 2026 20:36
…llenge

Active dot now renders at 50% opacity so the user can see which
sentence they are currently typing.
@yagizdo yagizdo merged commit 6344d25 into main May 29, 2026
1 check passed
@yagizdo yagizdo deleted the feat/firm-roast-challenge branch May 29, 2026 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant