Skip to content

v3.0.0 — Modernized Fork Release

Latest

Choose a tag to compare

@georgeglarson georgeglarson released this 05 Feb 22:33
· 3 commits to master since this release

Termshark v3.0.0

This is the first release of the modernized termshark fork, honoring the work of Graham Clark (@gcla), the original author.

What's Changed from v2.4.0

Architecture

  • SRP decomposition: large files split into focused, single-responsibility modules
  • Centralized goroutine lifecycle management via lifecycle.Tracker (replaces scattered WaitGroups)
  • UIState struct consolidates 80+ UI globals
  • cmain() reduced from 1,260 to 574 lines

Reliability

  • Critical deadlock fix in config mutex locking (startup freeze)
  • Comprehensive code quality audit: 29 issues identified and fixed
  • All data races eliminated (verified with go test -race)
  • Error handling improvements: panics replaced with proper error returns

Code Quality

  • Modernized Go idioms: atomic.Bool/atomic.Int32, proper error wrapping
  • Deprecated APIs removed (io/ioutil, old fsnotify paths)
  • Dead code eliminated (unused interfaces, bridge types, unreachable branches)

Testing

  • Test coverage expanded from ~100 to 837+ tests across 26 packages
  • Integration tests rewritten for refactored API
  • Race detector clean on both unit and integration test suites

Dependencies

  • Updated to Go 1.22+
  • Dependencies audited and modernized (adrg/xdg, fsnotify/fsnotify v1.7)

Documentation

  • All URLs updated to point to this fork
  • Tshark capabilities reference added to development docs
  • Three audit documents: code quality, dependencies, security

Installation

go install github.com/georgeglarson/termshark/v2/cmd/termshark@v3.0.0

Acknowledgments

This project exists because of Graham Clark's original vision for a terminal-based Wireshark experience. This fork aims to keep that vision alive with modern Go practices and continued maintenance.

🤖 Developed with assistance from Claude Code