Description
Terraform/HCL indexing regressed to file-level only. On 3.17.0 (native and wasm) stats counts the .tf files and brief <file.tf> works, but no HCL symbol is extracted: variable, locals entries, resource, data and output blocks are all unaddressable with where/context/fn-impact, and roles --role dead -T returns zero Terraform symbols. Earlier builds did extract them: optave/core-orchestrator-svc/.codegraph/basics.md, written against a 2026-08-09 build, records 592 Terraform symbols in the dead list (with the separate, already-documented caveat that <resource>.<name>.<attribute> references were not wired). So the symbol extractor for HCL went from "definitions indexed, references missing" to "nothing indexed".
Observed while validating an infrastructure change (interface VPC endpoint, IAM policy document, six variables across two Terraform roots) in optave/core-orchestrator-svc: codegraph contributed nothing to the Terraform review because none of the new symbols existed in the graph, in either root.
Additionally, the locally installed 3.9.4-dev.8 native engine indexes 0 of the 75 .tf files (Files: 327 (3 languages)), while --engine wasm on the same version indexes all 75. 3.17.0 native indexes the files again, so that part is already fixed; the missing symbols are not.
Steps to Reproduce
On optave/core-orchestrator-svc at commit ca32aee92 (branch claude/opus-sonnet-orchestration-94be94), or any repo with Terraform:
npx -y @optave/codegraph@3.17.0 build --no-incremental
npx -y @optave/codegraph@3.17.0 stats | grep -E 'Files|hcl'
npx -y @optave/codegraph@3.17.0 where data_plane_read_api_id # variable "data_plane_read_api_id" in infra/terraform/module-oco/variables.tf (83 variable blocks in that file)
npx -y @optave/codegraph@3.17.0 where data_plane_environment # entry in locals { } in infra/terraform/module-oco/locals.tf
npx -y @optave/codegraph@3.17.0 where workflow_steps_library # locals entry
npx -y @optave/codegraph@3.17.0 where execute_api # resource "aws_vpc_endpoint" "execute_api" in infra/terraform/module-oco/network_vpce-execute-api.tf
npx -y @optave/codegraph@3.17.0 where aws_vpc_endpoint.execute_api
npx -y @optave/codegraph@3.17.0 where data_plane_read_invoke # data "aws_iam_policy_document" "data_plane_read_invoke" in infra/terraform/module-oco/lambda.tf
npx -y @optave/codegraph@3.17.0 roles --role dead -T | grep -c infra/terraform
npx -y @optave/codegraph@3.17.0 brief infra/terraform/module-oco/network_vpce-execute-api.tf
Expected Behavior
where data_plane_read_api_id resolves to the variable blocks in infra/terraform/module-oco/variables.tf, infra/terraform/stacks/owo/variables.tf and root infra/terraform/variables.tf.
resource, data, output and locals entries are addressable symbols (execute_api, data_plane_read_invoke, data_plane_vpce_id, data_plane_environment, workflow_steps_library).
roles classifies Terraform symbols again (the 2026-08-09 baseline listed 592 of them), and brief on a .tf file lists its symbols rather than only a risk tier.
Actual Behavior
stats: Files: 402 (4 languages) javascript 291 hcl 75 typescript 25 bash 11
where data_plane_read_api_id No symbol matching "data_plane_read_api_id" in graph
where data_plane_environment No symbol matching "data_plane_environment" in graph
where workflow_steps_library No symbol matching "workflow_steps_library" in graph
where execute_api No symbol matching "execute_api" in graph
where aws_vpc_endpoint.execute_api No symbol matching "aws_vpc_endpoint.execute_api" in graph
where data_plane_read_invoke No symbol matching "data_plane_read_invoke" in graph
roles --role dead -T | grep -c infra/terraform -> 0
brief infra/terraform/module-oco/network_vpce-execute-api.tf -> "[LOW RISK]" and no symbols
On 3.9.4-dev.8 (native): Files: 327 (3 languages), no hcl row at all; deps infra/terraform/main.tf -> No file matching ... in graph. Same version with --engine wasm: 403 files, hcl 75, but still no HCL symbols.
Codegraph Version
3.17.0 (npx -y @optave/codegraph@3.17.0), plus 3.9.4-dev.8 for the file-count regression noted above.
Node.js Version
v22.18.0
Operating System
Windows 11 Pro 10.0.26200 (x64), Git Bash shell
Parser Engine
native (Active engine : native (v3.17.0)); the missing-symbol behaviour also reproduces with --engine wasm.
Additional Context
- The repo has 73 to 75
.tf files across three Terraform roots (infra/terraform, infra/terraform/module-oco, infra/terraform/stacks/owo), so it is a convenient regression fixture; the two roots are kept in sync by hand and where <name> returning both definitions is the main thing a reviewer wants from the tool there.
- Related JavaScript caller-resolution findings from the same validation pass are filed separately.
Description
Terraform/HCL indexing regressed to file-level only. On 3.17.0 (native and wasm)
statscounts the.tffiles andbrief <file.tf>works, but no HCL symbol is extracted:variable,localsentries,resource,dataandoutputblocks are all unaddressable withwhere/context/fn-impact, androles --role dead -Treturns zero Terraform symbols. Earlier builds did extract them:optave/core-orchestrator-svc/.codegraph/basics.md, written against a 2026-08-09 build, records 592 Terraform symbols in the dead list (with the separate, already-documented caveat that<resource>.<name>.<attribute>references were not wired). So the symbol extractor for HCL went from "definitions indexed, references missing" to "nothing indexed".Observed while validating an infrastructure change (interface VPC endpoint, IAM policy document, six variables across two Terraform roots) in
optave/core-orchestrator-svc: codegraph contributed nothing to the Terraform review because none of the new symbols existed in the graph, in either root.Additionally, the locally installed 3.9.4-dev.8 native engine indexes 0 of the 75
.tffiles (Files: 327 (3 languages)), while--engine wasmon the same version indexes all 75. 3.17.0 native indexes the files again, so that part is already fixed; the missing symbols are not.Steps to Reproduce
On
optave/core-orchestrator-svcat commitca32aee92(branchclaude/opus-sonnet-orchestration-94be94), or any repo with Terraform:Expected Behavior
where data_plane_read_api_idresolves to thevariableblocks ininfra/terraform/module-oco/variables.tf,infra/terraform/stacks/owo/variables.tfand rootinfra/terraform/variables.tf.resource,data,outputandlocalsentries are addressable symbols (execute_api,data_plane_read_invoke,data_plane_vpce_id,data_plane_environment,workflow_steps_library).rolesclassifies Terraform symbols again (the 2026-08-09 baseline listed 592 of them), andbriefon a.tffile lists its symbols rather than only a risk tier.Actual Behavior
On 3.9.4-dev.8 (native):
Files: 327 (3 languages), nohclrow at all;deps infra/terraform/main.tf->No file matching ... in graph. Same version with--engine wasm: 403 files,hcl 75, but still no HCL symbols.Codegraph Version
3.17.0 (
npx -y @optave/codegraph@3.17.0), plus 3.9.4-dev.8 for the file-count regression noted above.Node.js Version
v22.18.0
Operating System
Windows 11 Pro 10.0.26200 (x64), Git Bash shell
Parser Engine
native (
Active engine : native (v3.17.0)); the missing-symbol behaviour also reproduces with--engine wasm.Additional Context
.tffiles across three Terraform roots (infra/terraform,infra/terraform/module-oco,infra/terraform/stacks/owo), so it is a convenient regression fixture; the two roots are kept in sync by hand andwhere <name>returning both definitions is the main thing a reviewer wants from the tool there.