mirror of
https://github.com/yusufipk/OpenFrame.git
synced 2026-09-11 09:36:08 +00:00
- Added storage quota enforcement for audio and image uploads in the respective routes. - Introduced reservation system to manage concurrent uploads and prevent quota overages. - Enhanced comment creation to account for audio and image attachment sizes against user quotas. - Created new UploadReservation model to track in-flight upload reservations. - Backfilled existing video assets with size information from R2. - Added progress component for UI feedback during uploads. - Updated API responses to include reservation IDs for better quota management. - Adjusted error handling to return appropriate storage limit exceeded messages.
1.3 KiB
1.3 KiB
AGENTS.md
Must-follow constraints
- Use
bunonly. Do not usenpmorpnpm. - Do not start the dev server (
bun run dev); assume it is already running. - If you change
prisma/schema.prisma, runbun run db:generate. - In App Router dynamic routes, keep
paramstyped asPromise<...>andawait paramsin handlers/pages.
Validation before finishing
- Run
bun run check.
Repo-specific conventions
- Use
auth()from@/lib/authfor server-side session reads. - Use
checkProjectAccess()/checkWorkspaceAccess()for authorization instead of ad-hoc role checks. - For API responses, use
successResponse/apiErrorsfrom@/lib/api-response. - Keep API and UI imports on
@/aliases when available. - In Prisma raw SQL, use
$executeRawfor statements that return no rows (e.g.pg_advisory_xact_lock). Using$queryRawon void-returning functions causes a Prisma deserialization error (Failed to deserialize column of type 'void').
Important locations
- Custom SQL managed by Prisma migrations:
prisma/migrations/*/migration.sql. - Shared API response helpers:
lib/api-response.ts. - Auth + access-control helpers:
lib/auth.ts.
Change safety rules
- Prefer backward-compatible API changes unless explicitly asked to break contracts.
- For multi-step DB writes, use Prisma transactions.