Ajasra
|
74e6b6f626
|
perf(assets): shrink logo and style previews
|
2026-10-30 00:14:13 +08:00 |
|
Ajasra
|
6772e0cf37
|
perf(booth): optimize assets and result flow
WebP reduces UI payload; JPEG keeps portrait saves compatible.\nFinish ends the visit without prompting another portrait.
|
2026-10-30 00:00:16 +08:00 |
|
Ajasra
|
56da9c86d2
|
fix: show daily counts above chart bars instead of clipped tooltip
|
2026-10-29 13:57:39 +08:00 |
|
Ajasra
|
e93fb4a51c
|
fix: portal daily chart bars collapsed to zero height
|
2026-10-29 13:53:45 +08:00 |
|
Ajasra
|
309372e1fe
|
fix: normalize bilingual style names to strings so /portal dashboard renders
|
2026-10-29 13:49:50 +08:00 |
|
Ajasra
|
566e17d1f4
|
feat: extrapolate poses into distinct dynamic martial arts techniques per style
|
2026-10-28 10:51:22 +08:00 |
|
Ajasra
|
75edfda401
|
feat: intelligent pose mapping - transform user posture into closest karate stance
|
2026-10-28 10:48:50 +08:00 |
|
Ajasra
|
62ea588fa3
|
feat: instruct AI to strictly preserve and enhance the user's actual martial stance
|
2026-10-28 10:45:52 +08:00 |
|
Ajasra
|
3d856aa616
|
chore: disable photo upload button in camera view
|
2026-10-28 10:44:28 +08:00 |
|
Ajasra
|
03e821e904
|
feat: implement pure JavaScript image watermarking with sharp (no Python)
|
2026-10-28 10:36:32 +08:00 |
|
Ajasra
|
5a7b284ff0
|
feat: set OpenRouter as primary AI provider with Google Gemini fallback
|
2026-10-28 10:26:41 +08:00 |
|
Ajasra
|
fc5d96e72c
|
fix: use dedicated PM2 process name karate_halloween on port 34822
|
2026-10-28 10:24:07 +08:00 |
|
Ajasra
|
1b3562f03c
|
docs: add PM2 and Nginx prod setup for karate.ph.sokaris.link with www-data
|
2026-10-28 09:52:07 +08:00 |
|
Ajasra
|
3ac44f5931
|
chore: remove unused legacy styles, duplicate brand logos, and test assets
|
2026-10-28 01:23:09 +08:00 |
|
Ajasra
|
e04672db2a
|
feat: integrate Sensei Spook mascot in 4 stances, speech bubbles, and style updates
|
2026-10-28 01:20:01 +08:00 |
|