Repository navigation
Releases: Yemresalcan/Mr-ducksafe
Release list
v0.1.3
mr-ducksafe v0.1.3
NVD CVE scanner for the software installed on Windows — a single binary, straight from the terminal.
525 CVEs → 14 action items: plain-language risk, a fix command for every finding.
Quick start (Windows): download mr-ducksafe_0.1.3_Windows_x86_64.zip below, unzip, then run:
.\mr-ducksafe.exe scanOr with Go 1.25+: go install github.com/yemresalcan/mr-ducksafe/cmd/mr-ducksafe@v0.1.3
The scanner currently reads the Windows Registry only. Linux/macOS binaries are published for
CI/tooling use, butscanreports "unsupported OS" there until v0.2.
Changelog
Features
- c2135ab: feat(cli): MR.DUCKSAFE welcome screen on first run; fix untranslated progress (@Yemresalcan)
Other
- 7a11348: media: generic thumbnail claim (100s of CVEs → a few actions) (@Yemresalcan)
- 0207b5d: site: point downloads at v0.1.2; bump embedded dev version info (@Yemresalcan)
SHA256 checksums are in checksums.txt. An SBOM (CycloneDX, *.sbom.json) is published for every archive.
Free NVD API key for ~10x faster scans: https://nvd.nist.gov/developers/request-an-api-key
v0.1.2
mr-ducksafe v0.1.2
NVD CVE scanner for the software installed on Windows — a single binary, straight from the terminal.
525 CVEs → 14 action items: plain-language risk, a fix command for every finding.
Quick start (Windows): download mr-ducksafe_0.1.2_Windows_x86_64.zip below, unzip, then run:
.\mr-ducksafe.exe scanOr with Go 1.25+: go install github.com/yemresalcan/mr-ducksafe/cmd/mr-ducksafe@v0.1.2
The scanner currently reads the Windows Registry only. Linux/macOS binaries are published for
CI/tooling use, butscanreports "unsupported OS" there until v0.2.
Changelog
Features
- 229b343: feat(i18n): English/Turkish output, chosen on first run (@Yemresalcan)
Other
- d827522: docs/site: present 525 → 14 as a sample scan, not a general claim (@Yemresalcan)
- d48daf5: site: point downloads at v0.1.1 (@Yemresalcan)
SHA256 checksums are in checksums.txt. An SBOM (CycloneDX, *.sbom.json) is published for every archive.
Free NVD API key for ~10x faster scans: https://nvd.nist.gov/developers/request-an-api-key
v0.1.1
mr-ducksafe v0.1.1
NVD CVE scanner for the software installed on Windows — a single binary, straight from the terminal.
525 CVEs → 14 action items: plain-language risk, a fix command for every finding.
Quick start (Windows): download mr-ducksafe_0.1.1_Windows_x86_64.zip below, unzip, then run:
.\mr-ducksafe.exe scanOr with Go 1.25+: go install github.com/yemresalcan/mr-ducksafe/cmd/mr-ducksafe@v0.1.1
The scanner currently reads the Windows Registry only. Linux/macOS binaries are published for
CI/tooling use, butscanreports "unsupported OS" there until v0.2.
Changelog
Features
- f6896cc: feat(windows): app icon, version info and double-click support (@Yemresalcan)
Other
- 703dea8: site: compact centered nav pill once the page scrolls (@Yemresalcan)
- 70285fb: site: landing page for ducksafe.yesoftware.dev (@Yemresalcan)
- cbc70e7: site: logos in the supported-apps strip (@Yemresalcan)
- d4cef3a: site: new layout with framed panels and stacked product cards, TR/EN (@Yemresalcan)
- 4a60c46: site: open in English by default, add a yellow cursor glow (@Yemresalcan)
- 3eb04cc: site: sticky nav, video right after the hero, wrap long commands (@Yemresalcan)
SHA256 checksums are in checksums.txt. An SBOM (CycloneDX, *.sbom.json) is published for every archive.
Free NVD API key for ~10x faster scans: https://nvd.nist.gov/developers/request-an-api-key
v0.1.0
mr-ducksafe v0.1.0
NVD CVE scanner for the software installed on Windows — a single binary, straight from the terminal.
525 CVEs → 14 action items: plain-language risk, a fix command for every finding.
Quick start (Windows): download mr-ducksafe_0.1.0_Windows_x86_64.zip below, unzip, then run:
.\mr-ducksafe.exe scanOr with Go 1.25+: go install github.com/yemresalcan/mr-ducksafe/cmd/mr-ducksafe@v0.1.0
The scanner currently reads the Windows Registry only. Linux/macOS binaries are published for
CI/tooling use, butscanreports "unsupported OS" there until v0.2.
Changelog
Features
- c89f772: feat(advice): rule-based plain-language risk explanations (Level A) (Yemresalcan yunusemresalcan@gmail.com)
- b7e78e5: feat(cli): cobra root with version subcommand and global flags (Yemresalcan yunusemresalcan@gmail.com)
- f2e9199: feat(cli): history command listing past scans from local DB (Yemresalcan yunusemresalcan@gmail.com)
- 195c956: feat(cli): prune command and store.PruneOlderThan for cleaning old scans (Yemresalcan yunusemresalcan@gmail.com)
- 8dafaf1: feat(cli): scan --details and --app flags for drill-down (Yemresalcan yunusemresalcan@gmail.com)
- 06ba61e: feat(cli): scan --output FILE and global --no-color flag (Yemresalcan yunusemresalcan@gmail.com)
- 3720ec9: feat(cli): scan command wiring full pipeline (OSV source, refined to NVD next) (Yemresalcan yunusemresalcan@gmail.com)
- 6554707: feat(demo): add demo GIF and scan history files for improved visuals (Yemresalcan yunusemresalcan@gmail.com)
- 1e8d37f: feat(matcher): YAML mapping loader with 10 initial entries (Yemresalcan yunusemresalcan@gmail.com)
- 334130c: feat(matcher): define Matcher interface, Identifier and Confidence types (Yemresalcan yunusemresalcan@gmail.com)
- ead2122: feat(matcher): expand curated mapping list to 50 popular Windows apps (Yemresalcan yunusemresalcan@gmail.com)
- 9eaffeb: feat(matcher): remediation fields (winget_id, update_url) flowing to ScanResult (Yemresalcan yunusemresalcan@gmail.com)
- 5c8c3d3: feat(matcher): version normalization for semver, fourpart, calver schemes (Yemresalcan yunusemresalcan@gmail.com)
- 049f41a: feat(matcher): version_from_name to extract marketing version from DisplayName (Yemresalcan yunusemresalcan@gmail.com)
- ef571ff: feat(nvd): add NVD CPE provider with client-side version-range matching (Yemresalcan yunusemresalcan@gmail.com)
- df9736c: feat(osv): HTTP client with retry, backoff, and CVSS severity parsing (Yemresalcan yunusemresalcan@gmail.com)
- f791123: feat(osv): define Client interface, Vulnerability and Severity types (Yemresalcan yunusemresalcan@gmail.com)
- 2ff063b: feat(osv): in-memory TTL cache wrapper for client (Yemresalcan yunusemresalcan@gmail.com)
- 22060af: feat(report): add JSON and Markdown formatters with golden file tests (Yemresalcan yunusemresalcan@gmail.com)
- 46f43d7: feat(report): grouped summary view (default) with risk advice and remediation (Yemresalcan yunusemresalcan@gmail.com)
- 0b2458b: feat(report): table formatter with severity colors and summary truncation (Yemresalcan yunusemresalcan@gmail.com)
- a621681: feat(scanengine): define ScanResult, ScanError and Progress types (Yemresalcan yunusemresalcan@gmail.com)
- 24a10b6: feat(scanengine): orchestrate scan -> match -> query -> persist with concurrency (Yemresalcan yunusemresalcan@gmail.com)
- 8266209: feat(scanner): define Scanner interface and InstalledApp type (Yemresalcan yunusemresalcan@gmail.com)
- a8f54e4: feat(scanner): implement Windows Registry scanner reading Uninstall keys (Yemresalcan yunusemresalcan@gmail.com)
- 5c3ab6e: feat(server): HTTP server with dashboard, scans list and scan detail pages (Yemresalcan yunusemresalcan@gmail.com)
- 8fc0fca: feat(store): SQLite implementation with schema migration, save/get/cleanup (Yemresalcan yunusemresalcan@gmail.com)
- 12f20c3: feat(store): define Store interface, Scan and Finding types with SQL schema (Yemresalcan yunusemresalcan@gmail.com)
- 0af1eb9: feat(tui): startup banner and live stage-by-stage progress spinner (Yemresalcan yunusemresalcan@gmail.com)
Bug Fixes
- f795b6b: fix(scanengine): stop dispatching queries once the context is cancelled (Yemresalcan yunusemresalcan@gmail.com)
Build & Release
- e78250c: build(release): English release notes, ship README.tr.md in archives (Yemresalcan yunusemresalcan@gmail.com)
- a91dacb: build(release): goreleaser config and release workflow (Yemresalcan yunusemresalcan@gmail.com)
- 1e44036: build(release): replace notes of a release created in the GitHub UI (Yemresalcan yunusemresalcan@gmail.com)
- a5a9568: build: cross-platform release scripts for windows/linux/macos (Yemresalcan yunusemresalcan@gmail.com)
- efca7c7: chore: add MIT LICENSE (Yemresalcan yunusemresalcan@gmail.com)
- 3ab0277: chore: add golangci-lint config and GitHub Actions CI matrix (Yemresalcan yunusemresalcan@gmail.com)
- 614f230: chore: bootstrap project with module, gitignore, and skeleton main (Yemresalcan yunusemresalcan@gmail.com)
- e604b54: chore: remove web UI (serve command + internal/server package) (Yemresalcan yunusemresalcan@gmail.com)
- b60fab3: chore: untrack Python bytecode cache and ignore it (Yemresalcan yunusemresalcan@gmail.com)
- f05624e: ci(release): allow manual releases from the Actions tab (Yemresalcan yunusemresalcan@gmail.com)
- 1d94b67: ci: fix lint job — use go.mod toolchain and migrate to golangci-lint v2 (Yemresalcan yunusemresalcan@gmail.com)
- 9fa22e9: ci: upload coverage to Codecov from ubuntu matrix job (Yemresalcan yunusemresalcan@gmail.com)
Documentation
- 52db17c: docs: GitHub issue and PR templates (bug, feature, mapping) (Yemresalcan yunusemresalcan@gmail.com)
- 20f723d: docs: README polish — remove serve, add history/--output/--no-color, badges, MIT, install paths (Yemresalcan yunusemresalcan@gmail.com)
- c67e598: docs: add English README file and link to it from Turkish version (Yemresalcan yunusemresalcan@gmail.com)
- 6b218f6: docs: comprehensive README with usage, exit codes, privacy and contribution guide (Yemresalcan yunusemresalcan@gmail.com)
- 61185f6: docs: design for guided remediation + educational view (Level A) (Yemresalcan yunusemresalcan@gmail.com)
- 208fd69: docs: make English the default README (Yemresalcan yunusemresalcan@gmail.com)
- aeb50e2: docs: polish README with badges, real scan output, architecture, roadmap (Yemresalcan yunusemresalcan@gmail.com)
- dffb7d8: docs: promo videos, thumbnail and missing README sections (Yemresalcan yunusemresalcan@gmail.com)
- 935ee5e: docs: refine closing statement in README for clarity (Yemresalcan yunusemresalcan@gmail.com)
- 8eedca3: docs: spec for CLI-only pivot and CV-ready polish (Yemresalcan yunusemresalcan@gmail.com)
Other
- 3cec1ac: test(scanengine): integration test for Firefox known CVE end-to-end flow (Yemresalcan yunusemresalcan@gmail.com)
- 68515e9: test(server): smoke tests for dashboard, scans list, static and concurrency rule (Yemresalcan yunusemresalcan@gmail.com)
- 66390ec: video: Turkish voice-over pipeline and quieter, ducked music (Yemresalcan yunusemresalcan@gmail.com)
- 4515a1e: video: switch promo videos, Shorts and thumbnail to English with narration (Yemresalcan yunusemresalcan@gmail.com)
SHA256 checksums are in checksums.txt. An SBOM (CycloneDX, *.sbom.json) is published for every archive.
Free NVD API key for ~10x faster scans: https://nvd.nist.gov/developers/request-an-api-key