Commit Graph
302 Commits
Author SHA1 Message Date
Justin Lin b510d18758 feat: add rate limit to session creation 2026-11-03 20:28:04 +11:00
Justin Lin 9ffcd9fa90 fix: disable guest login 2026-11-03 20:18:15 +11:00
Justin Lin 634dc8f987 refactor: use bun in Dockerfile and CI workflow 2026-10-11 17:24:12 +11:00
Justin Lin 77577d9b8d refactor: use bun to execute server and analytics 2026-10-11 17:04:46 +11:00
Justin Lin 2feedc329c refactor: use bun for package management
+ add package.json to each packages
+ update import path
2026-10-11 16:50:01 +11:00
Justin Lin b5024631f7 fix: store session finish time 2026-10-09 23:49:12 +11:00
neilchen0812 66b0b7ba68 feat: support changing quest language 2026-10-08 02:46:44 +10:30
Justin Lin 7b16722e55 fix: move translation button to rightmost 2026-09-26 10:51:54 +10:00
Justin Lin 776ef1162a chore: change console log to logger 2026-02-27 16:04:27 +11:00
Justin Lin 5b7bf0794c chore: Move open terminal in new tab to terminal component 2026-02-27 16:02:28 +11:00
Justin Lin d9fc465731 feat: remove container on finish 2025-05-09 16:46:13 +08:00
Justin Lin 307af61726 refactor: remove generating keypair 2025-05-05 19:55:41 +08:00
Justin Lin 156abc044a refactor: clean up unused code 2025-05-05 19:55:40 +08:00
Justin Lin c7e6d31b9c feat: connect frontend terminal to terminal service
fix: use ReconnectWebSocket to make the connection more stable

fix: typescript error on importing css in vue
2025-05-05 19:55:35 +08:00
Justin Lin 5e81db2759 feat: connect terminal service to backend
feat: put terminal service into container

refactor: separate main into terminal and websocket

feat: create zsh using commander in home

feat: pass backendUrl to container

feat: pass token to ws server to cmd-hook

feat: gen terminal access token for frontend

feat: success to connect through traefik

fix: handle invalid jwt

feat: connect to session container via traefik
2025-05-05 19:53:33 +08:00
Justin Lin 0b08a9a5d9 feat: init cmd-hook and move terminal-service to services directory
feat: put cmd-hook in container

feat: cmd-hook request type, auto restart setup

feat: handle ls
2025-05-05 19:51:06 +08:00
Justin Lin 3b77d91796 Quest: remove unnecessary ls-stages (#195)
* quest: remove ls-stages in create

* feat: prevent throwing errors when failed to copy files

* feat: log new command in dev mode

* quest: copy

* quest: mv

* quest: rm

* quest: execute. Add many exceptions

* feat: pwd discovers parent folders
2025-04-30 15:01:25 +08:00
Justin Lin f0a09ac4d9 Feat filegraph (#194)
* feat: update filegraph on touch command

* feat: update filegraph on mkdir

* feat: add different parsing opts for each command

* refactor: replace axios with fetch. put handleCommand to a new file

* feat: add config for mounting cli in dev stage

* refactor: clean up unused validators

* feat: add command handler for copy files. reuse resolvePath function

* feat: add rm handler, support specific files deletion. Glob not supported yet

* feat: handle discover cases that the folder is actually empty

* feat: handle discover empty folder better and support rmdir

* feat: handle mv command

* refactor: remove unused console logs
2025-04-29 20:40:02 +08:00
Justin Lin 58f3bf7817 fix: use config value instead of hard coded values 2025-04-27 16:41:19 +08:00
Justin Lin ccbc4ff4b0 feat(rate-limiting): implement rate limiting for login attempts and enhance configuration
- Added environment variables for `RATE_LIMIT_MAX_FAILED_ATTEMPTS` and `RATE_LIMIT_LOCKOUT_TIME`
- Integrated rate limiting into the login process with a maximum of 5 failed attempts
- Refactored login attempt recording into the `authRouter`
- Removed deprecated `recordLogin` middleware and adjusted related logic
2025-04-27 16:29:03 +08:00
Vincent23412 bda68ad293 fix path bugs 2025-04-27 16:02:21 +08:00
Vincent23412 af2f1ef707 feat(auth): add LoginAttempt schema and record login attempts with failure rate limit
- Added `LoginAttempt` Mongoose schema to store login history
- Integrated login attempt recording into login flow (success/failure)
- Created `rateLimitByAccount` middleware to block login if 10 failed attempts in 10 minutes
2025-04-27 15:57:34 +08:00
Justin Lin eaced63c68 feat: add console logger in production 2025-04-27 12:34:27 +08:00
Justin Lin aeed963a75 fix: use wrong parsed command body 2025-04-26 18:43:43 +08:00
Justin Lin b86697b6db fix: validate command input in newCommand controller 2025-04-26 18:10:33 +08:00
Justin Lin cb1e395579 refactor: update project root detection and quest directory path 2025-04-26 18:02:49 +08:00
Justin Lin 9498bb77ef fix: linting 2025-04-26 17:02:47 +08:00
Justin Lin 3985d5d089 fix: server and app build 2025-04-26 13:22:32 +08:00
Justin Lin 253564376d fix: analytics type errors 2025-04-26 13:10:48 +08:00
Justin Lin d450613816 clean: remove unused code 2025-04-26 12:48:29 +08:00
Justin Lin f7860c6197 fix: update CLIFileExistenceChecker to accept containerId in constructor 2025-04-26 11:09:10 +08:00
Justin Lin fba92dad46 feat: integrate filegraph 2025-04-24 23:30:12 +08:00
Justin Lin 87b8ca5d04 wip: replace packages with pure files 2025-04-24 23:20:40 +08:00
Justin Lin 2d95ca382f wip: integrate filegraph into session 2025-04-24 22:05:10 +08:00
Justin Lin cdd22634e0 refactor: replace "folder" with "directory" across file handling components and tests 2025-04-24 21:24:55 +08:00
Justin Lin 7e50c8e06c refactor: remove condition tests and update file node interfaces in game session
TODO: replace "folder" with "directory"
2025-04-24 18:10:47 +08:00
Justin Lin 52e9a13645 feat: add isFinished method to GameSession and update commandController to handle session completion 2025-04-23 17:10:51 +08:00
Justin Lin 92173bb7e9 refactor: migrate session management to TRPC and remove legacy API endpoints 2025-04-23 16:37:12 +08:00
Justin Lin b4b8f8baee feat: load responses and tasks from existing session 2025-04-23 16:17:10 +08:00
Justin Lin 2fcca0c4b9 refactor: update session management to handle tasks and responses in a single update 2025-04-23 16:03:39 +08:00
Justin Lin 66434ff897 fix: save new created session 2025-04-22 19:06:57 +08:00
Justin Lin 1616f62755 wip: migrate backend to new game package 2025-04-21 22:40:11 +08:00
Justin Lin 1d843f7355 refactor: remove unused quest-related schemas and consolidate exports 2025-04-21 21:42:54 +08:00
Justin Lin 6043226142 wip: migrating game handler 2025-04-18 14:27:36 +08:00
Justin Lin 61d1871e95 feat: parse all quest 2025-04-16 19:06:47 +08:00
Justin Lin ed4d04b658 feat: parse quest using zod, basic 2025-04-16 17:37:42 +08:00
Justin Lin 963655c1f7 wip: get active session 2025-04-16 16:58:24 +08:00
Justin Lin 423548804a feat: migreate get user profile to trpc 2025-04-16 16:40:03 +08:00
Justin Lin ac92950177 feat: migrate quest api to trpc 2025-04-16 16:24:29 +08:00
Justin Lin 55a41dd3b5 feat: integrate trpc to app 2025-04-16 16:02:23 +08:00