Let users delete images, audio and projects from the library
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, node.js
- Domain
- backend, frontend, full-stack
Research direction
Start with the upload and route handlers in server/index.mjs, then read server/library.mjs and the Library and Projects dialog code in web/app.mjs and web/index.html. Run scripts/check.mjs to see the existing API checks. Implement image and project deletion with the requested open-project behavior, then extend the checks; audio listing, deletion, and validation are optional. Done when the required delete flows work and the checks cover the new project route.
Written by the indexing model from the issue text.
Description
Everything is kept forever, and the UI offers no way to clean up:
- Images. The server already has
DELETE /api/library/:id, andscripts/check.mjstests it, but the Library dialog only renders click-to-use tiles. There is no delete control. - Projects. There is no delete route at all:
/api/projects/:idhandles onlyPUTandGET, andlibrary.mjshas nodeleteProject. The Projects dialog can open projects but can't remove or rename them, and autosave creates a new file for every New project click. - Audio. Music uploads are written to
library/audio/and never listed or removable. They are also stored without any content check: any bytes sent asaudio/mpegare saved as.mp3, unlike images, which are sniffed insaveImage().
Task:
- Add a delete button to each Library tile. Decide what happens to scenes that reference the image, at least by warning when the open project uses it.
- Add
DELETE /api/projects/:idwithdeleteProject()inlibrary.mjs(reuse theprojectFileid check), plus a delete button in the Projects dialog. Deleting the open project should start a new one. - Optionally list and delete audio, and sniff common audio headers (ID3/MPEG frame,
RIFF…WAVE,OggS,ftyp) on upload. - Extend
scripts/check.mjsfor the new routes.
Where: server/index.mjs:109-119 (upload), server/index.mjs:138-142 (routes); server/library.mjs:49-54, server/library.mjs:56-77; web/app.mjs:493-504 (openLibrary), web/app.mjs:507-516 (openProjects); web/index.html:99-110; scripts/check.mjs:92-101.
Getting started: Node 22, no npm install needed: git clone, npm start, open http://127.0.0.1:4520 in Chrome or Edge, and run npm test and npm run check before the PR. Comment here to claim it. Questions → Discord.
- Dominant language
- JavaScript
- Stars
- 42
- Forks
- 6
- Avg merge
- 12h 31m
- Merged PRs (30d)
- 3
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from blixvip/GenMotion
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
accessibility good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
documentation good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 91/100
All issues in blixvip/GenMotion
Similar issues
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
andromarces/agent-loops#1735 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
BinaryBaconLabs/todo-app#32 ·
Maintainers usually reply within 1 day
-
Missing assertions to legacy Cafe Menu block testsPossibly taken @mariamanbar claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 90/100
freeCodeCamp/freeCodeCamp#71624 ·
Maintainers usually reply within 1 day
-
Bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
JSPrismarine/JSPrismarine#2915 ·
Maintainers usually reply within 1 day
-
posthog
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
DobermanCore/Doberman-Core#791 ·
Maintainers usually reply within 3 days