4379d77b9c
test(web): deterministic motion e2e (fetch gate, condition waits) and new frame capture
Lucas WintherandClaude Opus 5.52026-10-30 21:49:49 +01:00
b5e00af4f7
fix(web,learner): navigation swaps at once; content-only entrance, loading line, focus (R19)
Lucas WintherandClaude Opus 5.52026-10-30 21:49:49 +01:00
f02e30450c
fix(studio): review round 2 - a conversion that fails after its commit recovers without a restart
Lucas WintherandClaude Opus 5.52026-10-30 21:00:45 +01:00
13393e10ba
merge: v1.1 AI schema work (tool calls, mentor table, citations, sealed MCP secrets)
Lucas WintherandClaude Opus 5.52026-10-30 20:51:35 +01:00
a953e35178
feat(learner): hold the lesson until the next one loads, swap with a view transition
Lucas WintherandClaude Opus 5.52026-10-30 20:42:15 +01:00
f834088588
docs: imported courses in the studio (media kept out of git, moved to <data>/media/<id>)
Lucas WintherandClaude Opus 5.52026-10-30 20:35:36 +01:00
4a49e28fcc
test(e2e): import, make editable, edit, publish; learner keeps progress and notes, media keep Range
Lucas WintherandClaude Opus 5.52026-10-30 20:35:10 +01:00
df6d235070
feat(studio): convert an imported course into a studio repo, media kept outside git
Lucas WintherandClaude Opus 5.52026-10-30 20:31:19 +01:00
60179407f4
feat(studio): media references for imported courses (path, size, sha256, .gitignore)
Lucas WintherandClaude Opus 5.52026-10-30 20:28:39 +01:00
c7b9e1f98e
fix(learner): review round 1: sanitize-html, sandboxed runner frame, one visibility rule, no Tab capture
Lucas WintherandClaude Opus 5.52026-10-30 05:20:43 +01:00
061ae7a2d9
feat(learner): search results show lesson matches cleanly; contract notes for the browser entry and LessonView; plan marked done
Lucas WintherandClaude Opus 5.52026-10-30 04:54:53 +01:00
89c51f013d
feat(learner): web shell, library, lesson views (LessonView), decks, code files, exercises, notes, account and admin pages
Lucas WintherandClaude Opus 5.52026-10-30 04:53:36 +01:00
a13cc66ebb
fix(ai): BYOK endpoints limited to official presets and admin-allowed origins (SSRF)
Lucas WintherandClaude Opus 5.52026-10-30 04:47:25 +01:00
2d162a4282
fix(studio): review round 1 (symlink-safe writes, remote allowlist, upload cap/types/no-overwrite, owner rule at publish/sync/resolve, studio/repos layout and read-only imports, side-effect-free list)
Lucas WintherandClaude Opus 5.52026-10-30 04:43:53 +01:00
6fb0019cd9
feat(ai): read the importer's deck and transcript cache; studio DraftWriter fits DraftSink as is
Lucas WintherandClaude Opus 5.52026-10-30 04:36:48 +01:00
99c0e4929f
feat(learner): lesson markdown pipeline with track variants, folds, hint tiers and safe HTML
Lucas WintherandClaude Opus 5.52026-10-30 03:29:14 +01:00
2849d3c911
docs(studio): contract requests (ctx feature factories, worktrees course dir, LessonView swap, web subpath, nav roles, DraftWriter)
Lucas WintherandClaude Opus 5.52026-10-30 03:26:58 +01:00
9ff5862382
feat(learner): JS/TS exercise runner in a Web Worker with timeout and network blocked
Lucas WintherandClaude Opus 5.52026-10-30 03:26:32 +01:00
0992df7257
feat(studio): studio web UI (course list, manifest, lessons with live preview, decks, attachments, exercises, conflicts, sync) and dev entry
Lucas WintherandClaude Opus 5.52026-10-30 03:26:18 +01:00
a8a8e32bcb
feat(learner): owner admin API for roles, groups, course access and library curation
Lucas WintherandClaude Opus 5.52026-10-30 03:20:49 +01:00
50e1e49b6d
feat(ai): BM25 course retrieval over lessons, transcripts, code, deck text and notes
Lucas WintherandClaude Opus 5.52026-10-30 03:18:21 +01:00