Conversation
Add hover cards for WiFi (SSID, masked password, encryption badge), EPC/Bank (IBAN, BIC, amount, purpose), and Location (address, coordinates). Redesign existing vCard, Event, and Email cards with consistent style: colored icon header, structured label-value rows. Show vCard hover card for static QR codes too. Remove redundant inline icons from trigger text. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add copy-to-clipboard button on hover for URLs in content column (short URLs, destination URLs, static URLs) - Add truncation-aware tooltips for names, URLs, and tags (only shown when text is actually cropped) - Constrain name column width and use text-foreground for content column - Fix dynamic URL display: proper truncation, arrow icon visibility, and min-width constraints - Add useIsTruncated hook and TruncatedLink/CopyUrlButton reusable components - Update translations for copy URL feature across all 8 locales Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ix mobile layout - Hide redundant content type select dropdown in edit mode - Add content type icon (link, wifi, etc.) inside the name input field - Remove inner padding on mobile for compact/edit mode to prevent overflow - Truncate short URL text on narrow screens - Add min-w-0 to flex child for proper shrinking Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ews, and displays Centralize short URL resolution through useShortUrlLink hook and ensure qrCodeData (with custom domain baked in) is passed to all QR code render points. Fixes dashboard list downloads, detail/edit page previews, share page rendering, and URL display across generator and editor components. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…red image Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…n script Enable preview image generation for QR codes and templates that have custom images by downloading from S3 and converting to base64 data URLs. Add nodeCanvas shim to prevent JSDOM hangs during server-side rendering. Remove the "skip if image" guards from event handlers. Add standalone script to regenerate all missing preview images. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Compute qrCodeData from content for all QR codes where it's null before generating previews. Resolves short URLs and custom domains for dynamic QR codes. Pre-loads lookup tables for efficient batch processing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ompleted backfill - Remove qrCodeData backfill phase (already completed for all records) - Add parallel processing with 20 concurrent workers instead of sequential loop - Increase DB connection pool to match concurrency - Reduce console noise to progress logs every 500 items - Remove unused table definitions, imports, and FRONTEND_URL env requirement - Clean up debug logging in qr-code-image strategy Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds native Sentry.logger calls to all log levels so logs appear in Sentry's Logs view. Eagerly resolves ErrorReporter (Sentry.init) at application startup to ensure Sentry is initialized before any log calls. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tracks unauthorized request attempts per IP in Redis and blocks IPs that exceed the threshold. Integrates as a Fastify onRequest hook and tracks UnauthorizedError responses in the error handler. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
… API Co-Authored-By: claude-flow <ruv@ruv.net>
Co-Authored-By: claude-flow <ruv@ruv.net>
…orting Co-Authored-By: claude-flow <ruv@ruv.net>
add MySQL, Redis, and MinIO service containers to CI pipeline
Add standalone short URL management with create, edit, delete, list, and detail views. Includes PostHog event tracking, Sentry error reporting, default domain pre-selection, DomainSelector refactored to derive system domain from env, and full i18n translations for all 8 locales. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add dedicated product pages for URL Shortener, QR Codes, and Analytics with hero sections, feature details, mockups, FAQs, and CTAs. Update header with products dropdown menu, footer with product links, and sitemap. Refine short URL dashboard, fix Zod v4 import in ApiError, add stats bar to home page, and update all 8 locale dictionaries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix delete error toast showing confirmation title instead of error message - Fix invalid Tailwind class hover:gray-200 → hover:bg-gray-200 in button - Fix toggle mutation refetching wrong query key (qrCodes → shortUrls) - Fix stale detail page after short URL edit (add onSuccess + router.refresh) - Fix TypeScript errors in ProductStatsBar regex destructuring - UI: Badge component usage, drawer z-index, header/mobile menu, language nav dropdown-up variant Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add HTTP URL validation for QR code and short URL DTOs, expand backend test coverage for edge cases, and polish frontend components including product pages, dashboard UI, and i18n translations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add full tagging system for short URLs (entity, use case, policy, controller, tests), improve short URL list filtering with tag/search/sort support, update plan config limits, and refine various dashboard UI components. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…tion guards - Fix tag update toast showing "QR code tags" for short URL tags (all 8 locales) - Replace hardcoded English error string in ShortUrlTagBadges with i18n key - Add page clamping in ShortUrlList when result set shrinks after deletion - Add mutation pending guard in ShortUrlTagBadges to prevent concurrent updates - Use invalidateQueries instead of refetchQueries for short URL tag mutations - Add rich text link support for API keys description - Remove duplicate "doc" path from locale prefix regex in proxy Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Feature/short url management
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…k, fix minor issues - Switch frontend links from next/link to @/i18n/navigation Link with locale-stripped paths - Move addUserToRequest middleware from per-route preHandler to global Fastify hook - Use repository.generateId() instead of crypto.randomUUID() in stripe webhook service - Add hideLanguageNav prop to Footer for legal/docs layouts - Fix Header products dropdown using openProducts handler - Fix LanguageNav path handling (usePathname already strips locale) - Set EPC form validation mode to onTouched - Move WiFi password disabled prop to input element level Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nd clean up update views - Move Zod validation hooks from preValidation to preHandler phase in backend route registration - Add httpUrl validation with max length to URL input forms (create & edit) - Disable submit buttons when forms have no changes (short URL, tags, QR code, templates) - Add latestQrCode tracking to template update flow for proper change detection - Remove QrPreview buttons from QR code and template update views - Make validateContentHttpUrls basePath configurable for reuse in frontend Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The NameDialog did not close when submitting via Enter key. Also raised z-index of dialog, alert-dialog, and sheet overlays from z-50 to z-[110] so they render above the sticky header (z-[100]). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace skeleton-based loading on refetch with a modern overlay loader featuring the QRcodly logo SVG with animated data modules. Tables now keep previous data visible (opacity + blur) during refetch instead of flashing skeletons. Applied consistently across all dashboard tables (QR codes, short URLs, templates, tags, custom domains). Also fix QR code list not refreshing after toggling short URL active state. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (5)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.