Skip to main content

What your install analyses

"Does ArchGraph support Kotlin?" has no single answer, because three independent things decide what you get and each fails differently.

LayerDecidesWhen it fails
Parsewhether functions, classes and files appear at allthe language is missing from the graph, and the report names it
Resolvewhether a call edge is compiler-verified or name-matchededges still appear, from the heuristic, and the report says why
Analysewhether you get control flow, data flow and inter-procedural taintthose node and edge types are absent

A language can parse perfectly, resolve heuristically, and have no deep analysis at all — the three answers are independent, and a support matrix that collapses them into one column will be wrong about something. Which languages sit where is in the linked document, where a test checks it against the code; this page deliberately carries no count of its own, because a number here is the part that rots first.

The per-build answer — pinned indexer versions, what each one needs from your repository, which deep engines the published image carries, and how to read every field of the extraction report:

docs/CAPABILITIES.md in archgraph-api

Every enumeration in that document is checked against the code by a test: the language table against the grammar registry, the version block against the Dockerfile's pins, the report vocabularies against the values the code can emit. It exists because three other documents described analyses the shipped image does not run, and read as true for months.

Why an empty answer is not an answer

The failure this whole area is prone to is a tool returning nothing and the reader taking that as a finding. Nothing found and nothing looked for are different, and ArchGraph reports which:

  • taint_paths empty — did the engine run and find no tainted flow, or was security labelling switched off? taint_engine distinguishes none from disabled.
  • An empty per-language status — did every indexer vanish, or did this incremental run simply have no changed files to look at? incremental answers it.
  • A missing language — is there no Kotlin in this repository, or is the Kotlin grammar not installed? unavailable_languages answers it.

Each of those pairs was one indistinguishable value until it was split.