GitNexus/gitnexus-web/test/unit
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
..
access-token-prompt.test.tsx feat(render): add one-click deploy to render support (#2804) 2026-08-06 00:19:44 +00:00
agent-abort.test.ts feat: refresh MiniMax model and endpoint configuration (#2780) 2026-08-11 18:11:47 +00:00
agent-history.test.ts feat: refresh MiniMax model and endpoint configuration (#2780) 2026-08-11 18:11:47 +00:00
agent-prompt.test.ts fix(server,web): honor the grep tool contract — real regex, fileFilter, caseSensitive (#3109) 2026-08-31 20:43:28 +01:00
backend-client-auth.test.ts feat(render): add one-click deploy to render support (#2804) 2026-08-06 00:19:44 +00:00
backend-client-grep.test.ts fix(server,web): honor the grep tool contract — real regex, fileFilter, caseSensitive (#3109) 2026-08-31 20:43:28 +01:00
backend-client-repo-identity.test.ts fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
backend-client-retry.test.ts fix(ip): Scope write-route origin guard to server's own bound host (#2172) 2026-06-13 09:24:03 +01:00
bug-fixes.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
code-references-panel.test.tsx feat(storage): add configurable index storage and content retention tiers (#3060) 2026-09-12 20:31:55 +00:00
constants.test.ts feat(indexing): add Objective-C semantic indexing support (#3179) 2026-09-09 09:40:21 +00:00
embedding-auto-start.test.ts feat(i18n): make web and CLI language-aware (#1748) 2026-05-23 06:14:24 +01:00
filter-panel.test.ts feat(indexing): add Objective-C semantic indexing support (#3179) 2026-09-09 09:40:21 +00:00
graph-load-decision.test.ts fix(web): chat-only mode for large projects to prevent WebUI hang (#2178) (#2185) 2026-06-13 11:07:58 +01:00
graph.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
grep-tool.test.ts fix(server,web): honor the grep tool contract — real regex, fileFilter, caseSensitive (#3109) 2026-08-31 20:43:28 +01:00
header.test.tsx fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
heartbeat.test.ts feat(render): add one-click deploy to render support (#2804) 2026-08-06 00:19:44 +00:00
i18n.test.tsx feat(i18n): make web and CLI language-aware (#1748) 2026-05-23 06:14:24 +01:00
impact-tool.test.ts fix(server,web): honor the grep tool contract — real regex, fileFilter, caseSensitive (#3109) 2026-08-31 20:43:28 +01:00
initialize-agent-identity.test.tsx fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
load-graph-anyway.test.tsx fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
mermaid-generator.test.ts ci: E2E workflow, web typecheck job, pre-commit hook, test suite (#486) 2026-03-24 06:01:08 +00:00
path-resolution.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
perf-optimizations.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
repo-analyzer-complete-identity.test.tsx fix(web): show origin-blocked analyze guidance (#2568) 2026-07-20 08:15:16 +01:00
repo-analyzer-folder-drop.test.tsx feat(web): drop a folder onto the analyzer to upload it (#3315) 2026-09-20 10:12:54 +01:00
repo-analyzer-upload-race.test.tsx fix(web): show origin-blocked analyze guidance (#2568) 2026-07-20 08:15:16 +01:00
security-guards.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
server-connection.test.ts fix(web): chat-only mode for large projects to prevent WebUI hang (#2178) (#2185) 2026-06-13 11:07:58 +01:00
settings-panel-token.test.tsx feat(render): add one-click deploy to render support (#2804) 2026-08-06 00:19:44 +00:00
settings-service.test.ts feat: refresh MiniMax model and endpoint configuration (#2780) 2026-08-11 18:11:47 +00:00
switch-repo-url.test.tsx fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
test-setup-storage.test.ts feat(i18n): make web and CLI language-aware (#1748) 2026-05-23 06:14:24 +01:00
tsconfig-react.test.ts chore: compile first-party packages with TypeScript 7 (#3311) 2026-09-17 22:16:00 +01:00
update-banner.test.tsx feat: notify users when a newer gitnexus version is available (#3175) 2026-09-04 18:50:03 +01:00
url-restore.test.ts fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
use-auto-scroll.test.tsx fix(extractors): resolve 3 silent contract mis-resolution bugs (#793) (#817) 2026-04-14 08:03:02 +01:00
utils.test.ts ci: E2E workflow, web typecheck job, pre-commit hook, test suite (#486) 2026-03-24 06:01:08 +00:00