ac10692b61
feat(prereq): dukung ambang minimum (min: N%) pada prasyarat materi
ac10692b61
feat(prereq): dukung ambang minimum (min: N%) pada prasyarat materi
16031fa728
fix(docs/api): hilangkan sync berulang di api_reference + UI API Reference di /docs
429b23e9b8
fix(docs): frontend load must fetch /api/docs (not /docs) for SSR proxy
d243df898a
fix(docs): correct API route prefix — strip /api to match Flask proxy convention
9c2563a2bf
feat(docs): docs viewer, API reference generator, markdown rendering
a5aedf66d4
refactor(test): unified test runner, markers, elemes.sh cleanup
Compare 27 commits »
16031fa728
fix(docs/api): hilangkan sync berulang di api_reference + UI API Reference di /docs
429b23e9b8
fix(docs): frontend load must fetch /api/docs (not /docs) for SSR proxy
d243df898a
fix(docs): correct API route prefix — strip /api to match Flask proxy convention
Compare 3 commits »
9c2563a2bf
feat(docs): docs viewer, API reference generator, markdown rendering
a5aedf66d4
refactor(test): unified test runner, markers, elemes.sh cleanup
25269fca08
fix(quiz/progress): perbaiki temuan audit — btn:disabled, css mati, indentasi
Compare 3 commits »
9aef612f01
feat(quiz/progress): pindah navigator ke quiz view, tampilkan guru di /progress, tambah 1 siswa, fix breakdown eval/diag
87d6819618
feat(quiz/progress): pindah navigator ke quiz view, tampilkan guru di /progress, tambah 1 siswa, fix breakdown eval/diag
79edcd1596
fix: sync lesson registry termasuk sub-bab (sub-home.md) agar kolom materi muncul di CSV guru
a14a212cc6
test(elemes): lock all three exportall build tags; note runbuild for unbundled services
c83a47b357
fix(elemes): align exportall/importall image tags with podman-compose (lms-*, not lms-c-*)
5508c2dc7a
docs: replace hard-coded container names with service-based podman-compose/label resolution
c453ddde2d
test(elemes): per-command log assertions + cover dbupgrade/dbstatus/dbrestore
394eb11082
refactor(elemes): delegate run_compose to run_compose_out; fail dbbackup on pg_dump error
Compare 13 commits »
c356e234fa
fix(frontend): resolve 26 svelte-check type errors
9ee92cfaaf
feat(teacher): manajemen akun guru canonical + first-run otomatis; cabut backend CSV (PG only)
d602b0f642
feat(student-management): kelola siswa round-trip CSV + bulk delete (PG)
ac37db5c91
feat(storage): migrasi penyimpanan CSV ke PostgreSQL (SQLAlchemy + Alembic)
Compare 4 commits »
c356e234fa
fix(frontend): resolve 26 svelte-check type errors
9ee92cfaaf
feat(teacher): manajemen akun guru canonical + first-run otomatis; cabut backend CSV (PG only)
d602b0f642
feat(student-management): kelola siswa round-trip CSV + bulk delete (PG)
ac37db5c91
feat(storage): migrasi penyimpanan CSV ke PostgreSQL (SQLAlchemy + Alembic)
Compare 4 commits »
575787af59
test(load-test): task sesi interaktif + parser konten rekursif + e2e smoke check
ec66d794a8
feat(playground): alur interaktif Run→prompt→jawab + file tree collapsible & dukungan .h
c103b55dc4
feat(compiler-worker): sesi interaktif PTY untuk playground — Python input() dan C scanf() tanpa EOFError
ddfbbb80f3
feat(playground): FileTree filter per bahasa — C dan Python dipisah
152ca85718
fix(playground): Run mengonsumsi stdinQueue atomik via consumeStdin()
Compare 12 commits »
575787af59
test(load-test): task sesi interaktif + parser konten rekursif + e2e smoke check
ec66d794a8
feat(playground): alur interaktif Run→prompt→jawab + file tree collapsible & dukungan .h
c103b55dc4
feat(compiler-worker): sesi interaktif PTY untuk playground — Python input() dan C scanf() tanpa EOFError
ddfbbb80f3
feat(playground): FileTree filter per bahasa — C dan Python dipisah
152ca85718
fix(playground): Run mengonsumsi stdinQueue atomik via consumeStdin()
Compare 10 commits »
2b1747041b
merge: sinkronkan upstream v3.2 ke elemes-v3.2
35155e6597
chore: remove unused files
32e5e9c50b
ui(picker): the gesture sensor's card shows what it really is
13a8403d6d
fix(sockets): a board a hair off the seat is still plugged in
f2e6464c36
fix(canvas): the dragged board's own run state decides if the stack holds
Compare 6 commits »
52771bc264
chore(elemes): update velxio submodule to elemes-v3.2 branch
6e1781926e
feat(velxio): Elemes LMS-C embed bridge, DeployProgress UI, BASE_URL customization
540c3081db
fix(canvas): a seated board stays above the socket it is plugged into
cd2dc2f54b
Merge remote-tracking branch 'origin/master' into v3.2-worktree
84080a0ff8
fix(sim): a seated stack moves as one piece; unplugging is edit-only
5f8a3e171c
feat(sim): a speaker-sink gate on the shim — audio out follows the part
Compare 10 commits »