Skip to content

Releases: caty-ai/meetmate

v8.17.4 — #239 prewarm the Meet forced-delegation fallback line (PR #244, bump PR #245)

Choose a tag to compare

@github-actions github-actions released this 09 Sep 16:08
9563d12

v8.17.4 — #239 TTS cache prewarm: include the Meet forced-delegation fallback line (PR #244, squash d49f65a; bump PR #245). collectFixedTtsPhrases now lists forcedDelegationFallbackMeet when the provider is OpenClaw-routed, llm.firstTokenDelegateMs > 0 and gatewayEvents.enabled is on — the same gate under which the pipeline speaks it — so the line is prewarmed at startup and kept by the v8.17.2 orphan prune instead of being synthesised live on every forced-delegation timeout and deleted at every next start. Flag-off phrase list byte-identical to v8.17.3. No new setting, no docs change. Evidence: PR #244 completion record (host make test on b37c551 99/99, 3 seats Opus/Qwen/Gemini r1 3/3 GO, blocking 0, no delta; Opus hashed prewarm key == speak key), main make test on d49f65a 99/99 1104 pass, CI runs 34335971816 / 34369439361. Between v8.17.3 and this tag: #244, #245 (bump), repo-state pins (non-shipping).

v8.17.3

Choose a tag to compare

@github-actions github-actions released this 09 Sep 09:12
e3037bf

v8.17.3 — #237 openai-compatible TTS: #234 follow-ups A (PR #240, squash 23c82b1; bump PR #243). Dispatcher forwards an explicit sourceSampleRate with ?? so a programmatic 0 / "" / NaN is rejected by the adapter's 8000–96000 Hz check instead of silently taking the configured value; absent/undefined unchanged. Test-only guard rails: registry numeric-alias guard asserts its allow-list order-insensitively; 48 kHz fixture exercises an odd-byte chunk boundary and fails fast on a length mismatch; 32 kHz reference sized from the buffer. Evidence: PR #240 completion record (host make test 99/99 1094 pass, 3 seats Opus/Qwen/Gemini r2 cumulative 3/3 GO), main make test on 23c82b1 99/99 1103 pass, CI run 34317978912. Number moved from v8.17.2 (taken by #238) to v8.17.3. Follow-up: length pre-check at test/tts-providers.test.js:443. Between v8.17.2 and this tag: #240, #243 (bump), repo-state pins (non-shipping).

v8.17.2

Choose a tag to compare

@github-actions github-actions released this 09 Sep 08:31
6d0999d

v8.17.2 — #238 TTS cache: prune orphaned .pcm entries (PR #241, squash e9c02c9; bump PR #242). At prewarm, cached .pcm files whose key is not produced by the current fixed-phrase list and TTS identity are deleted (two-stage plan/delete, lstat-only, symlinks / sub-dirs / .tmp-* untouched, empty list never prunes; opt-out tts.cache.prewarm=false). Clears the entries orphaned by the #234 cache-key change and every voice/model/baseUrl/rate change since. Evidence: PR #241 completion record (host make test 99/99, 3 seats Opus/Qwen/Gemini cumulative 3/3 GO), CI run 34318415668. Follow-up: #239. Between v8.17.1 and this tag: #241, #242 (bump), repo-state pins (non-shipping).

v8.17.1 — OpenAI-compatible TTS: resample non-24 kHz servers (Irodori-TTS) + peer wake words in STT context

Choose a tag to compare

@github-actions github-actions released this 08 Sep 15:40
21dc7a7

v8.17.1 — OpenAI-compatible TTS: resample non-24 kHz servers (Irodori-TTS) + peer wake words in STT context

Ship-equivalent release after #235 (#234) and #233 (#213, deferred release fulfilled here).

  • New setting tts.openaiCompatibleTts.sourceSampleRate / OPENAI_COMPATIBLE_TTS_SOURCE_SAMPLE_RATE (default 24000, 8000-96000): Meetmate resamples PCM16 mono from the server's native rate to the fixed 24 kHz output, so Irodori-TTS-Server (48 kHz) and other non-24 kHz OpenAI-compatible servers play at the right speed and pitch. Cache identity includes the source rate; docs updated (setup guide, 4 READMEs, settings contract). Existing 24 kHz setups are byte-identical pass-through.
  • Peer wake words from the hub roster are merged into the STT context terms automatically (Soniox reconnects gracefully; Deepgram applies on next connect); no change when the hub is disabled.

Evidence: PR #235 (L1-7 record; seats r1 3/3 NO-GO -> delta-1 -> r2 3/3 GO; live Irodori re-run 0.00 % duration delta), PR #233, main make test on 6c1e10a: suites declared=99 executed=99, 1093 pass / 0 fail; CI run https://github.com/caty-ai/meetmate/actions/runs/34211555111

v8.17.0

Choose a tag to compare

@github-actions github-actions released this 06 Sep 14:14
33e563c

v8.17.0 — hosted v1 W2+W3: hosted hub client (room code, hub token, terminal/retryable rejections, continue-without-arbitration, speakManual carve-out, join-auth convergence). PR #228 merge 0574bf6, release commit PR #232; make test 98/98 on main 0ed87b1

v8.16.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 18:36
9b5ebaa

v8.16.0 — user-facing diagnostic IDs MM-- on /readiness, join failures, both screens, and the LLM timeout log; PR #221 (#197)

v8.15.2

Choose a tag to compare

@github-actions github-actions released this 05 Sep 17:47
7d7d45d

meetmate v8.15.2 — publication gate denylist adopts wsl-unc-linux-home / host-mount-user-path (x-collector v0.3.4); PR #219 (#207)

Two family denylist rules adopted verbatim from caty-ai/x-collector .publication-denylist @ 222394d (PR #101, released v0.3.4): \wsl$<distro>\home<name> / \wsl.localhost... and /cygdrive|/host_mnt|/mnt///users/ (incl. Docker Desktop /run/desktop/mnt/host). The recorded won't-fix for /c/users/ and roots outside /mnt ships with the rules. Selftest 116 -> 138 assertions with mutation checks; live gate on tracked files 0 -> 0.

Evidence: PR #219 (completion record L1-7, 3 seats glm-5.3 / opus-5 / kimi-k3 GO); bump PR #222; main make test on ad75dde 94/94 suites, exit 0.

v8.15.1

Choose a tag to compare

@github-actions github-actions released this 05 Sep 16:10
93f2b32

meetmate v8.15.1 — settings dashboard shows non-blocking notices for legacy config keys (agents / agent.messages.groupGreetingTemplate); PR #214 (#201)

v8.15.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 11:01
af21f67

v8.15.0 — #127 remove in-meeting agent switching: 1 gateway = 1 agent (PR #209, squash 98da7e9). Behavior-identical (frozen pins P1-P8; 3 seats GO). Migration: run one Meetmate instance per agent and let meet-floor-hub arbitrate. Removed log lines: '🔄 Agent switch', '🤖 Selected agents:', '🔒 Single-agent mode'; removed config key agent.messages.groupGreetingTemplate (legacy 'agents' / groupGreetingTemplate keys now trigger one value-free boot warning). Evidence: PR #209 completion record + CI run 33960356424. Between v8.14.1 and this tag: #204 (repo-state pin, non-shipping), #209, #210 (bump).

meetmate v8.14.1 — publication gate: string-escape decode adopted from x-collector v0.3.3 (#199)

Choose a tag to compare

@shojikumaru shojikumaru released this 05 Sep 08:26
afc332f

Publication gate: string-escape decode (#199)

tools/check_publication_gate.py now decodes JSON/YAML string escapes before applying the denylist — adopted verbatim from caty-ai/x-collector v0.3.3 (lead lane x-collector#77 / PR #95).

  • New STRING_ESCAPE + decode_string_escapes(): \uD8xx\uDCxx surrogate pairs (combined), \uXXXX (lone surrogates verbatim), \UXXXXXXXX (≤ U+10FFFF, non-surrogate), \xHH, \/. Nothing else is decoded.
  • scan_views(): after the existing percent/HTML loop, up to three fixed-point rounds of string-escape decoding per existing view. Existing views keep their indices (no existing finding changes its message); nesting deeper than three layers is the documented boundary.
  • Closes the fail-open where \u002fUsers\u002falice, C:\u005cUsers\u005calice, \u002fmnt\u002fc\u002fusers\u002falice, the PHP-style \/Users\/alice and JSON-in-JSON \\\/Users\\\/alice passed absolute-personal-path, personal-home-path, windows-user-path and wsl-drvfs-user-path.
  • Selftest 85 → 116 assertions: generic string-escape vectors plus canaries against the four shipped rules and an 8-document clean-control block. Mutation-verified (escape loop removed / range(3) → 1 / 2 / 4 each turn the suite red). Live gate on tracked files: 0 → 0.
  • Known fail-closed side effect: source that redacts user paths with an escaped regex literal (e.g. /\u002fUsers\u002f[^\/]+/g) now trips; use the split-literal convention the checker uses for its own samples.

Review: heterogeneous 5-seat release-gate panel (glm-5.3 / grok-4.6 / codex gpt-5.6-sol / gemini-3.8-flash static for kimi-k3 / muse-spark-1.3 for opus-5) — 5/5 GO, no change requests.

PRs: #205 (fix, c57e622), #208 (version bump). Previous release: v8.14.0.