GitNexus/gitnexus-web/test
Ahmad Othman Ammar Adi 5d32e345bb
feat(web): drop a folder onto the analyzer to upload it (#3315)
* feat(web): drop a folder onto the analyzer to upload it

The Local Folder panel of RepoAnalyzer is now a drop target. A dropped
folder is walked with the File and Directory Entries API
(DataTransferItem.webkitGetAsEntry), directories on the shared exclusion
list are pruned before they are read, and the resulting File objects are
handed to the existing filterRepoFiles -> uploadFolder -> trackJob path
with webkitRelativePath set to <folder>/<rest>, so the server receives the
same manifest shape the webkitdirectory picker produces.

Compared with the picker, the walk never enumerates node_modules or .git,
stops at the server's 20000 file cap and 64 path segments, skips
unreadable entries instead of failing, and reports progress while it runs.
Loose files and several folders at once are refused with a message (the
server accepts one top-level folder). The walk runs under the request
controller, so a mode switch or unmount aborts it; Analyze and the picker
are blocked while it runs. The panel-wide target also stops the browser
from navigating to a file dropped a few pixels off the button.

New strings in en and zh-CN; browsers without webkitGetAsEntry keep the
picker button and get an explanation.

* Address PR review feedback (#3315)

Clear readingCount only when this drop still owns the request controller, and skip oversized files before they count toward the 20k drop cap.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Address PR review feedback (#3315)

Count oversized files the drop walk skips in the summary droppedCount, and correct the 250-file batch-read comment.

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore(autofix): apply prettier + eslint fixes via /autofix command

---------

Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-20 10:12:54 +01:00
..
fixtures feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
unit feat(web): drop a folder onto the analyzer to upload it (#3315) 2026-09-20 10:12:54 +01:00
setup.ts feat(i18n): make web and CLI language-aware (#1748) 2026-05-23 06:14:24 +01:00