Skip to content

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 08 Aug 21:55
· 92 commits to master since this release

[0.1.1] - 2026-08-08

πŸ› Bug Fixes

  • Prepend v to the tag semver.yml computes
  • Use a PAT to push the release tag, not the default token
  • Join the $server topic and render the rows that arrive on it
  • Clamp send_line's CRLF write to the buffer it actually filled
  • Decode Transfer-Encoding: chunked in HTTP client (fixes #6)
  • Guard the zero-length memcpy in growbuf_append and the body copy
  • Refuse a topic that does not fit instead of joining a different one
  • Add registration deadline and connection cap (issue #7)
  • Replace deprecated ATOMIC_VAR_INIT with direct initializer
  • Emit nick!user@host prefix for $server-window NOTICE rows (#24)
  • (#18) Check json_escape_into return at all 33 connection.c call sites
  • Distinguish server hostname from user nick in server-window NOTICEs (#29)
  • (test) Build the grappa image in prepare.sh before running it
  • (e2e) Drop include: directive; wire COMPOSE_FILE for multi-file merge
  • (e2e) Anchor project-directory to test/ and add RFC 1459 check
  • (e2e) Fix build context paths for compose project-dir resolution
  • (e2e) Fix volume paths relative to compose project directory
  • (e2e) Replace ping with nc in isolation.sh for CI compatibility

πŸ’Ό Other

  • Add SO_RCVTIMEO/SO_SNDTIMEO to bound all blocking I/O on the grappa leg
  • Reject IPv6 bind addresses at parse time, not mid-startup
  • Strip CR/LF/NUL in send_line before writing to client
  • Resolve conflict with develop (test_server_window vs test_render)
  • Develop into master
  • Develop into master
  • Resolve conflict with develop (caps.py step vs e2e job)
  • Develop into master

πŸ“š Documentation

  • Remove dangling bicchierino#2/#3 references from code and README

πŸ§ͺ Testing

  • Add unit suites for json, ws, jsonw, config, http and bridge
  • Cover the chunked decoder added in #19
  • Assert the $server-window prefix shape for both sender kinds
  • A sealed azzurra stack for end-to-end work
  • Cover the CR/LF/NUL guard merged in #32
  • Cover the connection cap and registration deadline from #20
  • Cover the socket timeouts added in #17

βš™οΈ Miscellaneous Tasks

  • Run make check in the build matrix and under ASan/UBSan
  • Ignore a local-only CLAUDE.md mirror
  • Run caps.py in the sanitizers job, and renumber its blocks
  • Wire the sealed azzurra e2e stack into the pipeline