Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
3330 commits
Select commit Hold shift + click to select a range
2ae7516
fix: expose sharedNotes toggle via PATCH visibility endpoint in both …
ezManish Jul 18, 2026
1f60ab8
Merge pull request #2717 from pawanakapkv/feature/streak-freeze-mechanic
parnita-Singh Jul 18, 2026
7705386
fix: cancel pending replay timeout on reset in selection sort visualizer
parnita-Singh Jul 18, 2026
0bdb112
git checkout -b fix/insertionsort-replay-timeout-resetMerge branch 'm…
parnita-Singh Jul 18, 2026
d78cd66
fix: cancel pending replay timeout on reset in insertion sort visualizer
parnita-Singh Jul 18, 2026
da6e133
fix: cancel pending replay timeout on reset in merge sort visualizer
parnita-Singh Jul 18, 2026
d1b72e6
fix: cancel pending replay timeout on reset in shell sort visualizer
parnita-Singh Jul 18, 2026
e00d2d3
fix: cancel pending replay timeout on reset in counting sort visualizer
parnita-Singh Jul 18, 2026
5ab262f
fix: cancel pending replay timeout on reset in radix sort visualizer
parnita-Singh Jul 18, 2026
380b868
Merge pull request #3616 from ezManish/fix/bookmark-delete-missing-slug
jainiksha Jul 18, 2026
ce93b09
Merge pull request #3617 from ezManish/fix/streak-spoofing-bulk-progress
jainiksha Jul 18, 2026
c582533
Merge branch 'main' of https://github.com/PankajSingh34/AlgoBuddy
parnita-Singh Jul 18, 2026
0fe87cd
fix: remove leftover debug console.log in linked list sorting visualizer
parnita-Singh Jul 18, 2026
e5a68bb
Merge pull request #3618 from ezManish/fix/kmp-animation-logic
jainiksha Jul 18, 2026
dee105a
Merge pull request #3619 from ezManish/fix/rate-limit-ipv6-validation
jainiksha Jul 18, 2026
6b8c36f
Merge pull request #3620 from ezManish/fix/graph-canvas-flow-crash
jainiksha Jul 18, 2026
f85d83d
Merge pull request #3621 from ezManish/fix/mysheet-shared-notes-visib…
jainiksha Jul 18, 2026
7012a99
feat(string): add Z Algorithm visualizer and quiz
jainiksha Jul 18, 2026
c6af613
feat(string): add Z Algorithm quiz
jainiksha Jul 18, 2026
d37553e
Merge pull request #3632 from jainiksha/feat/z-algorithm-quiz
ezManish Jul 18, 2026
2d5fdb3
fix: remove chatbot CSRF exemption and switch to user-based rate limi…
ionfwsrijan Jul 18, 2026
6802a8f
fix: add timestamp and 24-hour expiry to CSRF tokens - Embed a base-3…
ionfwsrijan Jul 18, 2026
cf27fe8
fix: consolidate dual CSRF systems and remove duplicate csrf.js - Add…
ionfwsrijan Jul 18, 2026
cd2ee93
fix: suppress unhandled rejection from auth timeout promise and clean…
ionfwsrijan Jul 18, 2026
868116d
fix: preserve Supabase cookie sameSite and harden CSRF cookie - Remov…
ionfwsrijan Jul 18, 2026
e858252
feat(arena): add dynamic background particles to hero
pawanakapkv Jul 18, 2026
8fb6a10
feat(arena): upgrade prize pool visualization on tournament card
pawanakapkv Jul 18, 2026
0142fa8
feat(arena): add magnetic hover effects to tournament cards
pawanakapkv Jul 18, 2026
f316f30
feat(arena): add player stats dashboard card
pawanakapkv Jul 18, 2026
3413515
feat(arena): add interactive tournament bracket view
pawanakapkv Jul 18, 2026
f7aae42
feat(arena): add rules and scoring accordion to right sidebar
pawanakapkv Jul 18, 2026
c54bb5b
feat(arena): add skeleton loaders for tournaments
pawanakapkv Jul 18, 2026
46c1b31
feat(arena): make sidebars sticky for better ux
pawanakapkv Jul 18, 2026
048ada3
fix(arena): resolve missing closing div in tournament hero
pawanakapkv Jul 18, 2026
3447a4e
Merge branch 'main' into feature/tournaments-final-refinement
pawanakapkv Jul 18, 2026
d6e5b55
Merge branch 'main' of https://github.com/pradeep0153/AlgoBuddy
pradeep0153 Jul 19, 2026
b510708
Feature: Implement WebRTC/WebSocket multi-player editing for live moc…
pradeep0153 Jul 19, 2026
2c3c179
Bug: Running a `while(true)` loop instantly freezes the browser tab
pradeep0153 Jul 19, 2026
bccc56a
Performance: Code editor stutters when parsing large algorithms due t…
pradeep0153 Jul 19, 2026
c2818bf
A11y: Default dark theme fails WCAG contrast requirements for keyword…
pradeep0153 Jul 19, 2026
62a1973
Feature: Build an algorithmic complexity estimator (Big O Analyzer) f…
pradeep0153 Jul 19, 2026
f77f3d0
Bug: Copy-pasting Python code throws fatal IndentationErrors inside t…
pradeep0153 Jul 19, 2026
56e2962
Code Quality: Implement a resizable split-pane architecture to separa…
pradeep0153 Jul 19, 2026
5997806
Feature: Build an execution step-through visualizer for Arrays, Trees…
pradeep0153 Jul 19, 2026
1368d22
Bug: Global progress tracker fails to rehydrate if a problem is solve…
pradeep0153 Jul 19, 2026
13a199f
Feature: Gamify user retention by building a Daily Challenge Streak t…
pradeep0153 Jul 19, 2026
7a69f49
Merge pull request #3643 from pawanakapkv/feature/tournaments-final-r…
sreevyarao Jul 19, 2026
1b9b4ff
Merge pull request #3644 from pawanakapkv/feature/tournaments-skeleto…
sreevyarao Jul 19, 2026
fdd4bb2
Merge pull request #3645 from pawanakapkv/feature/tournaments-rules-a…
sreevyarao Jul 19, 2026
4f90b05
Merge pull request #3647 from pawanakapkv/feature/tournaments-interac…
sreevyarao Jul 19, 2026
5f03927
Merge pull request #3648 from pawanakapkv/feature/tournaments-player-…
sreevyarao Jul 19, 2026
68ceca5
Merge pull request #3649 from pawanakapkv/feature/tournaments-magneti…
sreevyarao Jul 19, 2026
36a9dea
Merge pull request #3650 from pawanakapkv/feature/tournaments-prize-v…
sreevyarao Jul 19, 2026
6d3b179
Merge pull request #3653 from pawanakapkv/feature/tournaments-hero-pa…
sreevyarao Jul 19, 2026
c26a908
Merge pull request #3625 from PARNITA-SINGH/fix/quicksort-replay-time…
ezManish Jul 19, 2026
51c2abb
Merge pull request #3623 from PARNITA-SINGH/fix/selectionsort-replay-…
ezManish Jul 19, 2026
4394a75
Merge pull request #3624 from PARNITA-SINGH/fix/insertionsort-replay-…
ezManish Jul 19, 2026
2edf5de
Merge pull request #3626 from PARNITA-SINGH/fix/mergesort-replay-time…
ezManish Jul 19, 2026
b71f86a
Merge pull request #3627 from PARNITA-SINGH/fix/shellsort-replay-time…
ezManish Jul 19, 2026
7351462
Merge pull request #3628 from PARNITA-SINGH/fix/countingsort-replay-t…
ezManish Jul 19, 2026
f095669
Merge pull request #3630 from PARNITA-SINGH/fix/linkedlist-sorting-re…
ezManish Jul 19, 2026
19ba2c0
Merge pull request #3629 from PARNITA-SINGH/fix/radixsort-replay-time…
ezManish Jul 19, 2026
5455676
Merge pull request #3638 from ionfwsrijan/fix/3633-auth-timeout-unhan…
ezManish Jul 19, 2026
f26ab03
Merge pull request #3639 from ionfwsrijan/fix/3634-auth-proxy-samesit…
ezManish Jul 19, 2026
e62e5ca
Merge pull request #3640 from ionfwsrijan/fix/3635-remove-chatbot-csr…
ezManish Jul 19, 2026
723ec2c
Merge pull request #3641 from ionfwsrijan/fix/3636-csrf-token-expiry
ezManish Jul 19, 2026
b4fad38
Merge pull request #3642 from ionfwsrijan/fix/3637-consolidate-csrf-s…
ezManish Jul 19, 2026
a4f8c16
Merge pull request #3530 from desireddymohithreddy0925/feat/issue-347…
ezManish Jul 19, 2026
fa9e6f8
Merge branch 'main' into feat/issue-3481-hover-tooltips
ezManish Jul 19, 2026
8df7d40
Merge pull request #3531 from desireddymohithreddy0925/feat/issue-348…
ezManish Jul 19, 2026
4a35ca9
Merge branch 'main' into feat/issue-3478-export-canvas
ezManish Jul 19, 2026
88ed11c
Merge pull request #3533 from desireddymohithreddy0925/feat/issue-347…
ezManish Jul 19, 2026
5cb101e
docs: overhaul README with collapsible sections, CI/security badges, …
ezManish Jul 19, 2026
2d061f8
fix: show hero screenshots inline, fix CI workflow for isolated-vm an…
ezManish Jul 19, 2026
12d33fa
Merge pull request #3674 from pradeep0153/fixes/issue-3664-daily-stre…
PankajSingh34 Jul 19, 2026
1d58e39
fix: resolve JSX and ternary compilation errors in Arena and GraphVis…
ezManish Jul 19, 2026
fe38304
fix: cap days parameter and add row limit in GET /api/activity (#3687)
ionfwsrijan Jul 19, 2026
ac79962
Merge pull request #3678 from ezManish/docs/improve-readme
jainiksha Jul 19, 2026
fcd678d
fix: cap limit parameter in GET /api/applications and add pagination …
ionfwsrijan Jul 19, 2026
f6e3cae
fix: verify server-side test results before declaring arena match win…
ionfwsrijan Jul 19, 2026
0e80235
fix: preserve cookie security options in getSupabaseRequestClient (#3…
ionfwsrijan Jul 19, 2026
8202b8f
fix: sanitize signup error messages to prevent information disclosure…
ionfwsrijan Jul 19, 2026
9074da1
fix(auth): resolve timeout race condition in getAuthenticatedUser
Jul 19, 2026
b0feec6
test: update activity API test mock to include limit method in chain
ionfwsrijan Jul 19, 2026
e544c7b
test: update activity API test mock to include limit method in chain
ionfwsrijan Jul 19, 2026
58c78a2
Merge pull request #3693 from ssuyashhhh/fix/auth-timeout-race-condition
ezManish Jul 20, 2026
532bd7d
feat: add Longest Substring Without Repeating Characters visualizer
jainiksha Jul 20, 2026
3a93546
Merge pull request #3793 from jainiksha/feat/longest-substring-visual…
ezManish Jul 20, 2026
d50aca4
feat(arena): create activity heatmap component
pawanakapkv Jul 20, 2026
6e26866
perf(arena): lazy load heavy modals to improve FCP
pawanakapkv Jul 20, 2026
082cca3
refactor(arena): extract badges tab
pawanakapkv Jul 20, 2026
ecb8161
refactor(arena): extract badges tab
pawanakapkv Jul 20, 2026
9432570
refactor(arena): extract leaderboard tab
pawanakapkv Jul 20, 2026
25b7098
refactor(arena): extract history tab
pawanakapkv Jul 20, 2026
f6a00a5
feat(arena): add clear button to leaderboard search input
pawanakapkv Jul 20, 2026
2b45918
refactor(arena): extract tournaments tab
pawanakapkv Jul 20, 2026
6c7858d
refactor(arena): extract friend tab
pawanakapkv Jul 20, 2026
ccd8529
refactor(arena): extract streak tab
pawanakapkv Jul 20, 2026
110fec0
refactor(arena): extract ranked tab
pawanakapkv Jul 20, 2026
3b73f69
refactor(arena): extract live tab
pawanakapkv Jul 20, 2026
6f88a51
refactor(arena): extract home tab
pawanakapkv Jul 20, 2026
a10ecdb
fix(arena): resolve JSX syntax error with extra braces
pawanakapkv Jul 20, 2026
d79d00a
fix(arena): remove duplicate BadgesTab import
pawanakapkv Jul 20, 2026
4cc78a3
fix(arena): use react-hot-toast instead of sonner
pawanakapkv Jul 20, 2026
ee99acf
fix(arena): add missing ACHIEVEMENT_BADGES to HomeTab
pawanakapkv Jul 20, 2026
2692d9c
fix(arena): import UpcomingTournament and add missing props to HomeTab
pawanakapkv Jul 20, 2026
8df6c72
fix(arena): add missing props and lucide imports to RankedTab
pawanakapkv Jul 20, 2026
439f950
fix(arena): add missing state to FriendTab and fix undefined handleJo…
pawanakapkv Jul 20, 2026
43dd3da
fix(arena): pass profile prop to LeaderboardTab
pawanakapkv Jul 20, 2026
a96bff0
fix(arena): add missing lucide imports in extracted tabs
pawanakapkv Jul 20, 2026
95f6858
fix: resolve remaining undefined variables in arena tabs
pawanakapkv Jul 20, 2026
e82cf9e
feat: migrate remaining generators to features/algorithms
Jul 21, 2026
d43a12e
Merge upstream/main into feat/issue-3679-migrate-generators
Jul 21, 2026
3a20a6d
feat(issue-3680): implement undo/redo stack for node and edge creation
Jul 21, 2026
06d91b3
feat(issue-3681): add custom color themes for visualizer states
Jul 21, 2026
313d9b5
feat(issue-3682): add explicit handling of disconnected graphs in pat…
Jul 21, 2026
f1d101a
fix(issue-3683): ignore visualizer keyboard shortcuts when typing in …
Jul 21, 2026
d51f6de
fix(issue-3685): memoize keyboard handler with useCallback for exhaus…
Jul 21, 2026
f4683c8
Merge branch 'main' into ishitaajain22-tech-issue3387
ishitaajain22-tech Jul 21, 2026
23df2f0
Merge pull request #3428 from ishitaajain22-tech/ishitaajain22-tech-i…
ezManish Jul 21, 2026
01fd435
Merge pull request #3707 from ionfwsrijan/fix/3687-unbounded-days-par…
ezManish Jul 21, 2026
2686788
Merge pull request #3711 from ionfwsrijan/fix/3689-arena-match-winner…
ezManish Jul 21, 2026
b717c96
Merge pull request #3712 from ionfwsrijan/fix/3690-cookie-security-op…
ezManish Jul 21, 2026
2b76b5a
Merge pull request #3714 from ionfwsrijan/fix/3691-signup-error-discl…
ezManish Jul 21, 2026
8b6aa01
Merge pull request #3709 from ionfwsrijan/fix/3688-unbounded-limit-ap…
ezManish Jul 21, 2026
aac68f3
fix: set winnerId in Lua disconnect handler
ionfwsrijan Jul 21, 2026
3d9dd1c
fix: update opponent's totalProblemsSolved in arena match result
ionfwsrijan Jul 21, 2026
636c123
fix: add retry logic for verifyMatchResult on transient failures
ionfwsrijan Jul 21, 2026
a51b53b
fix: handle opponent_disconnected socket event in duel UI
ionfwsrijan Jul 21, 2026
9497f55
fix: reject pending acquireIsolate promises on cleanup instead of res…
ionfwsrijan Jul 21, 2026
493eef3
feat: add copy code button to algorithm code snippets
kanikasharma-18 Jul 22, 2026
cb9479c
Merge pull request #3802 from pawanakapkv/feat/arena-activity-heatmap
sreevyarao Jul 22, 2026
f458c8b
Merge pull request #3803 from pawanakapkv/perf/arena-lazy-load-modals
sreevyarao Jul 22, 2026
08670bb
Merge pull request #3804 from pawanakapkv/refactor/arena-extract-badg…
sreevyarao Jul 22, 2026
e49785a
Merge pull request #3805 from pawanakapkv/refactor/arena-extract-lead…
sreevyarao Jul 22, 2026
b9367fb
Merge pull request #3806 from pawanakapkv/refactor/arena-extract-hist…
sreevyarao Jul 22, 2026
9ac40b4
Merge pull request #3807 from pawanakapkv/feat/arena-search-clear-button
sreevyarao Jul 22, 2026
eeb8134
Merge pull request #3808 from pawanakapkv/refactor/arena-extract-frie…
sreevyarao Jul 22, 2026
d502953
Merge pull request #3810 from pawanakapkv/refactor/arena-extract-stre…
sreevyarao Jul 22, 2026
6a20795
Merge pull request #3811 from pawanakapkv/refactor/arena-extract-rank…
sreevyarao Jul 22, 2026
879ebd6
Merge pull request #3812 from pawanakapkv/refactor/arena-extract-live…
sreevyarao Jul 22, 2026
a270d8d
Merge pull request #3813 from pawanakapkv/refactor/arena-extract-home…
sreevyarao Jul 22, 2026
c69186e
feat(string): add Minimum Window Substring visualizer
jainiksha Jul 22, 2026
2d9a5ee
Merge pull request #3870 from jainiksha/feat/minimum-window-substring…
ezManish Jul 23, 2026
f5233e0
Duplicate Object Key Override (Dead Code)
ezManish Jul 23, 2026
b281ce7
fix of Reverse Proxy Client IP rate-limiting bypass/lockout
ezManish Jul 23, 2026
5d92789
fix of Transient-Email-Transporter-Failure
ezManish Jul 23, 2026
fef3d26
fix/Leaderboard-Cheat-Exploit
ezManish Jul 23, 2026
766ccf7
feat(practice): optimize practice page navigation and add problem sta…
Ishita-Katiyar-06 Jul 23, 2026
71dffe4
fix: resolve streak cheat vulnerability and timezone date discrepancies
ezManish Jul 23, 2026
2ad01ed
Merge pull request #3883 from Ishita-Katiyar-06/feat/practice-page
ezManish Jul 23, 2026
4f1040f
Merge pull request #3846 from ionfwsrijan/fix/3841-disconnect-winnerid
ezManish Jul 23, 2026
9ba0610
Merge pull request #3847 from ionfwsrijan/fix/3842-opponent-totalprob…
ezManish Jul 23, 2026
b84b655
Merge pull request #3848 from ionfwsrijan/fix/3843-verify-retry-loop
ezManish Jul 23, 2026
254af38
Merge pull request #3849 from ionfwsrijan/fix/3844-opponent-disconnec…
ezManish Jul 23, 2026
0873140
Merge pull request #3850 from ionfwsrijan/fix/3845-sandbox-cleanup-re…
ezManish Jul 23, 2026
47e0410
Merge pull request #3867 from kanikasharma-18/feat/copy-code-button
ezManish Jul 23, 2026
85ba355
feat(issue-3686): implement pino structured logging across src/lib ba…
Jul 23, 2026
d82f008
Merge pull request #3884 from ezManish/fix/Streak-Cheat-Vector-And-Da…
jainiksha Jul 23, 2026
efaaa36
Merge pull request #3882 from ezManish/fix/Leaderboard-Cheat-Exploit
jainiksha Jul 23, 2026
4c6a655
Merge pull request #3881 from ezManish/fix/Transient-Email-Transporte…
jainiksha Jul 23, 2026
e820ac0
Merge pull request #3880 from ezManish/fix/Reverse_Proxy_Client_IP_ra…
jainiksha Jul 23, 2026
b235cf3
Merge pull request #3879 from ezManish/fix/Duplicate-Object-Key-Override
jainiksha Jul 23, 2026
ad9c224
fix(issue-3686): install pino-pretty as devDep and guard transport wi…
Jul 23, 2026
de49fd5
feat(issue-3885): add timeline scrubber to GraphAnimation for step-by…
Jul 23, 2026
a6d3c13
feat: add header scroll progress indicator
kanikasharma-18 Jul 23, 2026
07035f8
fix: preserve browser back navigation from resources
kanikasharma-18 Jul 23, 2026
178c102
fix: use process.env.CRON_SECRET instead of undefined cronSecret vari…
ionfwsrijan Jul 23, 2026
7f7a706
feat: add visible reset button to playback controls
kanikasharma-18 Jul 23, 2026
7735345
fix: use synchronous adapter count for spectator disconnecting handler
ionfwsrijan Jul 23, 2026
e7e0537
fix: guard narration callback against unmount with cancelled flag
ionfwsrijan Jul 23, 2026
9a2b23c
fix: wait for in-flight executions before disposing isolates in cleanup
ionfwsrijan Jul 23, 2026
52160ed
fix: make corrupted isolate disposal atomic to prevent count drift
ionfwsrijan Jul 23, 2026
4752549
Merge remote-tracking branch 'origin/main' into refactor/arena-extrac…
pawanakapkv Jul 23, 2026
c6b685b
chore: ignore jdk directory
pawanakapkv Jul 23, 2026
cd2322c
fix(arena): resolve timezone desynchronization in weekly tournament c…
pawanakapkv Jul 23, 2026
335d03b
fix(arena): handle empty strings and malformed input in getInitials (…
pawanakapkv Jul 23, 2026
691cfd9
fix(arena): handle empty strings and malformed input in getInitials (…
pawanakapkv Jul 23, 2026
5afe00e
fix(arena): handle empty strings and malformed input in getInitials (…
pawanakapkv Jul 23, 2026
ee24049
fix(arena): correct scoping of displayLeaderboard variable for full a…
pawanakapkv Jul 23, 2026
4b85801
fix(arena): add route parameter validation and sanitization for join …
pawanakapkv Jul 23, 2026
6ea5ba3
fix(arena): add missing hasFreeze state declaration in streak tab
pawanakapkv Jul 23, 2026
aa1778d
fix(arena): add missing toast dependency import in streak tab
pawanakapkv Jul 23, 2026
ce135a2
fix(arena): resolve infinite recursion bug in BadgesTab layout
pawanakapkv Jul 23, 2026
800d8e0
fix(arena): ensure dependent props ensureLoggedIn and handleWatchLive…
pawanakapkv Jul 23, 2026
1040d78
Merge pull request #3824 from desireddymohithreddy0925/feat/issue-367…
ezManish Jul 24, 2026
84ed30d
Merge pull request #3826 from desireddymohithreddy0925/feat/issue-368…
ezManish Jul 24, 2026
26c1975
Merge pull request #3827 from desireddymohithreddy0925/feat/issue-368…
ezManish Jul 24, 2026
85e9156
Merge pull request #3830 from desireddymohithreddy0925/fix/issue-3685…
ezManish Jul 24, 2026
c2a24c0
Merge pull request #3887 from desireddymohithreddy0925/feat/issue-388…
ezManish Jul 24, 2026
9a8b139
Merge pull request #3886 from desireddymohithreddy0925/feat/issue-368…
ezManish Jul 24, 2026
4054538
Merge branch 'main' into feat/issue-3683-ignore-shortcuts-inputs
ezManish Jul 24, 2026
44ca444
Merge branch 'main' into feat/issue-3680-undo-redo
ezManish Jul 24, 2026
64e5a8d
Merge pull request #3828 from desireddymohithreddy0925/feat/issue-368…
ezManish Jul 24, 2026
eb43657
Merge pull request #3825 from desireddymohithreddy0925/feat/issue-368…
ezManish Jul 24, 2026
d575a11
Merge pull request #3898 from ionfwsrijan/fix/3891-cron-secret-undefined
ezManish Jul 24, 2026
5e24881
Merge pull request #3899 from ionfwsrijan/fix/3892-spectator-count-of…
ezManish Jul 24, 2026
0bfa9fe
Merge pull request #3900 from ionfwsrijan/fix/3893-narration-callback…
ezManish Jul 24, 2026
7897023
Merge pull request #3901 from ionfwsrijan/fix/3894-cleanup-active-iso…
ezManish Jul 24, 2026
90a4adf
Merge pull request #3902 from ionfwsrijan/fix/3895-corrupted-isolate-…
ezManish Jul 24, 2026
d16cdad
Merge pull request #3890 from kanikasharma-18/feature/header-scroll-p…
ezManish Jul 24, 2026
623d5b4
Merge pull request #3896 from kanikasharma-18/fix/resources-back-navi…
ezManish Jul 24, 2026
f712e48
Merge pull request #3897 from kanikasharma-18/feature/add-reset-butto…
ezManish Jul 24, 2026
854d348
fix(random): eliminate modulo bias in generateSecureCode using reject…
ionfwsrijan Jul 24, 2026
24c7f93
fix(arena): stop deleting rate limit key on disconnect
ionfwsrijan Jul 24, 2026
7259099
fix(apiClient): use supabase.auth.signOut for session cleanup on 401
ionfwsrijan Jul 24, 2026
082c0cd
fix(arena): handle corrupted JSON in queue health checker
ionfwsrijan Jul 24, 2026
685bfbc
fix(arena): validate match topic against server-side verification all…
ionfwsrijan Jul 24, 2026
aa1ecf4
feat(string): add Minimum Window Substring quiz and String Interview …
jainiksha Jul 24, 2026
fe1c310
feat(string): add Longest Substring Without Repeating Characters quiz
jainiksha Jul 24, 2026
0e413f3
Merge pull request #3942 from jainiksha/feat/minimum-window-substring
ezManish Jul 25, 2026
5a24c71
Merge pull request #3943 from jainiksha/feat/longest-substring-quiz
ezManish Jul 25, 2026
33a4ce0
refactor(practice): simplify problem links by removing external link …
jainiksha Jul 25, 2026
4155305
Merge branch 'main' into feature/remove-external-link-icons
jainiksha Jul 25, 2026
7889fe0
merge: resolve conflicts with main
jainiksha Jul 25, 2026
4c029d0
Merge pull request #3945 from jainiksha/feature/remove-external-link-…
ezManish Jul 25, 2026
5acb06a
feat: add copy button for algorithm complexities
kanikasharma-18 Jul 25, 2026
ab25372
feat: add alternating row styling to practice tables
jainiksha Jul 26, 2026
41bcc6b
Merge branch 'main' into feat/zebra-striped-practice-table
jainiksha Jul 26, 2026
0dadd89
Merge pull request #3947 from jainiksha/feat/zebra-striped-practice-t…
ezManish Jul 26, 2026
bbe1614
Merge pull request #3946 from kanikasharma-18/feature/copy-complexity…
ezManish Jul 26, 2026
7a8b147
Merge pull request #3937 from ionfwsrijan/fix/3932-modulo-bias-random
ezManish Jul 26, 2026
faf0b07
Merge pull request #3938 from ionfwsrijan/fix/3933-rate-limit-bypass-…
ezManish Jul 26, 2026
2570205
Merge pull request #3939 from ionfwsrijan/fix/3934-session-cleanup-su…
ezManish Jul 26, 2026
cd78347
Merge pull request #3940 from ionfwsrijan/fix/3935-queue-health-corru…
ezManish Jul 26, 2026
68a0b13
Merge pull request #3941 from ionfwsrijan/fix/3936-match-verification…
ezManish Jul 26, 2026
21001b0
fix(tests): add logger fallback and eliminate typeless module warnings
ezManish Jul 26, 2026
88cd1db
feat(a11y): add modal keyboard escape, ARIA attributes, and visualize…
ezManish Jul 26, 2026
62a17d2
test(unit): add unit test suites for Fenwick Tree logic and Persisten…
ezManish Jul 26, 2026
a520eae
feat(visualizer): add Export PNG snapshot feature to VisualizerCanvas
ezManish Jul 26, 2026
cfa6767
fix(searchbar): trigger search filtering on suggestion click and add …
ezManish Jul 26, 2026
9fa55c7
fix(logger): make logger compatible with Next.js bundler, Edge runtim…
ezManish Jul 26, 2026
d0b00b2
Merge pull request #3903 from pawanakapkv/fix/arena-history-props
sreevyarao Jul 27, 2026
301ebb7
Merge pull request #3904 from pawanakapkv/fix/arena-badges-recursion
sreevyarao Jul 27, 2026
a85b556
Merge pull request #3905 from pawanakapkv/fix/arena-streak-toast
sreevyarao Jul 27, 2026
8a69322
Merge pull request #3906 from pawanakapkv/fix/arena-streak-hasfreeze
sreevyarao Jul 27, 2026
1372bb2
Merge pull request #3907 from pawanakapkv/fix/arena-joinlobby-validation
sreevyarao Jul 27, 2026
8260f63
Merge pull request #3908 from pawanakapkv/fix/arena-leaderboard-scope
sreevyarao Jul 27, 2026
9817e5f
Merge pull request #3909 from pawanakapkv/fix/arena-getinitials-leade…
sreevyarao Jul 27, 2026
7c2a1f4
Merge pull request #3910 from pawanakapkv/fix/arena-getinitials-home
sreevyarao Jul 27, 2026
2d7c5f0
Merge pull request #3911 from pawanakapkv/fix/arena-getinitials-page
sreevyarao Jul 27, 2026
20e2466
Merge pull request #3912 from pawanakapkv/fix/arena-timezone-desync
sreevyarao Jul 27, 2026
cd9446c
Merge pull request #3948 from ezManish/fix/security-tests-logger-fall…
jainiksha Jul 27, 2026
fbf30ac
Merge pull request #3949 from ezManish/feat/visualizer-a11y-keyboard-…
jainiksha Jul 27, 2026
65026b9
Merge pull request #3950 from ezManish/test/fenwick-tree-and-persiste…
jainiksha Jul 27, 2026
e63227d
Merge pull request #3951 from ezManish/feat/visualizer-export-png-sna…
jainiksha Jul 27, 2026
fbcb6e6
Merge pull request #3952 from ezManish/fix/searchbar-suggestion-click…
jainiksha Jul 27, 2026
331da93
chore: automation run report 2026-07-27
tmdeveloper007 Jul 27, 2026
cfabee6
chore: automation run report 2026-08-04
tmdeveloper007 Aug 4, 2026
478a436
test: add unit tests for shared utils, cookie consent, modules map, s…
tmdeveloper007 Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
63 changes: 63 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
NEXT_PUBLIC_USE_SPRING_BOOT_API=true
# Local Spring Boot (for testing changes locally):
NEXT_PUBLIC_SPRING_BOOT_API_URL=http://localhost:8080

# ──────────── Email (Nodemailer) ────────────
EMAIL_USER=your-email@gmail.com
EMAIL_PASSWORD=your-google-app-password
REVIEW_INBOX_EMAIL=optional-inbox@gmail.com

# Gemini AI — required for the chatbot feature
# Get a free API key at https://aistudio.google.com/apikey
GEMINI_API_KEY=gemini-api-key-here

# ──────────── Supabase ────────────
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_KEY=your-supabase-service-key
SUPABASE_JWT_SECRET=your-supabase-jwt-secret

# ──────────── Cloudflare Turnstile Captcha ────────────
NEXT_PUBLIC_TURNSTILE_SITE_KEY=1x00000000000000000000AA
TURNSTILE_SECRET_KEY=your-turnstile-secret-key
TURNSTILE_CONFIGURED=false
TURNSTILE_BYPASS=true

# ──────────── Google Analytics ────────────
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX

# ──────────── AI Chatbot & Complexity Analyzer ────────────
GEMINI_API_KEY=your-gemini-api-key

# ──────────── Rate Limiting (Upstash Redis) ────────────
UPSTASH_REDIS_REST_URL=your-upstash-redis-rest-url
UPSTASH_REDIS_REST_TOKEN=your-upstash-redis-rest-token
RATE_LIMIT_MAX=10

# ──────────── UI Flags ────────────
NEXT_PUBLIC_SHOW_COMMUNITY_BADGE=true
AUTO_CONFIRM_EMAIL=true

# ──────────── Arena Socket Server & Java Backend Distributed Cache ────────────
# Redis URL for the arena socket server (used for matchmaking queue and session state)
# Note: Use "rediss://" prefix if SSL is required (e.g. for Upstash)
REDIS_URL=redis://localhost:6379

# Redis connection parameters for the Java backend's distributed cache
# REDIS_HOST=localhost
# REDIS_PORT=6379
# REDIS_PASSWORD=
# REDIS_SSL=false

# URL of the arena socket server for match pair verification from the Java backend
# SOCKET_SERVER_URL=http://localhost:4000

# Debug endpoint configuration (arena-socket-server)
# Set DEBUG_ENABLED=true only in non-production environments
# DEBUG_ENABLED=true
# DEBUG_KEY=your-secure-debug-key

# ──────────── CSRF Security ────────────
# Generate a secure random string (e.g., run `openssl rand -hex 32` in your terminal).
CSRF_SECRET=your-csrf-secret-key

66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: 🐞 Bug Report
description: Report a bug or unexpected behavior to help us improve AlgoBuddy
title: "[BUG] <Brief description of the bug>"
labels: ["bug", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug! Please fill out the form below to help us understand and resolve the issue as quickly as possible.
- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: Tell us what went wrong...
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Please provide step-by-step instructions to reproduce the bug.
value: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual Behavior
description: A clear and concise description of what actually happened.
validations:
required: true
- type: input
id: environment
attributes:
label: Environment
description: Please provide information about your environment (OS, Browser version, Node.js version, etc.)
placeholder: e.g. Windows 11, Chrome 124, Node 20.x
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots or Logs
description: If applicable, add screenshots, video recordings, or error logs to help explain your problem.
validations:
required: false
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct
required: true
45 changes: 45 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: ✨ Feature Request
description: Suggest an idea or feature for AlgoBuddy
title: "[FEATURE] <Brief description of the feature>"
labels: ["enhancement", "triage"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thank you for suggesting an idea to make AlgoBuddy better! Please fill out the form below to help us understand your feature request.
- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: additional
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
options:
- label: I agree to follow this project's Code of Conduct
required: true
40 changes: 40 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
## Summary

A brief description of the changes in this Pull Request. Explain **what** was changed and **why**.

## Type of Change

Please check the relevant options:
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
- [ ] ✨ New feature (non-breaking change which adds functionality)
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] 📝 Documentation update (changes to README, contributing guidelines, etc.)
- [ ] 🎨 Style/Refactor (code style formatting, restructuring without changing behavior)

## Related Issues

Closes #[Issue Number]

## Changes Made

- [Detail 1]
- [Detail 2]

## How to Verify

Please describe how reviewers can test your changes.
- [ ] Test Step 1
- [ ] Test Step 2

## Screenshots (if applicable)

*Before / After (or just a demo of the new feature)*

## Checklist

- [ ] My code follows the project style guidelines
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have updated the documentation accordingly
- [ ] My changes generate no new warnings or errors
- [ ] I have verified that these changes work correctly on multiple screen sizes (if UI-related)
17 changes: 17 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
gssoc:approved:
- ".*"

mentor:PankajSingh34:
- ".*"

level:beginner:
- ".*beginner.*"

type:bug:
- ".*bug.*"

type:feature:
- ".*feature.*"

type:docs:
- ".*docs.*"
25 changes: 25 additions & 0 deletions .github/workflows/ai-issue-labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Smart Issue Labeler

on:
issues:
types: [opened, edited]

permissions:
issues: write
contents: read

jobs:
label-issues:
runs-on: ubuntu-latest

steps:
- name: Checkout repo # ← ADD THIS
uses: actions/checkout@v4

- name: Label issues
uses: github/issue-labeler@v3.4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/labeler.yml
enable-versioned-regex: 0
include-title: 1
96 changes: 96 additions & 0 deletions .github/workflows/auto-approve-on-status.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Conditional Auto Approve

on:
# जब भी किसी पीआर पर चेक्स (Status/Check Suite) पूरे हों
check_suite:
types: [completed]
status:

jobs:
check-and-approve:
runs-on: ubuntu-latest
if: github.repository == 'PankajSingh34/AlgoBuddy'
steps:
- name: Check Statuses and Approve
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { owner, repo } = context.repo;

// 1. इस इवेंट से जुड़े Pull Requests की लिस्ट निकालें
let pullRequests = [];
if (context.eventName === 'check_suite') {
pullRequests = context.payload.check_suite.pull_requests;
} else {
// status इवेंट के लिए SHA के ज़रिए PR ढूंढें
const sha = context.payload.sha;
const prs = await github.rest.pulls.list({ owner, repo, state: 'open' });
pullRequests = prs.data.filter(pr => pr.head.sha === sha);
}

if (pullRequests.length === 0) {
console.log("No open pull request found for this event.");
return;
}

const prNumber = pullRequests[0].number;
const prRef = pullRequests[0].head.sha;

// 2. इस Commit SHA के सारे कंबाइंड चेक्स/स्टेटस गेट करें
const statuses = await github.rest.repos.getCombinedStatusForRef({
owner,
repo,
ref: prRef,
});

const checkRuns = await github.rest.checks.listForRef({
owner,
repo,
ref: prRef,
});

// 3. फ़िल्टर लॉजिक: वर्सेल (Vercel) को छोड़कर बाकी चेक्स की जांच
let allOthersPassed = true;
let evaluatedChecksCount = 0;

// स्टेटस चेक करें (पुराने गिटहब स्टेटस के लिए)
for (const status of statuses.data.statuses) {
if (status.context.toLowerCase().includes('vercel')) {
continue; // Vercel को छोड़ दो
}
evaluatedChecksCount++;
if (status.state !== 'success') {
allOthersPassed = false;
}
}

// चेक रन्स देखें (GitHub Actions आदि के लिए)
for (const run of checkRuns.data.check_runs) {
if (run.name.toLowerCase().includes('vercel') || run.app?.slug?.toLowerCase().includes('vercel')) {
continue; // Vercel को छोड़ दो
}
// अगर कोई चेक अभी चल रहा है या पास नहीं हुआ है
if (run.status !== 'completed') {
allOthersPassed = false;
} else if (run.conclusion !== 'success' && run.conclusion !== 'neutral') {
allOthersPassed = false;
}
evaluatedChecksCount++;
}

console.log(`Evaluated ${evaluatedChecksCount} non-Vercel checks. Status: ${allOthersPassed}`);

// 4. अगर वर्सेल के अलावा बाकी सारे चेक्स पास हैं, तो APPROVE कर दो
if (allOthersPassed && evaluatedChecksCount > 0) {
await github.rest.pulls.createReview({
owner,
repo,
pull_number: prNumber,
event: 'APPROVE',
body: 'code looks good',
});
console.log(`PR #${prNumber} has been automatically approved with 'code looks good'!`);
} else {
console.log("Some non-Vercel checks are either pending or failed. Skipping auto-approval.");
}
Loading