Releases: dotcommander/repomap
v0.11.0 — commit auto + preflight-derived mode detection
v0.10.0
Full Changelog: v0.9.0...v0.10.0
v0.9.0
Full Changelog: v0.8.0...v0.9.0
v0.8.0 — PHP parity with Go
PHP parity with Go
PHP files now render at the same fidelity as Go: full signatures with visibility, types, and defaults; class headers with extends / implements; properties and constants visible; PHPDoc first sentences inlined.
What's new
- Tree-sitter PHP parser replacing the regex fallback. Covers PHP 8.x: classes, interfaces, traits, enums (with backings and cases), functions, methods, properties, constants, namespaces.
- Visibility-in-signature —
public function foo(): string,private readonly LoggerInterface $logger. - Constructor property promotion extracted as real properties — byte-identical signatures to non-promoted declarations.
- PHPDoc extraction — first sentence rendered as subtitle; @-tags stripped. No
[doc: n/a]noise on PHP files. - Kind-weighted ordering — class/interface first, then trait, enum, function, method, case, property, const.
Before / after
On LLPhant's src/Chat/OpenAIChat.php:
# v0.7.0
src/Chat/OpenAIChat.php [untested] [doc: n/a]
func __construct
func generateText
type OpenAIChat
# v0.8.0
src/Chat/OpenAIChat.php [untested]
class OpenAIChat implements ChatInterface [440L]
public function __construct(OpenAIConfig $config = new OpenAIConfig(), private readonly LoggerInterface $logger = new NullLogger())
public function generateText(string $prompt): string
public ?FunctionInfo $lastFunctionCalled = null
Symbol count on the same 149-file LLPhant codebase: 968 → 1398 (+44%) within the same 2048-token budget.
Verified
444 tests passing, build/vet clean.
Install: go install github.com/dotcommander/repomap/cmd/repomap@v0.8.0
v0.7.0 — LLM-first output quality
LLM-first output quality
- Full typed Go signatures with named params and return types (no 40-char truncation)
- Typed struct fields
{Name string, ID int}instead of bare names - Leading godoc sentence inlined after each exported symbol
[doc: n/a]tag on exported symbols in non-Go languages- Kind-weighted symbol ordering: structs/interfaces/types before funcs/methods/const/var
New
-f compactformat: lean orientation mode showing file paths + top N symbol names. Use for first-pass codebase scans; default format for deep reasoning.- JSON schema envelope:
--jsonnow emits{schema_version: 1, lines: [...]}. Use--json-legacyfor bare-array output.
Fixed
- All-or-nothing per-file budget invariant: files never truncate mid-symbol. Fallback chain: full (level 2) → summary (level 1) → omit.
- 5
nilerrbugs wherereturn nilsilently swallowed non-nil errors (inventory_scan × 3, init × 1, gitstate × 1) - 3
pw.Close()error drops in calls.go (potential reader goroutine hang)
Breaking
- Default JSON output format changed from bare
[...]to{schema_version:1, lines:[...]}. Consumers should parse.lines. Use--json-legacyfor bare-array compatibility. - Default non-JSON output is richer (signatures, docs, typed fields). If you want the old terse output, use
-f compact.
v0.6.0
v0.6.0
Symbol Blocklist
.repomap.yaml now supports glob and regex patterns applied at parse-time to filter unwanted symbols from output. Useful for stripping generated code, test helpers, or internal scaffolding from the map.
Incremental SHA Indexing
Files are indexed by git object SHA; unchanged files are skipped on subsequent runs. A full rebuild fires only when >30% of files change. Cache format bumped from v5 to v6.
repomap init
New subcommand that scaffolds .repomap.yaml with sensible defaults and installs a post-commit hook to keep the cache warm automatically after each commit.
repomap find <query>
Symbol search with kind: and file: qualifiers (e.g. repomap find ParseGoFile kind:func). Also exposed as Map.FindSymbol(name, kind, file) for programmatic use.
v0.5.0 — LLM-Signal Upgrade
v0.5.0 — LLM-Signal Upgrade
repomap exists to feed LLMs a token-budgeted map of a codebase. v0.5.0 sharpens that signal in three ways.
Features
Doc-comment subtitles (28f608f)
Every Go symbol in -f detail, -f verbose, or -f xml output now carries a one-line subtitle extracted from its doc comment. The conventional FuncName does X prefix is stripped, output truncated to 60 runes, noise filtered out. LLMs learn the why of a symbol without a follow-up Read. Compact mode is unchanged — subtitles would defeat its token density.
Unexported symbol fallback (bcc6603)
Packages whose work lives in runX/handleY-style unexported functions used to render empty. They now fall back to surfacing unexported functions and methods whose bodies span ≥5 lines. The fallback fires only when zero exported symbols were found — export-rich files are unchanged. Fallback symbols set Exported=false, so applySymbolBonus correctly downweights them in the ranking.
Import boundary classification (0c80156)
Files importing net/http, pgx, redis, kafka-go, grpc, os/exec, or crypto/* now carry labels like [HTTP, Postgres] in the file-header of detail/verbose output and a boundaries="..." attribute in XML. A bounded score bump (+3 or +5 per category, capped at +15) floats boundary-crossing files up the ranking — they're almost always the right entry points for codebase exploration.
Cache
Cache format bumps from version 4 to 5. Existing caches rebuild once on first run post-upgrade. No user action required.
Compatibility
No CLI changes. No breaking API changes — Symbol.Doc and RankedFile.Boundaries are additive fields with omitempty JSON tags.
Credits
All three features derived from a comparison with ~/go/src/repoflow, re-scoped through an LLM-consumer lens. repomap output is consumed by language models, not humans — every feature in this release is designed to reduce LLM round-trips or pre-digest raw data into semantic signal.
v0.4.0
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's New
Commit Analyzer Subsystem
This release introduces the commit analyzer — a new subsystem that powers the repomap commit analyze command.
Visibility-aware secret scanning (commit_secrets.go)
- PII and secret detection with per-finding classification: FLAG, REVIEW, or SAFE
defaultActiondriven by remote visibility: public repos auto-fix flags, private repos surface for review- Regex-based scanners for credentials, tokens, PII, dev-history artifacts, and path leaks
Git state collection (commit_gitstate.go)
- Collects staged/unstaged/untracked counts, recent commit history, remote URL, and GitHub slug
strings.Cut-based SSH and HTTPS URL parsing forgithubSlug
Shared types (commit_types.go)
RemoteInfo,SecretsResult,FindingClass,FindingKind, and related structs used across the subsystem
Integration tests (commit_analyze_test.go)
- End-to-end tests covering secret detection, visibility-gated actions, group classification, and churn analysis
- All tests parallelized with
testing.Short()gate
v0.2.1 — commit subsystem polish
Fixes
- Reorder declaration in `clusterReasons` so `var out` sits next to the loop that populates it
- Clarify `parseSymbolsFromSource` Go branch with a comment explaining why Go is absent from `langParsers` (uses AST)
Deps
- Bump `spf13/pflag` to v1.0.10
Refactors
- Apply simplify-audit findings across the commit subsystem (internal cleanup; no behavior change)
Cumulative since v0.2.0: `c2d4b09..122354f`.