Lucas Winther and Claude Opus 5.5
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)
...
C1: writes lstat every path component and refuse symlinks (dangling included),
check the parent's real path after mkdir, and open with O_NOFOLLOW.
I1: only https://, ssh:// and git@host: remotes; protocol.file/ext/fd=never on
every fetch and push; global/system git config ignored.
I2: STC_UPLOAD_MAX_MB cap (default 100) by Content-Length and while streaming;
extension allowlist (415); stcourse.yaml refused; 409 unless overwrite=true;
sandboxing CSP on draft raw files.
I3: owner-only visibility/source.kind rule checked on the merged result at
publish and sync, and at resolve; publish also validates the merged tree.
I4: bare repos in <dataDir>/studio/repos/<id>.git; imported courses read-only.
I5: list status comes from the bare repo; drafts are created lazily.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 04:43:53 +01:00
Lucas Winther and Claude Opus 5.5
667f3e814b
fix(studio): forbid ext:: remotes; type the per-dialect test table
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:27:30 +01:00
Lucas Winther and Claude Opus 5.5
2849d3c911
docs(studio): contract requests (ctx feature factories, worktrees course dir, LessonView swap, web subpath, nav roles, DraftWriter)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:26:58 +01:00
Lucas Winther and Claude Opus 5.5
0992df7257
feat(studio): studio web UI (course list, manifest, lessons with live preview, decks, attachments, exercises, conflicts, sync) and dev entry
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:26:18 +01:00
Lucas Winther and Claude Opus 5.5
497ce91216
feat(studio): /api/studio routes, author access, acceptance tests
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:18:25 +01:00
Lucas Winther and Claude Opus 5.5
06b6ea6168
feat(studio): published-worktree watcher and DraftWriter API for the AI package
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:16:13 +01:00
Lucas Winther and Claude Opus 5.5
c2385b472c
feat(studio): publish as merge, update draft, conflict resolution, explicit sync
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:15:20 +01:00
Lucas Winther and Claude Opus 5.5
a6f887f31c
feat(studio): git wrapper and StudioStore (create course, drafts, save as commit)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:14:47 +01:00
Lucas Winther and Claude Opus 5.5
fc37da9789
docs(studio): WP-C implementation plan
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:11:41 +01:00
Lucas Winther and Claude Opus 5.5
3ca05fcfbc
merge: Phase 0 contract
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:07:26 +01:00
Lucas Winther and Claude Opus 5.5
05eee4cd40
feat: server entry and web shell with design tokens
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:05:49 +01:00
Lucas Winther and Claude Opus 5.5
7f33169487
feat(core): config, job queue, range media serving, feature composition
...
Adds aclRepo to @stc/db for canView.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:04:46 +01:00
Lucas Winther and Claude Opus 5.5
ea18f18b4f
fix(db): use DOUBLE PRECISION for position and progress columns
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:01:31 +01:00
Lucas Winther and Claude Opus 5.5
f061e36092
fix(db): jobs.update writes only patched columns; late progress cannot resurrect a finished job
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 03:01:05 +01:00
Lucas Winther and Claude Opus 5.5
4636273d55
feat(db): progress, notes, attempts, library, jobs repositories
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:59:09 +01:00
Lucas Winther and Claude Opus 5.5
738d813fb8
feat(db): Bun.SQL connection and portable migrations
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:57:34 +01:00
Lucas Winther and Claude Opus 5.5
f71a31a5f1
fix(course-format): validate anchor file via requireFile; real throw test for loadCourse catch
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:55:38 +01:00
Lucas Winther and Claude Opus 5.5
a82ab18bee
fix(course-format): directories are not lesson files; a failing course never rejects loadAll
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:54:23 +01:00
Lucas Winther and Claude Opus 5.5
b8c65626f9
feat: overlay manifests for the two reference courses
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:52:24 +01:00
Lucas Winther and Claude Opus 5.5
c78c7ec8d8
feat(course-format): markdown extraction, discovery, loading, repository
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:51:26 +01:00
Lucas Winther and Claude Opus 5.5
7a68800f6f
test: sample fixture course
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:50:00 +01:00
Lucas Winther and Claude Opus 5.5
7e7ce30535
feat(course-format): stcourse.yaml schema
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:49:42 +01:00
Lucas Winther and Claude Opus 5.5
3b15d87a5f
feat(contracts): shared server, exercise, ai, import and web interfaces
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:48:10 +01:00
Lucas Winther and Claude Opus 5.5
9f582b99d2
chore: bun workspace scaffold
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:47:42 +01:00
Lucas Winther and Claude Opus 5.5
830a0cdd9b
chore: ignore worktrees
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:46:38 +01:00
Lucas Winther and Claude Opus 5.5
29ba043de7
Add STCourses implementation plan
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:46:28 +01:00
lucasw89 and Claude Opus 5.5
ab96addbab
Add STCourses design, research report and approved mockup
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-30 02:37:38 +01:00