v1.0.216
✨ New: Naming-style-tolerant search + opt-in string-literal indexing
searchIndex now folds case and word separators on both the query and the indexed names, so naming-style variants of the same concept all collide on one query:
cockpit codegraph search build_code_index # finds buildCodeIndex
cockpit codegraph search BUILD-CODE-INDEX # same result
cockpit codegraph search build_code_index # also same
Strict matches still rank first; the change only adds more — fully backward compatible. Useful when you don't remember if the codebase uses snake_case, camelCase, kebab-case or SCREAMING_CASE for a given concept.
?includeLiterals=true — surface names that only exist as string literals
Symbol-only search used to be blind to names that never appear as identifiers — tool registrations, event names, config keys, route paths. With the new opt-in flag:
cockpit codegraph search 'agent.fork' --include-literals # finds it in registry literals
GET /api/projectGraph/search?q=agent.fork&includeLiterals=true
Identifier-shaped literals (length 3-64, shape-filtered to skip SQL / JSX / prose) are harvested at index time and stored alongside symbols. The flag is off by default so Cmd+K palette responses stay lean; flip it on when you're hunting a name you can't grep because it's hiding in source as a string.
Per-file cap is 500 literals, scan cost is O(log n) per hit (offset table + binary search for line numbers), language-agnostic regex — no parser plugins needed.
📚 Docs
cockpit codegraph search --help and the /cg slash command prompt both mention the new flag with an inline example.