Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
95b69e4
Plan V3: accounts, public deployment and practice recommendations
CanYouTeachMeHowToCode Sep 23, 2026
8cd1217
Add accounts and authentication (V3 Milestone 1)
CanYouTeachMeHowToCode Sep 24, 2026
e969122
Merge pull request #19 from CanYouTeachMeHowToCode/feature/accounts
CanYouTeachMeHowToCode Sep 24, 2026
6018b24
Give attempts an owner and scope analytics per user (V3 Milestones 2-3)
CanYouTeachMeHowToCode Sep 24, 2026
76d1865
Merge pull request #20 from CanYouTeachMeHowToCode/feature/user-attempts
CanYouTeachMeHowToCode Sep 24, 2026
843841f
Record V3 Milestones 1-3 as completed in CLAUDE.md and ROADMAP
CanYouTeachMeHowToCode Sep 24, 2026
c04234a
Plan V3 content completion before public deployment
CanYouTeachMeHowToCode Sep 24, 2026
f8deb6e
Plan V3 bilingual interface and moveset review
CanYouTeachMeHowToCode Sep 24, 2026
fb8af26
Store Chinese move names with their source (V3 Milestone 4, part 1)
CanYouTeachMeHowToCode Sep 24, 2026
4391467
Merge remote-tracking branch 'origin/dev' into feature/bilingual
CanYouTeachMeHowToCode Sep 24, 2026
bdd6d55
Add an English/Chinese interface (V3 Milestone 4, part 2)
CanYouTeachMeHowToCode Sep 24, 2026
5e343c5
Describe moves while choosing what ended an attempt
CanYouTeachMeHowToCode Sep 24, 2026
0eff37a
Record Milestone 4 progress and add the Chinese content review file
CanYouTeachMeHowToCode Sep 24, 2026
e895f8d
Re-scope the roadmap around combat ground truth
CanYouTeachMeHowToCode Oct 3, 2026
bcf1a51
Merge remote-tracking branch 'origin/dev' into feature/bilingual
CanYouTeachMeHowToCode Oct 3, 2026
6fd960b
Settle two Chinese naming decisions
CanYouTeachMeHowToCode Oct 3, 2026
4f17423
Mark V3 Milestone 4 completed and remove the review file
CanYouTeachMeHowToCode Oct 3, 2026
425a046
Merge pull request #21 from CanYouTeachMeHowToCode/feature/bilingual
CanYouTeachMeHowToCode Oct 3, 2026
5ed730e
Add a Chinese ROADMAP
CanYouTeachMeHowToCode Oct 3, 2026
fbd19ab
Clean up existing boss content, part 1 (V3 Milestone 5)
CanYouTeachMeHowToCode Oct 3, 2026
1bc5564
Clean up existing boss content, part 2 (V3 Milestone 5)
CanYouTeachMeHowToCode Oct 3, 2026
e05296c
Add the cross-wiki move mapping for every boss
CanYouTeachMeHowToCode Oct 3, 2026
ca747ea
Check in CI that data survives a Docker restart
CanYouTeachMeHowToCode Oct 5, 2026
4dfcebc
Mark V3 completed in CLAUDE.md, ROADMAP and README
CanYouTeachMeHowToCode Oct 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ jobs:

- name: Wait for the backend to become healthy
run: |
cat > wait-for-backend.sh <<'EOF'
for i in $(seq 1 60); do
if curl -sf http://localhost:8000/health > /dev/null; then
echo "backend healthy after ${i} tries"
Expand All @@ -160,14 +161,43 @@ jobs:
done
echo "backend did not become healthy" >&2
exit 1
EOF
bash wait-for-backend.sh

- name: Smoke test through nginx
run: |
curl -sf -o /dev/null http://localhost:8080/
bosses=$(curl -sf http://localhost:8080/api/bosses | jq 'length')
echo "bosses served: ${bosses}"
test "${bosses}" -gt 0
curl -sf http://localhost:8080/api/sekiro/analytics | jq -e '.total_bosses == '"${bosses}"

# Analytics need a login: anonymous requests are refused, and a
# session cookie from registering works through nginx.
status=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8080/api/sekiro/analytics)
test "${status}" = 401
curl -sf -c cookies.txt -H 'Content-Type: application/json' \
-d '{"username": "ci_smoke", "password": "ci-smoke-password"}' \
http://localhost:8080/api/auth/register > /dev/null
curl -sf -b cookies.txt http://localhost:8080/api/sekiro/analytics | jq -e '.total_bosses == '"${bosses}"

# An attempt for the persistence check below.
curl -sf -b cookies.txt -H 'Content-Type: application/json' \
-d '{"result": "failed", "phase_reached": 1, "failure_move_id": null, "failure_category": "not_sure", "notes": "persistence check"}' \
http://localhost:8080/api/bosses/genichiro-ashina/attempts > /dev/null

# Stopping the stack without -v must keep accounts and attempts in the
# postgres-data volume (V3 success criteria: restart, data persists).
- name: Restart the stack and check the data persisted
run: |
docker compose down
docker compose up -d
bash wait-for-backend.sh

curl -sf -c cookies-after.txt -H 'Content-Type: application/json' \
-d '{"username": "ci_smoke", "password": "ci-smoke-password"}' \
http://localhost:8080/api/auth/login > /dev/null
curl -sf -b cookies-after.txt http://localhost:8080/api/bosses/genichiro-ashina/attempts \
| jq -e 'length == 1 and .[0].notes == "persistence check"'

- name: Show container logs
if: failure()
Expand Down
Loading
Loading