Changelog
New features, fixes, and improvements shipped to Glitchgrab.
v1.9.0
Features
- •sdk: auto-detect host app theme color for report dialog (28ac18c)
Bug Fixes
- •sdk: ensure client-side text quality validation is included in build (b9a6836)
- •sdk: improve gibberish detection with consonant-cluster and char-reuse checks (2cd7db1)
- •sdk: preserve envelope success flag in sendReport result (0c3cded)
v1.8.3
Bug Fixes
- •dashboard: validate report text quality before submitting to AI pipeline (c638011)
- •sdk: add client-side validation to reject gibberish and throwaway text in report dialog (177bcb5)
- •sdk: skip keepalive for large payloads to avoid 64KB browser limit (00f53cb)
v1.8.2
Bug Fixes
- •api: detect localhost via body pageUrl instead of unreliable Origin/Referer headers (95a7cba)
v1.8.1
Bug Fixes
- •api: add CORS headers and localhost dev-mode response to SDK report endpoint (bec7f0f)
- •sdk: replace useSyncExternalStore with useState+useEffect to prevent hydration mismatch (fe8ec33)
v1.8.0
Features
- •sdk: extract report dialog into standalone component rendered by provider (49edec6)
- •sdk: render ReportDialog inside GlitchgrabProvider so dialog is always available (5e92acc)
Bug Fixes
- •sdk: prevent hydration mismatch with useSyncExternalStore mounted guard (f09d5a1)
v1.7.0
Features
- •api: map report type and severity to dynamic GitHub labels and title prefixes (1b286d2)
- •sdk: accept type option in openReportDialog for pre-selecting category (077901c)
- •sdk: add multi-step stepper variant for report dialog with category, details, and review steps (b6d2af0)
- •sdk: add ReportSeverity type, variant and showSeverity props to ReportButtonProps (2e2c31e)
- •sdk: export ReportSeverity type from barrel (3769c8d)
v1.6.0
Features
- •api: add commentCount to reports list endpoint (f8a78b1)
- •sdk: add commentCount field to GlitchgrabReport type (459b6db)
- •sdk: export GlitchgrabReport type from barrel (0446f19)
v1.5.1
Bug Fixes
- •billing: revalidate dashboard layout after payment verification (ed62da2)
- •billing: revalidate dashboard layout after subscription cancellation (5b36d54)
v1.5.0
Features
- •billing: show cancelled status message from live Razorpay state (6d7eee0)
- •docs: implement Markdown to JSX renderer for documentation page (c4ba583)
- •landing: add docs link to navbar/footer and remove pricing section (4e2bf93)
- •sdk: add documentation links to the landing page (ca96328)
- •sdk: add openReportDialog() to programmatically trigger ReportButton modal (280658d)
- •sdk: pass description in openReportDialog custom event detail (1dbabe0)
- •sdk: pre-fill description textarea from openReportDialog event detail (c9a047d)
- •sdk: update openReportDialog type to accept optional description (826920c)
Bug Fixes
- •billing: check live Razorpay status before creating new subscription (4ee70ad)
- •billing: fetch subscription status live from Razorpay API instead of stale DB (3b6a495)
- •billing: only store razorpay subscription ID on verify, no status (bd64bf7)
Performance Improvements
- •billing: pass pre-fetched plan to getTrialStatus to avoid redundant API call (2b2cc09)
v1.4.1
Bug Fixes
- •sdk-api: remove status, rawInput, source, pageUrl from SDK reports response (951095a)
v1.4.0
Features
- •sdk: add useGlitchgrabActions hook with isPending, error, onSuccess, onError callbacks (b6c700c)
Bug Fixes
- •proxy: add CORS for /api/v1/reports routes used by SDK actions (2e2ee15)
- •sdk: add session to report callback deps so session data is included in reports (f244e81)
v1.3.0
Features
- •sdk: add limit option to useGlitchgrabReports and update README with hook + TanStack Query examples (cad4ebf)
- •sdk: add useGlitchgrabReports hook and fetchGlitchgrabReports fetcher (d43822e)
Bug Fixes
- •sdk-report: remove debug console.log statements (3f0bf8e)
v1.2.3
Bug Fixes
- •s3: hardcode cdn.glitchgrab.dev for screenshot URLs (7d4db8e)
v1.2.2
Bug Fixes
- •sdk-report: add S3 upload debug logging to diagnose screenshot failures (46fdc1b)
- •sdk: await reportBug response before showing success message (d9c01b3)
- •sdk: use www.glitchgrab.dev to avoid naked domain redirect breaking CORS preflight (bccbbd4)
v1.2.1
Bug Fixes
- •proxy: add CORS for SDK API routes in proxy.ts, remove incorrect middleware.ts (b872920)
Reverts
- •Revert "chore: remove dead proxy.ts replaced by middleware.ts" (7187bbe)
v1.2.0
Features
- •middleware: add CORS for SDK API routes and merge with dashboard auth guard (ef00849)
- •sdk: auto-detect light/dark theme and adapt modal colors (16227a5)
Bug Fixes
- •sdk: default baseUrl to glitchgrab.dev instead of window.location.origin (976ab41)
- •sdk: max z-index to cover all host elements, fix button colors for light theme (2c0765c)
- •sdk: render modal in portal to escape host stacking contexts (eeb58cd)
- •sdk: replace × characters with SVG icons and add isolation to prevent host CSS bleed (220447d)
v1.1.1
Bug Fixes
- •ci: enable GitHub Release creation in SDK publish workflow (7ec3b04)
v1.1.0
Features
- •sdk: add changelog generation to SDK release workflow (9e5650b)
v1.0.0
Features
- •ai: add chat history context (last 5 msgs), proactive merge, and better prompting (0ed7a58)
- •ai: add clarify intent and repo-aware context for smart questioning (a5ad63e)
- •ai: add intent detection — create, update, close, or chat based on user input and open issues (ecc6ba3)
- •ai: add merge action to combine related issues into one (01d0076)
- •ai: add OpenAI GPT-4o service to generate structured GitHub issues from bug descriptions (ea84e2f)
- •ai: improve dedup with recent issues context, ask for clarification, use gpt-4o for screenshots (846d307)
- •ai: return structured options with clarify questions for interactive UI (1c3025d)
- •api: accept breadcrumbs, device info, and report type from SDK (b9dd3c7)
- •api: accept collab session and verify shared repo access in reports (940a215)
- •api: accept suggestion field in waitlist survey (0677772)
- •api: accept survey responses and update waitlist entry (d1fc3db)
- •api: add GET /collaborators endpoint to list invited collaborators (2682848)
- •api: add GET /collaborators/accept for magic link verification (f988052)
- •api: add GitHub repos endpoint to fetch user repos via OAuth token (67349d6)
- •api: add GitHub webhook listener to forward issue events to client webhooks (fc86379)
- •api: add mobile auth endpoint — exchanges GitHub token for NextAuth JWT session (82b7da1)
- •api: add PATCH /collaborators/:id/repos to update repo access (6cb6d78)
- •api: add PATCH /collaborators/:id/revoke to revoke access (6bba8f1)
- •api: add POST /api/v1/reports endpoint for dashboard bug submissions (e671f53)
- •api: add POST /api/waitlist endpoint with email validation and dedup (5de4fca)
- •api: add POST /collaborators/invite to send magic link invitations (0a96db0)
- •api: add POST /collaborators/report for collaborator bug submissions (eae3a8f)
- •api: add rate limiting to SDK report endpoint with 429 response (c343bbf)
- •api: add Razorpay billing endpoints — subscribe, verify, and webhook (b4a114a)
- •api: add SDK report endpoint with token auth, auto-capture, and user report support (b5f9e81)
- •api: integrate AI pipeline into reports endpoint for real issue creation (6565145)
- •api: return intent type in report response for multi-action chat (4eae2a7)
- •api: send welcome email to user and notification to admin on waitlist signup (09f2f37)
- •api: update billing APIs to support BYOK and Platform plan selection (f4dd9cd)
- •auth: add AuthSessionProvider wrapper for client-side session access (c2dc17c)
- •auth: add JWT-based middleware to protect /dashboard routes (08992e9)
- •auth: add lightweight collaborator session with HMAC-signed tokens (c66773c)
- •auth: add NextAuth route handler for /api/auth/* (3dedca1)
- •auth: add NextAuth v5 config with GitHub OAuth, JWT sessions, and Prisma adapter (e98cdc0)
- •billing: add billing dashboard page with plan info and Razorpay upgrade flow (28026e5)
- •billing: add cancel button to active subscription card (1b7b72a)
- •billing: add cancel subscription API route with end-of-period cancellation (e675683)
- •billing: add cancel subscription button with confirmation dialog (de41b26)
- •billing: add full-screen PaywallBlock with Razorpay plan cards (8421371)
- •billing: add getTrialStatus helper for 2-day free trial calculation (c7f7f0c)
- •billing: add Glitchgrab logo and dark backdrop to Razorpay checkout (103e7d7)
- •billing: add non-dismissable welcome trial dialog for new users (e44542d)
- •billing: add PaywallGuard server component to gate dashboard access (2ec30ca)
- •billing: add plan checking with repo and issue limits for free vs pro (c11b963)
- •billing: add PlanBadge component with premium, trial, and byok variants (854fd68)
- •billing: add Razorpay client initialization and plan constants (a527a9e)
- •billing: add razorpay:create-plans script using dotenvx (041045c)
- •billing: add razorpayPlanId to PLANS config for subscription-based billing (b74b4e7)
- •billing: add script to create Razorpay subscription plans for dev and prod (d0b7cae)
- •billing: add TrialBanner countdown component for trial period (fa5eabc)
- •billing: delay first Razorpay charge until trial ends (81ac2b0)
- •billing: extend trial period from 2 to 7 days (5d11b37)
- •billing: fetch plan status and pass badge type to sidebar and bottom nav (d68d113)
- •billing: handle subscription lifecycle webhooks for recurring billing (6e90c75)
- •billing: re-enable PaywallGuard to enforce subscription (32918cb)
- •billing: rebuild billing page with 2-tier plan cards and Razorpay checkout (0c9e39f)
- •billing: show welcome dialog for all trial users without subscription (fae8a38)
- •billing: switch pricing to INR — ₹99 BYOK, ₹199 Platform AI (e3ddb06)
- •billing: switch subscribe route from one-time orders to recurring subscriptions (22f1b96)
- •billing: update pricing UI to ₹99 and ₹199 INR (59f37a4)
- •billing: use Razorpay subscription checkout instead of one-time order (62aa996)
- •billing: verify subscription payments using subscription_id instead of order_id (f220b58)
- •billing: wrap dashboard layout with PaywallGuard to block expired trials (e280c92)
- •bottom-nav: add Report Bug tab and sidebar link in mobile menu sheet (2d02026)
- •bottom-nav: add Reports nav item to mobile menu (0f3ca23)
- •bottom-nav: show plan badge next to username in mobile menu (cc0aa36)
- •bottom-nav: show user avatar with plan badge dot instead of generic profile icon (38dd9f4)
- •changelog: add changelog link to landing page footer (9277ee2)
- •changelog: add public changelog page that renders CHANGELOG.md at build time (23f8921)
- •chat: add multi-select images, new chat button, and transparent screenshot background (c2d9d16)
- •chat: handle clarify intent in bug chat UI (2a8ab2c)
- •ci: add CI workflow for PR validation — lint, typecheck, knip, pruny, build (43d7855)
- •ci: add GitHub Release with APK download on app-v tags (90fb9df)
- •ci: add GitHub workflow to build Android APK via EAS (f6009f6)
- •ci: add GitHub workflow to publish SDK to npm on tag (4de5cea)
- •ci: add release workflow for auto-generating changelog on push to main (c8ff0b9)
- •ci: add Vercel deploy hook workflow for main branch deploys (c4363f4)
- •ci: replace manual SDK publish with semantic-release workflow (3641abb)
- •collaborate: add bug report form with repo selector and screenshot upload (01af895)
- •collaborate: add magic link accept page with token verification (fa29d2e)
- •collaborate: add minimal layout for collaborator pages (aa52b8b)
- •collaborate: add restricted report page for collaborators (076260c)
- •collaborators: add Edit repos button for accepted collaborators (664f9d9)
- •collaborators: add edit repos dialog to update collaborator repo access (3001504)
- •collaborators: replace confirm() with AlertDialog for remove action (5ccdd17)
- •contact: add API route to send contact form emails (84076b5)
- •contact: add contact form component with useMutation (3c8b3d3)
- •dashboard: add API tokens page with token list (e782f54)
- •dashboard: add Billing link to sidebar and mobile nav (04900a5)
- •dashboard: add chat-based bug reporter with repo selector and screenshot attach (b6c939c)
- •dashboard: add clipboard paste support for screenshots in chat input (1336a1f)
- •dashboard: add collaborators page with invite list and status badges (030f20d)
- •dashboard: add dashboard layout with sidebar and mobile nav (cb0167d)
- •dashboard: add desktop sidebar with nav, user info, and sign-out (f5720f5)
- •dashboard: add dual auth support for owner and collaborator sessions (684f08e)
- •dashboard: add error boundary page with retry button (4f114fe)
- •dashboard: add InteractiveQuestions card with option buttons, custom input, and skip (c87b3f5)
- •dashboard: add invite collaborator dialog with email and repo multi-select (24cb720)
- •dashboard: add loading spinner for page transitions (50baddd)
- •dashboard: add mobile navigation with sheet drawer (d5da817)
- •dashboard: add overview page with stats cards and empty state (66843a0)
- •dashboard: add ReportBugButton with capture-first-then-modal UX (842cf80)
- •dashboard: add repos page with connected repos list (2f510b5)
- •dashboard: add retry button on failed messages with original screenshot preserved (b861be9)
- •dashboard: add revoke access button for collaborators (07e1083)
- •dashboard: add settings page with account info and AI config placeholder (a454a5b)
- •dashboard: handle 'ask me questions' locally with test questions for reliable testing (0f91048)
- •dashboard: handle create, update, close, and chat responses in bug chat (10911c0)
- •dashboard: integrate interactive questions into bug chat with dismiss and submit (b0160a5)
- •dashboard: show shared repos in BugChat for collaborators (4d9fc34)
- •db: add full schema with User, Repo, ApiToken, Report, Issue, AiConfig models (8797a02)
- •db: add init migration with all tables, enums, and foreign keys (11f73ea)
- •db: add migration for subscription billing tables (8b5e96c)
- •db: add migration for waitlist suggestion field (a992fc7)
- •db: add migration for waitlist survey fields (4885c1d)
- •db: add migration for webhook table (174a15e)
- •db: add Prisma schema with Waitlist model for email capture (38668ee)
- •db: add Subscription model with plan, status, and Razorpay fields (8fc3aed)
- •db: add suggestion field to Waitlist model (bd66d37)
- •db: add survey fields to Waitlist model for pricing and feature validation (a337d9b)
- •db: add Webhook model for GitHub event forwarding to client apps (a03fd05)
- •github: add comment, close, and fetch open issues API functions (915d9a0)
- •github: add fetchIssueBody to retrieve full issue content for merges (7e1663a)
- •github: add fetchRepoReadme and fetchRepoDescription helpers (b5c3fff)
- •github: add GitHub API service for creating issues and fetching labels (3c0d431)
- •github: add screenshot upload to repo via Contents API (ab0a466)
- •github: add updateIssueBody to append content directly to issue body (154bafd)
- •landing: add auth-aware nav with Sign In and Dashboard links (e0f6c49)
- •landing: add Bebas Neue font to Google Fonts import (d9af2a8)
- •landing: add flow animations component for landing page (806e6c4)
- •landing: add free-text suggestion box to post-signup survey (aec7377)
- •landing: add full landing page with hero, features, comparison, pricing sections (a57dcc0)
- •landing: add hero terminal component with animated capture flow (498e29a)
- •landing: add hero video component for landing page (c1819c3)
- •landing: add hero waitlist component with email input, validation, and avatar stack (c02feba)
- •landing: add iPhone-style status bar, home indicator, and dynamic island to hero video (e224c31)
- •landing: add Navibyte logo and link to footer, update feature cards and dedup copy (e621dc8)
- •landing: add post-signup survey for pricing, feature priority, and current tool (9f3899b)
- •landing: add privacy, terms, refunds, and contact links to footer (595e5ef)
- •landing: add waitlist email form with loading and success states (51d79e6)
- •landing: redesign features section with stacked cards, numbered steps, and sticky video (205427e)
- •landing: redesign footer with 4-column grid, add Navibyte attribution and more links (5267929)
- •landing: replace code preview with vertical demo video in phone frame on hero section (9e949a6)
- •landing: replace CTA buttons with inline waitlist form, add Bebas Neue font to heading (7a1298b)
- •landing: replace text logo with glitched G icon in nav and footer (983bcc6)
- •landing: update pricing section to Pro BYOK $5/mo and Pro Platform $10/mo (5c22e8c)
- •layout: wrap app with QueryProvider (4e4515d)
- •legal: add contact page with email and GitHub links (268f2f3)
- •legal: add privacy policy page (24e8cc7)
- •legal: add refund policy page with 7-day guarantee (89cecde)
- •legal: add shared layout for legal pages with logo and back link (587b9a6)
- •legal: add terms of service page (bcd3bc1)
- •lib: add AES-256-GCM encryption for user API keys (6545729)
- •lib: add in-memory rate limiter with 60 req/hr per token (091107b)
- •lib: add token generation (gg_ prefix) and SHA-256 hashing utilities (db1d0a9)
- •lib: add webhook dispatcher with HMAC-SHA256 signature and retry (ef9322a)
- •login: add code rain, mini terminal, glitch text, and HUD ring animations (6ecb4b7)
- •login: add GitHub sign-in button with loading state (1143be6)
- •login: add login page with GitHub sign-in button (0a7e54c)
- •login: redesign login page with animated terminal, code rain bg, and early access warning (a7613d3)
- •mail: add sendCollaboratorInvite email with branded template (ec52798)
- •mobile: add android build and install scripts for prod and dev (07812bd)
- •mobile: add Android share intent to receive screenshots and create issues (c89c3f3)
- •mobile: add API helpers for GitHub OAuth code exchange and session creation (f0edb0c)
- •mobile: add APP_ENV extra config for build-time environment control (d5b4c7d)
- •mobile: add associated domains and collaborate intent filter for deep linking (5a07584)
- •mobile: add collaborator deep link handling and collaborator app state (d1c22b3)
- •mobile: add ESLint config with React Native and a11y plugins (3d30068)
- •mobile: add Expo wrapper with WebView, dark theme, GitHub OAuth bridge, and offline error screen (d5a4f44)
- •mobile: add expo-clipboard for native clipboard bridge (f3c3d0a)
- •mobile: add expo-share-intent plugin for image sharing (f3c00a0)
- •mobile: add lint/validate scripts and ESLint dev dependencies (b04d1a2)
- •mobile: add loading overlay for shared screenshots and enable pull-to-refresh (22160dd)
- •mobile: add native login screen with GitHub OAuth via expo-auth-session (a6827d2)
- •mobile: add pull-to-refresh for Android using ScrollView RefreshControl (a65d7f6)
- •mobile: add set-env script to swap APP_ENV before builds (ec163fc)
- •mobile: add WebView debug logs for navigation, errors, and render process (b83e36a)
- •mobile: bridge GitHub OAuth via system browser with openAuthSessionAsync callback (42f6234)
- •mobile: extract WebView into screen with session cookie injection and logout detection (23e6e98)
- •mobile: support overrideUrl prop for collaborator WebView mode (037d53a)
- •mobile: use APP_ENV config for base URL instead of __DEV__ flag (5aeb200)
- •mobile: use expo-share-intent to handle shared screenshots (9a7d6da)
- •nav: add bottom navigation bar with menu sheet for mobile (1a820af)
- •nav: add Collaborators link to desktop sidebar (128ff59)
- •nav: add Collaborators link to mobile bottom nav sheet (439bcce)
- •nav: hide owner-only items in mobile nav for collaborators (e9eae5b)
- •nav: hide owner-only nav items for collaborators (84e9151)
- •pipeline: add collaborator email attribution to GitHub issues (c6c8252)
- •pipeline: add report processing orchestrator — AI generate → GitHub push → DB save (f0f716d)
- •pipeline: add screenshot analysis note and Glitchgrab attribution to GitHub issues (8bd161c)
- •pipeline: dispatch webhooks after issue create, update, and close (388a4d0)
- •pipeline: fetch repo README/description and handle clarify intent (74bcc45)
- •pipeline: handle create, update, close, and chat intents with dedup support (d25d3bb)
- •pipeline: pass clarifyQuestions through pipeline result to API (1018072)
- •pipeline: upload screenshot to GitHub repo and embed in issue body (cf31749)
- •providers: add TanStack Query provider (0148e08)
- •providers: pass auth session to GlitchgrabProvider (72a0d65)
- •reports: add API endpoint to close, reopen, and label GitHub issues (fc3b4e0)
- •reports: add approve, reject, and close buttons on report cards (06bea2c)
- •reports: add GET handler for fetching reports with filters (cd7c151)
- •reports: add report detail page with conversation thread and reply input (82678a9)
- •reports: add reports page showing all bug reports and created issues (6419495)
- •reports: add ReportsTabs client component with OPEN/CLOSED/DELETED/NO ISSUE badges (0f693b4)
- •reports: add tabs for Product Issues vs My Reports with GitHub state sync (4cddfd4)
- •reports: display reporter name and primary key on report cards (aefad8e)
- •reports: extract reports list into client component (6675395)
- •reports: include clarifyQuestions in API response for interactive flow (ecbf3fc)
- •reports: make report titles clickable to open conversation thread (aed4e38)
- •reports: pass isOwner prop to enable action buttons (3c7de2c)
- •reports: pass reporter info to reports tabs component (07ed90d)
- •reports: support Bearer token auth for issue actions API (2a36693)
- •repos: add connect repo dialog with searchable GitHub repo list (9c8e261)
- •repos: add GET API route for client-side repo fetching (d884682)
- •repos: add ReposList client component with useQuery and axios (08ce1bc)
- •repos: add server actions for connecting and disconnecting repos (4213944)
- •repos: auto-setup GitHub webhook on repo when connecting (4eea523)
- •repos: integrate connect repo dialog into repos page (12d1a7c)
- •repos: show shared repos with badge for collaborators (284a322)
- •s3: add S3 screenshot upload replacing GitHub repo commits (a22f22c)
- •schema: add Collaborator and CollaboratorRepo models with status enum (69c65bf)
- •schema: add reporter fields (primaryKey, name, email, phone) to Report model (6f8612b)
- •scripts: add db-sync script to pull production database to local (6596af5)
- •sdk-api: add comment endpoint to post replies on GitHub issues with reporter attribution (a964cbc)
- •sdk-api: add GET endpoint to fetch reports by reporter primary key (b3bd0d0)
- •sdk-api: add GitHub issue state, labels, and severity to reports response (29beaf4)
- •sdk-api: add single report detail endpoint with GitHub issue body and comments (793684b)
- •sdk-report: create GitHub issues directly without AI for user reports (1cfbc02)
- •sdk-report: include environment, page history, and activity log in GitHub issues (be4f7eb)
- •sdk-report: save reporter session fields and include in GitHub issue body (6ea72c9)
- •sdk: add barrel exports for all SDK components and utilities (b119dab)
- •sdk: add breadcrumb tracker — console, fetch, navigation, and click interception (25a0537)
- •sdk: add device info capture and return report result from sendReport (29e7155)
- •sdk: add floating ReportButton with inline modal for user bug reports (c280117)
- •sdk: add GlitchgrabProvider with error capture, page tracking, and useGlitchgrab hook (8abdc43)
- •sdk: add GlitchgrabSession type with required userId, name and optional email, phone (19e8953)
- •sdk: add React ErrorBoundary with auto-report and custom fallback (ac128d6)
- •sdk: add README, fix types, update exports for headless-first API (6571ac4)
- •sdk: add report types, breadcrumbs, addBreadcrumb hook, and onReportSent callback (6f343b9)
- •sdk: add semantic-release config for automated versioning (9d2445d)
- •sdk: add top-right and top-left position options for ReportButton (d8ccc03)
- •sdk: add types for breadcrumbs, device info, report types, and onReportSent callback (f209046)
- •sdk: add TypeScript types for config, payload, and components (448034c)
- •sdk: add URL sanitization, context capture, and silent report sending (5be780a)
- •sdk: auto-capture page screenshot when ReportButton opens (a3e6c48)
- •sdk: auto-detect baseUrl and skip initialization when token is empty (7b23e01)
- •sdk: export GlitchgrabSession type (41a1c5d)
- •sdk: include breadcrumbs and device info in error boundary reports (6445077)
- •sdk: initialize @glitchgrab/nextjs package with tsup build config (dc4eb41)
- •sdk: refactor ReportButton as headless wrapper with screenshot preview, upload, and retake (f301a53)
- •sdk: send session data (userId, name, email, phone) in report metadata (69eb8dd)
- •seo: add next-sitemap for automatic sitemap and robots.txt generation (182177a)
- •settings: add AI config and webhook management sections (1227283)
- •settings: add AI provider selection form with encrypted BYOK key input (6f1bf00)
- •settings: add issue.commented event for developer comments from GitHub (6dba35b)
- •settings: add server actions for AI config (get, update, delete) (ff46790)
- •settings: add server actions for webhook CRUD (09ea856)
- •settings: add webhook management form with secret display and event selection (abbe2f3)
- •sidebar: add Report Bug button above user section (549ac1a)
- •sidebar: add Reports nav item (8af108e)
- •sidebar: show plan badge next to username (d854471)
- •tokens: add create token dialog with one-time display and copy (6111956)
- •tokens: add delete token button with loading state (f393438)
- •tokens: add server actions for creating and revoking API tokens (480a98b)
- •tokens: rebuild tokens page with create dialog, token list, and delete (29dfd5a)
- •ui: add alert-dialog component (de450dd)
- •ui: add shadcn avatar component (1768b18)
- •ui: add shadcn badge component (d935273)
- •ui: add shadcn button component (17c1f56)
- •ui: add shadcn card component (af30b5a)
- •ui: add shadcn dialog component (315a9d0)
- •ui: add shadcn dropdown-menu component (3430622)
- •ui: add shadcn input component (82ef90d)
- •ui: add shadcn label component (8d460cb)
- •ui: add shadcn popover component (33c2307)
- •ui: add shadcn select component (71e0bb8)
- •ui: add shadcn separator component (60c13ff)
- •ui: add shadcn sheet component (2d1d000)
- •ui: add shadcn sonner component (a300ef4)
- •ui: add shadcn table component (456ffea)
- •waitlist: add stats API endpoint for count and recent initials (b58953e)
- •web: add 180x180 rounded apple-touch-icon (e38a2fc)
- •web: add 192x192 rounded app icon (839d498)
- •web: add clipboard utility with WebView native bridge fallback (a87cd99)
- •web: add cn utility for class merging (1876cbc)
- •web: add dark theme with cyan accent, custom animations, and design tokens (a6251e0)
- •web: add email utility with welcome, signup notification, and survey response emails (4f4bac5)
- •web: add ESLint v9 flat config with strict TS, unused imports, and tailwind canonical rules (33a2d7d)
- •web: add favicon and touch icons to public directory (4568957)
- •web: add glitchgrab workspace dependency (2424acb)
- •web: add GlitchgrabSDKProvider for self-hosted SDK integration (1b70010)
- •web: add OG image and twitter card image to metadata (eed8412)
- •web: add OG social share image with glitched G logo (2383f3d)
- •web: add Prisma client singleton for database access (55c1b08)
- •web: add root layout with SEO metadata, OG tags, and font preloads (973ac7a)
- •web: add rounded glitched G favicon (ff48df3)
- •web: add security, react-hooks, and stricter ESLint rules (7605a00)
- •web: add SessionProvider, Toaster, favicon links, and metadataBase to layout (2f80cca)
- •web: add validate script with eslint and tsc (4054838)
- •web: replace OG image with landscape logo + tagline version (fa076d4)
- •web: set up dark-first Glitchgrab theme with cyan primary for shadcn (e68f3fd)
- •web: wrap root layout with GlitchgrabSDKProvider (474dc48)
Bug Fixes
- •ai: enforce action-bias in system prompt and include issue bodies for accurate merges (42e0afc)
- •ai: enforce one-report-one-issue rule to prevent duplicate issue creation (3277798)
- •ai: enforce structured options format in clarify rules (4037743)
- •ai: fallback to direct issue creation when AI returns empty response (e12ff6b)
- •ai: force JSON mode, handle non-JSON responses, and accept any screenshot content (44634df)
- •ai: move 'ask me questions' clarify rule before CHAT section to prevent override (163c822)
- •ai: prevent destructive actions on informational queries like 'how many bugs' (0ba520c)
- •ai: treat 'ask me questions' as clarify trigger for testing interactive UI (1aad027)
- •api: add salt parameter for NextAuth v5 JWT encode (b2decca)
- •api: check both own and shared repo access when submitting reports (19d0a7d)
- •api: convert uploaded screenshot to base64 data URL for AI vision processing (55db16d)
- •api: delete collaborator on revoke instead of marking as REVOKED (4b62dc4)
- •api: exchange OAuth code server-side with mobile client secret for secure token flow (34596cf)
- •api: forward code_verifier to GitHub for PKCE token exchange (d041e04)
- •api: redirect collaborator accept to /dashboard and remove REVOKED check (0029d05)
- •api: replace non-null assertion in billing verify (f6e94fe)
- •api: replace non-null assertions with nullish coalescing (c8c8978)
- •api: resize screenshots to 1024px before AI processing to prevent token overflow (42e75a3)
- •auth: add 1.5s delay before redirect to let WebView persist cookie (3a253a7)
- •auth: add production logging to mobile session endpoint (a3224dc)
- •auth: disable secure cookie prefix so Android WebView can persist session cookies (24387e6)
- •auth: enable Secure flag on mobile session cookie (bab813e)
- •auth: explicitly set secret from env for NextAuth v5 compatibility (26c3c22)
- •auth: override session cookie name without __Secure- prefix while keeping Secure flag (17ccaf4)
- •auth: redirect to /login on sign out in bottom nav (a7afd25)
- •auth: redirect to /login on sign out in mobile nav (0ed8c5b)
- •auth: redirect to /login on sign out so mobile WebView detects logout (3c7774f)
- •auth: return HTML instead of 307 redirect to fix WebView cookie persistence (2b7c203)
- •auth: set explicit cookie domain .glitchgrab.dev for cross-subdomain access (9e58e5b)
- •auth: set secure cookie flag based on protocol so dev mode works over HTTP (2560ab1)
- •auth: use non-prefixed cookie name for mobile — Android WebView rejects __Secure- cookies (8d2d5ee)
- •billing: add null check for userId instead of non-null assertion (baae63d)
- •billing: add responsive padding and text sizing for mobile (7643929)
- •billing: add responsive padding and text sizing for mobile (1302d4a)
- •billing: auto-detect test mode and use INR currency for Razorpay test keys (110be59)
- •billing: check user exists before creating subscription to prevent FK error (f0d9506)
- •billing: handle missing user in getTrialStatus instead of throwing (0db43d4)
- •billing: remove unsupported dismissible prop from welcome dialog (d98402c)
- •billing: remove unused Cpu import from paywall block (b1411b6)
- •billing: replace console.log with console.info in plan creation script (8954035)
- •billing: show single ₹199/mo plan instead of two USD plans on paywall (8a044d6)
- •billing: use boolean param for Razorpay cancel to fix TS error (c1c1faa)
- •billing: use brighter badge colors for dark theme visibility (dbc49ea)
- •billing: use INR for test mode and improve error logging in plan creation script (9aed22e)
- •bottom-nav: bigger avatar, brighter badge dot at top-right (c415365)
- •bottom-nav: close sheet before navigating to prevent Android WebView freeze (953d112)
- •bottom-nav: increase nav delay to 500ms to prevent GPU crash on sheet close (8054ae0)
- •bottom-nav: show loading overlay during WebView full-page navigation (d996167)
- •bottom-nav: use canonical Tailwind z-index class (2885046)
- •bottom-nav: use full page navigation in WebView to prevent Sheet freeze (6a4061f)
- •bug-chat: compress images at attach time with standard canvas for WebView compat (3643d44)
- •bug-chat: compress images client-side to avoid Vercel 4.5MB payload limit (ff16386)
- •bug-chat: use standard canvas for WebView compat and show file size on preview (57920fb)
- •chat: remove non-null assertions for lint compliance (5191667)
- •ci: add build dependency to validate task so SDK types exist (924d9e8)
- •ci: add npm install for semantic-release compatibility with bun layout (1631734)
- •ci: build SDK before typecheck so glitchgrab types are available (b085324)
- •ci: fix npm install in SDK release workflow for bun workspace compatibility (7c955ba)
- •ci: generate Prisma client before typecheck to resolve type inference (7e00922)
- •ci: ignore mobile app in pruny check (14ed2cf)
- •ci: remove root bun.lock before semantic-release to fix workspace protocol error (be61547)
- •ci: use bun for SDK install to fix workspace protocol error (bf90827)
- •ci: use GH_TOKEN for semantic-release push and add [skip ci] to prevent loop (de017e3)
- •ci: use GH_TOKEN in release workflow and add [skip ci] guard (c714570)
- •ci: use npm-only workflow to avoid bun/npm layout conflict in semantic-release (9db8124)
- •collaborate: redirect to API route to set cookie instead of page component (b500738)
- •collaborate: use canonical Tailwind class max-w-35 (513c0bc)
- •collaborators: remove REVOKED status guard since revoke now deletes (fff8e11)
- •dashboard: always show popover with search, use text-base to prevent iOS zoom (8503fbc)
- •dashboard: auto-submit on last skip and prevent question text truncation (2138105)
- •dashboard: carry forward screenshots during clarification and clear after issue creation (aaf3a94)
- •dashboard: hide text bubble when interactive questions card is shown (78d6580)
- •dashboard: merge own repos and shared repos so users with both sessions see all (b9dfae1)
- •dashboard: parse fallback questions from text and make dismiss non-destructive (bc781bd)
- •dashboard: remove unsupported onOpenAutoFocus prop from base-ui Popover (32f52cd)
- •dashboard: shorten input placeholder text (722822f)
- •dashboard: show repo name in selector and fix input bar padding (a45a55d)
- •dashboard: skip popover for single repo, only show search for 5+ repos, prevent auto-focus (aa3f325)
- •dashboard: use --app-height CSS variable so layout respects keyboard viewport (b46117b)
- •dashboard: use --app-height in bug-chat max-height to prevent keyboard gap (733de95)
- •dashboard: use canonical Tailwind class for app-height variable (5bad5ed)
- •dashboard: use text-base (16px) on textarea to prevent iOS WebView zoom on focus (1d565b4)
- •github: include issue body in fetchRecentIssues for merge context (006b3d7)
- •github: use permanent blob URL for screenshots instead of expiring download_url (c081c23)
- •landing: add login button to nav, fix pricing to single ₹199 plan, use Button components in footer (efbda48)
- •landing: compact feature cards into 2x2 grid with smaller padding and text (897c492)
- •landing: make fully responsive with shadcn components and mobile-first design (0bfee97)
- •landing: remove login button from nav, keep only Join Waitlist (4dadc54)
- •landing: replace arbitrary tailwind classes with canonical equivalents (073d5bb)
- •landing: update dedup card to highlight open-source and developer-first approach (c66001f)
- •landing: use square icon instead of OG image for nav and footer logo (e8d6fdc)
- •legal: update footer copyright to Navibyte Innovation Pvt. Ltd. (5e2bd38)
- •login: center original.png logo above system access badge on left panel (20b3b2c)
- •meta: remove handwritten notes from SEO descriptions since feature is not built yet (6d2da29)
- •mobile: add Android internet permission and cleartext traffic for dev (60b3d53)
- •mobile: add Android status bar padding to prevent content overlap (1866b17)
- •mobile: add debug logging to OAuth login flow for troubleshooting (3cf30af)
- •mobile: add KeyboardAvoidingView with zero offset for proper keyboard handling (ae2c89f)
- •mobile: add redirect loop protection and logging to WebView, remove broken JS cookie injection (a1a5823)
- •mobile: add safe-area-context dep and reset APP_ENV after prod build (69405d6)
- •mobile: add touch-action:manipulation and remove hardware layer to fix Android tap delay (523dc2e)
- •mobile: add webview class to html for GPU-safe CSS detection (4e9ec63)
- •mobile: allow HTTP local networking in iOS for dev mode (39f2659)
- •mobile: allow Razorpay URLs in WebView so checkout modal works inline (7f9f131)
- •mobile: allow www.glitchgrab.dev URLs in WebView instead of opening externally (bdf1158)
- •mobile: auto-create local.properties after prebuild for Android SDK path (6361594)
- •mobile: auto-detect dev server IP from Expo constants instead of hardcoding (78634e1)
- •mobile: debounce layout recalc, dedup nav callbacks, fix scroll jank (0e45fd0)
- •mobile: enable bounces on iOS WebView so pull-to-refresh works (40ac67d)
- •mobile: enable pull-to-refresh on both iOS and Android by removing overflow:hidden (bd4004a)
- •mobile: fix pull-to-refresh by removing overflow:hidden from updateAppHeight and enabling body scroll (25bf6c6)
- •mobile: force overflow visible on all layout containers in WebView for pull-to-refresh (2b6ec9c)
- •mobile: handle iOS keyboard by using visualViewport resize and preventing scroll offset (8110e44)
- •mobile: hide native keyboard accessory bar so web input stays visible (269b51c)
- •mobile: inject CSS to force 16px inputs and block pinch-zoom in WebView (a614914)
- •mobile: inject GPU-disabling CSS directly from WebView for reliability (c40c9f0)
- •mobile: inject viewport meta before content loads to prevent initial zoom (94cd8ee)
- •mobile: keep loading overlay until dashboard loads, not the session redirect page (6d13b59)
- •mobile: navigate to dashboard and wait for load before injecting shared image (e5acc22)
- •mobile: prevent duplicate screenshot injection on share (82a2326)
- •mobile: prevent WebView zoom with viewport meta, input font-size, and scalesPageToFit (e2c49b9)
- •mobile: remove associatedDomains to fix signing on Personal Team (12e1dba)
- •mobile: remove forced input font-size, viewport meta already prevents zoom (04beec7)
- •mobile: remove KeyboardAvoidingView, use visualViewport resize for keyboard handling (c5df6d7)
- •mobile: remove overscroll-behavior and touch-action that block pull-to-refresh (930f274)
- •mobile: remove ScrollView wrapper around WebView to fix Android UI freeze (e6d6e5a)
- •mobile: remove webview class from injectedBeforeLoad to prevent hydration mismatch (ba6a52e)
- •mobile: replace circular icon with square version to remove white border on iOS (a55eaeb)
- •mobile: replace deprecated SafeAreaView in login screen (b5d436b)
- •mobile: replace deprecated SafeAreaView with react-native-safe-area-context (11a5834)
- •mobile: revert dev script to iOS for simulator testing (5da1dba)
- •mobile: send OAuth code to backend instead of exchanging client-side, update to mobile client ID (83ed174)
- •mobile: send PKCE code_verifier with OAuth code exchange (b2c78b8)
- •mobile: set --app-height on body instead of html to prevent hydration mismatch (604af36)
- •mobile: simulate paste event for shared images instead of auto-submitting (3fef95d)
- •mobile: use __Secure- cookie prefix for production and set domain for glitchgrab.dev (39627e5)
- •mobile: use correct Glitchgrab G logo for all app icons (b9578d4)
- •mobile: use data-webview attribute instead of className to avoid hydration mismatch (6595c15)
- •mobile: use GitHub PNG icon on login button and log redirect URI for OAuth setup (a081916)
- •mobile: use glitchgrab.dev without www prefix for production base URL (748c3b9)
- •mobile: use injected style tag instead of data-webview attribute to avoid hydration mismatch (d321df0)
- •mobile: use legacy file-system import and enable pull-to-refresh (b0d18e7)
- •mobile: use local dev server URL in development, production URL in release (73fbdf0)
- •mobile: use numeric decelerationRate to fix Fabric crash in release builds (b80ec72)
- •mobile: use server-side cookie setter endpoint instead of client-side injection (eaa1f28)
- •mobile: use string encoding instead of enum for FileSystem base64 read (aa48241)
- •mobile: use style tag instead of inline styles to prevent hydration mismatch (c041573)
- •mobile: use visualViewport to dynamically resize layout when Android keyboard opens (5fce237)
- •mobile: whitelist Razorpay payment partner domains in WebView (2deb1e8)
- •mobile: wrap WebView in KeyboardAvoidingView to handle iOS keyboard properly (00210f2)
- •paywall: remove unused TrialBanner import (b0dd6ba)
- •pipeline: attach screenshots to merged and closed issues (89e5412)
- •pipeline: collect screenshots from all issues during merge and update DB records (6f3cfcc)
- •pipeline: update issue body instead of commenting for dedup updates (2f014a9)
- •pipeline: upload all screenshots from report including extras in metadata (fe3336e)
- •providers: handle nullable name in session prop (589dd28)
- •proxy: use AUTH_SECRET with NEXTAUTH_SECRET fallback for JWT verification (acce199)
- •reports: accept multiple screenshots via formData.getAll and store extras in metadata (dd54ea6)
- •reports: add required reporter fields to dashboard report creation (68b8c62)
- •reports: remove forbidden non-null assertion (c106f2e)
- •reports: use report.repo.userId instead of non-null assertion for eslint (16dbde8)
- •repos: add explicit type for repo parameter in map (a11f075)
- •repos: align Connect Repo button to right and reduce section spacing (fc75ba6)
- •repos: allow long repository names to wrap instead of truncating (7fb4ef7)
- •repos: force router refresh after connecting repo to update UI immediately (451e926)
- •repos: make connect repo dialog fit mobile viewport (4f5291f)
- •repos: make connect repo dialog fit mobile viewport (5858b5b)
- •repos: make page header and repo cards responsive on mobile (fdbff06)
- •repos: make page header and repo cards responsive on mobile (af72018)
- •repos: prevent badge text clipping and improve responsive layout (cc790a2)
- •repos: replace Connect Repo text button with icon-only plus button (fb7fac9)
- •root: clean up knip config for shadcn deps and entry points (ec0bf4e)
- •root: clean up knip config hints and remove stale ignores (8bb63ab)
- •root: ignore scaffolding files in pruny to pass validation (c432a52)
- •root: ignore shadcn UI components and proxy.ts in pruny (c8d1f6a)
- •root: make bun dev run both web and mobile, add dev:web for web-only (120da2a)
- •root: pass env vars through turbo to fix Vercel build (802f595)
- •root: remove stale .glitchgrab ignore from knip (9e7cd07)
- •root: update knip and pruny configs to pass validation cleanly (1391006)
- •root: use local prisma binary path in db scripts to avoid global v7 conflict (91bf682)
- •root: use local prisma v6 binary for db scripts to avoid prisma 7 conflict (17cc03e)
- •sdk: disable GitHub Release creation for SDK, keep npm publish only (a5b8208)
- •sdk: handle ReportButton rendered outside GlitchgrabProvider gracefully (e2e3c46)
- •sdk: lazy-import SDK in useEffect to prevent Next.js prerender crash (3a547ec)
- •sdk: lazy-load SDK in useEffect to prevent prerender crash with NEXT_PUBLIC token (3ca212a)
- •sdk: skip auto-error capture in development mode (bcfe9be)
- •sdk: update reports response to include issue state and labels (a7535fa)
- •settings: make account card avatar and text responsive (452dcad)
- •settings: make account card avatar and text responsive (8976f66)
- •settings: remove AI config section from settings page (78332c2)
- •settings: remove AI provider selection form component (80ec78c)
- •settings: remove unused AI config server actions (5a65bc7)
- •tokens: stack header and token cards vertically on mobile (ae24dac)
- •tokens: stack header and token cards vertically on mobile (f65b80f)
- •ui: disable backdrop-blur and animations globally in Android WebView (1448dfb)
- •ui: fix Recommended badge overflow on mobile by repositioning and adding padding (ab265a2)
- •ui: remove backdrop-blur from sheet overlay to prevent Android WebView GPU freeze (bffc72d)
- •ui: restore sheet overlay backdrop-blur now handled by global webview CSS (599f7d4)
- •web: add tsconfig path alias for glitchgrab SDK types (6ec04d6)
- •web: add turbopack resolveAlias so SDK uses pre-built dist instead of source (b4fce12)
- •web: auto-fix tailwind canonical class names (5364f90)
- •web: correct OG image dimensions to 1200x630 (b49d053)
- •web: fix TypeScript cast in clipboard utility (9842871)
- •webhooks: add explicit type for webhook parameter in map (1b40346)
- •web: memoize messages, use native img for base64, batch state updates (df1704b)
- •web: remove shadcn Geist font override, keep Inter + JetBrains Mono (ff4b0b0)
- •web: resolve icon.png conflict, rename to logo.png and add metadataBase (f57a4ce)
- •web: run prisma generate before next build for Vercel deployment (1e41a99)
- •web: use clipboard utility with WebView fallback for token copy (7719c29)
- •web: use clipboard utility with WebView fallback for webhook secret copy (4bd0764)
Performance Improvements
- •ai: switch from gpt-4o to gpt-4o-mini for faster and cheaper responses (a15afa7)
- •ai: switch to gpt-4o-mini and add logging (a8bba50)
- •nav: add prefetch to all navigation links for faster page transitions (1864946)