Commit Graph

5 Commits

Author SHA1 Message Date
6804835e85 Persist recipe English name translation to database
Some checks failed
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
Test / e2e-test (push) Failing after 1m7s
PR Preview / test (pull_request) Has been skipped
PR Preview / teardown-preview (pull_request) Successful in 14s
PR Preview / deploy-preview (pull_request) Has been skipped
- Add en_name column to recipes table (migration in database.py)
- Include en_name in recipe API responses and RecipeUpdate model
- Save en_name when admin/senior_editor applies translation
- Load en_name on overlay open, so translation persists across sessions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 22:08:05 +00:00
43f57c55f5 Hash passwords with PBKDF2-SHA256 instead of storing plaintext
All checks were successful
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 11s
Test / e2e-test (push) Successful in 53s
Existing plaintext passwords are auto-upgraded to hashed on next login.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 21:11:44 +00:00
9c85ed21b3 Allow all logged-in users to create/edit/delete their own recipes
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 5s
Test / build-check (push) Successful in 4s
PR Preview / test (pull_request) Successful in 5s
PR Preview / deploy-preview (pull_request) Successful in 13s
Test / e2e-test (push) Failing after 6m48s
Previously only editor+ roles could manage recipes, so viewer users
saw an empty "我的配方" section. Now any authenticated user can CRUD
their own recipes while admin/senior_editor retain full access.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:30:24 +00:00
34c671f9f3 Fix SPA routing: fallback to index.html for Vue Router paths
Some checks failed
PR Preview / teardown-preview (pull_request) Has been skipped
Test / unit-test (push) Successful in 4s
Test / build-check (push) Successful in 3s
PR Preview / test (pull_request) Successful in 4s
PR Preview / deploy-preview (pull_request) Successful in 8s
Test / e2e-test (push) Failing after 23s
Direct navigation to /bugs, /oils, /manage etc. returned 404 because
FastAPI's StaticFiles only served index.html for /. Now all non-API,
non-asset routes return index.html so Vue Router handles client-side routing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 21:40:58 +00:00
0368e85abe Initial commit: Essential Oil Formula Cost Calculator 2026-04-06 13:46:32 +00:00