Changelog

New features, fixes, and improvements shipped to Glitchgrab.

v1.42.1

Bug Fixes

  • mobile: remove unnecessary type assertion and unused eslint-disable in _layout (d027d35)
  • seo: suppress hydration warning on meta date in InnerPageHeader (e84ff2f)

v1.42.0

Features

  • app/dashboard/seo: update gsc property last sync date to display in US locale (20dba73)

Bug Fixes

  • apps/mobile/app/_layout.tsx: initial implementation of media library listener (1427577)

v1.41.0

Features

  • app/api/v1/gsc/reindex: record reindex action in the indexing-history timeline (8520010)
  • app/mobile: update Expo Share Intent for image sharing (a41cf8c)
  • apps/mobile/package.json: upgrade react-native to 0.83.6 (6455036)
  • seo: clearer sync/reindex feedback and indexing history chart (313ebc3), closes #219 #219 #218

Bug Fixes

  • app: add share intent filter for image support (51f232a)
  • gsc-properties: update sync and reindex mutations to use useMutation with custom options (0a815ba)
  • mobile: update start scripts for improved local development experience (d33ee24)
  • package.json: update dependencies to support new versions (6d019a9)
  • package: add --clear flag to dev script for improved iOS build process (8212b12)
  • props: add indexing history chart to SEO detail page (3b778de)
  • props: record sync in indexing-history timeline (b9aacdf)
  • route: add dynamic property and handling (9433a48)

v1.40.2

Bug Fixes

  • sdk: drop opaque cross-origin errors with no error object or filename (ed88c71)

v1.40.1

v1.40.0

Features

  • .mcp.json: add expo-mcp server configuration (1d87ab7)
  • add metro.config.js for apps/mobile (54bbbff)
  • Add ReportCard component in mobile app (d255b34)
  • add useGlitchgrab hook (77922b6)
  • api: add logout listener to handle 401 responses (7b9cb0e)
  • api: update getBaseUrl function (9f840dd)
  • app/_layout.tsx: add screenshot detection and bug report sheet (c71a627)
  • app/auth/login: add logo image (bcb65a1)
  • apps/mobile/app/(tabs)/chat.tsx: Add chat screen with report submission form (650f227)
  • apps/mobile/scripts: remove sourceURL for bridge in AppDelegate.swift (878d9de)
  • apps/mobile/src/contexts/AuthContext.tsx: add logout event listener (cef6164)
  • apps/mobile/src/hooks/use-repos.ts: add useRepos hook to fetch repos (4b67947)
  • apps/mobile/tamagui.config.ts: add Glitchgrab brand colors for Tamagui configuration (839787c)
  • apps/mobile: add babel config for mobile apps (232adf9)
  • apps/mobile: add module-resolver for babel configuration (8677d49)
  • apps/mobile: add vector icons dependency (ed86ca4)
  • apps/mobile: update dependencies (ceaec88)
  • auth: add AuthLayout component (434fd23)
  • auth: Implement login functionality with GitHub integration (ea23faa)
  • colors: add new colors constants (a15d223)
  • config: update animations type and cast for rc.7 vs rc.42 AnimationDriver types (194679f)
  • contexts: added AuthContext for managing authentication state (d5a85b3)
  • docs: add Glitchgrab bug capture SDK for Expo apps (b7a6a72)
  • images: add image size constants (0045235)
  • lib/api: add BASE_URL environment variable for API URL (159c4fc)
  • lib/secure-store: add secure storage functionalities (ea20239)
  • packages/sdk-expo/src: add `useGlitchgrab` hook for interacting with the glitchgrab service (ec89b3d)
  • reports: add useReports and useReport hooks for mobile app (90b444f)
  • sdk-expo/tsconfig.json: add default tsconfig.json (b2d0072)
  • src/BugReportSheet.tsx: Add bug report sheet feature (17367b9)
  • tabs: add home screen with stats and recent reports (a869bf6)
  • tamagui: upgrade packages to rc.42 (0d3127b)
  • types: add types for mobile apps (b51b42c)
  • ui/LoadingSpinner: add loading spinner component (1b9eb79)
  • ui: add EmptyState component (711f8cf)
  • useScreenshotDetection: added dynamic screenshot detection functionality (fc21367)

Bug Fixes

  • .gitignore: add tamagui auto-generated style cache (6bc7a42)
  • Add context for Glitchgrab configurations and user state (5b4a295)
  • add report detail screen (cbc53b1)
  • api: add API endpoints for mobile device interactions (8299f1b)
  • api: add submitReport function to sdk-expo (a097b8c)
  • app-delegate: remove extra line in AppDelegate.swift (0a6ff21)
  • app.json: add permissions and base_url (d25656e)
  • app/auth/login.tsx: add logo and improve styling (b6e710f)
  • app/auth/login.tsx: update logo icon (eff27ac)
  • app/mobile/app: add Index component (f00d0cf)
  • app/mobile/eslint.config.mjs: add patches, plugins and scripts directories (d818c01)
  • app/mobile: update dependencies to use expo-router and tamagui (b2bd486)
  • apps/mobile/app/(tabs)/repos.tsx: add new repos screen (096163a)
  • apps/mobile/package.json: add babel-plugin-module-resolver for module resolution (05d2527)
  • app: upgrade Tamagui version (978e3f3)
  • auth: update login form UI (14b195c)
  • babel: update react-native-reanimated/plugin dependency (3f36a17)
  • bug-chat: remove unnecessary padding in top context bar (beab1e1)
  • capture: add dynamic capture and readUriAsBase64 functions (d3faba7)
  • chat: Add chat screen with type selector, repo selector, description input, and submit button (3a07262)
  • components: add bug report sheet component (21e8448)
  • config: add tamagui.config.ts for mobile branch (093671d)
  • config: update Tamagui config to match rc.7 and ensure type safety (9d45a1c)
  • eslint.config.mjs: refactor ESLint config to use TypeScript config and plugins (d531627)
  • expoConstants: add `APP_ENV` and `hostUri` to ExpoConfig for API URL (44c0717)
  • hero-terminal: implement logic to reset line count when cycle changes (886454f)
  • index: update expo-router entry import (06611a7)
  • initial commit of SDK-expo (c0320cd)
  • initial implementation of GlitchgrabProvider (00e408a)
  • knip.json: add project and ignore dependencies for mobile app (978e054)
  • metro.config.js: patch resolveRequest to handle specs_DEPRECATED/NativePlatformConstantsIOS (e7eb262)
  • metro.config.js: patch specs_DEPRECATED/NativePlatformConstantsIOS.js for RN 0.83 (59cfaf6)
  • NativePlatformConstantsIOS: add lazy proxy for TurboModule (8d44f6f)
  • package.json: update development build steps to include node script and port option (e2066b2)
  • provider: ignore cross-origin script errors (54339ba)
  • reports: add button to filter reports (2b24950)
  • settings: added settings screen and components (40b3f3e)
  • settings: update sign-out button and header (6e8ac9b)
  • table: add missing class selector (bfe3a8a)
  • tabs: add mobile app tabs layout (0b25ad3)
  • tabs: update tab icons to improve visibility (51956da)
  • tamagui: update _layout.tsx to use new Expo Router and AuthContext (f4b00d9)
  • test: filter out 'Script error.' from error events in GlitchgrabProvider (74bd130)
  • tsconfig: add baseUrl and paths for source files (5c9c25c)
  • types: fix missing types for `User` and `Repo` objects (14dda40)
  • update app.json for glitchgrab scheme (2c811da)
  • update dev script to use localhost instead of 0.0.0.0 (a87da39)
  • update dev script to use REACT_NATIVE_PACKAGER_HOSTNAME (e782a5c)
  • update tsconfig.json to include App.tsx and src/api.ts and src/screens (ef3bbe1)

v1.39.1

Bug Fixes

  • org-bottom-nav: use full-page nav in WebView to prevent removeChild crash (8800424)

v1.39.0

Features

  • gsc: expose cached notIndexedPages in properties list (c333caf)
  • org-overview: embed not-indexed URLs in Page Issues copy prompt (f658b29)

v1.38.0

Features

  • org-overview: add Connect GSC button and dialog to SEO panel (5ffc08d)
  • org-overview: add sync functionality for GSC properties with user feedback (1d57d67)
  • org-overview: add sync progress bar visibility during syncing (778e43c)
  • org-overview: enhance sync and reindex button functionality and visibility (1d8236a)
  • seo: extract reusable ConnectGscDialog component (907881f)
  • sync-progress: add sync progress bar animation and styling (ed3c690)

Bug Fixes

  • org-overview: adjust layout of SEO panel for improved responsiveness (74f6b07)
  • org-overview: improve SEO panel layout and sync button visibility (1f3f3d4)

v1.37.0

Features

  • gsc-property-detail: reorganize stats section for improved layout and clarity (24d8e75)
  • org-overview: add SEO panel with GSC properties and indexing stats (02f9b84)
  • org-overview: enhance SEO panel with site domain extraction and health prompts (b4722c3)
  • org-overview: implement health check for favicon and OG metadata with improved prompt handling (51fc08a)
  • org-overview: refactor health check logic for favicon and OG metadata (4da4c79)

v1.36.0

Features

  • org-overview: skeleton for member commits loading + +N repos hint in triage chips (bad97e7)

v1.35.0

Features

  • member-stats: add PRs-created-today per repo to member activity (c5a7d61)
  • org-overview: show PR count with icons in team panel member rows (1bdd8a5)

Bug Fixes

  • ci: add legacy-peer-deps to unblock semantic-release npm version step (c63e0eb)
  • ci: replace workspace:* with file: protocol for npm compatibility (4195dd9)

v1.34.0

Features

  • web: add IssueRow component for improved issue display and link copying (e7fc939)
  • web: add repo filtering to OrgIssuesTriage component (d5e1d9c)
  • web: enhance issue fetching by linking PRs to issues (575d409)
  • web: enhance IssueRow for improved link handling and styling (8198640)
  • web: implement repo filter popover for issue triage (34e652f)

Bug Fixes

  • web: extract token const to satisfy TypeScript narrowing in issues route (005ed9c)

v1.33.0

Features

  • web: include CI check state in org PR list endpoint (3324939)
  • web: show CI check badge on org overview PR list (317f7c8)

Bug Fixes

  • web: allow team panel repo list to wrap instead of truncating (195fc4d)
  • web: show all repos in org team panel instead of slicing to 3 (01bb2ef)

v1.32.0

⚠ BREAKING CHANGES

  • SDK_AUTO responses no longer return status='PROCESSING'
  • response no longer includes intent variants
  • The AI pipeline no longer mutates report content.

Features

  • add AI enhance button to dashboard chat composer (a15687a)
  • add ai-enhance lib for polishing user-written text (2cf29ac)
  • add POST /api/v1/ai/enhance-text endpoint (61bc7a2)
  • dashboard report endpoint creates GitHub issues directly (080dd70)
  • remove AI enrichment pipeline (6a6f1cf)
  • SDK report endpoint creates GitHub issues directly (4af2a6c)
  • sdk: add AI enhance link to report dialog description step (9e33d1a)
  • sdk: expose enhanceText helper on useGlitchgrab (074ca87)

v1.31.0

Features

  • enhance commit counting by utilizing GitHub search API for deduplication (f69ec0d)
  • optimize commit counting by using GitHub search API for deduplication (275f707)
  • orgs: count commits across all branches in member-stats (35559ed)
  • orgs: count today-activity commits across all branches (34b43a9)
  • org: show contributing branches in repo tooltip (e643345)

v1.30.0

Features

  • seo: add favicon proxy route with apex/www fallback (f6270cf)
  • seo: consolidate favicon and Open Graph issue handling into a unified health prompt (8f66704)
  • ui: add button for previewing Open Graph image in GscPropertyDetail (a96d5bc)
  • ui: add favicon preview functionality with dialog display (84177bb)

Bug Fixes

  • ensure ogImage is correctly typed as string in GscPropertyDetail (27c1d7b)
  • seo: use favicon proxy so 404 fallback to Globe works (52ba745)
  • web: add 32x32 size to favicon.ico (a0edb1f)
  • web: declare 32x32 size on favicon.ico link tag (c0916ad)

Performance Improvements

  • web: compress og-image.png below 300KB for WhatsApp previews (af7cf4f)

v1.29.1

Bug Fixes

  • seo: switch favicon API to gstatic faviconV2 for reliable display (4b4efaa)

v1.29.0

Features

  • api/orgs: add GET /orgs/[slug]/pull-requests endpoint (205df7a)
  • org-overview: add open PRs tab with workflows fallback and skeleton loading (7daaeec)
  • org: add member-stats API — today commits per GitHub org member including pending (5a0e548)
  • seo: add skeleton loading for GSC properties list page (ca55d37)
  • seo: add skeleton loading for org SEO properties list page (69b7f8f)
  • seo: add two-column skeleton loading for GSC property detail page (075d76d)
  • seo: add two-column skeleton loading for org GSC property detail page (8b070bc)

Bug Fixes

  • active-workflows: replace spinner with skeleton rows on loading (b9db3d2)
  • github-contributions: replace spinner with full 52×7 skeleton heatmap grid on loading (53115f5)
  • github-contributions: update skeleton component styling for consistency (53798c5)
  • member-stats: remove export from internal-only interfaces to satisfy pruny (3902789)
  • org-overview: shrink PR panel skeleton to prevent layout shift (3792416)
  • overview: replace Math.random in render with static height array for skeleton bars (99841db)
  • seo: pass detailHrefPrefix prop to avoid hardcoded /dashboard/seo link in org context (a4ed37c)
  • seo: replace circular spinner with skeleton in dashboard loading fallback (10a60b6)
  • seo: supply detailHrefPrefix to GscPropertiesClient in dashboard (462d380)
  • seo: supply org-scoped detailHrefPrefix so property links stay within org routing (bcfd93c)

v1.28.0

Features

  • ai: add sessionInfo field to AiInput for reporter context (43a54b9)
  • analytics: add analytics and SEO sections with visual insights and management features (29aa353)
  • analytics: compact 2x2 stat grid + chart side-by-side, fix tooltip headroom and x-axis labels (75b1794)
  • analytics: enhance hover overlay for closed issues with detailed repo counts and improve layout spacing (dbac746)
  • api/orgs/members: POST invite sends email to pending member with GitHub sign-in link (d4e28d9)
  • api/orgs: add GET my-github-orgs endpoint to fetch user GitHub org memberships (bb096b4)
  • api/orgs: GET and PATCH member repo assignments, OWNER-only write access (52bc798)
  • api/orgs: GET members merges GitHub org members with DB state, shows pending for non-signed-in users (f29f6b8)
  • api/orgs: GET org by slug with members and repos, verify requester is a member (1c90d86)
  • api/orgs: GET own org membership, POST create org with GitHub org login and auto-sync repos (1caccbc)
  • api/orgs: POST sync-repos pulls all GitHub org repos and upserts them into DB (7d7b556)
  • api: remove collaborator accept endpoint (a08b5d4)
  • api: remove collaborator invite endpoint (ccf7568)
  • api: remove collaborator repo access endpoint (980c480)
  • api: remove collaborator revoke endpoint (e6a6ca5)
  • api: remove collaborators list endpoint (cd172b7)
  • assets: add bug-report.webp — converted from PNG (312K → 49K) (72b068c)
  • assets: add chat.webp — converted from PNG (97K → 28K) (723cb1b)
  • assets: add dashboard.webp — converted from PNG (171K → 54K) (07bfa2f)
  • assets: add repos.webp — converted from PNG (153K → 47K) (0b7a4a3)
  • auth: auto-assign org repos to MEMBER on login using their GitHub token — no manual assignment needed (ef72a5d)
  • auth: auto-detect GitHub org membership on login and upsert OrgMember with correct role (65f0800)
  • auth: use GitHub org membership role (admin→OWNER) instead of ownerId comparison (e244d3e)
  • collaborate: remove collaborator accept page (be66296)
  • collaborators: remove collaborators dashboard page (aa17abd)
  • collaborators: remove edit repos dialog UI (9c2b610)
  • collaborators: remove invite dialog UI (f8aa6fa)
  • collaborators: remove revoke access button UI (9130134)
  • compare: add Glitchgrab vs Linear comparison page with table, breadcrumb schema, and canonical (6e6846f)
  • compare: add Glitchgrab vs Sentry comparison page with table, breadcrumb schema, and canonical (38b3996)
  • dashboard: redirect org members away from /dashboard to their org path (d54a8db)
  • dashboard: redirect org members to their org on landing instead of personal dashboard (e3d42d3)
  • enricher: include all context in GitHub issue body — full error, stack, breadcrumbs, reporter, environment (213ad96)
  • footer: add About link to Resources column (eac7f8b)
  • footer: add vs Sentry and vs Linear comparison page links under Resources (8767b7f)
  • github: add getGitHubOrgMembers helper to fetch all GitHub org members (ec6a660)
  • github: add getUserOrgRoles to fetch real org membership roles from GitHub API (814750f)
  • github: add getUserOrgs, getOrgRepos, getGitHubOrgInfo, getGitHubUserLogin helpers for org integration (5f08405)
  • gsc-property-detail: integrate Skeleton component for loading states in indexing and favicon sections (d639441)
  • gsc-property-detail: refactor UI with icon buttons, tooltips, skeletons, sync/reindex in card header, and repo picker in page header (c4de9ab)
  • gsc: add Google Search Console section with indexing health report (0fef507)
  • homepage: replace tagline H1 with keyword-rich text and add trust bar between hero and features (6ff342b)
  • landing: add version badge in nav, dashboard/chat/bug-report/repos product screenshot sections (49b6767)
  • landing: replace pipeline boxes with 3-card vacation dev story workflow (7ac29dc)
  • layout: wrap app in TooltipProvider for shadcn tooltip support (5bf8dfd)
  • legal: replace simple header with shared PublicNav for consistent navigation (23a7509)
  • lib: remove collab-auth cookie session module (972a6ac)
  • login: redirect org members to /org/[slug] or /org/[slug]/chat based on role after login (a4ae3a8)
  • mail: add sendOrgMemberInvite email to invite pending GitHub org members to sign in (db9d006)
  • meta: add analytics screenshot WebP for landing page (bb461c5)
  • meta: add issue reports image for enhanced visual representation (a078999)
  • meta: add SEO screenshot WebP for landing page (00ad58f)
  • migration: drop OrgMemberRepo table (2778854)
  • nav: add PublicNav shared component for consistent header across all public pages (c3ce405)
  • org/analytics: guard MEMBER access, redirect OWNER to /dashboard/analytics (1eba167)
  • org/billing: guard MEMBER access, redirect OWNER to /dashboard/billing (21caf62)
  • org/bottom-nav: add SEO to mobile nav (6c58139)
  • org/chat: chat page reuses BugChat with role-scoped repos — OWNER all, MEMBER assigned only (664df62)
  • org/collaborators: guard MEMBER access, redirect OWNER to /dashboard/collaborators (e59d0e5)
  • org/context: replace assigned-repo DB lookup with live GitHub API fetch for member repos (b4ffadd)
  • org/contributions: add org-wide combined commit heatmap endpoint using REST commits API (711e004)
  • org/issues-closed: add org-scoped closed issues bar chart endpoint (a693164)
  • org/issues: add org-scoped open GitHub issues endpoint (ac7f33a)
  • org/members: members page loads all org members with assigned repos for OWNER management (4fa85fb)
  • org/members: remove per-member repo assignment endpoint — repos now sourced from GitHub directly (43fcbdd)
  • org/members: repo assignment UI — OWNER toggles repos per member and saves via PATCH (464b188)
  • org/nav: add Repos link to member bottom nav (1bb1a4a)
  • org/overview: add inline invite button on pending members — OWNER enters email, sends invite (0251045)
  • org/overview: full dashboard-style redesign with stats, issues triage, workflows, contributions heatmap (bbaa9ff)
  • org/reports: guard MEMBER access, redirect OWNER to /dashboard/reports (00610a0)
  • org/repos: fetch all GitHub repos and merge with org DB repos for full visibility (97c4185)
  • org/repos: repo list with sync-from-GitHub button that re-imports org repos (dd4b22d)
  • org/repos: repos page lists all org repos with token and report counts, OWNER only (7d59a5d)
  • org/repos: show tracked/untracked repo split, merge GitHub repos with DB state (ef46917)
  • org/seo: add SEO page that redirects OWNER to dashboard/seo, blocks MEMBER (c0cb022)
  • org/seo: render GSC properties inline instead of redirecting to /dashboard/seo (83a37ef)
  • org/settings: guard MEMBER access, redirect OWNER to /dashboard/settings (c3f98ff)
  • org/setup: auto-load and display user GitHub orgs as clickable cards instead of manual text input (c441145)
  • org/setup: connect GitHub org form with auto-repo sync and post-create redirect (8bce20f)
  • org/setup: redirect already-org users to their org, render setup client otherwise (bcbd84f)
  • org/sidebar: add Repos link to member sidebar nav (88d4d89)
  • org/sidebar: add SEO to OWNER workspace nav (5b43bfc)
  • org/sidebar: show GitHub org avatar instead of Glitchgrab logo in brand header (b39c3e0)
  • org/stats: add org-scoped report analytics endpoint (dc08614)
  • org/today-activity: count per-member commits today via repo commits API to include private repos (d8179ff)
  • org/tokens: guard MEMBER access, redirect OWNER to /dashboard/tokens (0ac9676)
  • org/workflow-runs: add org-scoped GitHub Actions workflow runs endpoint (95b89c4)
  • org: getOrgContext helper returns org membership, role, and scoped repos per role (8bf7b65)
  • org: mobile bottom nav scoped to role — OWNER gets 5 items, MEMBER gets chat only (ab6fcbe)
  • org: org layout with role-aware sidebar and bottom nav (ad1d13d)
  • org: org overview shows repo/member counts, team list with roles, and quick nav links (81b2d3e)
  • org: org root page — MEMBER bounced to chat, OWNER sees overview (64ed193)
  • org: org sidebar shows full nav for OWNER, chat-only for MEMBER (888d9cf)
  • org: remove org collaborators page (752b7a5)
  • page: add OrgGscPropertyPage component for Google Search Console integration (919de20)
  • pipeline: pass reporter session info to AI enricher (c4f85a2)
  • reports: restructure filter bar to single row with labeled groups, switch list to grid cards (0259165)
  • repos: add search input and grid card layout (dbc8d4d)
  • repos: add search input and grid card layout for org repos page (c9426ae)
  • schema: add Organization, OrgMember, OrgMemberRepo models and orgId on Repo for team support (93038ce)
  • schema: drop OrgMemberRepo model — member repo access now via GitHub API (88f15a2)
  • seo: add /about page with founder bio, company background, and E-E-A-T signals (6b402f0)
  • seo: add /about to sitemap with priority 0.8 (b4ce995)
  • seo: add collapsible FAQ section with FAQPage JSON-LD schema to homepage (d4230e3)
  • seo: add complete favicon links, web manifest, and switch to compressed og-image.jpg (af00b16)
  • seo: add google-seo.webp for improved SEO visuals (aa90cce)
  • seo: add llms-full.txt with full page-by-page content for AI engine indexing (6bf59b8)
  • seo: enrich SoftwareApplication schema with featureList, softwareVersion, dual offers, MIT license, sameAs (da49743)
  • seo: fix duplicate title tag; add HowToJsonLd for 5-step SDK install walkthrough (b017fe8)
  • seo: inject WebSiteJsonLd with SearchAction in root layout (cfb0b7d)
  • seo: replace Script with script tag for synchronous rendering; add WebSiteJsonLd, FAQJsonLd, HowToJsonLd; improve OrganizationJsonLd with logo object, npm sameAs, contact email (b6b5ea0)
  • sidebar: add Create Org link in Config section for users without an org (aca164a)
  • skeleton: add Skeleton component for loading placeholders (cddf8c2)
  • tooltip: implement TooltipProvider, Tooltip, TooltipTrigger, and TooltipContent components (0faf2e7)

Bug Fixes

  • analytics: adjust height of X-axis labels and background size for better layout (0e3f778)
  • analytics: adjust margin for tooltip space and update grid height for better layout (6971cab)
  • analytics: render IssuesClosedAnalytics directly to fix redirect loop (deac534)
  • api/orgs/members: backfill githubLogin from GitHub API for users who logged in before it was stored, preventing duplicate entries in team list (89ee7cd)
  • api: remove collab session from issues-closed analytics auth (2c429fe)
  • api: remove collab session from reports analytics auth (55128ae)
  • api: remove collab session from reports list and create (cc6225d)
  • api: remove collab session from single report auth (1aa2e18)
  • api: remove collab shared-repos from repos list (589423e)
  • bottom-nav: remove Collaborators from sheet nav and userType prop (675f34b)
  • chat: remove collaboratorOnly prop from no-repos state (b0e66b2)
  • dashboard: increase issues-closed bar chart height from h-14 to h-24 (b78484b)
  • dashboard: prevent redirect for specific config paths in DashboardLayout (a0d039d)
  • dashboard: remove collab session and simplify to owner-only auth (3c2f761)
  • dashboard: remove collaboratorOnly prop and message (e560adb)
  • dashboard: remove collaboratorOnly prop from no-repos state (1133dc9)
  • dashboard: remove shared-repo collab logic from context (b714d11)
  • glitchgrab-vs-linear: escape unescaped quote entities for ESLint compliance (7a729d2)
  • glitchgrab-vs-sentry: escape unescaped apostrophe entities for ESLint compliance (810c823)
  • gsc-property-detail: add tooltips for copy prompt and GitHub issue actions (ef0e48a)
  • gsc-property-detail: enhance layout responsiveness and adjust flex properties (c0c13b0)
  • gsc-property-detail: improve favicon and OG tag issue handling with copy prompt functionality (82f0b56)
  • inner-page-header: add truncate class to title for better text handling (04a92f1)
  • landing: add GitFork to lucide import to fix runtime error (4d20c3b)
  • landing: escape apostrophes and comment slashes as JSX entities for ESLint (8800da2)
  • layout: add TooltipProvider for enhanced user interaction (3497933)
  • llms: remove COLLABORATOR from report sources documentation (7890eba)
  • mail: remove sendCollaboratorInvite email function (9694709)
  • migration: drop collaborator tables and remove COLLABORATOR from ReportSource enum (1b9935e)
  • org/overview: use merged members endpoint so all GitHub org members show, pending badge for non-joined (38f3aba)
  • org: remove Collaborators from org sidebar config nav (cf1fc9c)
  • org: remove collaborators mention from reports subtitle (a6514ec)
  • orgs: remove redundant non-null assertion on session.user.id already guarded above (bf913e8)
  • page: update navigation link and modify content in LandingPage component (9eeacf0)
  • page: update pipeline steps and modify content for clarity (b68eda1)
  • pipeline: remove collaborator email attribution branch from issue body (997f9d6)
  • pipeline: update pipeline steps for clarity and consistency (f6f3242)
  • proxy: exclude config paths from org redirect to prevent loops (b192d6c)
  • proxy: remove /collaborators from CONFIG_PATHS exclusion list (6235712)
  • reports: remove COLLABORATOR from source labels map (c44e9f1)
  • reports: remove collaborator-view subtitle branch (e012640)
  • reports: render ReportsList directly on org reports page to fix redirect loop (39d0785)
  • report: two-tier duplicate check — 24h window + 7-day open-issue suppression to stop recurring issue spam (e483b1a)
  • repos: remove collaborator-view conditional header text (dbfb2d2)
  • schema: remove Collaborator/CollaboratorRepo models and COLLABORATOR enum value (bddcb94)
  • seo: remove brand from title to prevent template duplication (1009494)
  • seo: remove brand from title to prevent template duplication (26835a1)
  • seo: remove brand from title to prevent template duplication (0ae81d1)
  • seo: remove brand from title to prevent template duplication (74dcedc)
  • seo: remove brand from title; add missing canonical URL (f93c40b)
  • sidebar: remove Collaborators nav item and userType prop (0b12838)
  • signature: extend dedup window 1h → 24h, add 7-day open-issue suppression constant (3a4cbd0)
  • sitemap: remove /collaborate from private paths and exclude list (33dedf9)
  • workflow-runs: extract access_token to const so TS narrows string type without non-null assertion (a28b1a8)

Performance Improvements

  • seo: add JPEG og-image compressed to 85KB from 778KB PNG (6a9307b)

v1.27.0

Features

  • cron: add nightly-sync cron to update indexing cache for all GSC properties (0f22207)
  • cron: add seo-health cron to create GitHub issues for favicon, OG, and indexing problems (86c3aab)
  • cron: skip seo-health issue creation when property is snoozed after reindex (4b7359a)
  • db: add cachedNotIndexedPages and seoHealthIssueUrl to GscProperty (ff09005)
  • db: add GscConnectSession model for temporary OAuth token storage during property selection (fa248b8)
  • db: add seoHealthSnoozedUntil to GscProperty for reindex snooze window (49f30cc)
  • gsc: add /connect/gsc wizard page — no auth required, session-authenticated via GscConnectSession (6c9cac5)
  • gsc: add auth/link endpoint returning signed URL as JSON to avoid hydration mismatch (9a6b47d)
  • gsc: add connect endpoint to save selected GSC properties with required repo links (f5108f8)
  • gsc: add favicon-check endpoint for per-property favicon validation (5f29236)
  • gsc: add OAuth callback to verify state, exchange code, upsert GscProperty records (e80beb1)
  • gsc: add OAuth URL builder with HMAC-signed state for cross-browser auth (e6f8484)
  • gsc: add og-check endpoint to validate OG/Twitter meta tags from site HTML (49d2ce4)
  • gsc: add properties list/patch endpoint for repo linking (c1bceed)
  • gsc: add property DELETE endpoint for disconnecting a GSC site (38cfe0a)
  • gsc: add property sync endpoint to live-check indexing status via GSC API (ca66332)
  • gsc: add reindex endpoint to submit not-indexed pages to Google Indexing API (d263180)
  • gsc: add search functionality to filter properties by domain or repo (2fa6bf7)
  • gsc: enhance GSC inspection and sitemap parsing with additional fields and improved URL fetching logic (c6e2950)
  • gsc: persist not-indexed pages to DB on sync for instant cache (4688a8f)
  • gsc: redirect to property selection wizard after OAuth instead of auto-adding all properties (6476135)
  • gsc: return noSitemap flag when no sitemaps registered in GSC (a0196ab)
  • gsc: set 7-day SEO health snooze on reindex to give Google time to re-crawl (a1f9c52)
  • lib: add AES-256-GCM encrypt/decrypt utility for token storage (85c5231)
  • lib: add checkIssueIsOpen helper to detect open GitHub issues by URL (f0cc417)
  • lib: add getValidAccessToken helper with auto-refresh for GSC properties (4b48b77)
  • lib: add Google Search Console API client (token exchange, sites, inspect, indexing) (42ca42f)
  • login: read callbackUrl from search params so post-OAuth redirect lands on correct page (1ad2961)
  • mcp: add HTTP MCP endpoint with session auth and GSC/repo tools (b27a5d5)
  • nav: add SEO route to dashboard sidebar (0f0a394)
  • nav: add SEO route to mobile bottom nav (b7a9617)
  • schema: add GscProperty model, datasource directUrl, remove McpToken (8c45ea5)
  • seo: add Check Fix button to re-inspect not-indexed pages without opening GSC (b7cbc14)
  • seo: add check-fix endpoint to re-inspect not-indexed URLs via GSC inspection API (43a91ae)
  • seo: add copy prompt and create GitHub issue buttons to not-indexed pages section (a5796e0)
  • seo: add create GitHub issue button to favicon health section (bd035f8)
  • seo: add create issue button to OG section and remove Fix with RFG from favicon health (d4c397b)
  • seo: add GSC connect page to load session and repos for property selection (4b06c43)
  • seo: add GscPropertiesClient with sync, reindex, repo linking, bulk disconnect, favicon check (1d7e221)
  • seo: add multi-select bulk disconnect, searchable repo combobox, favicon per property, fix AlertDialog p-nesting hydration errors (d874270)
  • seo: add per-property detail page with back navigation (4830632)
  • seo: add property detail client with auto-sync, not-indexed list, favicon health, OG tag check (15b4458)
  • seo: add property selection wizard with per-property required repo picker (8221b56)
  • seo: add reason-based tab filtering to not-indexed pages list (6524cd0)
  • seo: add SEO dashboard page with GSC properties and MCP section (201a9df)
  • seo: make property site URL a link to detail page (f4b774f)
  • seo: pass cachedNotIndexedPages from DB to property detail component (4c29456)
  • seo: read error/connected query params and pass human-readable flash messages to client (a02aa4d)
  • seo: show cached indexing data on load, auto-sync only on first visit, add stale timestamp (5b69297)
  • seo: show OAuth error/success toasts via flashMessage prop on SEO page load (adc7794)
  • seo: show register sitemap prompt with GSC link when no sitemap found (f61fd4c)
  • ui: add shadcn Command component for searchable combobox (461ae45)
  • ui: add shadcn InputGroup component (command dep) (63a2c1a)
  • ui: add shadcn Textarea component (command dep) (3eee74b)
  • ui: add shared Footer component for all public pages (7f419d5)

Bug Fixes

  • auth: include callbackUrl when proxy redirects unauthenticated dashboard requests to login (8bc2a89)
  • cron: use per-tag attribute parsing in getMeta to avoid non-literal RegExp lint error (078ac24)
  • footer: use Link instead of a for internal hash navigation (f8445a7)
  • gsc: cast GscSite[] to any for Prisma Json field assignment (81f8432)
  • gsc: correct WhatsApp og:image check — warning not error, community-observed 300KB threshold, add dimension check (00d4ac8)
  • gsc: extend connect session expiry to 30 min for login redirect flow (318cea3)
  • gsc: redirect to /connect/gsc after OAuth to skip dashboard auth, add granular error codes (9edb282)
  • gsc: remove auth() requirement from connect endpoint, use session userId directly (8ae3704)
  • gsc: use per-tag attribute parsing in getMeta to avoid non-literal RegExp lint error (24a5d35)
  • lib: remove export from internal-only GSC interfaces (9f1a700)
  • login: wrap GitHubSignInButton in Suspense to satisfy useSearchParams requirement (73c3eac)
  • sdk: set inert on host radix dialogs to prevent focusscope stealing focus (1f60c97)
  • sdk: stop focus propagation to fix textarea clickability with radix focusscope (7d1dfb9)
  • sdk: stop pointerdown propagation to fix dialog clickability with shadcn (e41deb4)
  • seo: capture first indexing API error and expose failed count in response (f77e0f8)
  • seo: fix useEffect dep, ternary-as-statement, and Tailwind canonical classes (41ca92b)
  • seo: preserve session id in callbackUrl when redirecting unauthenticated users to login (4f00d3d)
  • seo: replace max-h-[420px] with canonical max-h-105 (ece6a6d)

Performance Improvements

  • gsc: parallelize URL inspection with 10 concurrent requests to fix sync timeout (daa69fe)

v1.26.1

Bug Fixes

  • dashboard: show tooltips on upper contribution graph cells (576022e)

v1.26.0

Features

  • analytics: add Analytics nav item to sidebar (78edba8)
  • analytics: add day-wise issues-closed API endpoint (e96c694)
  • analytics: add issues closed dashboard page with bar chart (aa0c656)
  • dashboard: add DashboardStatusBar component with dynamic path from usePathname (f5f9939)
  • dashboard: add issues-closed sneak peek mini chart to dashboard (67ca6cb)
  • dashboard: expand stat grid to 3x2 with issues-closed metrics (a81fce3)
  • dependencies: add motion library version 12.38.0 to package.json and bun.lock (11c5ae7)
  • layout: mount DashboardStatusBar above main for full-width border (1a0a36e)
  • sidebar: replace static Lucide icons with animated lucide-animated icons (4abf196)
  • sidebar: wire Cmd+G shortcut and animate Bug icon on report button (38bcf69)
  • ui: add animated BugIcon with shake wiggle using motion/react (12a54dd)

Bug Fixes

  • analytics: eliminate tooltip flicker using CSS group-hover instead of React state (5260282)
  • analytics: memo BarList to prevent re-render disrupting CSS hover state (5c2af19)
  • analytics: remove hover from breakdown table rows to prevent layout shift flicker (75d0bc6)
  • analytics: use absolute positioned x-axis labels to prevent rotation clipping (c40905c)
  • dashboard: cap priority issues triage height to prevent layout imbalance (e555da5)
  • dashboard: compact stat cards - reduce padding and font sizes (9757877)
  • dashboard: drop unused userName from DashboardAnalytics call (1b9f9c8)
  • dashboard: reduce stat card width by shrinking grid column span (c46507d)
  • dashboard: remove greeting header and userName prop (c82330e)
  • pipeline: append reporter session info to SDK_AUTO GitHub issues (92b06f1)
  • sdk: include phone in auto-capture payloads and add session to effect deps (6a0f8de)
  • sdk: include session data in error boundary auto-reports (b93fd62)
  • sidebar: guard startAnimation call for non-animated Lucide icons (302abd8)
  • sidebar: replace static Bug with animated BugIcon and fix CMD G shortcut display (c8ca2e4)
  • sidebar: trigger icon animation from full nav item hover via imperative ref (3d58482)
  • ui: add global dark themed scrollbar styles (f64667d)

v1.25.0

Features

  • dashboard: group open issues by repo with per-project count badges (af5e0ae)

v1.24.0

Features

  • add dotenv support for environment variable management (627eec2)

Bug Fixes

  • sdk: use waitUntil to keep pipeline alive after response on Vercel (bd06245)

v1.23.2

Bug Fixes

  • sdk: detect host theme from html element when body bg is transparent (dc848c3)

v1.23.1

v1.23.0

Features

  • sdk: add Cmd+Shift+G global keyboard shortcut to open report dialog (23cfae1)
  • sdk: add deduplication check before dispatching report in error boundary (340487b)
  • sdk: add in-memory error signature dedup with 5min window (517b622)
  • sdk: export deduplication utilities (c65ad1c)
  • sdk: implement deduplication check for global error and unhandled rejection listeners (4f6d865)
  • sdk: support Cmd+V clipboard paste and update upload hint text in report dialog (e33924b)
  • seo: add dynamic llms-full.txt route with SDK quickstart and API reference (f5067c7)
  • seo: add keywords, authors, robots meta and title template to root layout (ec8c8d7)
  • seo: add llms.txt for AI crawler indexing and citation (f8c6b34)
  • seo: add Script-based JSON-LD components for Organization, FAQ, Breadcrumb, HowTo (fe1830b)
  • web: add utility to compute error signatures for issue deduplication (7df700a)
  • web: implement server-side verification to detect and skip duplicate error reports (2473c26)
  • web: update schema with report signature field and index for deduplication (561f2ab)

v1.22.2

Bug Fixes

  • bug-chat: show full repo names in dropdown without truncation (ce79687)

v1.22.1

Bug Fixes

  • collaborators: show action buttons on mobile without hover (4ff6a1c)
  • dashboard: wrap GitHub contributions heatmap in horizontal scroll container (2245fc8)
  • repos: stack sync + status badge vertically on mobile (731ea34)
  • responsive: use canonical min-w-130 instead of min-w-[520px] (03c22d0)

v1.22.0

Features

  • add CreateTokenDialog component for repository-scoped API token generation (0e15b8a)
  • add db:deploy script to run prisma migrate deploy (4889f93)

v1.21.0

Features

  • repos: expose owner avatar_url in GitHub repo listing (3267d1a)
  • repos: render GitHub owner avatars in connect dialog (22f3abf)

Bug Fixes

  • db: migration for per-user Repo.githubId uniqueness (212f628)
  • repos: return result from connectRepo instead of throwing (16d5211)
  • schema: scope Repo.githubId uniqueness per user (8680193)

v1.20.6

Bug Fixes

  • reports: remove internal status filter, keep GitHub open/closed only (43de5f5)

v1.20.5

Bug Fixes

  • reports: add open/closed issue state filter to reports list (0af44ee)

v1.20.4

Bug Fixes

  • chat: increase repo name max-width to prevent premature truncation (f79aefd)
  • select: allow popup to grow wider than trigger for long repo names (ebde8e6)
  • tokens: make repo select trigger full-width to show complete names (282e7a3)
  • tokens: remove max-w-40 cap on repo column to show full repo names (6265933)

v1.20.3

Bug Fixes

  • claude: simplify enricher to single-turn API call (3500632)
  • claude: trim enricher context to prevent turn exhaustion on large issue lists (9f51536), closes #142
  • claude: use instanceof directly in ternary to fix TS2749 type error (205b952)

v1.20.2

Bug Fixes

  • chat: add lightbox for staged screenshot preview (6561880)

v1.20.1

Bug Fixes

  • repos: surface specific GitHub status codes in resyncRepo error messages (390daf6)

v1.20.0

Features

  • repos: add org filter chips, reconnect github, and grant-access CTA (6b6f70b)
  • repos: add resyncRepo server action for detecting transfers and renames (2dafd0a)
  • repos: add sync button on repo rows to resync transferred or renamed repos (4812162)
  • repos: paginate GitHub repos and expose accounts + reconnect url (a810367)

Bug Fixes

  • auth: refresh stored GitHub access_token on every sign-in (be027e6)

v1.19.3

Bug Fixes

  • ci: fail deploy-web step when Vercel hook returns error (db1706d)

v1.19.2

v1.19.1

Bug Fixes

  • chat: stack REPL prefix above content on mobile and prevent issue card button wrap (b8e5215)

v1.19.0

Features

  • dashboard: add elapsed time and progress bar to active workflow rows (16fa7ce)
  • dashboard: show check status pill on awaiting-review PR list (c1f9273)
  • enricher: add structured emit tools for reliable action termination (df60244)
  • pulls: fetch and roll up check-run status per PR (9a622f5)

Bug Fixes

  • enricher: detect emit-tool calls to eliminate JSON parse failures (a291126)
  • reports: link rows directly to GitHub issue instead of in-app page (b45f6b3)

v1.18.1

Bug Fixes

  • dashboard: show toast error when pasting image without repo selected (8163718)

v1.18.0

Features

  • reports: add date-wise filter pills (TODAY, LAST_7_DAYS, LAST_30_DAYS) (d73e9f4)

Bug Fixes

  • reports: move Date.now() out of component to fix react-hooks/purity lint error (f602030)
  • reports: move Date.now() out of useMemo into event handler (484f393)

v1.17.3

Bug Fixes

  • chat: disable input and upload until a repo is selected (a6c88ba)

v1.17.2

Bug Fixes

  • chat: include issue number in chat history sent to AI (c41b023)
  • prompt: escape backticks in template literal to fix parse error (ac2e9df)
  • prompt: teach AI to recognise attach-to-last-issue requests (68b68ac)

v1.17.1

Bug Fixes

  • reports: exclude dismissed reports from sidebar failed count (13c2a8e)

v1.17.0

Features

  • reports: add dismiss action for failed reports (108a683)
  • reports: include dismissed field in reports GET response (bee9214)

Bug Fixes

  • reports: add dismissed field to ReportItem, remove isOwner from ReportsTabs (5a38431)
  • reports: add repo filter, remove approve/reject, clarify failed status (7fe2ead)
  • reports: remove unused isOwner prop from ReportsList (ef3579f)

v1.16.0

Features

  • seo: add canonical URLs to docs, legal, and contact pages (c0720f3)
  • seo: add explicit Next.js sitemap route covering all public pages (c10ef0c)
  • seo: add JSON-LD schema utility for Organization, SoftwareApplication, and BreadcrumbList (743d8f5)
  • seo: add SoftwareApplication and BreadcrumbList JSON-LD to homepage (d3b0cb5)
  • seo: inject Organization JSON-LD and add canonical URL to root layout (d6954ec)

Bug Fixes

  • enricher: force JSON output on last turn to prevent exhausted-turns fallback (e316aa8)
  • seo: add explicit sitemap.xml reference to robots.txt via next-sitemap config (4ad7683)

v1.15.1

Bug Fixes

  • dashboard: add refetchOnWindowFocus and refetchInterval to analytics queries (a34894e)

v1.15.0

Features

  • dashboard: add compact active workflows widget (2a7a538)

v1.14.0

Features

  • api: add workflow-runs endpoint listing GitHub Actions per repo (8f8b010)
  • billing: bypass Razorpay in dev and return PRO_PLATFORM active (8168e8b)
  • dashboard: add workflow runs section with smart polling and manual refresh (d6cb835)
  • dashboard: wire workflow runs section into analytics view (652b4ef)
  • github: add listWorkflowRuns API client for GitHub Actions (7a1e6fc)
  • scripts: load env vars from workspace .env in db-sync script (83cf32c)

Bug Fixes

  • api: replace non-null assertion with local variable in workflow-runs (f54e75e)
  • scripts: point dotenvx at root .env and correct db:sync script path (e2a4388)
  • turbo: add env allowlist to dev task so secrets reach next dev (9756250)

v1.13.0

Features

  • reports: add GET /api/v1/reports/[id] with session auth (ead5e56)
  • reports: add POST /api/v1/reports/[id]/comments with session auth (aff3fb8)

Bug Fixes

  • web: use session-auth endpoints in report detail page (5547fbe)

v1.12.0

Features

  • chat: add screenshot lightbox modal on thumbnail click (08052ca)

v1.11.1

Bug Fixes

  • dashboard: default to no repo selected and clear chat on repo change (3bbcb5d)

v1.11.0

Features

  • claude: add agentic enricher loop with 6-turn cap, 15s timeout, and fallback (21945d9)
  • claude: add Anthropic SDK client factory (670a9cc)
  • claude: add in-memory TTL cache for tree/file/search lookups (ec806fa)
  • claude: add list_repo_tree/read_file/search_code tools scoped to one repo (82b3893)
  • claude: add system prompt encoding the 6-action decision (0656067)
  • claude: add ToolContext and EnrichmentMetrics types (0818bb7)
  • web: thread repo context into classifyAndGenerate so claude can read it (de871d4)

v1.10.0

Features

  • analytics: add reports analytics endpoint for dashboard stats (50c8134)
  • bottom-nav: replace Repos with Chat tab and add Chat to menu sheet (41a969f)
  • chat: add dedicated chat route separated from main dashboard (a383fa5)
  • dashboard: add analytics view with action cards, PR/issue lists, and heatmap (8c44ef8)
  • dashboard: add GitHub contributions heatmap with tooltip on hover (5b2191d)
  • dashboard: add GitHub-style yearly reports contribution heatmap (bafdb24)
  • dashboard: add open GitHub issues card with labels and direct links (05c9700)
  • dashboard: add open pull-requests card with direct GitHub links (b80319b)
  • dashboard: add shared InnerPageHeader primitive for terminal-dev inner pages (eee136e)
  • dashboard: extract reusable no-repos empty state (33a84bb)
  • dashboard: extract shared repo-context loader for reuse across pages (5b14538)
  • github: add GitHub contributions GraphQL endpoint (e34212d)
  • landing: terminal-dev redesign — hero with live terminal, log-entry feature cards, CLI install transcript + demo video split, pipeline with icons, subscribe.sh waitlist, mono footer (c8903cf)
  • repos: add open issues endpoint for dev triage (1e7cde3)
  • repos: add open pull-requests endpoint via GitHub API (93892cd)
  • sidebar: add Chat nav entry for dedicated chat route (7e733dd)
  • sidebar: redesign with nav groups, kbd hints, status dot, live count badges, keyboard-styled report button (d388a57)

Bug Fixes

  • chat: replace non-null assertion and '!=' with strict equality and guard check (8f63ae0)
  • landing: use real logo image in footer brand instead of generic terminal icon (8a6117b)
  • reports: inline source-icon rendering to satisfy react-hooks/static-components rule (32b626c)
  • web: add data-scroll-behavior=smooth to html for proper nextjs route transitions (d3d6fd0)

v1.9.1

Bug Fixes

  • dashboard: remove toast notifications on screenshot upload (5e67523)

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)