Mappen verwijderen en herstellen via de bestaande prullenbak #95

Merged
janpeter merged 19 commits from codex/folder-trash-spec into main 2026-09-28 03:13:39 +02:00
Owner

Mappen kunnen via rechtsklik of Mapacties naar de bestaande prullenbak. De scanworker inventariseert de volledige subtree, inclusief verborgen en niet-mediabestanden. Bestanden of de hele map kunnen worden teruggezet. Prullenbak legen bevestigt één volledige serverselectie; de delete-worker verwijdert gemarkeerde bestanden en gebruikt uitsluitend niet-recursieve rmdir voor lege mappen.

Herstel, scan, video en destructieve toelating delen locks en generaties. Onzekere child-uitkomsten worden niet automatisch opnieuw verwijderd. Directorycleanup bewaart de exacte indexbinding, zodat vervangende of nieuwe inhoud niet wordt verwijderd. Een gedeeltelijk verwijderde map kan niet ten onrechte als volledig hersteld worden gemeld.

Verificatie op codecommit 7fa4e07b5ed848248ae97061f9914c6095e99e39:

  • Linux Node 22.23.2/PostgreSQL 17: gewone suite 1.139 pass, 0 fail; 20 globale gevallen slagen apart, zonder skips. Eén non-Linux-geval is op macOS gedekt.
  • Echte cyclus met 1.001 bestanden: inventariseren, beide herstelroutes, 999 bestanden + 2 mappen verwijderen, cleanup-only hervatten zonder tweede unlink, echte rescan en consistente browse.
  • Typecheck, build en lint slagen; lint heeft 12 warnings en 0 errors. Onafhankelijke bronreviews: GO na gereproduceerde en herstelde bevinding.
  • Begrensde echte Linux/NFS-childproef op eigen wegwerpbestanden; browserbewijs met echte UI en expliciete actiestubs. De 1.001-bestanden-maprestore mat 96 ms op Linux.

Sprint S-2026-09-27-2 en T-207 t/m T-214 zijn afgerond. Zie docs/research/folder-trash-implementation-progress.md, folder-trash-verification-results.json en folder-trash-final-review.md voor bewijs en grenzen. De laatste commit voegt uitsluitend einddocumentatie toe.

Uitrol vereist één gecoördineerd venster voor schema en alle workers; zie docs/runbooks/folder-trash-deploy.md. Geen merge, productie-migratie of deployment uitgevoerd. Alle vijf Forgejo CI-checks op de laatste revisie baaa6756f0 zijn geslaagd. Klaar voor review.

Mappen kunnen via rechtsklik of Mapacties naar de bestaande prullenbak. De scanworker inventariseert de volledige subtree, inclusief verborgen en niet-mediabestanden. Bestanden of de hele map kunnen worden teruggezet. Prullenbak legen bevestigt één volledige serverselectie; de delete-worker verwijdert gemarkeerde bestanden en gebruikt uitsluitend niet-recursieve rmdir voor lege mappen. Herstel, scan, video en destructieve toelating delen locks en generaties. Onzekere child-uitkomsten worden niet automatisch opnieuw verwijderd. Directorycleanup bewaart de exacte indexbinding, zodat vervangende of nieuwe inhoud niet wordt verwijderd. Een gedeeltelijk verwijderde map kan niet ten onrechte als volledig hersteld worden gemeld. Verificatie op codecommit `7fa4e07b5ed848248ae97061f9914c6095e99e39`: - Linux Node 22.23.2/PostgreSQL 17: gewone suite 1.139 pass, 0 fail; 20 globale gevallen slagen apart, zonder skips. Eén non-Linux-geval is op macOS gedekt. - Echte cyclus met 1.001 bestanden: inventariseren, beide herstelroutes, 999 bestanden + 2 mappen verwijderen, cleanup-only hervatten zonder tweede unlink, echte rescan en consistente browse. - Typecheck, build en lint slagen; lint heeft 12 warnings en 0 errors. Onafhankelijke bronreviews: GO na gereproduceerde en herstelde bevinding. - Begrensde echte Linux/NFS-childproef op eigen wegwerpbestanden; browserbewijs met echte UI en expliciete actiestubs. De 1.001-bestanden-maprestore mat 96 ms op Linux. Sprint S-2026-09-27-2 en T-207 t/m T-214 zijn afgerond. Zie `docs/research/folder-trash-implementation-progress.md`, `folder-trash-verification-results.json` en `folder-trash-final-review.md` voor bewijs en grenzen. De laatste commit voegt uitsluitend einddocumentatie toe. Uitrol vereist één gecoördineerd venster voor schema en alle workers; zie `docs/runbooks/folder-trash-deploy.md`. Geen merge, productie-migratie of deployment uitgevoerd. Alle vijf Forgejo CI-checks op de laatste revisie baaa6756f058376fc203cf3e6c1f45f75a306552 zijn geslaagd. Klaar voor review.
feat: expose folder trash and restore in the library
Some checks failed
CI / test (historical-bootstrap) (pull_request) Successful in 49s
CI / test (empty-trash) (pull_request) Successful in 1m7s
CI / test (video-migration) (pull_request) Successful in 1m7s
CI / test (suite) (pull_request) Failing after 2m48s
CI / docker-build (pull_request) Successful in 2m42s
0503217e39
test: verify folder trash lifecycle and preserve partial restore outcomes
Some checks failed
CI / test (historical-bootstrap) (pull_request) Successful in 49s
CI / test (video-migration) (pull_request) Has been cancelled
CI / docker-build (pull_request) Has been cancelled
CI / test (empty-trash) (pull_request) Has been cancelled
CI / test (suite) (pull_request) Has been cancelled
7fa4e07b5e
docs: record completed folder trash acceptance evidence
All checks were successful
CI / test (historical-bootstrap) (pull_request) Successful in 1m1s
CI / test (suite) (pull_request) Successful in 3m13s
CI / test (video-migration) (pull_request) Successful in 1m4s
CI / docker-build (pull_request) Successful in 2m42s
CI / test (empty-trash) (pull_request) Successful in 8m34s
baaa6756f0
janpeter changed title from WIP: Mappen verwijderen en herstellen via de bestaande prullenbak to Mappen verwijderen en herstellen via de bestaande prullenbak 2026-09-28 02:55:13 +02:00
s4m-codex-reviewer left a comment

Verdict: COMMENT

Findings

  • INFO — src/actions/folder-trash.ts:31-32; src/actions/folder-trash-core.ts:49-55 — De nieuwe herstelacties controleren alleen dat de principal een browsergebruiker is; anders dan de statusactie is er geen eigenaar-/autorisatiecontrole op de mapactie of entry. De browse-query is eveneens globaal. Als de prullenbak bewust productbreed is, is dit consistent; leg die autorisatiekeuze expliciet vast of handhaaf requestedBy voordat een niet-eigenaar herstel kan uitvoeren.

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

De diff bevat gerichte unit-, mounted- en database-tests en werkt de CI-sequentie voor de afzonderlijke prullenbak-DB-suite bij.

## Verdict: COMMENT ### Findings - **INFO — src/actions/folder-trash.ts:31-32; src/actions/folder-trash-core.ts:49-55** — De nieuwe herstelacties controleren alleen dat de principal een browsergebruiker is; anders dan de statusactie is er geen eigenaar-/autorisatiecontrole op de mapactie of entry. De browse-query is eveneens globaal. Als de prullenbak bewust productbreed is, is dit consistent; leg die autorisatiekeuze expliciet vast of handhaaf `requestedBy` voordat een niet-eigenaar herstel kan uitvoeren. Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden. De diff bevat gerichte unit-, mounted- en database-tests en werkt de CI-sequentie voor de afzonderlijke prullenbak-DB-suite bij.
docs: clarify installation-wide folder trash authorization
All checks were successful
CI / test (historical-bootstrap) (pull_request) Successful in 1m4s
CI / test (suite) (pull_request) Successful in 3m15s
CI / test (video-migration) (pull_request) Successful in 49s
CI / test (empty-trash) (pull_request) Successful in 5m50s
CI / docker-build (pull_request) Successful in 1m45s
f79e017c82
s4m-codex-reviewer left a comment

Verdict: COMMENT

Findings

  • INFO — package.json:8 — De onafhankelijke validatie kon niet volledig worden uitgevoerd: na npm ci raakte de reviewomgeving zonder schijfruimte en faalde npm run typecheck al in scripts/gen-build-info.mjs met ENOSPC. Daardoor zijn typecheck, lint en de testset niet opnieuw bevestigd. De statische review van de kritieke inventarisatie-, herstel- en delete-workerpaden leverde geen bevestigde blokkerende fout op.

Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.

# Verdict: COMMENT ## Findings - INFO — `package.json:8` — De onafhankelijke validatie kon niet volledig worden uitgevoerd: na `npm ci` raakte de reviewomgeving zonder schijfruimte en faalde `npm run typecheck` al in `scripts/gen-build-info.mjs` met `ENOSPC`. Daardoor zijn typecheck, lint en de testset niet opnieuw bevestigd. De statische review van de kritieke inventarisatie-, herstel- en delete-workerpaden leverde geen bevestigde blokkerende fout op. Geen gekoppeld plan gevonden — beoordeeld op codekwaliteit + product-standaarden.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
janpeter/Media-Organizer!95
No description provided.