Skip to content

feat: Add evaluation engine with offset resolution and CI/CD automation#5

Merged
unclesp1d3r merged 23 commits into
mainfrom
feature/basic_offset_resolution
Oct 3, 2025
Merged

feat: Add evaluation engine with offset resolution and CI/CD automation#5
unclesp1d3r merged 23 commits into
mainfrom
feature/basic_offset_resolution

Conversation

@unclesp1d3r
Copy link
Copy Markdown
Member

This pull request introduces significant improvements to the project's CI/CD pipeline and updates automation hooks for code quality and documentation. The main changes include adding an autogenerated release workflow for building and publishing artifacts, removing an outdated documentation updater hook, and refining the Rust code analyzer hook to trigger on user request and improve its file detection logic.

CI/CD Pipeline Enhancements:

  • Added a new .github/workflows/release.yml file that automates the release process using cargo-dist. This workflow builds platform-specific and global artifacts, uploads them, and creates GitHub Releases with autogenerated changelogs. It supports both regular and prerelease versions, and includes artifact attestation and SBOM generation for security and compliance.

Automation Hooks Updates:

  • Removed the .kiro/hooks/llms-txt-updater.kiro.hook file, discontinuing automatic updates to the llms.txt file when documentation or repository structure changes. This means future updates to llms.txt will need to be handled manually.
  • Updated .kiro/hooks/rust-code-analyzer.kiro.hook to trigger analysis via user action rather than on every file edit, reducing unnecessary runs. The hook now uses git diff against origin/main to identify changed files, ensuring more accurate and relevant code quality checks.
  • Improved the analysis prompt in the Rust code analyzer hook for clarity and to better reflect the current branch's changes, aligning with project conventions and validation requirements.

…zation

- Renumbered and reorganized tasks in `tasks.md` to improve clarity and maintain a consistent structure.
- Added sub-tasks for offset resolution, type reading, operator creation, rule evaluation, and output formatting to enhance task tracking.
- Updated task descriptions to reflect current implementation requirements and ensure alignment with project goals.

These changes streamline the development process and provide clearer guidance for contributors on upcoming tasks and their dependencies.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Added `homepage` and `documentation` fields to `Cargo.toml` for improved project visibility and resource access.
- Introduced `dist-workspace.toml` to configure workspace settings and CI parameters for building and releasing artifacts across multiple platforms.
- Created a comprehensive GitHub Actions workflow in `release.yml` to automate the release process, including artifact building, uploading, and GitHub release creation.
- Implemented offset resolution logic in `offset.rs`, including error handling and comprehensive unit tests to ensure robustness.

These changes improve project organization, enhance automation capabilities, and ensure better handling of file offsets during evaluation.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Added `read_byte` function in `src/evaluator/types.rs` for safely reading a single byte from a buffer with bounds checking.
- Introduced `TypeReadError` enum to handle buffer overrun errors during byte reading operations.
- Updated `mod.rs` to include the new `types` module.
- Marked task 6.1 as complete in `tasks.md`, reflecting the implementation of basic type reading for byte values.

These changes enhance the evaluator's capability to interpret byte data safely, improving overall robustness and error handling in the file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Completed tasks for reading multi-byte types, including `read_short` and `read_long` functions in `src/evaluator/types.rs`, supporting both signed and unsigned interpretations with endianness handling.
- Introduced `read_typed_value` function to interpret bytes according to the specified `TypeKind`, allowing for flexible type reading.
- Enhanced error handling with the addition of `UnsupportedType` variant in `TypeReadError` for unsupported types.
- Updated `tasks.md` to reflect the completion of tasks related to multi-byte type reading and interpretation.

These changes significantly improve the evaluator's capability to handle various data types, enhancing the robustness and flexibility of the file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Completed the implementation of the basic equality operator in `src/evaluator/operators.rs` with the `apply_equal` function, allowing for type-safe comparisons between different `Value` variants.
- Updated `mod.rs` to include the new `operators` module.
- Marked task 7.1 as complete in `tasks.md`, reflecting the addition of value-to-value comparison functionality.

These changes enhance the evaluator's capability to accurately compare values, improving the robustness of the file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…alue comparison

- Completed the implementation of the inequality operator with the `apply_not_equal` function, allowing for type-safe comparisons between different `Value` variants.
- Added the bitwise AND operator with the `apply_bitwise_and` function, enabling pattern matching for integer values.
- Introduced the `apply_operator` function to dispatch operations based on the `Operator` enum, supporting equality, inequality, and bitwise AND operations.
- Updated `tasks.md` to reflect the completion of tasks related to operator creation and application.

These enhancements improve the evaluator's capability to perform complex comparisons and operations, further strengthening the file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Added the `evaluate_single_rule` function in `src/evaluator/mod.rs` to evaluate a single magic rule against a file buffer.
- The function resolves the rule's offset, reads the corresponding bytes, and applies the specified operator for comparison.
- Comprehensive unit tests have been included to validate the functionality of the evaluation logic, covering various scenarios including equality, inequality, and bitwise operations.
- Updated `tasks.md` to reflect the completion of the task for basic rule evaluation.

These enhancements significantly improve the evaluator's capability to process and validate magic rules, enhancing the overall file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Deleted the `llms-txt-updater.kiro.hook`, `rust-code-analyzer.kiro.hook`, `rust-perf-analyzer.kiro.hook`, `rust-quality-monitor.kiro.hook`, and `rust-security-hardening.kiro.hook` files as they are no longer needed.
- These hooks were previously used for automated analysis and updates but have been replaced with more efficient user-triggered mechanisms to enhance control and accuracy in code quality and performance assessments.

This cleanup improves the project's automation infrastructure and reduces potential confusion regarding obsolete hooks.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…state

- Added the `EvaluationContext` struct in `src/evaluator/mod.rs` to maintain the state during rule evaluation, including current offset, recursion depth, and configuration settings.
- Implemented methods for managing the offset and recursion depth, including incrementing and decrementing the recursion depth with error handling for exceeding limits.
- Updated `lib.rs` to re-export `EvaluationContext` for convenience.
- Marked task 8.2 as complete in `tasks.md`, reflecting the addition of the evaluation context structure.

These enhancements improve the evaluator's ability to manage state during complex rule evaluations, contributing to a more robust file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…le processing

- Completed the implementation of the `EvaluationConfig` struct in `src/lib.rs`, allowing for customizable evaluation options such as recursion limits, string length limits, and timeout settings.
- Introduced the `MatchResult` struct to encapsulate results from rule evaluations, including matched messages and offsets.
- Implemented the `evaluate_rules` function in `src/evaluator/mod.rs` to support hierarchical rule evaluation, enabling parent-child relationships in rules and refined matching.
- Updated `tasks.md` to reflect the completion of tasks related to evaluation configuration and hierarchical processing.

These enhancements improve the evaluator's flexibility and robustness, allowing for more complex and efficient file type detection processes.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…with const functions

- Updated `EvaluationConfig` in `src/lib.rs` to derive `Eq` for improved comparison capabilities.
- Refactored methods in `EvaluationContext` within `src/evaluator/mod.rs` to be `const fn`, allowing for compile-time evaluation and optimizations.
- Adjusted method signatures for `new`, `current_offset`, `set_current_offset`, `recursion_depth`, `config`, `should_stop_at_first_match`, `max_string_length`, `enable_mime_types`, `timeout_ms`, and `reset` to reflect the new const nature.
- Updated error handling in `src/io/mod.rs` to simplify path handling in error types.

These changes improve the efficiency and usability of the evaluation configuration and context, enhancing the overall robustness of the file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…hooks

- Modified the `rust-code-analyzer.kiro.hook` to analyze only the changed files in the current branch, enhancing its accuracy in identifying code quality issues.
- Updated the `rust-perf-optimizer.kiro.hook` to reflect the same change, ensuring performance analysis is based on the current diff.
- These updates improve the hooks' functionality and maintainability, aligning them with the project's focus on code quality and performance.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…or enhanced clarity and functionality

- Updated the `MatchResult` struct in `src/output/mod.rs` to include additional fields such as `length`, `rule_path`, `confidence`, and `mime_type`, providing more comprehensive match information.
- Introduced the `EvaluationResult` struct to encapsulate the results of file evaluations, including metadata about the evaluation process and a vector of successful matches.
- Enhanced documentation with examples for both structs, improving usability and understanding of the evaluation results.
- Adjusted the `Cargo.toml` to modify lint settings, changing specific lints from "allow" to "warn" for better code quality enforcement.

These changes improve the output formatting module's capability to represent evaluation results, contributing to a more robust file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Created a new module `text.rs` in the `src/output` directory to handle text formatting of match results, providing a human-readable output style compatible with the GNU `file` command.
- Implemented functions for formatting single and multiple match results, as well as complete evaluation results, ensuring clear and structured output.
- Updated `tasks.md` to reflect the completion of tasks related to text output formatting, including unit tests for various scenarios.

These enhancements improve the output capabilities of the library, facilitating better user interaction and understanding of file type detection results.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…dling

- Changed `set_current_offset` and `reset` methods in `src/evaluator/mod.rs` from `const fn` to regular functions to allow for mutable state changes.
- Improved error handling in `evaluate_rules` to provide more context for rule evaluation failures, including rule message and offset in error messages.
- Enhanced `read_byte` function in `src/evaluator/types.rs` to use `.copied()` for better clarity and safety.
- Added TODOs across various modules for comprehensive error handling, validation, and performance monitoring improvements, including file metadata validation and match result checks.

These changes enhance the robustness and clarity of the evaluation logic, paving the way for improved error management and validation in the file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Added detailed documentation for `load_from_file` and `evaluate_file` methods in `src/lib.rs`, including arguments, error handling, and usage examples to improve clarity and usability.
- Introduced a constant `SMALL_FILE_THRESHOLD` in `src/io/mod.rs` to indicate the threshold for small file handling, enhancing code readability and maintainability.

These updates improve the overall documentation quality, making it easier for users to understand and utilize the library's functionality effectively.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Added `nix` crate as a development dependency in `Cargo.toml` for enhanced file type handling capabilities.
- Updated GitHub Actions in `dist-workspace.toml` to use newer versions for `attest-build-provenance` and `upload-artifact`, ensuring compatibility and improved functionality.
- Refactored the `release.yml` workflow to utilize the updated action version for build provenance.

These changes enhance the development environment and CI/CD pipeline, contributing to a more robust and maintainable project structure.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
… configuration

- Reformatted the `allowed_elements` array in `.markdownlint.json` to a single line for improved readability and consistency.
- This change enhances the clarity of the configuration file without altering its functionality.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…n configuration

- Added comprehensive security documentation in `src/lib.rs`, outlining memory safety, bounds checking, resource limits, input validation, error handling, and timeout protection.
- Improved the `validate` method in `EvaluationConfig` to include checks for stack overflow, memory exhaustion, denial of service, and integer overflow vulnerabilities.
- Introduced tests for potential integer overflow vulnerabilities in offset calculations in `src/evaluator/offset.rs`.
- Enhanced the `read_byte` function in `src/evaluator/types.rs` with strict bounds checking to prevent buffer overruns and ensure secure byte reading.
- Updated `create_memory_mapping` in `src/io/mod.rs` to include security considerations for memory mapping.

These changes significantly bolster the security posture of the library, ensuring safer file type detection and evaluation processes.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
- Modified the `nix` dependency in `Cargo.toml` to enable the `fs` feature, enhancing file system capabilities for the project.
- Added an ignore attribute to the FIFO rejection test in `src/io/mod.rs` to prevent hanging issues in CI environments.
- Updated the text output formatting test in `src/output/text.rs` to clarify handling of Windows paths on Unix systems.

These changes improve the development environment and ensure more robust testing practices, contributing to a more reliable file type detection process.

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
…tting

- Update filename extraction logic in `format_evaluation_result` function
- Add platform-specific handling for Windows and Unix paths
- Modify test case to support different path extraction behaviors
- Ensure consistent filename display across different operating systems
- Add Windows-specific assertion for filename extraction

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Oct 2, 2025

Caution

Review failed

The pull request is closed.

Summary by CodeRabbit

  • New Features

    • Automated GitHub Releases with packaged artifacts and SBOMs.
    • Hierarchical rule evaluation with configurable timeouts and recursion limits.
    • Rich JSON and text output formats with metadata and primary match helpers.
  • Bug Fixes

    • Safer file handling: canonical paths, clear errors for non-regular files, and sanitized mmap error messages.
  • Documentation

    • Security-focused guidance and examples added to the library docs.
  • Chores

    • CI and release workflow updates; added dependency auditing; project metadata improvements.

Walkthrough

Adds a GitHub Actions release workflow and a dist workspace; introduces a public evaluator API (offset resolution, operators, typed readers, EvaluationContext), structured output types and text formatters, enhanced I/O validation and symlink helpers, EvaluationConfig and timeout error, many unit tests, dependency and pre-commit updates, and removal/adjustment of several .kiro hooks.

Changes

Cohort / File(s) Summary
Release workflow
\.github/workflows/release.yml
New release workflow: plan, per-target local build matrix, aggregate global artifacts, SBOM generation, host publish, announce, and GitHub Release creation with artifact attachments.
Kiro hooks
.kiro/hooks/*
Deleted hooks: \.kiro/hooks/llms-txt-updater.kiro.hook, \.kiro/hooks/rust-perf-analyzer.kiro.hook, \.kiro/hooks/rust-quality-monitor.kiro.hook, \.kiro/hooks/rust-security-hardening.kiro.hook. Updated triggers/prompts in \.kiro/hooks/rust-code-analyzer.kiro.hook and \.kiro/hooks/rust-perf-optimizer.kiro.hook (changed to userTriggered, prompts reference branch diff).
Dist & packaging / CI
dist-workspace.toml, Cargo.toml, .pre-commit-config.yaml, .github/workflows/ci.yml
Added dist-workspace.toml with cargo-dist and release settings; updated Cargo.toml metadata and dependencies (cfg-if, clap, serde, serde_json, thiserror; nix dev-dep) and Clippy levels; added cargo-audit pre-commit hook; adjusted CI matrix runner entry.
Evaluator core
src/evaluator/...
New evaluator modules: mod.rs, offset.rs, operators.rs, types.rs — provide EvaluationContext, MatchResult, evaluate_* APIs, offset resolution with OffsetError, operator implementations (equal, not-equal, bitwise-and), typed readers with TypeReadError, and many tests.
Output formatting
src/output/mod.rs, src/output/text.rs
New structured output types (MatchResult, EvaluationResult, EvaluationMetadata) with serde derives, builders and mutators; plus text formatting helpers format_text_result, format_text_output, format_evaluation_result and tests.
I/O / File handling
src/io/mod.rs
Enhanced FileBuffer validation and canonicalization, added IoError::InvalidFileType { path, file_type }, special-file detection, cross-platform create_symlink helper, sanitized mmap error paths, new mapping/threshold constants, and tests.
Library surface & config
src/lib.rs
Added EvaluationConfig (presets, validate), re-exported EvaluationContext/MatchResult, added LibmagicError::Timeout, and added security-focused docs and tests.
Parser AST
src/parser/ast.rs
Value now derives Eq in addition to existing derives; expanded docs and internal TODOs.
Specs & docs / tooling
.kiro/specs/..., .markdownlint.json
Task checklist items marked completed in specs; JSON formatting change for MD033 only.
Pre-commit & tests
.pre-commit-config.yaml, src/**/tests
Inserted cargo-audit local hook; extensive new unit tests across evaluator, io, operators, types, output, and formatting helpers.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor Dev as Developer (push tag)
    participant GH as GitHub Actions
    participant Plan as Plan Job
    participant BuildLocal as Build-local-artifacts (matrix)
    participant BuildGlobal as Build-global-artifacts
    participant Host as Host
    participant Release as Create Release (gh)

    Dev->>GH: push version tag
    GH->>Plan: run plan (dist plan/host)
    Plan-->>GH: manifest outputs
    GH->>BuildLocal: spawn matrix per target
    BuildLocal-->>GH: upload per-target artifacts & manifests
    GH->>BuildGlobal: aggregate artifacts, run global builds, generate SBOMs
    BuildGlobal-->>GH: upload global artifacts (archives, SBOM)
    GH->>Host: publish artifacts to host path (dist host)
    Host-->>GH: host manifest for release notes
    GH->>Release: generate body & run gh CLI to create release + attach artifacts
    Release-->>Dev: release created
Loading
sequenceDiagram
    autonumber
    participant Caller as Evaluation API caller
    participant EvalCtx as EvaluationContext
    participant Offset as offset::resolve_offset
    participant Reader as types::read_typed_value
    participant Operator as operators::apply_operator
    participant Results as output::EvaluationResult

    Caller->>EvalCtx: create or with_config
    Caller->>EvalCtx: evaluate_rules_with_config(rules, buffer)
    EvalCtx->>Offset: resolve_offset(spec, buffer)
    Offset-->>EvalCtx: resolved offset / OffsetError
    EvalCtx->>Reader: read_typed_value(buffer, offset, type)
    Reader-->>EvalCtx: Value or TypeReadError
    EvalCtx->>Operator: apply_operator(op, left, right)
    Operator-->>EvalCtx: bool (match)
    EvalCtx-->>Results: collect MatchResult(s)
    Results-->>Caller: EvaluationResult (metadata / error)
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

"I hopped through code with ears held high,
New workflows stitched beneath the sky,
Rules and offsets neatly spun,
Results serialized — one by one,
A rabbit cheers: release at sunrise! 🐇"

Pre-merge checks and finishing touches and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title Check ⚠️ Warning The title “feat: basic offset resolution” only describes one facet of the changeset, namely the new offset resolution functionality, but the pull request also adds a full GitHub Actions release workflow, updates and removes multiple automation hooks, and introduces extensive changes across CI/CD configurations and other modules, so it does not accurately summarize the primary scope. Rename the title to reflect the overall scope—such as adding the release workflow and updating automation hooks—or split offset resolution into its own focused pull request to ensure the title matches the primary changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed The description details the addition of the release workflow and the automation hook updates, which are clearly present in the changeset, so it relates directly to parts of the pull request.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 0b0815c and a68f732.

📒 Files selected for processing (22)
  • .github/workflows/ci.yml (1 hunks)
  • .github/workflows/release.yml (1 hunks)
  • .kiro/hooks/llms-txt-updater.kiro.hook (0 hunks)
  • .kiro/hooks/rust-code-analyzer.kiro.hook (1 hunks)
  • .kiro/hooks/rust-perf-analyzer.kiro.hook (0 hunks)
  • .kiro/hooks/rust-perf-optimizer.kiro.hook (1 hunks)
  • .kiro/hooks/rust-quality-monitor.kiro.hook (0 hunks)
  • .kiro/hooks/rust-security-hardening.kiro.hook (0 hunks)
  • .kiro/specs/rust-libmagic-implementation/tasks.md (17 hunks)
  • .markdownlint.json (1 hunks)
  • .pre-commit-config.yaml (1 hunks)
  • Cargo.toml (3 hunks)
  • dist-workspace.toml (1 hunks)
  • src/evaluator/mod.rs (1 hunks)
  • src/evaluator/offset.rs (1 hunks)
  • src/evaluator/operators.rs (1 hunks)
  • src/evaluator/types.rs (1 hunks)
  • src/io/mod.rs (12 hunks)
  • src/lib.rs (8 hunks)
  • src/output/mod.rs (1 hunks)
  • src/output/text.rs (1 hunks)
  • src/parser/ast.rs (3 hunks)

Comment @coderabbitai help to get the list of available commands and usage tips.

…atting

- Add cfg-if dependency to Cargo.toml for conditional compilation
- Update text output formatting test to handle different path extraction on Windows and Unix
- Implement cfg_if! macro to conditionally assert filename extraction based on platform
- Enhance test coverage for filename extraction in evaluation result formatting

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
@unclesp1d3r
Copy link
Copy Markdown
Member Author

@CodeRabbit improve the PR title and update the metadata, such as labels

@coderabbitai coderabbitai Bot changed the title feat: basic offset resolution feat: Add evaluation engine with offset resolution and CI/CD automation Oct 2, 2025
@coderabbitai coderabbitai Bot added enhancement New feature or request evaluator Rule evaluation engine and logic io File I/O and memory mapping output Result formatting and output generation testing Test infrastructure and coverage labels Oct 2, 2025
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Oct 2, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get current PR details including existing labels
gh pr view 5 --json title,labels,body --repo EvilBit-Labs/libmagic-rs

Length of output: 1657


🏁 Script executed:

#!/bin/bash
# Update PR title and add labels
gh pr edit 5 \
  --title "feat: Add evaluation engine with offset resolution and CI/CD automation" \
  --add-label "enhancement" \
  --add-label "ci-cd" \
  --add-label "automation" \
  --repo EvilBit-Labs/libmagic-rs

Length of output: 17


🏁 Script executed:

#!/bin/bash
# List existing labels in the repository
gh label list --repo EvilBit-Labs/libmagic-rs --limit 100

Length of output: 953


🏁 Script executed:

#!/bin/bash
# Update PR title and add appropriate labels using existing label names
gh pr edit 5 \
  --title "feat: Add evaluation engine with offset resolution and CI/CD automation" \
  --add-label "enhancement" \
  --add-label "evaluator" \
  --add-label "io" \
  --add-label "output" \
  --add-label "testing" \
  --repo EvilBit-Labs/libmagic-rs

Length of output: 50


@unclesp1d3r: I've successfully updated the PR metadata:

Title updated:

  • Old: feat: basic offset resolution
  • New: feat: Add evaluation engine with offset resolution and CI/CD automation

Labels added:

  • enhancement - For the new features
  • evaluator - Core evaluation engine implementation
  • io - FileBuffer and I/O improvements
  • output - Result formatting additions
  • testing - Comprehensive test coverage

The new title better captures the full scope of this PR, which includes not just offset resolution but the complete evaluation engine implementation, CI/CD automation via cargo-dist, and significant enhancements across multiple modules.

- Modify Linux platform matrix to use ubuntu-22.04 instead of generic 'arm'
- Ensure consistent and reliable Linux platform testing configuration
- Improve cross-platform compatibility for CI/CD pipeline

Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request evaluator Rule evaluation engine and logic io File I/O and memory mapping output Result formatting and output generation testing Test infrastructure and coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant