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)