Lucas WintherandClaude Opus 5.5 ead7327bb1 fix(ai): solution and hidden-file guard runs on the canonical real path
read_file and read_lesson URL-decode, posix-normalise, reject .. and absolute
paths, resolve through CourseRepository.resolvePath (symlinks followed), then
guard the real course-relative path and compare real paths with every
manifest browser.solution. Hidden files are refused too.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 04:48:56 +01:00
2026-10-30 04:40:02 +01:00
2026-10-30 02:47:42 +01:00
2026-10-30 02:47:42 +01:00
2026-10-30 02:47:42 +01:00
2026-10-30 02:47:42 +01:00
2026-10-30 02:47:42 +01:00

STCourses

STCourses is a self-hosted course platform. Homelabbers, universities and companies host their own courses, plus material they already own such as Packt video packages or Pluralsight slide PDFs, in one place that tracks progress. Authors write in Markdown in a git repo or in a browser studio; both edit the same files. Each install has one owner and is not multi-tenant.

Development

bun install          # install workspace dependencies
bun test             # run all tests
bun run typecheck    # tsc --noEmit
bun run dev          # start the server with hot reload

License: AGPL-3.0-only.

S
Description
No description provided
Readme AGPL-3.0
958 KiB
Languages
TypeScript 97.8%
CSS 1.7%
Dockerfile 0.2%
Python 0.1%