3.0.0 (2025-10-15)
⚠ BREAKING CHANGES
- AI summaries now require user authentication
- Require login to access AI-generated contributor summaries
- Add requiresAuth flag to useContributorSummary return value
- Display elegant login CTA when user is not authenticated
- Update UI to show 'AI-powered insights available' message with login button
- Add comprehensive tests for authentication requirements
- Reuse existing login components and UX patterns
Benefits:
- Creates product-led growth (PLG) motion through value-gated features
- Controls LLM service costs by limiting to authenticated users
- Encourages user signup to access premium features
- Maintains seamless UX with existing auth components
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- Embedded authentication removed. Users must now use
actions/create-github-app-token to generate App tokens. See README for
migration instructions.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- docs: add comprehensive GitHub App setup guide and remove unused workflow
- Add detailed step-by-step guide for creating GitHub Apps
- Include security best practices and troubleshooting
- Remove unused PULL2PRESS_WORKFLOW.yml file
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- security: use SHA-pinned version for create-github-app-token action
- Replace all uses of @v1 with SHA-pinned @5d869da34e18e7287c1daad50e0b8ea0f506ce69
- This is v2.0.0 of the action, providing better security
- SHA pinning prevents supply chain attacks
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- refactor: simplify to single workflow with GitHub App auth only
- Update main workflow to use GitHub App authentication
- Remove reusable workflow (no longer needed)
- Use SHA-pinned create-github-app-token action for security
- Remove fallback to GITHUB_TOKEN (App auth only)
This eliminates duplicate workflow runs and simplifies the setup.
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- fix: restore job-level permissions with documentation
- Add back job-level permissions for clarity
- Include comments explaining each permission
- Ensures correct permissions even if workflow-level changes
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- security: remove insecure embedded authentication files
- Remove app-config-encrypted.ts with hardcoded passphrase
- Remove build-embedded-auth.ts build script
- These files used plaintext passphrases in open source (security risk)
- Action now uses secure GitHub App authentication only
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
- cleanup: remove references to embedded authentication
- Update HOW_IT_WORKS.md to document secure App auth approach
- Remove @octokit/auth-app dependency (no longer needed)
- Remove build:embedded-auth script from package.json
- Documentation now reflects GitHub's recommended pattern
🤖 Generated with Claude Code
Co-Authored-By: Claude noreply@anthropic.com
🚀 Features
- Add 90-day workspace event backfill UI (#957) (#965) (9d224b5)
- Add admin dashboard for failed jobs monitoring (#910) (d1247cc), closes #882
- add aggressive repository backfill script (5b37ed5)
- Add AI-generated contributor summaries to hover cards (#979) (0e1450c), closes #924
- Add assignee and reviewer distribution charts for workspace views (#740) (a849c90), closes #737
- Add automated monitoring and cleanup for Inngest jobs (#884) (1ab1762), closes #883 #881
- add automatic discussion sync for workspaces (#1039) (675b7b8)
- Add CODEOWNERS backend API endpoints (#841) (1c8a258), closes #448
- Add comprehensive slow network performance testing (#952) (1023684)
- Add Continue review-bot config for Snyk analysis (f55c8a9)
- Add contributor hover cards across workspace views (#920) (d438cd6)
- Add database support for GitHub issue comments (#743) (bff3ae3), closes #742 #741
- add dynamic OAuth redirect URLs for deploy previews (#707) (0ba90b8)
- add editable workspace description in settings (#669) (904c39e), closes #668
- Add exponential backoff service for GitHub API calls (#828) (bcea47d), closes #782
- Add filtering capabilities to Workspace PRs and Issues tables (#738) (9943d67), closes #696
- add GitHub Actions workflow for inngest-prod deployment (#1073) (a7aa770)
- Add GitHub App authentication to Continue Review action (#524) (c4c601e)
- Add GitHub App installation CTA (Phase 0) (#868) (4ba8032), closes #833 #833 #833 #833
- add GitHub Discussions tab to workspace pages (#988) (e0195c0), closes #985
- Add github_id columns to pull_requests for DLT sync (#876) (9f9c4e0), closes #874 #873
- Add github_issues table with DLT tracking support (#852) (3f4bab9)
- Add Inngest pipeline validation script and documentation (#890) (1c154d2)
- Add metrics and trends to workspace PR tab (#652) (f324ad2)
- Add minimal inngest-sync endpoint (#757) (e720182), closes #754 #754 #487
- Add Mintlify documentation setup (#955) (6e5b0b6), closes #939 #940 #406 #FF5402
- add needs-triage Continue workflow for automatic issue labeling (#568) (ea1f6c9), closes #567
- Add notification system for async operations (#973) (6335d61), closes #959
- add page view data capture for workspace and repository views (#1109) (c75eca9), closes #1107
- Add PostHog and GitHub credentials to workflow (3e1aeeb)
- Add PostHog session analysis workflow with Continue CLI (#855) (35edc2c)
- Add PostHog session recording for repository tracking (#735) (aa38e9f)
- Add PostHog tracking for auth flow and workspace CTA (#751) (d887638), closes #749 #750
- Add respond tracking for issues and discussions (#1060) (8038191)
- add seed data generation system with Inngest integration (#560) (3b3426e), closes #549
- add shared utilities for edge functions (database, responses, github) (#1025) (4184c58), closes #1020 #915
- Add Snyk security scan workflow with Continue AI (#858) (b9b350b)
- Add Snyk security scanning workflow with Continue CLI (#869) (67e55b0)
- add Supabase schema for GitHub Discussions support (#985) (121eae4), closes #160
- Add workspace integration button to repository view (#753) (6900872)
- Add workspace metrics functions to Netlify Inngest endpoint (#966) (3ce307e), closes #905 #904
- admin: add PostHog analytics dashboard card (#923) (b85e3ed), closes #922
- AI-generated discussion summaries using LLM service (#995) (f6921ce), closes #992
- complete debug files cleanup phases 2-3 (#676) (#682) (cf7b02b)
- complete migration to MiniLM embeddings (#1034) (e855171)
- comprehensive load testing suite for Edge Functions (#719) (fd96837), closes #486
- Configure docs subdomain rewrite and update app links (#964) (dbd01ee)
- Connect live data to workspace dashboard (#642) (ad47963), closes #598
- connect UI to reviewer suggestions API (PR #841) (#843) (bcaf3a7)
- Connect workspace overview stats to real aggregated metrics (#651) (f48b241)
- contributor CRM system - Phase 1 planning (#800) (7ce80e4)
- dev: cross-platform local Supabase migration runner (#623) (989a33a)
- Display individual star and fork events in workspace activity feed (#659) (8591ccd), closes #657 #657 #658 #660 #661
- Display star and fork events in activity feed (#658) (9adc16c), closes #657
- docs-review: add contextual feedback with specific line numbers and validation examples (#970) (9ed68a3)
- docs-review: detect and suggest missing documentation (#976) (9fbee91), closes #973
- docs-review: enhance documentation review bot with comprehensive checks (#962) (d42362d), closes #950
- embeddings monitoring and discussion prioritization (#1032) (e3371a3)
- Enable ESLint and Prettier with pre-commit hooks (#557) (1b5df9c)
- enable issue similarity search in 'Respond with Similar Items' (#1046) (5577894), closes #1045 #8098
- enhance Continue review to be more critical and context-aware (#618) (7f43672)
- Enhance continue-review action with contextual insights and metrics (#832) (#836) (8c0200b)
- enhance demo workspace with improved charts and rising stars visualization (#629) (a3edddc)
- Enhance similarity service with caching and batch processing - Phase 2 (#831) (89083dc), closes #350
- enhance triage bot with @continue-agent mentions and context awareness (#582) (a55b584), closes #580 #580
- health-metrics: expand contributor definition and add issue engagement (#1026) (e5e6f48), closes #1004
- health: add YOLO Coders button to lottery factor card (#1006) (9537e10), closes #1005
- implement comprehensive code-splitting strategy for bundle optimization (#616) (9e02230)
- implement comprehensive feature flag system with PostHog integration (#628) (68419c1), closes #610
- implement comprehensive issue comment metrics and first responder tracking (#670) (#675) (3590db5), closes gh-datapipe#86 #678
- implement documentation review workflow with Continue Agent (#571) (3a0d162), closes #566
- implement Edge Function concurrency management system (#720) (dc031dc), closes #488 #719 #718 #489
- implement full page workspace creation at /workspaces/new (#604) (aaaee24), closes #399 #399 #598 #597 #599 #603
- implement GitHub Events API capture for stars and forks (#654) (5f64862), closes #650
- implement lazy loading for heavy view components (#640) (fe8fb32), closes #634
- implement live data workspace activity feed with GitHub usernames (#649) (68f9fc2), closes #598 #642
- implement phase 2 strategic event tracking for user journey insights (#617) (30b035d)
- implement Polar subscription system for workspaces (#401) (#710) (9ea3411)
- implement PostHog LLM analytics for OpenAI features (#606) (5bdc009)
- implement request deduplication with idempotency keys (#718) (d37fe11), closes #488 #719
- implement RLS performance monitoring system (Phase 5) (#824) (6fad1c3), closes #820 #820
- Implement secure GitHub App checks for fork PRs (#613) (3db0e28), closes #585
- Implement webhook priority system for GitHub App data fetching (#969) (4805ae5), closes #263
- implement workspace creation feature flag controls (#691) (#698) (bd513f0), closes #291 #276 #276
- implement workspace data aggregation service (#561) (a2edcc9), closes #398
- implement workspace invitation email system (#590) (ff763e7), closes #588
- Implement workspace repository prioritization (Phase 2 - #882) (#907) (a8599dc)
- improve Continue AI code review accuracy (#1069) (661b4d0), closes #1067
- improve PR review status and distribution charts UI (#766) (d46564d)
- improve scatterplot enhancement toggle UX (#639) (cfe034c)
- improve similar items response format and filtering (#1044) (4c06ded)
- improve similar items response format and filtering (#1044) (8780b9e)
- improve workspace table links and layout (#739) (1b4b31f)
- Integrate commit capture with progressive data system (#830) (#835) (9c71161)
- integrate useWorkspaceIssues hook with linked PRs support (#1095) (f83dbec), closes #1074
- logs: suppress console.logs in production (#1084) (183f82d)
- make demo workspace page responsive and mobile-friendly (#641) (33275e4)
- migrate CODEOWNERS and Workspace Sync APIs to Supabase Edge Functions (#1088) (2030a9f), closes #1070
- migrate critical CSS to external stylesheet for CSP Phase 2 (#665) (f436ae6), closes #655
- Migrate inngest-prod-functions to Supabase Edge Functions (#754) (43389c6), closes #487
- migrate PR compliance to secure pull_request_target event (#620) (048b297)
- Modernize Snyk security workflow with Continue CLI (#866) (302a77c)
- monitoring: Add PostHog error tracking for 500 errors and critical failures (#949) (035426a), closes #939 #940
- Move all mock data to dedicated /i/demo workspace (#624) (9c48d21), closes #611
- move sitemap generation to daily GitHub Actions workflow (#581) (12f8c03)
- notifications: add invite status notifications for workspace invitations (#1003) (64eda0b), closes #975 #975
- optimize bundle size by lazy-loading react-markdown (#638) (b57a70d)
- optimize tree shaking configuration for better bundle size (#614) (6753ddc)
- optimize tree shaking configuration for better bundle size (#615) (5e86166)
- Re-enable embeddings via dual Inngest architecture (#903) (#904) (a057ce4), closes #899
- Remove 'unsafe-inline' from CSP script-src (Phase 1) (#663) (3b60ce1), closes #655
- remove SECURITY DEFINER from database functions (#812) (346c537)
- remove stars and forks from repo-view PR activity feed (#674) (56cff25)
- replace star count with velocity metric and fix trend calculation (#958) (c973570), closes #660 #660 #659 #660 #661 #660-661 #957
- replace TypeScript any types with proper interfaces in components (#591) (9bb59d5), closes #541 #577 #588 #542
- simplify continue-review with TLDR and remove metrics (#846) (ebd4c82)
- social-cards: update design to match app dark theme (#912) (3145121), closes #FF5402 #901
- Team Collaboration with Role-Based Permissions (#711) (45fd56b), closes #401
- Testing & Quality Assurance for Edge Functions (#1022) (#1055) (86f838d)
- This includes adding a state variable
showAllContributorsand condi… (#930) (c5a5633), closes #931 #931 - ui: show GitHub icon on login button only on mobile (#1027) (602aef5)
- ui: Update notification icon from mail to bell (#1117) (caf4aa7)
- Update favicon and workspace icon to plant logo (#963) (1979eae)
- update leaderboard cards to match workspace contributor card styling (#531) (bc039bf)
- Update to bdougie-test org and review-bot config (7c6eb97)
- Update workspace navigation to use slugs instead of IDs (#763) (e0ae5c8)
- Use npx and add Anthropic API key (b0da1aa)
- Webhook consolidation with real-time similarity and monitoring (Phases 0-5) (#871) (75437ee)
- widgets: Default embeddable widgets to dark mode (#947) (fdf56bc), closes #0A0A0 #141414 #FF5402 #912 #943 #FF5402 #0A0A0 #141414
- Workspace Command Palette with Slug Support (Phase 2) (#521) (74808a7)
- workspace invitation UI with upgrade CTAs (#713) (dbd62f8), closes #397
- Workspace Navigation - Phase 1 Implementation (#520) (3a6e5c8), closes #400
- workspace: add billing link to entice workspace creation (#1050) (8ac3e0f)
- workspace: Add linked PRs support for issues tab (#1072) (98d2e58)
- workspace: add My Work card with live data integration (#1001) (e157991), closes #997 #789 #1009 #1010 #1011 /github.com/bdougie/contributor.info/pull/1001#issuecomment-3382175710
- workspace: add pagination to discussions table (#997) (ea11c76)
- workspace: integrate GitHub events cache for rich analytics (#688) (5597018)
- workspace: require login for metrics and trends cards (#993) (a3e22a4), closes #991
🐛 Bug Fixes
- activity: use Supabase avatar cache for activity page (#1061) (5041749), closes #1058
- Add blocklist to prevent app routes from being treated as GitHub repos (#914) (264533b)
- Add comprehensive diagnostic logging for gh-datapipe backfill 500 errors (#889) (615c443), closes #144
- add comprehensive error logging to Inngest compute-embeddings function (#1041) (4f43cd0)
- Add config flag to cn command (4b5639c)
- Add docs subdomain to CSP connect-src directive (#967) (a69f9a3), closes #964
- Add error handling to capture Continue CLI failures (920a18c)
- add manual sync button for stale workspace activity data (#764) (7882029), closes #767
- Add missing last_updated field to pull_requests table (#727) (2c93136)
- Add missing original_commit_id column to comments table (#918) (1484390)
- Add missing repository_id and author_id to review writes (#926) (f91b093), closes #921
- Add missing workspace priority migration from PR #907 (#911) (f3feeff)
- add PostHog assets URL to CSP connect-src directive (#653) (10c2fff), closes #645 #655
- add redirects for legacy workspace invitation URLs (#1030) (25a146d), closes #1008
- Add repository_full_name column to pull_requests table (#768) (d5c2381), closes #765
- Add repository_full_name to PR upsert in GraphQL capture (#906) (71eecba)
- Add repository_id column to reviews table (#909) (69292ca)
- Add respond tracking columns to correct 'issues' table (#1085) (eab3c78), closes #1060 #1060 #1060
- add security audit overrides for known false positives (#705) (dc60c3e)
- align PR table links with Issues dashboard format (#784) (72efd4a)
- allow workspace invitation lookup by token (#1068) (ff44542)
- api: resolve 404 error in backfill trigger endpoint (#1087) (623ca71), closes #1059 #1059
- audit and fix database migrations for universal compatibility (#559) (3f3aebe), closes #552 #552 #503
- auth: update GitHub OAuth scope from 'repo' to 'public_repo' (#1051) (af98ca0)
- avatars: replace GitHub avatar URLs with Supabase cached avatars (#994) (14e731c), closes #990
- billing: display three plan cards side-by-side on medium+ screens (#978) (81cafd9)
- center app content with margin auto (#946) (b4f34dc), closes #945
- Code Activity chart data display consistency (#555) (8050255)
- Configure workspace invitation email system (#860) (f0f4585), closes #857
- consistent workspace UI width constraints (#680) (68aca76)
- consolidate 91 duplicate permissive RLS policies (Phase 2) (#818) (c7d8c8c), closes #816
- continue-review: prevent truncation warnings in reviews (#971) (45f10a3)
- Contributor of the month cards not rendering (#695) (#744) (4de262d), closes #1 #1 #1 #1 #1 #1
- Contributor of the Month showing wrong time period data (#932) (8a7d1bb), closes #931
- correct console.error parameter order in Inngest capture functions (#1056) (5751135), closes #1026 #788
- correct My Work card to query issues table with proper schema (#1047) (8518f64)
- Correct Netlify Functions directory structure to resolve 404 errors (#1081) (3d1a962), closes #1079
- CORS header case sensitivity for queue-event Edge Function (#728) (6a3b8a4)
- critical race condition fixes for start-local-supabase script (#619) (2df7071)
- critical webhook system issues from PR review (#723) (7983e13)
- database: add workspace discussion similarity function with correct VARCHAR type (#1012) (f9b0f45), closes #1011
- db: ensure original_commit_id column exists in comments table (#1024) (94784b2), closes #1015
- Disable client-side telemetry to prevent 403 errors (#881) (8f6135a)
- discussions: auto-generate summaries and ensure authors in contributors (#999) (1a9457e)
- display specific time ranges in workspace metrics trend labels (#536) (2ef7d8e), closes #534
- docs-review: encourage review of existing docs for code changes (#1007) (71ad54a), closes #1006
- docs: Fix MDX syntax errors and broken links in Mintlify docs (#956) (03d2b13)
- email: correct workspace invitation URL format in emails (#864) (d5ae872), closes #863
- embeddings: add discussions to embedding generation pipeline (#1013) (ff29adb), closes #1010
- embeddings: add discussions to embedding generation system (#1014) (6764cde), closes #1009
- embeddings: configure esbuild to use ESM format for inngest-embeddings (#1019) (97fa6b5), closes #1016
- enable PostHog analytics beyond just web vitals (#605) (9b6e566), closes #593
- Enable public read access for pull_requests table (#853) (d958ac6)
- enable workspace metrics aggregation on manual sync (#1048) (9d233e1), closes #8164 #8166
- Ensure track-repository endpoint is properly deployed (#794) (89db1ec), closes #776
- Fix Lighthouse CI configuration for proper performance monitoring (#607) (5d69364), closes #601 #593
- Guard import.meta.url usage in evals CLI detection (34c6390)
- handle dry-run input safely in continue-triage action (#569) (cbfdb84), closes #567 #568
- handle HTTP 206 partial responses in Service Worker (#565) (18ef4e6)
- handle missing prNumber in capture/pr.comments gracefully (#1106) (0ba0d3a)
- implement direct database insertion for repository tracking (#796) (16cfc00), closes #795
- implement PR reviewer data sync infrastructure (#778) (fe517a3)
- implement proper Inngest SDK serve endpoint for sync (#758) (77406e6)
- improve 'Track This Repository' button placement and UI clarity (#553) (1591b95)
- improve @continue-agent bot responsiveness and error handling (#839) (558e3a0), closes #838
- improve backfill trigger error handling and Inngest client resilience (#799) (d5e30e1), closes #798
- improve billing page UX and update pricing tiers (#722) (8e011cf)
- Improve CODEOWNERS 404 error handling with friendly UX (#972) (8bd0422), closes #968
- improve continue-triage workflow triggers (#584) (a5a1ca9), closes #579
- improve mobile responsive UI for workspace and landing screens (#982) (f7eaf8d), closes #981
- improve mobile responsiveness for workspace components (#697) (2477369)
- improve progressive backfill detection with better logging and thresholds (#1101) (e036c4d)
- improve table link behavior and fix column overlap issues (#792) (c030c2c)
- Improve test organization and extract magic numbers (#827) (a68f90f), closes #648 #648
- improve triage bot comment formatting (#570) (a71b59e)
- Improve workspace creation modal messaging based on auth state (#752) (dac2278)
- improve workspace repository management (#535) (ca0a089), closes #528
- Inngest jobs now update completion status (#886) (8dc75ce), closes #883 #881 #884
- Inngest local development integration and client configuration (#762) (07d0d3c), closes #754 #755 #770
- inngest: resolve event data structure mismatch in Supabase Edge Functions (#1096) (6dde950), closes #1097
- inngest: resolve schema validation issues and add comprehensive tests (#1098) (2df7902), closes #1055 #1097 #1097 #1097
- Make author_id and repository_id nullable in pull_requests (#878) (c81718c), closes #877 #876
- Make foreign key constraints deferrable for DLT merge compatibility (#880) (42b9a7d), closes #879
- make pull_requests.author_id non-nullable (#806) (5683879)
- make workspace loading non-blocking with better error handling (#526) (878a7c8), closes #7273
- Migrate Inngest to Supabase Edge Functions (#899) (f842042), closes #895 #898 #898 #878
- move action timestamps to HTML comments (#533) (82dc88a), closes #532
- move Inngest event sending to server-side API for workspace sync (#791) (2b3141d), closes #789 #789
- needs_attention returns NULL instead of false (#888) (ea1eedc)
- normalize contributor foreign keys handling across PRs (#845) (347578b)
- Normalize GitHub review states to prevent database constraint violations (#913) (9d403f4)
- Normalize review states to prevent database constraint violations (#917) (6748129), closes #916
- optimize remaining 120+ auth RLS policies (Phase 4) (#823) (5b4157d)
- optimize RLS auth initialization for 50+ policies (Phase 1) (#817) (2051f42), closes #816
- optimize RLS auth initialization for 50+ policies (Phase 1) (#821) (bfe7103), closes #820 #820
- optimize service role RLS policies (Phase 2) (#822) (c7c4083), closes #820 #820 #820 #820
- pass embedding arrays directly instead of converting to strings (#1040) (f430967)
- persist social links after fetching from GitHub (#948) (802d7f2), closes #925
- PR data corruption - adjust auto-fix rate limit from 12h to 1h (#525) (1557d8f), closes #7273
- prevent async/await patterns in unit tests to avoid CI hangs (#787) (f23c7b5), closes #779 #781
- Prevent workspace timeouts from auth token refreshes (#556) (9019317), closes #554
- properly escape JSON values in compliance-secure workflow (#622) (b0f6f45)
- properly type embedding item mapping without any types (#1037) (441f21f)
- refresh My Work list after marking items as responded (#1118) (d27626b)
- register syncDiscussionsCron function in Inngest endpoint (#1043) (d6f102d), closes #1039
- remove 11 duplicate database indexes saving 19MB (Phase 3) (#819) (371060a), closes #816
- Remove all import.meta usage causing Inngest 502 errors (#894) (80e6dc2)
- remove custom handler blocking Inngest SDK sync operations (#760) (7322337)
- remove DEBUG console statements from production code (#786) (4b3f4fd), closes #777 #777
- remove explicit any types and improve TypeScript type safety (#825) (e31316a), closes #646 #646
- Remove explicit snyk auth command (d79ef7c)
- Remove import.meta.env usage from serverless functions (d62d6fb)
- Remove incorrect Continue CLI auth step (f2d110c)
- Remove interactive config loading for headless mode (af50860)
- Remove missing issue-similarity import from webhook handler (#867) (15ff91c), closes #865
- Remove non-optional import.meta.env from smart-commit-analyzer (ce6c545)
- remove SECURITY DEFINER from database views (#814) (918a71f), closes #810
- remove vulnerable database objects and SECURITY DEFINER views (#815) (798609d)
- replace all 'any' types with proper TypeScript interfaces in webhook handlers (#891) (8389248), closes #872
- replace any types with proper TypeScript types in core library files (#541 phase 1) (#577) (5480854)
- replace template literal console.log statements with secure format specifiers (#788) (eee9897), closes #781
- repository filtering now updates overall metrics (#572) (bbde50c), closes #573
- repository tracking for workspaces and repo-view (#834) (3e4f031)
- resolve API endpoints returning HTML instead of JSON (#793) (28db6b8)
- resolve Edge Function 500 errors by setting INNGEST secrets (#731) (7d7c71f), closes #730
- resolve embeddings generation failure with dimension mismatch (#1042) (828da0c)
- resolve Inngest PR capture failures and schema mismatches (#1111) (b26b9ff), closes #1107 #1109
- resolve issue metrics query errors and missing Time to Resolution trend (#671) (5d4bada), closes #670
- resolve JSON parsing error in repository tracking (#771) (85a6c94)
- resolve manual repository sync failures (#656) (#664) (1eaf22d)
- resolve Nivo ScatterPlot theme errors (#635) (e91c362), closes #630 #636
- resolve notes data isolation and overwrite bugs (#983) (f0f147f), closes #1 #2
- resolve page view data capture and workspace sync issues (#1113) (d7f4d9a)
- resolve queue-event endpoint 500/404 errors (#734) (65d0ef6), closes #732 #733
- resolve React hooks dependency warnings (#587) (134d0ae), closes #544
- resolve subscription tier inconsistencies and team plan invite issues (#716) (91df1c3)
- resolve Supabase console errors and missing commits table (#829) (22f0bf8)
- resolve test environment variable handling in CI and local (#1103) (589e51e)
- resolve test failures and update health metrics documentation (#1053) (b8f61a4), closes #1026
- resolve TypeScript type errors in inngest-prod edge function (#1099) (d05dc08)
- resolve unused variable warnings in functions and tests (#564) (b2bcb15), closes #537
- resolve workflow JSON parsing errors and build script issues (#621) (ace3044)
- resolve workspace-sync Edge Function authentication errors (#1116) (8f56c68), closes #1114 #1114
- restore page view-based data capture by properly initializing smart notifications (#1107) (8187c34), closes #1106
- restore stable build from known good state (#608) (c706eef)
- round daily PR volume to whole numbers and update labels to 'Last 30 days' (#679) (08bee54)
- routing: move invitation route before workspace routes to prevent conflicts (#1017) (02671cb), closes #1008
- secure backup tables with RLS policies (Phase 1) (#809) (bad1a28), closes #783 #783 #783
- secure critical system tables with RLS policies (Phase 3-5) (#811) (bcf0141), closes #783 #783
- send repositoryId instead of owner/repo in capture/repository.sync event (#797) (f94b57e)
- Service worker caching HTML for API responses (#774) (b1c5dbe), closes #772
- show only winner with toggle during active month leaderboard (#942) (c6b0a62), closes #1 #1 #929
- show placeholder for invalid star velocity instead of total stars (d117e5d)
- Simplify command and remove Anthropic key (22c53ab)
- social cards (#887) (9fcae6d), closes #856 #856
- spam-detection: resolve Edge Function import errors and database query issues (#898) (479e6b7), closes #859
- standardize bot detection across application (#808) (ceccef0), closes #736
- standardize date formatting across codebase (#826) (0cdc654), closes #647
- supabase local migration (#704) (2b4029f), closes #705 #694 #703 #694
- sync PR count columns to resolve chart failures #694 (#703) (d84288c)
- ui: remove duplicate workspace switcher from workspace dashboard (#1052) (5f6a00b)
- update candlestick chart tooltip to follow cursor position (#586) (077f116), closes #579
- update discussions migration to use VARCHAR for GitHub node IDs (#987) (9c8333a)
- update gitignore to properly ignore debug files in root only (#681) (5bc96e3)
- update repository polling URL to use correct Netlify functions path (#773) (39cf83b), closes #772
- upgrade @actions/core from 1.10.1 to 1.11.1 (#960) (ab194d3)
- upgrade @actions/github from 6.0.0 to 6.0.1 (#961) (b87ee5c)
- upgrade @netlify/functions from 4.1.10 to 4.2.5 (#1093) (3972aa5)
- upgrade @radix-ui/react-toast from 1.2.14 to 1.2.15 (#1092) (4a91658)
- upgrade @supabase/supabase-js from 2.54.0 to 2.57.4 (#933) (29a9e1a)
- upgrade dub from 0.63.7 to 0.66.4 (#937) (181e25c)
- upgrade openai from 5.11.0 to 5.22.0 (#1090) (da1f33c)
- upgrade posthog-js from 1.260.2 to 1.265.0 (#935) (8abb39a)
- use author_id instead of reviewer_id for PR review authors (#941) (888155b)
- use correct 'issues' table in similarity search (#1078) (7046908)
- Use real Inngest implementations to fix stuck jobs (#892) (3078c23), closes #886 #886
- Use service role key in Inngest functions to bypass RLS (#873) (6fc03c3), closes #8039-8049 #7984
- workspace issues display and smart notifications (#529) (0b4302d)
- Workspace member removal and visibility issues (#726) (0503372)
- workspace members tab UI and add team subscription tier (#714) (f9549b2)
- Workspace owners can now add and remove repositories (#539) (a52d011)
- workspace preview cards with square repo avatars and cached URLs (#998) (0f83a48), closes #994
- workspace-only embeddings backfill for PRs and issues (#1045) (fd6f521)
- workspace: correct trend icon direction and color logic (#687) (54c97fd)
- workspace: implement server-side pagination and debounced search for contributor search (#1071) (ef236bb), closes #1065
- workspace: improve workspace creation modal UX (#951) (34a684d), closes #938
- workspace: resolve workspace repository API errors (#644) (9c97176), closes #643
⚡ Performance Improvements
- embeddings: reduce cron frequency to 4 times per day (#1062) (382e91f)
- optimize workspace loading - eliminate N+1 query problem (#984) (c504519), closes #974
⏪ Reverts
♻️ Code Refactoring
- centralize operational workflows documentation (1a14c90)
- Complete Remaining Edge Functions Refactoring (#1049) (67a5156), closes #1029
- extract shared utilities to reduce edge function duplication (#1028) (d859428), closes #1021
- extract workspace dashboard utilities and components (#1083) (31e6880)
- Extract workspace page components for better maintainability (#1094) (08e80d7), closes #1074
- extract workspace tab components for improved maintainability (#1076) (116e573), closes #1075
- Phase 1 - replace 9 nested ternary expressions with utility functions (#592) (a2c54b3)
- Phase 2 - replace 10 nested ternary expressions with utility functions (#594) (d7f09ff), closes #542
- Phase 3 - replace 12 nested ternary expressions with utility functions (#595) (28b5c48), closes #542
- replace 28 nested ternary expressions with utility functions (#574) (6993452), closes #541 #577 #541 #541
📚 Documentation
- add comprehensive documentation for workspace events feature (#662) (df3589e)
- add documentation link, changelog sidebar, and redirect (#977) (e373659)
- add PostHog cohorts implementation guide (#709) (d25f5e0)
- Add RLS policy testing documentation (#861) (194a37d)
- clean up CLAUDE.md documentation (#626) (92593c2), closes #611
- Comprehensive documentation cleanup and organization (#769) (a6b95d4)
- Document Netlify Functions directory structure fix (#1080) (bbb475c), closes #1059 #1070 #411 #487 #882 #1079
- Documentation Foundation for Edge Functions (#1023) (83275e4), closes #919 #919
- modernize CONTRIBUTING.md with current practices (#870) (f61d193)
- remove completed security definer audit PRD (#813) (1fbd995), closes #810
🔧 Maintenance
- apply lint formatting fixes from PR #800 (#802) (e4dcaf1)
- clean up obsolete scripts and reorganize test files (#717) (96e23a8)
- delete local db migration archive (#885) (b0e1246)
- dev: skip auto-seed during supabase:start; add helper script (#576) (a8a7e26)
- migrate console.log statements to production-safe logger (#1086) (1f54338)
- remove cache update console logs for cleaner output (#1100) (97db195)
- remove console logs from data fetching and service worker (#1066) (ea5a07f)
- remove Polar.sh upgrade CTA (#1064) (11b6f95)
- update tracked repositories list [skip ci] (fcfd700)