Andy Dixon 1c93df022d Expire idle snapshots and abandoned jobs, cap snapshot count
A background sweep every minute drops snapshots unused for an hour,
finished jobs, and uploads never committed, deleting their workspaces.
At most 8 snapshots are held; the least recently used is evicted.
2026-02-21 09:37:43 +00:00
2026-01-24 14:08:43 +00:00
2026-02-01 21:48:24 +00:00
2026-02-01 21:48:24 +00:00
2026-01-24 14:08:43 +00:00
2026-02-01 21:48:24 +00:00

CodeNavigator

A single binary that serves the WebGL frontend and the indexing API (jobs, SSE progress, snapshots, search, source) on one origin. No dependencies beyond the Go standard library.

go run .                 # http://127.0.0.1:4177
go test -race ./...
go test -run x -bench Index   # indexes $CODENAV_BENCH_DIR (default: Go's stdlib source)
./build.sh [tag]         # Docker image, tests run during the build
docker run --rm -p 4177:4177 codenavigator:latest

Configuration: PORT (default 4177, or --port), CORS_ORIGIN (default *). git must be on PATH to load GitHub repositories (the image includes it).

The browser frontend in web/ is plain JavaScript (it has to run in the browser) and is embedded into the binary; web/config.js points it at the same origin.

Notes:

  • GET / serves the frontend instead of a JSON service description.
  • Search queries are percent-decoded properly.
  • .gitignore support covers standard globs but not global excludes or .git/info/exclude.
S
Description
See your code as a city: explore any GitHub repo as a 2D map, 3D landscape or walkable city. Single Go binary + WebGL2.
Readme GPL-3.0
7.6 MiB
Languages
JavaScript 64.8%
Go 21.2%
CSS 9.9%
HTML 3.9%
Dockerfile 0.1%