Releases: slvDev/weasel
v0.5.0
Added
GitHub Actions
- GitHub Actions integration (
action.yml) — run Weasel in CI/CD pipelines withuses: slvDev/weasel@main - SARIF output format (
--format sarif) for GitHub Code Scanning integration - Nightly release workflow — automatic builds from
mainon source changes weaselup --nightlyflag to install latest nightly build- Example workflows in
gh-actions-examples/:weasel-basic.yml— basic analysis with SARIF uploadweasel-claude.yml/weasel-claude-diff.yml— Claude-powered reviewweasel-openai.yml/weasel-openai-diff.yml— OpenAI Codex-powered reviewweasel-gemini.yml/weasel-gemini-diff.yml— Gemini-powered review
- SHA256 checksums and build attestation for release binaries
Detector Configuration
exclude_detectorsoption inweasel.tomland CLI (-x/--exclude-detectors) to skip specific detectors by IDexclude_detectorsparameter for MCPweasel_analyzetool- Protocol feature flags in
weasel.toml[protocol]section to disable detector groups:uses_fot_tokens— fee-on-transfer token detectorsuses_weird_erc20— non-standard ERC20 detectorsuses_native_token— native ETH handling detectorsuses_l2— L2-specific detectors (Arbitrum, Optimism)uses_nft— NFT-related detectors
MCP & IDE Support
- OpenAI Codex CLI support for
weasel mcp add/remove(--target codex) - Gemini CLI support for
weasel mcp add/remove(--target gemini)
Changed
- Release workflow uses pinned action SHAs and Cargo caching for faster builds
Nightly 20260127
Nightly Build
This is an automated nightly build from the main branch.
Commit: 092cad9
Date: nightly-20260127-092cad9
⚠️ This is a pre-release build and may be unstable.
Verification
# Verify checksums
sha256sum -c checksums.txt
# Verify attestation (requires gh CLI)
gh attestation verify weasel-<target>.tar.gz --owner slvDevInstallation
# Using weaselup (will install latest stable)
curl -sSL https://raw.githubusercontent.com/slvDev/weasel/main/weaselup/install | bash
# Or download this nightly directly
# macOS (Apple Silicon)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260127-092cad9/weasel-aarch64-apple-darwin.tar.gz | tar xz
# macOS (Intel)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260127-092cad9/weasel-x86_64-apple-darwin.tar.gz | tar xz
# Linux (x86_64)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260127-092cad9/weasel-x86_64-unknown-linux-gnu.tar.gz | tar xzNightly 20260126
Nightly Build
This is an automated nightly build from the main branch.
Commit: 98d65ed
Date: nightly-20260126-98d65ed
⚠️ This is a pre-release build and may be unstable.
Verification
# Verify checksums
sha256sum -c checksums.txt
# Verify attestation (requires gh CLI)
gh attestation verify weasel-<target>.tar.gz --owner slvDevInstallation
# Using weaselup (will install latest stable)
curl -sSL https://raw.githubusercontent.com/slvDev/weasel/main/weaselup/install | bash
# Or download this nightly directly
# macOS (Apple Silicon)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260126-98d65ed/weasel-aarch64-apple-darwin.tar.gz | tar xz
# macOS (Intel)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260126-98d65ed/weasel-x86_64-apple-darwin.tar.gz | tar xz
# Linux (x86_64)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260126-98d65ed/weasel-x86_64-unknown-linux-gnu.tar.gz | tar xzNightly 20260123
Nightly Build
This is an automated nightly build from the main branch.
Commit: bbb7f91
Date: nightly-20260123-bbb7f91
⚠️ This is a pre-release build and may be unstable.
Verification
# Verify checksums
sha256sum -c checksums.txt
# Verify attestation (requires gh CLI)
gh attestation verify weasel-<target>.tar.gz --owner slvDevInstallation
# Using weaselup (will install latest stable)
curl -sSL https://raw.githubusercontent.com/slvDev/weasel/main/weaselup/install | bash
# Or download this nightly directly
# macOS (Apple Silicon)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260123-bbb7f91/weasel-aarch64-apple-darwin.tar.gz | tar xz
# macOS (Intel)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260123-bbb7f91/weasel-x86_64-apple-darwin.tar.gz | tar xz
# Linux (x86_64)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260123-bbb7f91/weasel-x86_64-unknown-linux-gnu.tar.gz | tar xzNightly 20260121
Nightly Build
This is an automated nightly build from the main branch.
Commit: b512c6b
Date: nightly-20260121-b512c6b
⚠️ This is a pre-release build and may be unstable.
Verification
# Verify checksums
sha256sum -c checksums.txt
# Verify attestation (requires gh CLI)
gh attestation verify weasel-<target>.tar.gz --owner slvDevInstallation
# Using weaselup (will install latest stable)
curl -sSL https://raw.githubusercontent.com/slvDev/weasel/main/weaselup/install | bash
# Or download this nightly directly
# macOS (Apple Silicon)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260121-b512c6b/weasel-aarch64-apple-darwin.tar.gz | tar xz
# macOS (Intel)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260121-b512c6b/weasel-x86_64-apple-darwin.tar.gz | tar xz
# Linux (x86_64)
curl -sSL https://github.com/slvDev/weasel/releases/download/nightly-20260121-b512c6b/weasel-x86_64-unknown-linux-gnu.tar.gz | tar xzv0.4.6
Added
New Detectors
Low
constant-decimals- prefer constants for decimals
NC (Non-Critical)
abstract-in-separate-file- abstract contracts should be in separate filesarray-ranged-getter- use ranged getter for array accessbool-init-false- unnecessary boolean initialization to falsenc-combine-mappings- mappings with same key can be combined into structcomplex-require- complex require statements should be simplifiedconstant-expression- expressions that could be constantsconstructor-emit-event- constructors should emit eventsdelete-instead-of-false- use delete instead of setting to falsedelete-instead-of-zero- use delete instead of setting to zeroduplicate-string-literal- duplicate string literals in codeempty-blocks- empty code blockserror-definition-no-args- error definitions without argumentsexternal-call-in-modifier- external calls in modifiersfloating-pragma- floating pragma versioninitialism-capitalization- incorrect capitalization of initialisms (URL, ID)initializer-emit-event- initializers should emit eventsinterfaces-contracts-same-file- interfaces and contracts in same filelibrary-in-separate-file- libraries should be in separate filesmany-function-params- functions with too many parametersmany-return-values- functions with too many return valuesmixed-int-uint-style- mixed int/uint and int256/uint256 stylemultiple-abstract-contracts- multiple abstract contracts in one filemultiple-contracts- multiple contracts in one filemultiple-interfaces- multiple interfaces in one filemultiple-libraries- multiple libraries in one filenamed-function-args- use named function arguments for claritynamed-returns- use named returns for clarityprefer-custom-errors- use custom errors instead of require/assertunnamed-revert- revert without custom error identifierunused-private-function- unused private functionszero-argument- literal zero as function argument
v0.4.5
Changed
Skill Improvements
weasel-gas - Chain-aware gas optimization
- Auto-detect target chain from config (foundry, hardhat, truffle)
- L2 rules: prioritize calldata reduction, skip storage micro-opts
- Cheap L1 rules (Polygon, BSC): only report >1000 gas savings
- Reject non-EVM chains (Solana, Tron, etc.)
weasel-simplify - Dual-mode operation
- Developer Mode: edit files, run tests, commit
- Auditor Mode: create simplified view without modifying code
- Auto-detect based on context
weasel-poc - Clean output
- Assertions prove the bug, not console.log
- No banners, celebration messages, or decorative output
- Pre-commit checklist
weasel-report - File-first output
- Always write to
findings/H-01-description.md - Link to PoC files instead of pasting code
weasel-analyzer, weasel-validate, weasel-filter, weasel-overview - Context-first
- Check README and known-issues.md before analysis
- Prevents reporting known issues or design decisions as bugs
- New verdicts: KNOWN ISSUE, BY DESIGN
weasel-explainer - Better guidance
- "When NOT to Use" redirects to appropriate skills
Added
New Detectors
long-calculations- flag complex math that may overflowunchecked-low-level-call- missing success check on call/delegatecallupgradable-token-interface- detect upgradable token patternsunsafe-low-level-call- risky low-level call usagelarge-approval- type(uint256).max approvalsassembly-abi-decode- manual ABI decoding in assemblyvariable-inside-loop- storage/memory allocation in loopscountdown-loop- gas-inefficient loop directioncombine-mappings- mappings that could be structscached-msg-sender- unnecessary msg.sender cachingcached-immutable- redundant immutable cachingcached-constant- redundant constant cachingassembly-storage-write- direct sstore in assemblyaddress-this-precalculation- address(this) computed repeatedly
Full Changelog: v0.4.0...v0.4.5
v0.4.0
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Full Changelog: v0.2.1...v0.3.0