Replace WolfWave canonical wolf mark - #393
Conversation
|
Warning Review limit reached
Next review available in: 48 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
WalkthroughThe PR standardizes WolfMark branding across native app surfaces, widgets, onboarding, design-system documentation, app icons, and changelogs. ChangesUnified WolfMark branding
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (1)
apps/native/WolfWave/Views/HistoryStats/MonthlyWrapView.swift (1)
277-284: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUse
Image("WolfMark")in both SwiftUI bodies instead of theNSImage(named:)bridge. Both sites wrapNSImage(named: "WolfMark")in anif letinside a SwiftUI body. The shared root cause is the unnecessary AppKit bridge. SwiftUI resolves catalog assets directly, andAlbumArtView.swiftalready follows that convention. Theif letalso drops the mark silently when the asset is missing.
apps/native/WolfWave/Views/HistoryStats/MonthlyWrapView.swift#L277-L284: replace theif let mark = NSImage(named: "WolfMark")block withImage("WolfMark")and keep the existing.resizable(),.renderingMode(.template),.interpolation(.high),.frame(width: DSSpace.s6, height: DSSpace.s6), and.foregroundStyle(.white)modifiers.apps/native/WolfWave/Views/Onboarding/OnboardingMenuBarPointerStepView.swift#L97-L97: replace theif let trayIcon = NSImage(named: "WolfMark")block withImage("WolfMark"), which also removes the staletrayIconname and the incorrect 8-space indentation.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/native/WolfWave/Views/HistoryStats/MonthlyWrapView.swift` around lines 277 - 284, Replace the NSImage(named:) bridges with direct Image("WolfMark") usage in MonthlyWrapView.swift lines 277-284 and OnboardingMenuBarPointerStepView.swift line 97. Remove the surrounding optional bindings, stale variable names, and incorrect indentation while preserving the existing image modifiers in MonthlyWrapView.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/docs/content/docs/design-system/brand.mdx`:
- Around line 22-27: Update the standalone brand-surface rule in the brand
guidance to authorize the approved brandGradient stops for Light and Dark
treatments, while preserving the existing solid blue and white options;
alternatively, update the native callers using brandGradient to use a solid
authorized mark color.
In `@apps/native/docs/onboarding-review.md`:
- Around line 113-114: Update the earlier findings in onboarding-review.md that
describe the custom Swift path, partner-gradient issue, or reference
WolfHeroMark.swift:96-106 so they are clearly labeled as historical before the
2026-08-06 sync, or rewrite them to reflect the current implementation. Keep the
new Brand sync status consistent and remove references that imply the deleted
code still exists.
In `@apps/native/WolfWave/Core/AppDelegate`+MenuBar.swift:
- Around line 24-27: In the status item setup around the WolfMark NSImage, set
the icon’s size to 18×18 before assigning it to button.image. Keep isTemplate
enabled and preserve the existing fallback behavior.
In `@apps/native/WolfWave/Views/Onboarding/Components/WolfHeroMark.swift`:
- Around line 44-47: Update WolfHeroMark to hide itself from accessibility by
default, replacing its explicit accessibility element and label with the
appropriate accessibility-hidden modifier. Preserve the existing visual layout,
and leave labeling to callers that need to expose the mark.
In
`@apps/native/WolfWave/Views/Onboarding/OnboardingMenuBarPointerStepView.swift`:
- Line 97: In the onboarding pointer step view’s WolfMark image block, align the
if-let statement with the enclosing ZStack body indentation and rename the
trayIcon binding to a name matching the WolfMark asset, updating all references
within the block.
In `@design-system/components/wolf-hero-mark.md`:
- Line 45: Update the documentation instruction in wolf-hero-mark.md to identify
assets/logo.svg as the canonical edit point, then instruct contributors to
regenerate or synchronize WolfMark.svg and all other documented derivatives from
it.
---
Nitpick comments:
In `@apps/native/WolfWave/Views/HistoryStats/MonthlyWrapView.swift`:
- Around line 277-284: Replace the NSImage(named:) bridges with direct
Image("WolfMark") usage in MonthlyWrapView.swift lines 277-284 and
OnboardingMenuBarPointerStepView.swift line 97. Remove the surrounding optional
bindings, stale variable names, and incorrect indentation while preserving the
existing image modifiers in MonthlyWrapView.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: c7e12483-2a2f-4516-b7d3-f3343be60d45
⛔ Files ignored due to path filters (25)
apps/docs/public/apple-icon.pngis excluded by!**/*.pngapps/docs/public/favicon.icois excluded by!**/*.icoapps/docs/public/icon.pngis excluded by!**/*.pngapps/docs/public/icon.svgis excluded by!**/*.svgapps/docs/public/logo.svgis excluded by!**/*.svgapps/marketing/wolfwave-announcement/public/logo.pngis excluded by!**/*.pngapps/marketing/wolfwave-announcement/public/logo.svgis excluded by!**/*.svgapps/native/WolfWave/Resources/AppIcon.icon/Assets/logo.svgis excluded by!**/*.svgapps/native/WolfWave/Resources/Assets.xcassets/DiscordArtWolfWave.imageset/DiscordArtWolfWave.pngis excluded by!**/*.pngapps/native/WolfWave/Resources/Assets.xcassets/TrayIcon.imageset/TrayIcon.pngis excluded by!**/*.pngapps/native/WolfWave/Resources/Assets.xcassets/TrayIcon.imageset/TrayIcon@2x.pngis excluded by!**/*.pngapps/native/WolfWave/Resources/Assets.xcassets/WolfMark.imageset/WolfMark.svgis excluded by!**/*.svgapps/native/WolfWave/Resources/favicon.icois excluded by!**/*.icoassets/logo-128.pngis excluded by!**/*.pngassets/logo-256.pngis excluded by!**/*.pngassets/logo-512.pngis excluded by!**/*.pngassets/logo-64.pngis excluded by!**/*.pngassets/logo-mono-128.pngis excluded by!**/*.pngassets/logo-mono-256.pngis excluded by!**/*.pngassets/logo-mono-512.pngis excluded by!**/*.pngassets/logo-mono-64.pngis excluded by!**/*.pngassets/logo-mono.svgis excluded by!**/*.svgassets/logo.svgis excluded by!**/*.svgdiscord-assets/icon.pngis excluded by!**/*.pngdiscord-assets/wolfwave.pngis excluded by!**/*.png
📒 Files selected for processing (19)
CHANGELOG.mdapps/docs/content/docs/changelog.mdxapps/docs/content/docs/design-system/brand.mdxapps/native/WolfWave/Core/AppDelegate+MenuBar.swiftapps/native/WolfWave/Resources/AppIcon.icon/icon.jsonapps/native/WolfWave/Resources/Assets.xcassets/TrayIcon.imageset/Contents.jsonapps/native/WolfWave/Resources/widget.htmlapps/native/WolfWave/Views/HistoryStats/MonthlyWrapView.swiftapps/native/WolfWave/Views/Onboarding/Components/WolfHeroMark.swiftapps/native/WolfWave/Views/Onboarding/OnboardingCompletionView.swiftapps/native/WolfWave/Views/Onboarding/OnboardingMenuBarPointerStepView.swiftapps/native/WolfWave/Views/Onboarding/OnboardingWelcomeStepView.swiftapps/native/WolfWaveTests/OnboardingCompletionViewTests.swiftapps/native/docs/onboarding-review.mdapps/widget/src/widget.htmlapps/widget/src/widget.tsdesign-system/components/album-art-view.mddesign-system/components/monthly-wrap-card.mddesign-system/components/wolf-hero-mark.md
💤 Files with no reviewable changes (1)
- apps/native/WolfWave/Resources/Assets.xcassets/TrayIcon.imageset/Contents.json
| .frame(width: 26, height: 22) | ||
|
|
||
| if let trayIcon = NSImage(named: "TrayIcon") { | ||
| if let trayIcon = NSImage(named: "WolfMark") { |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Fix the indentation and rename trayIcon.
Line 97 uses 8 spaces of indentation. The enclosing ZStack body uses 16 spaces, so the block structure now reads incorrectly. The binding name trayIcon also no longer matches the WolfMark asset.
🧹 Proposed fix
- if let trayIcon = NSImage(named: "WolfMark") {
- Image(nsImage: trayIcon)
+ if let wolfMark = NSImage(named: "WolfMark") {
+ Image(nsImage: wolfMark)📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| if let trayIcon = NSImage(named: "WolfMark") { | |
| if let wolfMark = NSImage(named: "WolfMark") { | |
| Image(nsImage: wolfMark) |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/native/WolfWave/Views/Onboarding/OnboardingMenuBarPointerStepView.swift`
at line 97, In the onboarding pointer step view’s WolfMark image block, align
the if-let statement with the enclosing ZStack body indentation and rename the
trayIcon binding to a name matching the WolfMark asset, updating all references
within the block.
Summary
Validation
Note: a final CodeRabbit verification attempt was rate-limited after the fixes.
Summary by CodeRabbit
Branding
Documentation
Accessibility & Experience