* fix: per-tier master-key retrievers for mixed-cipher profiles
* feat: add CountEntries to skip decryption for list --detail (#549) * test: add CountEntries and countCategory tests at browser level * fix: address review feedback on CountRows and countLocalStorage * test: add CountRows unit tests
* fix: share key retriever across all browsers to avoid repeated password prompts
* refactor: naming cleanup across all packages
* feat: migrate CLI to cobra with dump/list/version subcommands (#546) * fix: remove residual duckduckgo references and add README/LICENSE to release archives * fix: address PR review feedback from Copilot
* chore: update golangci-lint config and fix lint issues
* refactor: remove V1 dead code and rename V2 files - Delete extractor/ package (V1 Extractor interface and registry) - Delete browserdata/ package (V1 orchestrator, outputter, 9 sub-packages) - Delete V1 browser implementations (chromium.go, chromium_{platform}.go, firefox.go) - Delete types/types.go (V1 DataType enum) and utils/byteutil/ - Remove gocsv and go-sqlmock dependencies, demote x/text to indirect - Upgrade keychainbreaker v0.1.0 → v0.2.5 - Rename chromium_new.go → chromium.go, firefox_new.go → firefox.go * refactor: remove unused V1 utility functions Remove functions no longer called by V2 code: - fileutil: IsDirExists, CopyDir, BrowserName, ReadFile, CopyFile, Filename, ParentDir, ParentBaseDir, BaseDir - typeutil: Keys, IntToBool