Skip to content

Add VECTORA 0.1.0: repository indexing engine and knowledge-graph explorer - #1

Merged
shrenixcodes merged 8 commits into
mainfrom
feat/vectora
Nov 12, 2026
Merged

shrenixcodes merged 8 commits into
mainfrom
feat/vectora

Conversation

@shrenixcodes

Copy link
Copy Markdown
Owner

Summary

First version of VECTORA (0.1.0): a local engine that imports and indexes repositories into a persistent knowledge graph, and a web application that explores that graph in a 2D graph, a 3D atlas and a mind map with one shared selection.

The repository was empty before this branch, so this is the whole application.

What is in it

  • Monorepo (npm workspaces): apps/local-engine, apps/web, and packages graph-schema, language-adapters, repository-indexer, graph-engine, graph-layout, search, shared.
  • Indexing pipeline: discovery with ignore rules, syntax analysis, relationship resolution, execution flows, subsystem and concept organisation, validation. TypeScript/JavaScript use the TypeScript type checker; Python uses ast; Java, Go, Rust, C, C++ and C# use Tree-sitter.
  • Knowledge graph: 18 node types, 15 relationship types, each with evidence, extraction method and confidence. References that cannot be tied to a definition are reported as unresolved, never drawn.
  • Engine: Fastify on loopback, imports from GitHub, ZIP and local folders, SQLite persistence, incremental re-indexing, exports, sessions, settings, encrypted credentials.
  • Web application: landing, import, workspace with Overview, Mind Map, Graph Explorer, 3D Atlas, Dependency Explorer, Search (including questions answered with file and line citations), Documentation and Settings; inspector with original source; command palette; light and dark themes.
  • Sample repository in samples/sample-repo, labelled as a sample, used by tests and onboarding.
  • Documentation in docs/, plus PROJECT_STATUS.md, IMPLEMENTATION_CHECKLIST.md, DECISIONS.md and KNOWN_ISSUES.md.

Verification

Run on Windows 11, Node.js 24.14.1, Microsoft Edge.

Check Result
npm run typecheck no errors
npm run lint no errors
npm test 79 passed, 0 failed
Coverage (packages, engine, web logic) 83.6% lines, 65.5% branches
npm run build then npm run test:e2e 18 passed, 0 failed (desktop, tablet, mobile widths)
npm audit --omit=dev 0 vulnerabilities

Benchmarks (synthetic repositories, this machine): 1,000 files in 5.6 s, 5,000 in 22.3 s, 10,000 in 31.3 s at 995 MB peak. Details in docs/PERFORMANCE.md.

What a reviewer should know

  • Not verified: a real import from github.com (tests use a local stand-in for the API); the optional external narrative service against a real endpoint; rendering frame rates and memory over long sessions; macOS, Linux and browsers other than Edge.
  • Not built: desktop packaging. docs/ROADMAP.md holds the Tauri 2 plan only.
  • Known weak spot: changing one TypeScript file costs almost as much as a full index, because the compiler program is rebuilt.
  • Deviations from the suggested stack, each explained in DECISIONS.md: TypeScript pinned to 5.9 and Sigma to 3.x (the newest majors changed the APIs relied on); SQLite through the engine built into Node.js instead of an ORM; components written on Radix primitives rather than generated shadcn/ui components; GitHub repositories are downloaded as archives so git is never run.
  • Vendored binaries: six Tree-sitter grammar WASM files (about 11 MB, MIT) in packages/language-adapters/grammars, so installation runs no native build.
  • Licence review: one transitive dependency, webgl-constants, declares no licence in its metadata (docs/LICENSES.md).
  • Credential key is stored beside the database; see docs/SECURITY.md for what that does and does not protect against.
  • The full list of 35 limitations is in KNOWN_ISSUES.md.

How to try it

npm install
npm run build
npm start

Open http://localhost:4317, choose "Explore a repository", then "Index the sample repository".

🤖 Generated with Claude Code

shrenixcodes and others added 8 commits November 12, 2026 07:47
… pipeline

- npm workspaces, TypeScript strict config, ESLint/Prettier
- graph schema with validation and normalisation
- TypeScript (compiler API + checker), Python (ast) and Tree-sitter adapters
- repository scanner, manifest readers, relationship resolver
- subsystem/concept organisation, execution flows
- graph engine: algorithms, SQLite store, exports, question explorer
- labelled sample repository for tests and onboarding

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- Fastify API bound to loopback with host/origin checks and CSP
- GitHub (archive download via REST), ZIP and local folder imports
- safe ZIP inspection/extraction with traversal, symlink and size limits
- encrypted credential storage, settings, sessions, data deletion
- question explorer endpoint with optional narrative provider adapter
- all data kept under the project folder by default

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
… views

- Kanso/Ma design system: tokens, light and dark themes, bundled typefaces
- landing, About, repository import (GitHub, ZIP, local folder, sample)
- workspace shell with shared selection, session restore and autosave
- 2D Graph Explorer (Sigma + Graphology), 3D Atlas (React Three Fiber,
  instanced nodes, worker layout), hierarchical Mind Map (React Flow + dagre)
- inspector with CodeMirror source preview and evidence per relationship
- command palette, search, question exploration, dependency explorer,
  documentation, settings, exports
- dev and engine build scripts

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- 79 tests: scanning, extraction per language, resolution, validation,
  clustering, incremental indexing, algorithms, search, persistence,
  exports, question exploration, layout, engine API, ZIP/GitHub/local import,
  archive and path safety, credential handling, design tokens, UI
- search: a path query ranks the file above its symbols
- warning colour darkened to meet WCAG AA on all surfaces
- engine: app shell served uncached, static assets resolved dynamically

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- 18 Playwright journeys against the production bundle at desktop, tablet
  and mobile widths (installed Edge, engine started without a shell)
- command palette: Enter opens the first result when results load late
- 3D Atlas: scene stays mounted while a new layout is computed; context
  loss from teardown is no longer reported as a failure
- mind map: expanded branches stay in view; nodes remain keyboard reachable
- reduced motion: system preference now overrides the motion tokens
- shell-independent build script; production engine bundle

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
- benchmarks for 1,000 / 5,000 / 10,000 files and a 50k-symbol graph,
  results in docs/benchmarks/latest.json
- unchanged-repository fast path; row-id graph tables with migration and
  multi-row inserts
- @fastify/static upgraded for a security advisory; npm audit is clean
- dependency licence inventory, MIT licence
- full documentation set, README, status, checklist, decisions, known issues
- code base formatted with Prettier

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…us view

- README rebuilt around eight screenshots and an animated tour, all captured
  from the production build on the sample repository by scripts/screenshots.ts
- three-step quick start and import directions
- CI workflow on Windows: type check, lint, tests, build, dependency audit
- pull request template
- 3D Atlas: focusing a node keeps more distance and views it from the side;
  the navigation hint no longer overlaps the breadcrumb

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
samples/sample-repo/ignored/skip.ts is excluded by the sample's own
.gitignore on purpose, so it was never added and the scan test failed
on a clean checkout. It is now tracked explicitly.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@shrenixcodes
shrenixcodes merged commit d7ca03c into main Nov 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant