Commit Graph
5 Commits
Author SHA1 Message Date
Lucas WintherandClaude 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 <[email protected]>
2026-10-30 04:43:53 +01:00
Lucas WintherandClaude 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 <[email protected]>
2026-10-30 03:26:58 +01:00
Lucas WintherandClaude Opus 5.5 fc37da9789 docs(studio): WP-C implementation plan
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 03:11:41 +01:00
Lucas WintherandClaude Opus 5.5 29ba043de7 Add STCourses implementation plan
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 02:46:28 +01:00
lucasw89andClaude Opus 5.5 ab96addbab Add STCourses design, research report and approved mockup
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 02:37:38 +01:00