Repository navigation
v1.2.0 - Pure-Go Binary PDF Export, .loryignore, MCP Hardening & Complete Issue Resolution
Overview
Lorikeet Lory CLI v1.2.0 is a major milestone release delivering pure-Go binary PDF reporting, .loryignore support, flexible inline suppressions, Model Context Protocol (MCP) server security hardening, CLI argument reordering, and the complete resolution of all 19 initial GitHub issues and technical debt items across 24 pull requests (#20 through #44).
Key Highlights
1. Pure-Go Binary PDF 1.4 Export Engine (lory export --format pdf)
- Implemented a zero-dependency, pure-Go PDF 1.4 generator in
pkg/export/pdf.go. - Produces multi-page executive security and compliance audit reports with color-coded severity breakdowns (Critical, High, Medium, Low), detailed vulnerability disclosures, and remediation instructions.
- Requires no external CLI tools, headless browsers, or CGO bindings.
2. Flexible Suppressions & .loryignore File Support
- Added native
.loryignorefile parsing acrosspkg/analyzer,pkg/reviewer, andcmd/diff. - Supports directory, wildcard, and glob patterns (e.g.
*.min.js,vendor/,test/fixtures/). - Added multi-syntax inline suppression comments across all supported languages:
// lory:ignoreor/* lory:ignore */# lory:suppressor<!-- lory:suppress -->- Multi-line block suppressions (
lory:suppress-start...lory:suppress-end) and whole-file ignore directives (lory:ignore-file).
3. MCP Server Hardening & Contextual Remediation (mcp serve)
- Added strict URL scheme validation (
http/https) returning JSON-RPC error code-32602for non-HTTP URI targets. - Added contextual remediation guidance in
lory_explain_findingtailored specifically to CWEs (CWE-89 SQLi, CWE-78 Command Injection, CWE-798 Hardcoded Secrets, CWE-918 SSRF, CWE-79 XSS, and CWE-311 Cleartext Transmission). - Thread-safe response writing and token preservation during live web audits.
4. Git Diff & CLI Usability Improvements
- Added support for
--cachedand--stagedflags inlory diffto review staged index changes. - Flexible argument ordering: git revisions can precede flags (e.g.,
lory diff HEAD --fix,lory scan <target> --format json,lory badge <target> --theme dark). - Automatically skips deleted files from diff reviews and avoids
nullJSON arrays for clean runs ("findings": []).
5. Precision SAST Route & Sink Attribution
- Replaced synthetic baseline finding injection with clean-pass semantics on secure codebases.
- Route correlation now precisely anchors sinks to the closest preceding enclosing route in the same source file (
r.LineNumber <= wb.LineNumber). - Non-route sinks (utility libraries, backend workers) are cleanly isolated as
Route: "N/A"/Method: "N/A"with descriptive comment PoCs instead of arbitrary route inheritance.
Pull Request & Issue Resolution Index
| Pull Request | Scope / Resolved Issue |
|---|---|
| #20 | Remove synthetic baseline finding injection on clean repositories (Fixes #1) |
| #21 | Return error on connection failures and unreachable hosts during retest (Fixes #2) |
| #22 | Dynamically construct replay vectors from finding registry (Fixes #3) |
| #23 | Ignore regex definitions and test files in SAST sink analysis (Fixes #4) |
| #24 | Correlate findings with routes declared in same source file (Fixes #5) |
| #25 | Scan target argument positioning for review flag parsing (Fixes #6) |
| #26 | Review command formatted JSON array output (Fixes #7) |
| #27 | Filter findings by exact status matching (Fixes #8) |
| #28 | Improve web target detection heuristic (Fixes #9) |
| #29 | Retain auth token during MCP lory_scan_target execution (Fixes #10) |
| #30 | Load token from credentials.json in GetToken fallback (Fixes #11) |
| #31 | Support all recognized language extensions in repository analyzer (Fixes #12) |
| #32 | Filter findings by --min-severity threshold (Fixes #13) |
| #33 | Skip deleted files from git diff review list (Fixes #14) |
| #34 | Parse review flags and forward to RunReview in diff (Fixes #15) |
| #35 | Allow target argument to precede flags in lory badge (Fixes #16) |
| #36 | Validate target URL scheme and provide CWE-specific advice in MCP (Fixes #17) |
| #37 | Deduplicate SARIF driver rules and update driver version to 1.1.1 (Fixes #18) |
| #38 | Tech debt rollup: Shorthand scan, binary PDF export, user-agent update (Fixes #19) |
| #39 | Enclosing route attribution & non-route sink isolation |
| #40 | Support --cached/--staged flags and reorder diff arguments |
| #41 | Partition scan arguments, initialize empty findings array, and sync help flags |
| #42 | Native .loryignore file, flexible suppressions, and documentation sync |
| #43 | Unify .loryignore wildcard filtering across review and diff commands |
| #44 | Bump version to 1.2.0 across CLI, packages, tests, and documentation |
Installation
One-line Install (Linux & macOS)
curl -fsSL https://lorikeetsecurity.com/install.sh | bashDirect Downloads
| Platform | Architecture | Binary |
|---|---|---|
| Linux | x86_64 (amd64) |
lory-linux-amd64 |
| Linux | AArch64 (arm64) |
lory-linux-arm64 |
| macOS | Intel (amd64) |
lory-darwin-amd64 |
| macOS | Apple Silicon (arm64) |
lory-darwin-arm64 |
| Windows | x86_64 (amd64) |
lory-windows-amd64.exe |
Verification Checksums
All binary assets are cryptographically verified in checksums.txt.