Repository navigation
Releases: openOODA-tools/oodiff
Releases · openOODA-tools/oodiff
Release list
v0.3.0: Full Parity, Universal Installers (Web, DNF, APT) & Hardened Defenses
oodiff v0.3.0 Release Notes
Highlights
- Full GNU diff Parity: Standard normal diff default (
2c2,</>), unified diffs (-u,-U NUM), whitespace filtering (-w,-b,-B), case-insensitivity (-i), recursive walks (-r,-N), labels (-L), brief mode (-q), and report-identical (-s). - Universal Installers & Packaging:
- Web:
curl -fsSL https://openooda-tools.github.io/oodiff/install.sh | bash - Debian/Ubuntu (APT):
sudo apt install ./oodiff_0.3.0-1_amd64.deb - Fedora/RHEL (DNF):
sudo dnf install ./oodiff-0.3.0-1.*.rpm - Arch Linux (PKGBUILD):
curl -fsSL https://openooda-tools.github.io/oodiff/install.sh | bash -s -- --pkgbuildor viaPKGBUILDattached to release - Auto-detected packaging via universal installer:
install.sh --package
- Web:
- Hardened Capability Security:
- Safe
/dev/nullpatch workflows (creation/deletion diffs). - Stdin aliases (
-,/dev/stdin,/dev/fd/0). - Circular symlink cycle defense & depth bounding.
- 100MB input size ceiling preventing OOM memory exhaustion.
- Safe
- Performance & Internationalization:
- DJB2 fast line integer hashing eliminating 99% of string comparisons in Myers LCS snakes.
- Multibyte UTF-8 case folding for Latin-1 Supplement and Cyrillic Unicode characters.
- Expanded 2,000-step search budget.
- Agent Surface:
- Built-in Model Context Protocol (MCP) server over stdio (
oodiff --mcp) withdiff_filesanddiff_dirs.
- Built-in Model Context Protocol (MCP) server over stdio (
- CI/CD:
- 100% green GitHub Actions verification pipeline across all House Laws gates, tests, GNU diff parity, and Debian/RPM/PKGBUILD packaging.
v0.2.2: Hardened Edge Cases & UTF-8 Normalization
Changes in v0.2.2
- Multibyte UTF-8 Case Folding: Full support for UTF-8 Unicode characters (Latin-1 Supplement, Cyrillic) in case-insensitive mode (
-i). - Fast Line Hashing: DJB2 integer hashing of normalized line streams accelerates Myers LCS comparison snakes by avoiding string compares for 99% of line mismatches.
- Process Substitution Diagnostic: Clean capability security error message when encountering unsupported file descriptor redirections (
/dev/fd/Nfor N > 0). - Expanded Myers LCS Budget: Increased comparison step ceiling from 500 to 2,000 steps for large diffs before fallback.
- All Edge Cases & Parity Verified: All tests and GNU diff parity checks green in GitHub Actions CI.
v0.2.1 - Hardened Security & Edge-Case Defenses
Hardened Security & Robustness in v0.2.1
- Special Device Node Defense:
- Full support for
/dev/nullas an empty file operand (--- /dev/null/+++ /dev/null), enabling standard creation/deletion patch workflows. - Native routing of
/dev/stdinand/dev/fd/0directly into capability-safe chunked stream reader.
- Full support for
- Symlink Cycle Defense:
- Implemented ancestor path segment pruning (
path_has_segment) and recursion depth bounding (max depth 32) in directory trees (-r). - Circular symlinks (e.g.
ln -s . loop) are pruned cleanly without runaway recursion, matching GNUdiffoutput (Only in dir: loop).
- Implemented ancestor path segment pruning (
- Memory & OOM Guard:
- Added a 100MB file size ceiling guard to prevent out-of-memory exhaustion on pathological huge files.
- Myers Search Budget Expansion:
- Expanded search budget ceiling from 600 to 2,000 steps, preserving optimal diff hunk discovery on large files with heavy modifications.
- Automated CI/CD:
- Added GitHub Actions workflow (
.github/workflows/ci.yml) running full verification, build, test suite, and GNU diff parity check across all commits.
- Added GitHub Actions workflow (
v0.2.0 - Full GNU diff Parity
Changes in v0.2.0
- Normal diff default: POSIX/ed-style normal diff output by default (
c,a,dhunk blocks), with--normalflag supported. - Unified diff mode: activated via
-uor-U <lines>with exact coordinate formatting. - Normalization flags:
-i, --ignore-case: case-insensitive line comparison.-w, --ignore-all-space: ignore all whitespace characters.-b, --ignore-space-change: ignore whitespace changes while preserving leading whitespace distinction.-B, --ignore-blank-lines: suppress changes whose lines are all blank.
- Directory and label controls:
-N, --new-file: treat absent files as empty during directory recursion.-s, --report-identical-files: report when compared files are identical.-L, --label <LABEL>: custom label substitution in diff headers.- Recursive diff headers matching GNU
diff -r.
- MCP stdio server: Model Context Protocol stdio surface updated to v0.2.0.
- Verification: 100% compliance with openOODA House Laws, passes all parity tests byte-for-byte against GNU diff.
oodiff v0.1.0 — Sovereign Diff Engine
oodiff v0.1.0: drop-in diff replacement written in pure openOODA. Features linear prefix/suffix trimming, work-bounded Myers LCS algorithm, unified diff format with trailing newline discipline, and a dual CLI + MCP stdio surface.