v2.0.15
Changelog
- 06a082b: chore(016): FTS5 baseline + verify T075/T076 done (T046/T075/T076) (#124) (@phsb5321)
- 5ea7c78: chore(016): SQLite hardening + magic-number cleanup (T044/T045/T048-T050) (#116) (@phsb5321)
- 9108e9f: chore(016): US5 bundle — fuzz corpus + rate-limit bench + JID LogValuer (T065/T066/T067) (#119) (@phsb5321)
- 2a681c5: chore(016): audit Source/event_time + CI go mod verify (T051/T052/T071) (#121) (@phsb5321)
- ac93510: chore(016): close US2 — cmd/wa exit-code + error-wrap normalization (T033-T038) (#118) (@phsb5321)
- d9614bf: chore(016): close US5 LogValuer suite (T068/T069/T070) (#120) (@phsb5321)
- 5517fdb: chore(016): coverage CI gate + Dispatcher pattern doc + verify (T072/T073/T082/T084) (#125) (@phsb5321)
- 7bc737b: chore(016): finalize verification suite (T060/T061/T083/T085-T088) (#126) (@phsb5321)
- 5938be3: chore(016): linter expansion — sqlclosecheck + perfsprint + fatcontext (T056-T058/T062/T063) (#128) (@phsb5321)
- 09a5d28: chore(016): rows.Close logging + launchd PATH override + verify fuzz target (#117) (@phsb5321)
- 4dacbfa: chore(016): tamper-evident audit log via HMAC chain (#122) (@phsb5321)
- 19360e8: chore(016): wrapcheck config drafted, linter held disabled (T059) (#131) (@phsb5321)
- 4e50a28: ci(lint): unblock — gocyclo nolint + bump golangci-lint v2.11.4 (#142) (@phsb5321)
- 53a8e82: ci(no-ai-slips): migrate to self-hosted runner (#101) (@phsb5321)
- 60b4af7: ci(sonar): sanitize inherited JAVA_TOOL_OPTIONS so sonar-scanner starts (#140) (@phsb5321)
- 653e711: ci: pin Go via go-version-file: go.mod across all workflows (#141) (@phsb5321)
- 945cdca: docs(016): refresh quickstart + verify pragmas + walk it (T089/T090/T091) (#127) (@phsb5321)
- a846d7a: docs(claude-md): note /v2 import path on go install bootstrap (#104) (@phsb5321)
- c3dfb2c: docs(readme): add services footer — spec 020 FR-006 (#146) (@phsb5321)
- 6926dda: feat(app): IdentityResolver port for PN <-> LID translation (#106) (@phsb5321)
- 73502a7: feat(cli): wa --remote URL HTTPS transport (spec 110c v0) (#113) (@phsb5321)
- aac1709: feat(cli): wa --version + NixOS system-profile hint + stale footer (110i) (#152) (@phsb5321)
- ff43fe8: feat(cmd/wa): wa pair --remote : SSH-chain UX (110e) (#147) (@phsb5321)
- 163e467: feat(cmd/wa): wa pair --reset non-destructive re-pair (110f) (#148) (@phsb5321)
- 850a43a: feat(deploy): Dokku container + SSH-forward multi-host CLI (spec 109) (#109) (@phsb5321)
- 3803a47: feat(domain): expand JID parser — hosted, bot, channel, broadcast refusal (#108) (@phsb5321)
- 9610469: feat(domain): first-class LID JID support (@lid server) (#105) (@phsb5321)
- da120c3: feat(history): preserve PN/LID addressing mode in messages.db (#107) (@phsb5321)
- 3916173: feat(media): wire media.download --transcribe end-to-end (110h) (#151) (@phsb5321)
- e58cfaf: feat(observability): add wa.heap.bytes OTel gauge for leak detection (#143) (@phsb5321)
- 5ec57f4: feat(rest): REST primary adapter skeleton (spec 110a) (#112) (@phsb5321)
- 4a1f12e: feat(rest): SSE events bridge — GET /v1/events (spec 110b v0) (#114) (@phsb5321)
- afdcf37: feat(rest): sqlite tokens store + wad token admin (spec 110d) (#115) (@phsb5321)
- 71ed34c: feat(send): outbound list/button reply (send.listResponse, send.buttonResponse) (#153) (@phsb5321)
- 8e9ad56: feat(watchdog): soft-stale detection + synthetic state events (110g) (#149) (@phsb5321)
- 217f97e: fix(ci): grant security-events:write to gitleaks workflow (#154) (@phsb5321)
- c3e9a72: fix(ci): restore depguard hexagonal boundary post /v2 migration (#100) (@phsb5321)
- 8949375: fix(docker): bump base to golang:1.26.2-alpine3.22 (1.26.1 / alpine3.20 EOL on dockerhub) (#135) (@phsb5321)
- 81e03b5: fix(docker): install git in builder for -buildvcs=true (#155) (@phsb5321)
- 60d7492: fix(media): typed errors for media.download (#102) (#103) (@phsb5321)
- c03a682: fix(nix): update vendorHash for new Go deps (--remote HTTP transport) (@phsb5321)
- d4403e7: fix(sqlitehistory): cap messages.db WAL via journal pragmas (#137) (@phsb5321)
- 8918a37: fix(whatsmeow): Close waits for LoggedOut panic goroutine (#136) (@phsb5321)
- 1a6ad16: perf(016): mmap_size=0 — security AND perf win (T047) (#130) (@phsb5321)
- cf5b523: refactor(016): allowlist debouncer + rate-limiter helper (T021/T074) (#123) (@phsb5321)
- 4968985: refactor(016): centralise startup cleanup into startupCleanup (T020) (#129) (@phsb5321)
- 618b206: refactor(016): extract initRuntime from cmd/wad/main.go (T077) (#133) (@phsb5321)
- c7ae0dd: refactor(016): extract openStores from cmd/wad/main.go (T078) (#132) (@phsb5321)
- 34aab8e: refactor(016): graceful shutdown on startupCleanup + drop gocyclo nolint (T080/T081/T079-deferred) (#134) (@phsb5321)