Skip to content

AIO 1.76: messaging fixes, module split, tests, and CI - #27

Open
Rochet2 wants to merge 67 commits into
masterfrom
aio-improvements
Open

AIO 1.76: messaging fixes, module split, tests, and CI#27
Rochet2 wants to merge 67 commits into
masterfrom
aio-improvements

Conversation

@Rochet2

@Rochet2 Rochet2 commented May 31, 2026

Copy link
Copy Markdown
Owner

Summary

Maintenance release 1.76 (AIO_VERSION was 1.75).

  • Bug fixes: Queue.clear, server cache TTL (ms vs seconds), per-peer stored byte accounting, hole-safe long-message reassembly, Windows path basenames, debug.sethook cleanup on timeout paths, client version-mismatch no longer permanently disables handlers
  • Refactor: shared modules (aio_framing, aio_reassembler, aio_rpc, aio_util, aio_core) kept in sync server/client; asymmetric aio_server_pipeline / aio_client_ui; identical AIO.lua on both sides
  • Deps / config: vendored lualzw v1.1.0 (zeros-compatible wire format); AIO_FORCE_RELOAD_ON_STARTUP default true
  • Quality: pure Lua test suite, GitHub Actions (Lua 5.1 full + 5.2–5.4 server), Luacheck via scripts/ci_luacheck.sh, sync diff for shared modules + vendored lualzw/Smallfolk
  • Docs: CHANGELOG.md, SECURITY.md, DEPENDENCIES.md, FUTURE_WORK.md; README testing notes for Lua 5.1–5.4

Merge notes

  • Prefer squash-merge into master (noisy CI-fix commit history on the branch)
  • After merge, tag v1.76 with a changelog excerpt

Test plan

  • lua tests/run.lua locally (unit + server integration; client suite on Lua 5.1 only)
  • Verify CI is green on this PR
  • In-game: client init, addon push, long messages, /aio reset, ForceReset from server
  • Confirm server script reload respects AIO_FORCE_RELOAD_ON_STARTUP

Rochet2 added 30 commits May 31, 2026 07:29
Correct server cache timing, stored-byte accounting, sethook cleanup, reset persistence, and Windows path basenames; add aio_util helpers, unit tests, Luacheck CI, and SECURITY/DEPENDENCIES docs.
Ubuntu Noble has no luacheck apt package; install with luarocks instead. Bump actions/checkout to v5 for Node.js 24 runner support.
Example addons use many WoW globals and are not plain Lua; scope luacheck to core modules and tests.
Lint core modules and tests strictly; run syntax-only checks on the AIO monolith. Pin luarocks to Lua 5.1 and rename a time-diff parameter for parser compatibility.
CRLF files caused luacheck trailing-whitespace failures on Linux CI runners.
Install Lua 5.1 and luacheck via leafo actions; lint queue/aio_util strictly and syntax-check AIO.lua and tests with lua -p.
Ubuntu Noble has no luacheck apt package; use luarocks instead.
Use project config so scoped lint passes (no-config treated warnings as failures).
Per-file globals replaced the std allowlist and flagged string/table/etc.
Also silence unused self arg in Queue.__index.
Same changes as PR #23, applied directly to the example server script.
Vendors Rochet2/lualzw 6cbf8ab (release 1.1.0). Default export uses
skip = { [0] = true } so wire format matches the former zeros branch.
Adds lualzw round-trip tests; documents version in DEPENDENCIES.md.
Remove unused curmsg (timeout text lives in AIO.lua now), drop unreachable
return after error, and use _G.unpack for Lua 5.1 luacheck compatibility.
Luacheck rejects local assert/print/type/select aliases (W122).
Luacheck warns when using length operator on tables with an n field.
Avoid shadowing globals (NewQueue, Smallfolk, lualzw), fix reassembler
part counting, and print luacheck output on failure in CI.
Bump AIO_VERSION to 1.76 with CHANGELOG upgrade notes. Add aio_rpc unit tests,
CI queue.lua sync check, FUTURE_WORK backlog, and README testing or config docs.
Fix unpack in aio_rpc for Lua 5.4 test hosts.
Rochet2 added 28 commits June 1, 2026 04:07
Load server and client AIO.lua outside WoW to exercise Send, pipeline Init,
slash help, and AIO.Handle. Allow table mock players when AIO_TEST_ALLOW_TABLE_PLAYERS
is set for the test harness only.
Server integration runs on 5.1-5.4; client integration on 5.1 only. Add CI
matrix jobs for 5.2-5.4 server coverage and skip reporting in run.lua.
Keep test-server-lua matrix to run.lua on 5.2-5.4 without duplicate lint steps.
Point stored-byte tests at aio_reassembler, wire isMessageExpired into expiry sweeps, centralize Luacheck paths (including AIO.lua), sync-check vendored twins, and correct changelog/README claims.
@Rochet2 Rochet2 changed the title Fix messaging bugs, add tests, CI, and project docs AIO 1.76: messaging fixes, module split, tests, and CI Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant