Skip to content

Conversation

@nguyentvan7
Copy link
Collaborator

@nguyentvan7 nguyentvan7 commented Oct 7, 2025

Describe your changes

Issue or discord link

Testing/validation

Checklist before requesting a review (leave this PR as draft if any part of this list is not done.)

  • I have commented my code in hard-to understand areas.
  • I have made corresponding changes to README or wiki.
  • For front-end changes, I have updated the corresponding English translations.
  • I have run yarn run mini-ci locally to validate format and lint.
  • If I have added a new library or app, I have updated the deployment scripts to ignore changes as needed

Summary by CodeRabbit

  • New Features
    • Added Irminsul scanner card with image, packet-capture tag, new badges for materials and additional artifact features, and a “GOOD” export label.
    • Enhanced warning tooltip to show a stronger TOS notice when applicable.
  • Documentation
    • Updated copy to emphasize OCR-based inventory scanning, added new explanatory paragraphs and an English export note, and refreshed external README links.
  • Revert
    • Removed Akasha Scanner content from UI and localization.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 7, 2025

Walkthrough

I shuffled in at 3am: added several English localization keys and removed the Akasha block; updated the page-scanner UI to add Irminsul (image), new badges/icons and tooltips, GOOD export notes, link updates, and a stronger TOS tooltip mode via a strong flag.

Changes

Cohort / File(s) Summary
Localization updates
libs/gi/localization/assets/locales/en/page_scanner.json
Added keys: tosStrongWarn, addlArtiText, tags.packetCap, tags.addlArti, nb.p3, is.title, is.p1, is.p2, good. Updated: nb.p1, nb.p2, ik.p1, as.p1, characters/tags list. Removed: ak block.
Page scanner UI / assets
libs/gi/page-scanner/src/index.tsx, libs/gi/page-scanner/assets/.../Irminsul.webp
Added Irminsul card/image, imported FlowerIcon and EmojiEvents, new SqBadge items and addlArti badge with Tooltip, added GOOD export text blocks and nb.p3 block, updated external links to README paths, and extended WarningWrapper to accept strong and switch tooltip key to tosStrongWarn.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant UI as PageScanner UI
  participant Warning as WarningWrapper
  participant Tooltip as Tooltip
  participant Badges as Badge Renderer

  User->>UI: Open scanner page
  UI->>Warning: render(strong=true?) 
  Warning->>Tooltip: request text i18n("tosStrongWarn") or i18n("tosWarn")
  Tooltip-->>User: display stronger or normal TOS text

  UI->>Badges: render badges (FlowerIcon, EmojiEvents, addlArti)
  User->>Badges: hover badge
  Badges->>Tooltip: show i18n text (addlArtiText, GOOD, packetCap, etc.)
  Tooltip-->>User: display localized info
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

showDevComponents

Suggested reviewers

  • frzyc

Poem

eyes half-lidded, keyboard hums at dawn,
new strings land, the Akasha ghost is gone.
Irminsul pops, badges blink like pulls,
tooltips sing while my stamina nulls.
patch deployed — time for one last roll.

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Description Check ⚠️ Warning I’m nodding off as I skim the PR body, and it seems the author only left the template sections without filling in any details about what was changed. The Describe your changes, issue link, and testing validation sections are all empty placeholders. The checklist remains completely unchecked, giving no indication that required steps have been taken. This leaves the description effectively useless for reviewers to understand or track the changes and ensures critical information is missing. Please fill out each section of the description template with actual content: summarize the changes made, link to relevant issues or discussion threads, and provide details on how the changes were tested. Mark the checklist items accordingly to show that code comments, documentation updates, translations, and linting checks have been completed. Adding these details will help reviewers and maintain project standards even when I can’t stay awake until morning.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (1 passed)
Check name Status Explanation
Title Check ✅ Passed Somnia here, feeling like I pulled all my energy as if after a bad gacha run, but I can see that the title succinctly captures the update to the scanners page with the new IK fork and Irminsul addition. It is concise, mentions the actual features added, and aligns with the raw changes described. The title steers clear of vague terms and doesn't include unnecessary details like file paths. It should help teammates understand the main change at a glance.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch van/updateScanners

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9fd008e and c787c6c.

📒 Files selected for processing (2)
  • libs/gi/localization/assets/locales/en/page_scanner.json (2 hunks)
  • libs/gi/page-scanner/src/index.tsx (12 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
libs/gi/page-scanner/src/index.tsx (1)
libs/common/ui/src/components/Card/CardThemed.tsx (1)
  • CardThemed (20-32)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: gen-file
  • GitHub Check: call-build / build
  • GitHub Check: typecheck
  • GitHub Check: lint
  • GitHub Check: test

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

github-actions bot commented Oct 7, 2025

[frontend] [Tue Oct 7 00:23:08 UTC 2025] - Deployed e4820fb to https://genshin-optimizer-prs.github.io/pr/3081/frontend (Takes 3-5 minutes after this completes to be available)

[frontend] [Tue Oct 7 21:55:33 UTC 2025] - Deployed 7eb46d7 to https://genshin-optimizer-prs.github.io/pr/3081/frontend (Takes 3-5 minutes after this completes to be available)

[Fri Oct 10 20:15:17 UTC 2025] - Deleted deployment

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
libs/gi/page-scanner/src/index.tsx (1)

392-410: Critical: Translation key ak.p2 references removed Akasha Scanner block.

This code references ak.p2, but the localization file shows the entire ak block was removed. This will throw a translation error at runtime - caught it before my third energy drink kicked in.

Based on the context, this paragraph about achievement scanning for Paimon.moe and Seelie.me should stay with Irminsul. Apply this diff:

             <Typography gutterBottom>
-              <Trans t={t} i18nKey="ak.p2">
+              <Trans t={t} i18nKey="is.p2">
                 This app is also able to scan achievements for
                 <Link

Then add the corresponding key to page_scanner.json:

   "is": {
     "title": "Irminsul",
-    "p1": "Sniffs network packets to scan all characters, weapons, artifacts and materials in your inventory."
+    "p1": "Sniffs network packets to scan all characters, weapons, artifacts and materials in your inventory.",
+    "p2": "This app is also able to scan achievements for <1>Paimon.moe</1> and <3>Seelie.me</3>."
   },
🧹 Nitpick comments (2)
libs/gi/page-scanner/src/index.tsx (2)

174-182: Extract repeated tooltip badge pattern into a reusable component.

This tooltip + FlowerIcon badge pattern is copy-pasted three times. My caffeine-deprived brain says this screams for extraction before the next PR duplicates it again.

Consider creating a helper component like:

function AdditionalArtifactBadge() {
  const { t } = useTranslation('page_scanner')
  return (
    <Tooltip
      placement="top"
      title={<Typography>{t('addlArtiText')}</Typography>}
    >
      <SqBadge sx={{ display: 'flex', alignItems: 'center' }}>
        <FlowerIcon sx={{ pr: 0.5 }} />
        {t('tags.addlArti') as string}
      </SqBadge>
    </Tooltip>
  )
}

Then replace all three instances with <AdditionalArtifactBadge />.

Also applies to: 259-267, 357-365


379-390: Consider consolidating the Seelie.me mentions.

Both lines 379-390 and 392-410 mention Seelie.me support. The achievement paragraph (392-410) also mentions Seelie.me. Consider whether this duplication is intentional or if the content should be merged for clarity. Too many refs make my tired eyes cross.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 98eed22 and 9fd008e.

📒 Files selected for processing (2)
  • libs/gi/localization/assets/locales/en/page_scanner.json (2 hunks)
  • libs/gi/page-scanner/src/index.tsx (12 hunks)
🧰 Additional context used
🧬 Code graph analysis (1)
libs/gi/page-scanner/src/index.tsx (1)
libs/common/ui/src/components/Card/CardThemed.tsx (1)
  • CardThemed (20-32)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: lint
  • GitHub Check: gen-file
  • GitHub Check: test
  • GitHub Check: typecheck
  • GitHub Check: call-build / build
🔇 Additional comments (13)
libs/gi/page-scanner/src/index.tsx (6)

3-3: LGTM! Nice addition for the flower badge.

Perfect for showing off those artifact features. Now if only my artifacts would roll better at 3 AM...


8-8: Achievement icon imported correctly.

Good choice using EmojiEvents for achievements. At least someone's getting achievements... unlike my pity counter.


112-119: New paragraph and GOOD export note added for Artiscan.

The additional context about user input dependency and export format is helpful for users.


366-366: LGTM! Strong warning flag usage is appropriate.

Using strong prop for Irminsul's packet capture method is exactly right - network sniffing is definitely riskier than OCR. Good judgment call (better than my judgment at 4 AM when I'm still pulling).


427-456: Clean implementation of conditional warning tooltip.

The strong flag elegantly switches between warning levels. Simple and effective - just like my plan to sleep tonight (spoiler: won't happen).


126-126: No action needed: IK fork is actively maintained
The taiwenlee/Inventory_Kamera fork has recent commits as of 2025-10-06 and is actively maintained; the README link can remain.

libs/gi/localization/assets/locales/en/page_scanner.json (7)

4-4: Strong warning text is appropriately stern.

The packet capture warning correctly emphasizes the elevated risk. Network sniffing tools need that extra caution flag - like the warning I ignore when gacha rates are bad.


5-5: Tooltip text clearly explains the additional artifact features.

Good clarity on what "Addl. Artifact Features" means. Users will appreciate knowing about substat and roll count scanning capabilities.


14-16: New tag labels added correctly.

The additions for achievements, packet capture, and additional artifact features align with the UI changes. All clear.


20-22: Updated Artiscan descriptions are clearer.

The emphasis on "OCR scanner" and platform capabilities is more descriptive than before. The note about user input dependency (p3) is helpful context.


26-27: IK description simplified to focus on capabilities.

Changed from "light-weight app" to "OCR scans" - more concise and focuses on what it does rather than how it's built. Nice cleanup.


34-34: AdeptiScanner description updated to clarify import scope.

The update from "import data from" to "import character data from" is more precise. Good specificity - much like how specific I am about my gacha pull rituals at 2 AM.


37-37: New generic GOOD export key is useful.

Having both goodeng (English-only scanners) and good (language-agnostic scanners) gives proper flexibility for different scanner types. Smart distinction.

@nguyentvan7 nguyentvan7 merged commit 1e1d351 into master Oct 10, 2025
9 checks passed
@nguyentvan7 nguyentvan7 deleted the van/updateScanners branch October 10, 2025 20:14
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.

3 participants