All notable changes to DewDrops will be documented in this file.
The format is based on Keep a Changelog.
--mapextension filtering:--mapnow accepts an optional value to control which files appear in the map output.--map(no value) includes only files with supported signature patterns.--map=go,pyincludes only specific extensions.--map=anyincludes all text files (previous default behavior).--versionflag: Prints the current version. Version injected via goreleaser ldflags at release time; local builds showdev.- PHP signature test: Verifies indented class methods are captured.
- 3 new tests for map extension filtering, 1 new test for PHP signatures.
- PHP, Java/Kotlin, Ruby, JS/TS, Rust signature extraction: Changed regex patterns from
^(column 0 only) to^\s*so indented class/impl methods are captured. Previously only top-level class declarations matched; all methods inside classes were missed.
- Multi-file layout: Refactored from single
main.go(~1,100 lines) into 7 focused files:main.go,run.go,git.go,tree.go,signatures.go,writers.go,util.go. No behavioral changes. - Unified tree renderer: Replaced
treeNode.modTime/treeLine.modTimefield overloading with explicitannotation+showTokensfields. DeletedformatSinceTreeOutput, unified into singleformatTreeOutput. displayWidthnow usesutf8.RuneCountInString(idiomatic Go).- Git stderr suppressed: All
exec.Command("git", ...)calls now setcmd.Stderr = nilto prevent git warnings leaking to the user's terminal. - Scanning message now prints to stderr (Unix convention: diagnostics to stderr).
- Oversize warning extracted into
checkOutputSize()helper (was duplicated inline). - Default
--map(no value) now excludes config/data files (.yaml, .json, .toml, .env, .gitignore) whose fallback signatures (first 3 lines) are noise.
--since <ref>flag: Diff-aware serialization that produces a composite output (map + diff + full content) for files changed between a git ref and HEAD. Accepts branch names, tags, commit hashes, or relative refs likeHEAD~3. Auto-names output asdewdrops_since_<ref>.md.-o <path>flag: Custom output file path for all modes.- Oversize output warning: Warns on stderr when output exceeds ~100K estimated tokens, suggesting
--map+--from. - Markdown heading signatures:
.mdfiles now extract#-headings as signatures instead of falling back to first 3 lines. - Tests for all new features (15
--sincetests, 2-otests, 2 oversize warning tests, 2 batch mod-time tests, 1 markdown signature test).
- Pre-compiled signature regexes: All regex patterns moved to package-level vars, compiled once at init instead of per-file.
- Batched git mod-time lookups:
--mapnow runs git mod-time lookups concurrently (16 goroutines) instead of sequentially. - Fenced tree block:
--maptree output is now wrapped in a```textfenced code block for reliable copy-paste into LLM chats. --sinceis mutually exclusive with--mapand--from.
--mapflag: Produces a lightweight structural overview of the repository instead of a full file dump. Includes:- Hierarchical tree view with per-file and per-directory token estimates
- Git last-modified annotations (
[mod: 2 days ago]) - Regex-based signature extraction for Go, Python, JS/TS, Rust, Java/Kotlin, Ruby, PHP, C/C++, SQL, and Shell, with a fallback (first 3 lines) for unknown file types
- Dedicated map summary (files scanned, signatures extracted, estimated tokens)
--from <paths>flag: Serializes only the specified files or directories instead of the entire repo. Accepts comma-separated relative paths. Supports both individual files and directories.--map --fromcombination: Produces a scoped structural map for a subset of the repository.- Updated
-h/--helpoutput with new flags, descriptions, and usage examples. - 15 new test cases covering
--map,--from, their combination, and regression of default behavior.
Run()now accepts aRunOptionsstruct instead of a plain output file string, allowing future extensibility.- Gitignore loading extracted into
loadGitignore()helper. - File filtering extracted into
applyFromFilter()helper.
- Initial release.
- Full repository serialization into a single Markdown file (
dewdrops_context.md). - Tree view of repository structure.
- Syntax-highlighted fenced code blocks per file.
.gitignoresupport viago-gitlibrary.- Binary file detection and skipping.
- CLI dump summary (files processed, depth, size, file types).