GitNexus/gitnexus-web/test/unit
mengkaka 4154b63131
feat(indexing): add Objective-C semantic indexing support (#3179)
* docs: add Objective-C fork provider notes

* feat(objective-c): add deterministic provider and grammar

* feat(objective-c): finalize provider MVP

* fix(objective-c): harden provider integration

* fix(objective-c): normalize bare macro markers

* docs(objective-c): integrate provider documentation

* fix(objective-c): harden resolution and header classification

* fix(objective-c): complete provider follow-ups

* fix: address Objective-C review follow-ups

* chore: format Objective-C grammar sources

* fix(objective-c): harden review follow-ups

* Address PR review feedback (#3179)

Keep Objective-C chunking and macro recovery aligned with the grammar, and stop Community MEMBER_OF edges from leaking into symbol context.

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

* Address follow-up review on ObjC chunking and language fallback.

Keep preprocessor directive text from changing file-scope brace depth, group real ivar nodes, skip header modifiers, and restore Rakefile/Gemfile detection through getLanguageFromFilename.

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

* Parse Objective-C headers with the objc grammar in embeddings.

ensureAndParse and structural extraction now use the same content classifier as ingest, including method snippets from .h files, so Protocol/Category/Class chunks are not re-parsed as C++.

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

* Address PR review feedback (#3179)

Keep file-scope macro elision off C line splices and @interface/@protocol/@implementation bodies, and attach ivar attributes to the following instance variable when chunking.

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

* chore(bench): rebaseline Objective-C CSV emit

* feat(objective-c): add workspace resolution and linear emit benches

Plain .h files are classified as C++, so the ObjC pass could not
resolve #import of those headers. Load a C/C#-style workspace once
per pass, and keep protocol-candidate USES linear.

Refs #3179

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

* Address PR review feedback (#3179)

- Compare LadybugDB labels() as a scalar when excluding Community MEMBER_OF edges.
- Walk superclass members, skip file-static C sibling defs, and ignore comments in ObjC header/macro scans.

Note: pre-existing failure in objective-c-provider integration (worker-pool ready timeout) not addressed by this PR.
Co-authored-by: Cursor <cursoragent@cursor.com>

* Address PR review feedback (#3179)

Emit Objective-C declaration captures so compilation-unit siblings can share
header/implementation bindings, and keep class vs protocol visibility groups
distinct.

Note: pre-existing failure in worker-pool startup (GITNEXUS_WORKER_READY_TIMEOUT_MS) not addressed by this PR.
Co-authored-by: Cursor <cursoragent@cursor.com>

* Address PR review feedback (#3179)

Emit every comma-separated property/ivar declarator, and count @interface
after a multiline block comment closes so in-declaration macros stay intact.

Note: pre-existing failure in worker-pool startup (GITNEXUS_WORKER_READY_TIMEOUT_MS) not addressed by this PR.
Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: ximengkai <ximengkai@soyoung.com>
Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-09 09:40:21 +00: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 fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01: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-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
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