Skip to content

Releases: iskandarputra/zyterm

zyterm 1.5.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 12:59
f49b7ee

What's Changed

  • fix: resolve ZT-030 … ZT-049 (v1.4.0 re-review — 4 high, 5 medium, 11 low) by @iskandarputra in #13
  • refactor(arch): compiler-enforced module layering + dead-code removal (Phase 7) by @iskandarputra in #20
  • test(phase6): framing round-trip + SPSC ring coverage + TSan CI leg by @iskandarputra in #15
  • perf(phase5): RX hot-path — batch log_write, gate tty_stats, memcpy ring, skip idle broadcast by @iskandarputra in #16
  • feat(phase3): account SPSC ring drops (metric + HUD) — no longer silent by @iskandarputra in #17
  • test(phase6): XMODEM engine coverage via a socketpair peer by @iskandarputra in #18
  • test(phase6): libFuzzer target for the frame decoders + CI fuzz leg by @iskandarputra in #19
  • docs: sync tracker/plan status to merged (ZT-030…049 landed on main) by @iskandarputra in #21
  • refactor(net): split http.c into six cohesive units (Phase 2) by @iskandarputra in #22
  • perf(log): recycle scrollback ring slots instead of malloc per line (Phase 5) by @iskandarputra in #23
  • test(fuzz)+fix(proto): xmodem_receive fuzz target finds & fixes ZT-050 hang by @iskandarputra in #24
  • test(proto): cover ymodem_send with a scripted YMODEM receiver by @iskandarputra in #25
  • build(ci): add make coverage ratchet gate + CI job (Phase 6) by @iskandarputra in #26
  • test: HTTP request-parser fuzz + 431/slowloris edge tests (Phase 6 close-out) by @iskandarputra in #27
  • chore: close out Phase 7 minor items (embedded cross-run state + profile flow) by @iskandarputra in #28
  • chore: remove the dead OSC 8 hyperlink feature (ZT-019) by @iskandarputra in #29
  • feat(profile): persist --watch patterns, watch_beep, and F1..F12 macros by @iskandarputra in #30
  • release: bump version to 1.5.0 + sync version docs and CHANGELOG by @iskandarputra in #31

Full Changelog: v1.4.0...v1.5.0

zyterm 1.4.0

Choose a tag to compare

@github-actions github-actions released this 13 Jun 14:45

What's Changed

  • feat(render): device SGR colour on by default (bounded SGR-only filter, ADR-0009, ZT-029) by @iskandarputra in #10
  • fix(render): render device cursor-forward (CSI n C) as spaces in completion listings by @iskandarputra in #12

Full Changelog: v1.3.0...v1.4.0

zyterm 1.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Jun 08:25

What's Changed

Full Changelog: v1.2.0...v1.3.0

zyterm 1.2.0

Choose a tag to compare

@github-actions github-actions released this 23 May 19:58

Full Changelog: v1.1.3...v1.2.0

zyterm 1.1.3 — warning cleanup

Choose a tag to compare

@iskandarputra iskandarputra released this 20 Apr 16:57

zyterm 1.1.3 — warning cleanup

Small patch release after v1.1.2.

Fixed

  • USB port discovery build warningssrc/serial/port_discover.c
    now bounds-checks sysfs attribute path construction for idVendor
    and idProduct, which removes fortified snprintf truncation
    warnings on strict Linux builds without changing runtime behaviour.

Validation

  • Rebuilt successfully as zyterm 1.1.3
  • Full test suite still green: 239/239 passing
    • 208 unit
    • 11 e2e
    • 20 pty

See CHANGELOG.md for the full project history.

zyterm 1.1.2 — Linux feature push

Choose a tag to compare

@iskandarputra iskandarputra released this 20 Apr 16:52

zyterm 1.1.2 — Linux feature push, tutorial, deep tests

A focused Linux release: every "but does it…?" feature competitors had,
plus a deep multi-chapter tutorial and a real test suite (239 tests).

Highlights

  • Event hooks--on-match '/REGEX/=ACTION', --on-connect,
    --on-disconnect. POSIX ERE on RX, send: prefix injects TX,
    100 ms per-hook rate-limit, env vars for port/baud/line/pattern.
  • Config hot-reload--profile NAME auto-watches the file via
    inotify (parent-dir, atomic-rename safe), 200 ms debounce, runtime-
    safe keys hot-applied.
  • Asciinema cast v2 recording--rec session.cast. Plays back
    with asciinema play, embeds in the web player, round-trips to GIF
    via agg. Works in interactive and --dump modes.
  • TCP / Telnet transporttcp://host:port, telnet://host:port.
  • USB hot-plug-aware discovery--port-glob '/dev/ttyUSB*',
    --match-vid-pid 0403:6001. Re-resolves on every reconnect.
  • Line-ending mapping--map-out / --map-in between
    none|cr|lf|crlf|cr-crlf|lf-crlf. Streaming + stateful.
  • Man page + bash/zsh/fish completions.
  • Modern color-aware --help layout.

Documentation

  • Deep multi-chapter tutorial book
    (~1500 lines): install, first session, logging, profiles, hooks,
    recording, recipes, troubleshooting, full reference.
  • README comparison table vs minicom / picocom / screen / tio / PuTTY.
  • USER_GUIDE first-5-minutes quickstart + corrected profile example
    (the previous one used keys the parser silently ignored).

Tests

  • 208 unit tests covering hooks parser, asciinema cast writer,
    profile inotify watcher, CRC, log-level, OSC8, sparkline.
  • 11 e2e tests drive the real ./zyterm binary against a TCP
    listener with fork+exec hooks and rate-limit assertions.
  • 20 pty tests.
  • Total 239/239 passing. Run with make -C tests run.

Fixed

  • --on-match parser now scans forward for the /= separator
    instead of using strrchr, so actions containing / (paths,
    sed expressions) split correctly.
  • USER_GUIDE profile example now uses parser-supported keys.
  • Removed phantom --list flag reference.

See CHANGELOG.md for the complete
list.

zyterm v1.1.1

Choose a tag to compare

@iskandarputra iskandarputra released this 20 Apr 14:13

Patch release with one bug fix and one build-system refactor.

Fixes

  • scrollback: align selection overlay and clipboard copy with the visible layout when timestamps are hidden. Hidden [HH:MM:SS.mmm] prefixes no longer drift the reverse-video highlight or leak into copied text.

Improvements

  • clipboard: native X11 selection-owner now runtime-loads libxcb via dlopen("libxcb.so.1") instead of linking at build time. Drops the pkg-config probe and -lxcb / -lxcb-xfixes flags from the Makefile; no -dev packages required to ship the native clipboard path. Falls back gracefully to OSC 52 + helper binaries on headless, pure-Wayland, and macOS targets.
  • build: LDLIBS is now OS-aware (-ldl added on Linux only).
  • docs: README, ARCHITECTURE, USER_GUIDE, API, CONTRIBUTING and tests/README refreshed for the zero build-dep clipboard path.

Install

sudo dpkg -i zyterm_1.1.1_amd64.deb

v1.1.0

Choose a tag to compare

@iskandarputra iskandarputra released this 19 Apr 13:34

Initial public release. A zero-dependency high-performance serial terminal for embedded developers.