Repository navigation
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a52411a581
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Phase 5, PR 5.3 of the reputation portability plan. A new Import reputation screen (/import_reputation): - "Get it from lnp2pBot" opens t.me/lnp2pbot?start=rep_<identity>, the identity as 43 base64url characters so the start parameter stays under Telegram's cap. - The user pastes what the bot sent (or an attestation exported from another Mostro, prefilled when one is pending); the screen finds the event JSON in the paste, verifies it and shows the figures before importing them into the selected node. - Every refusal, local or from the node, is shown in the user's language (reputation_errors.dart), in every ARB. Telegram URL buttons cannot open an app scheme, so lnp2pBot sends the attestation as text and the paste is the hand-off on every platform. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UrKanPgEfEBiEo3snHz4WZ
The lnp2pBot button put the master public key in a Telegram link without checking full privacy mode, so Telegram could link the identity to the user's account before the import was refused. Take the identity from ReputationService.identityPublicKey, which refuses in full privacy mode, and show reputation_identity_required instead. A retry that succeeded also left the earlier failure on screen next to "Your reputation was imported."; clear the error when an import starts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01E4t8avpoStb19ERrS77V2m
60a209a to
6e99df9
Compare
a52411a to
0c52f22
Compare
What changes and why
This is phase 5, PR 5.3 of the reputation portability plan. It is stacked on #743 (5.2). The bot side is lnp2pBot/bot#933 (export) and #934 (rebind).
The new Import reputation screen (
/import_reputation) lets a user bring the reputation they earned on lnp2pBot, or on another Mostro, into the selected node:"Get it from lnp2pBot" opens
https://t.me/lnp2pbot?start=rep_<identity>in Telegram (lnp2pbot.dart). The identity is written as 43 characters of unpadded base64url, so the start parameter stays under Telegram's 64-character cap.The bot asks the user to confirm the identity, then sends the attestation as a message. The user pastes it into the screen. An attestation exported from another Mostro and still pending (5.2) is prefilled.
Check:
extractAttestationJsonfinds the event JSON in the paste, so surrounding text and whitespace are fine;ReputationAttestation.parseverifies it;The screen also states that the import links the two accounts.
"Import into this Mostro" calls
ReputationService.importReputation.Every refusal, found locally or sent by the node, is shown in the user's language (
reputation_errors.dart).Strings. 21 new strings, in all seven ARB files. Automation ids. Five ids under
reputation.import.*, all attached.Deviation from the plan. The plan has the bot answer with a button that opens the app's deep link. Telegram URL buttons only accept http(s) and tg:// links, so lnp2pBot sends the attestation as text instead, and the paste is the hand-off on every platform. Because nothing can open a
mostro:reputation link, no inbound deep link is added.Tests
lnp2pbot_test.dart:import_reputation_screen_test.dart:Screenshots
None yet: the screen is reachable from Settings in 5.4, where the screenshots will be added.
🤖 Generated with Claude Code
https://claude.ai/code/session_01UrKanPgEfEBiEo3snHz4WZ