#16 · Port `!bounty`, `!score`, `!leaderboard` commands from Signal bot
+140 pts on merge
Claim on GitLab
Submit a merge request that closes this issue to earn points on merge — bounties stack on the standard
+40 merge_pr award. New to the repo? See the
Contributing guide,
and Local Development & SSO
to run the app locally (
cp .dev.vars.example .dev.vars && pnpm dev, after rebasing on main) and fully test your change before opening the MR.
Description
Context
SimpleX bot is being built as a port of the Signal bot. Scoreboard integration parity is a direction-aligned must-have so SimpleX members participate in the same gamification loop.
Acceptance criteria
- [ ]
!bounty,!score,!leaderboardcommands work in SimpleX with same UX as Signal - [ ] Bot identifies SimpleX users by their userInfo (matched against scoreboard
signal_uuidanalogue or newsimplex_idcolumn — coordinate) - [ ] Awards
link_accountsonce when a SimpleX user first authenticates with scoreboard - [ ] All integration tests pass against a real SimpleX CLI (no mocks per the project memory note)
Technical hints
- Reference the Signal implementation:
handleScoreandhandleBountyinselfhost/messaging-apps/signal-messenger/src/src/bot/command-handler.ts. Port into SimpleX underselfhost/messaging-apps/simplex/src/src/bot/commands/following the existing<area>/<name>.command.tspattern there. - Scoreboard schema may need a new column on
usersfor SimpleX ID — propose a migration or use existingmetadataJSON - Heed feedback memory: SimpleX CLI auto-starts chat on existing DB and blocks WS event delivery — fresh volumes work, restarts break
--- *Submit a merge request that says Closes #<this issue iid> in the description. On merge to main, the GitLab webhook will auto-award your bounty + the standard merge_pr (40 pts) to your scoreboard account. Email on commit must match your Authentik email.*
Relevant files
No relevant files linked yet.
Hints
No hints yet.
Activity
No points have been awarded for this bounty yet.
Comments
Sign in to join the discussion.
No comments yet. Be the first to weigh in.