Skip to content

Releases

v0.17.0 — all fronts: X-Query nesting, KV time travel, blocking quality gates

Choose a tag to compare

@kostyk348 kostyk348 released this 03 Nov 20:44
e832771

Added

  • X-Query nesting — parentheses at any depth with standard precedence (NOT > AND > OR): (X-Tag == "a" OR X-Tag == "b") AND NOT X-Timestamp < 100. Quote-aware lexer + recursive-descent AST parser; quoted values survive keywords (X-Note == "buy (milk) AND eggs" is one clause). Legacy query::parse keeps its AND-list contract.
  • KV time travel — the append-only log becomes a first-class read: `emlbox kv get --at N` reconstructs the value after the first N deltas (--at 0 = base; a prefix past the end is an error, not "now"). Replay order is fixed by (ts, writer) — prefixes are identical on every device.
  • KV audit history — `emlbox kv history
  • [key]`: writer#seq, timestamp, op, key and value per delta, straight from the file.
  • Release binaries — this release ships emlbox for linux-x86_64 (musl, static), macos-aarch64 and windows-x86_64, built and attached by CI on tag push.
  • Fixed

    • Windows support, for real. The whole suite now passes on windows-latest for the first time:
      • rev cell rewrites (type_mark / rewrite / field_mark / branch references) held an mmap view of the file being rebuilt — os error 1224; all paths now drop the view before writing;
      • repair::truncate_blocks ditto;
      • the runner harness wrote bus messages in Windows text mode (CRLF → CR-CR-LF) — now newline="", and the parser tolerates the artifact;
      • pack produced OS-dependent section ids (x\y\f.py) — ids are now portable, always forward slashes;
      • the vftables test skips on mach-o (the rev pipeline is ELF-only), and the two aes tests no longer race on process env.

    Changed

    • CI hardened: full suite on ubuntu / macos / windows; cargo fmt --check and cargo clippy --all-targets -- -D warnings are blocking gates; clippy went from 37 warnings to zero.
    • Crate version aligned with the tags: 0.1.0 → 0.17.0.

    79 tests green on all three platforms.

MIME-OS / EMLBox v0.16.0 — build hardening, docs & promo

Choose a tag to compare

@kostyk348 kostyk348 released this 30 Oct 10:35
ac3b66a

Release with two small compile fixes that make the whole suite honest again. No behavior changes — the on-disk format and the CLI surface are exactly as at v0.15.0.

Fixed

  • The emlbox binary target compiles again (E0716 let-binding in the rev strings handler);
  • tests/sync.rs compiles and passes again (Delta{id,after} initializers updated);
  • CI runs the full suite: cargo build --all-targets + cargo test — 69 tests green;
  • v0.15.0-era build state documented honestly in LIMITATIONS.md → Repository state.

Docs & promo

  • README rewritten bilingual (EN + RU) in the CapsuleCraft house style;
  • CHANGELOG reconstructed from all 28 git tags; CONTRIBUTING added;
  • promo: real terminal screenshots (release build), logo concept, launch posts RU/EN.

The format is unchanged since v0.1: containers from day one still open.

v0.15.0 — массовая декомпиляция

Choose a tag to compare

@kostyk348 kostyk348 released this 13 Sep 15:43

rev decomp-all: весь бинарник в один .c (сигнатуры из волны, имена полей). rev stats: функции/рёбра/топ по размеру. FTL: 3576 функций, 11196 рёбер; 288 функций ShipManager -> 33762 строки.

v0.14.2 — декомп в GUI

Choose a tag to compare

@kostyk348 kostyk348 released this 23 Aug 08:59

emlbox-gui: вкладка Rev — открыл rev-клетку, кнопка Декомпилировать → псевдокод с именами полей. 72 теста.

v0.14.1 — имена полей структур

Choose a tag to compare

@kostyk348 kostyk348 released this 23 Aug 08:57

rev field: пометка поля (X-Field-0x670: scrap), декомпилятор подставляет в [arg0+0x670] -> [arg0+scrap]. FTL: *[arg0+scrap] += arg1. 72 теста.

v0.14.0 — читаемый декомпилятор

Choose a tag to compare

@kostyk348 kostyk348 released this 23 Aug 08:55

Декомпилятор: параметры в теле (arg0/arg1 по калибровке пролога + отслеживание перезаписанных регистров), std::string-операции подавлены, push/pop пролога убраны. FTL: if (arg1 > 0) { *[arg0+0x670] += arg1; }. 71 тест.

v0.13.1 — сводный отчёт

Choose a tag to compare

@kostyk348 kostyk348 released this 23 Aug 08:27

rev report: вся картина бинарника одним взглядом — функции, vftables, строки, энтропия, топ-вызываемые (libc: __stack_chk_fail 645x, free 264x), пример декомпиляции. 71 тест.

v0.13.0 — локальные переменные + реальный libc

Choose a tag to compare

@kostyk348 kostyk348 released this 23 Aug 08:26

rev decomp --struct: стек-слоты -> local_8/param_1 (стиль Ghidra). Декомпилирован strlen из glibc: if/else/while с условиями из флагов. 71 тест.

v0.12.3 — while + аргументы вызовов

Choose a tag to compare

@kostyk348 kostyk348 released this 23 Aug 08:24

rev decomp --struct: while-циклы (gcc -O0 паттерн: jcc назад к телу), аргументы вызовов из mov перед call (net_send(0x21, rax, 0x10)), пролог убран (push rbp/rbp=rsp/rsp-=). 70 тестов.

v0.12.2 — условия и типы в декомпиляторе

Choose a tag to compare

@kostyk348 kostyk348 released this 22 Aug 19:09

rev decomp --struct: cmp/test -> настоящие условия (test eax,eax; jg -> if (eax > 0)); сигнатура из волны типов (X-Type-argN -> // player_take_damage(Player* arg0)). 69 тестов.