Releases: nowarp/misti
Releases · nowarp/misti
Release 0.9.0
Added
DuplicatedImportdetector: PR #381TransitiveImportdetector: Issue #382RedundantBooleanExpressiondetector: Issue #401UnusedMethodArgumentdetector: Issue #397PreferGlobalFunctiondetector: Issue #390- Support for external tools: Users can now load custom tools using the
-toption with apath:classNameformat, similar to how external detectors work: PR #398 SuboptimalSend: Suggest replacingself.forwardwithself.{notify,reply}: Issue #386- Add short option
-Ofor--output-path - Include maximum supported Tact version in
--versionoutput: Issue #405 - SARIF output support: Issue #409
Changed
DuplicatedImportandTransitiveImport: Don't check internal stdlib importsZeroAddressandConstantAddress: Ignore uses in comparisons: Issue #384- Warn if one of the disabled detectors (
-dd) is unused: Issue #393 - If the directory for
--output-pathis unavailable, try to create it UnusedExpressionResult: More informative error on unused method/function calls: Issue #404ShortCircuitCondition: Don't report cheap math and time stdlib functions: Issue #407
Fixed
ImportGraph: Set correct file paths of import nodes for.funcfiles: PR #381EtaLikeSimplifications: Confusing help string for Boolean literals: Issue #392- No output with
-o jsonwithout--output-pathspecified: Issue #403 -o json --output-path <some dir>stores warnings in the plain text formatPreferGlobalFunction: Don't report methods with attributes: Issue #406ArgCopyMutation: False positive on mutating method calls: Issue #395UnusedMethodArgument: Don't report inherited trait methods: Issue #402
Release contributors
Release 0.8.3
Added
- Tact 1.6.7 support: Issue #379
Release 0.8.2
Release 0.8.1
Added
- Tact 1.6.6+ support: PR #368
Driver: Save detectors execution time in debug log
Changed
PreferredStdlibApi: More accurate severity levels and warning descriptionsPreferredStdlibApiis enabled by default;PreferAugmentedAssignis disabled- Prevent multiple
Tools with plain output format: Issue #363 - Forbid executing
Dump{Cfg,CallGraph,Imports}without input file: Issue #363 package.json: Update Misti version on everyyarn build- Don't show Tact logs in JSON output when parsing a project: Issue #369
Fixed
- Severity filter for detectors (optimization): Issue #358
- Relative paths in displayed warnings: PR #361
SuboptimalSend: Incorrectmessage->cashbacksuggestion: Issue #366Logger: Show context in JSON output: Issue #370Logger: Race condition for context in asynchronous execution- Unused
ResultErrorand exit code2is never set: Issue #371 - Colorize output in console (regression error)
- Warning category is not present in JSON output: Issue #372
Release contributors
Release 0.8.0
Added
- Tact 1.6.2+ support: PR #328
SuboptimalSenddetector: PR #330 and PR #332PreferBinaryReceiverdetector: Issue #335PreferSenderFunctiondetector: Issue #336ImplicitOpcodedetector: Issue #338SuboptimalCellOperationdetector: Issue #339- Detectors categorization (Optimization, Security, Best Practices): PR #349
- Add quickfix suggestions for LSP inlay hints: PR #353
- Support standalone Tools to run without
CompilationUnit: PR #326 - Logger: Detector contexts: PR #327
- Logger: Print timestamps when
--verboseis set: Issue #73 PreferredStdlibApi: Suggest usingthrowUnlessoverrequire: Issue #345- JSON Schema for Misti output: PR #355
Changed
- Replace imports from
@tact-lang/compiler/dist/...to@tact-lang/compiler: PR #328 - Removed
--new-detectoroption and thecreateDetectormodule as unused ExitCodeUsage: Allow using0as success exit code: Issue #344- Use relative paths in warnings in JSON: : PR #353
- Breaking changes: New
WarningandResultstructures: PR #355
Fixed
postinstallerror when using the Misti dependency with a package manager different fromyarn: Issue #337ExitCodeUsage: Incorrect string in the description: Issue #341- Fixed and improved browser support: PR #351
Contributors
Special thanks
- @anton-trunov
- @i582 @verytactical @rahulyadav-57 for help with different parts of the Tact compiler, Web IDE, and Tact Language Server integrations
Release 0.7.1
Fixed
- Support new syntax introduced in Tact 1.6: PR #325
Release 0.7.0
Added
- Tact 1.6 support: PR #314
- Tact 1.6.1 support: PR #322
StateMutationInGetterdetector: PR #306UnprotectedCalldetector: PR #235SuspiciousLoopdetector: PR #206- Display function signatures with contract name on CallGraph dump: PR #305
- Support Node version 23: PR #301
- Support absolute paths in warning suppressions: PR #257
- File-scoped CFG dumps: Issue #241
- CLI option to disable Soufflé: Issue #260
- Save logs to JSON output: PR #275
- Callgraph: Add
asmfunctions: PR #277 - Callgraph: Save field names used in
Effect.State{Read,Write}: PR #280 - Callgraph: Highlight stdlib calls in dump: PR #286
- IR: Traits support: PR #292
- Detector: Support multiple severities: Issue #293
- Callgraph: Traits support: Issue #300
Changed
- Display
warnlogger messages tostderrinstead ofstdout: Issue #259 - Export Callgraph definitions for
NodeandEdge - Callgraph: Hide unused stdlib functions from dump: PR #276
- NeverAccessedVariables: More informative warning message for unused fields: Issue #274
- Callgraph: Separate build logic to
src/internals/ir/builders/callgraph.ts: PR #287 - SuspiciousMessageMode: Revisited warning messages and severities: Issue #294
- Driver+Detector: Optimize warning suppressions based on severity: PR #303
- Consolidated all Tact imports in single file: PR #314
- Removed Tact parser hack from
ImportGraphBuilder: PR #314
Fixed
- Souffle installation in CI: PR #253
- Tact stdlib path resolution: PR #256
BranchDuplicate: False negative inelse-ifclauses: Issue #258UnboundMap: False positive: Issue #262- Internal Errors Printed to
stderrInstead of JSON Output: Issue #263 CellBounds: Infinite recursion: PR #272- Callgraph: Incorrect processing of
Effect.StateWritefor cells: PR #279 - Callgraph: Incorrect handling of getter methods: PR #282
ArgCopyMutation: Incorrect handling ofreturnin traits: Issue #290SendInLoop: Remove redundant error logs when accessing patterns likeself.<map_field>.set()CellBounds: Accessing property ofObject.prototypeon.toStringmethod in Tact: PR #318- Don't print error messages when
-o "json"is set: PR #320 - Callgraph: Crash on
extendsfunction withselfargument: Issue #309
Release contributors
Special thanks
Release 0.6.2
Fixed
- Callgraph: Don't add state write effects when changing local maps/strings/cells
- Regression in the single-contract mode execution: Issue #233
Release 0.6.1
Fixed
The scripts directory wasn't included in the npm release, which makes it impossible to build Misti as a dependency
Release 0.6.0
Added
CellBoundsdetector: PR #214ExitCodeUsagedetector: PR #207EtaLikeSimplificationsdetector: PR #198ShortCircuitConditiondetector: PR #202PreferredStdlibApidetector now suggest some preferred replacements for cell methods- Add Callgraph: PR #185
- Support for browser environment: PR #231
souffleEnabledoption to disable Souffle check execution: PR #231- Add function effects to Callgraph: PR #227
Changed
SuspiciousMessageModedetector now suggests using SendDefaultMode instead of 0 for mode: PR #199CellOverflowdetector was replaced with theCellBoundsdetector that supports both overflows and underflows: PR #214- Renamed IR entries to follow the Tact codebase naming style
Fixed
- Missing Module
version-infoWhen Installing Misti from GitHub: Issue #216 ExitCodeUsageHandle direct cases: Issue #218