@minicode-dev/chat 0.1.12 → 0.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +112 -5
  2. package/README.md +401 -309
  3. package/assets/sounds/effects/avalanche.mp3 +0 -0
  4. package/assets/sounds/racing/car_boost.mp3 +0 -0
  5. package/assets/sounds/racing/car_boost.ogg +0 -0
  6. package/assets/sounds/racing/car_bump.mp3 +0 -0
  7. package/assets/sounds/racing/car_bump.ogg +0 -0
  8. package/assets/sounds/racing/car_drift_loop.mp3 +0 -0
  9. package/assets/sounds/racing/car_drift_loop.ogg +0 -0
  10. package/assets/sounds/racing/car_engine_loop.mp3 +0 -0
  11. package/assets/sounds/racing/car_engine_loop.ogg +0 -0
  12. package/assets/sounds/racing/car_engine_start.mp3 +0 -0
  13. package/assets/sounds/racing/car_engine_start.ogg +0 -0
  14. package/assets/sounds/racing/countdown_beep.mp3 +0 -0
  15. package/assets/sounds/racing/countdown_beep.ogg +0 -0
  16. package/assets/sounds/racing/countdown_go.mp3 +0 -0
  17. package/assets/sounds/racing/countdown_go.ogg +0 -0
  18. package/assets/sounds/racing/final_lap.mp3 +0 -0
  19. package/assets/sounds/racing/final_lap.ogg +0 -0
  20. package/assets/sounds/racing/finish_line.mp3 +0 -0
  21. package/assets/sounds/racing/finish_line.ogg +0 -0
  22. package/assets/sounds/racing/lap_complete.mp3 +0 -0
  23. package/assets/sounds/racing/lap_complete.ogg +0 -0
  24. package/assets/sounds/racing/music_circuit.mp3 +0 -0
  25. package/assets/sounds/racing/music_circuit.ogg +0 -0
  26. package/assets/sounds/racing/music_final_lap.mp3 +0 -0
  27. package/assets/sounds/racing/music_final_lap.ogg +0 -0
  28. package/assets/sounds/racing/race_defeat.mp3 +0 -0
  29. package/assets/sounds/racing/race_defeat.ogg +0 -0
  30. package/assets/sounds/racing/race_victory.mp3 +0 -0
  31. package/assets/sounds/racing/race_victory.ogg +0 -0
  32. package/assets/sounds/tanks/barrel_explode.mp3 +0 -0
  33. package/assets/sounds/tanks/barrel_explode.ogg +0 -0
  34. package/assets/sounds/tanks/crate_break.mp3 +0 -0
  35. package/assets/sounds/tanks/crate_break.ogg +0 -0
  36. package/assets/sounds/tanks/health_pickup.mp3 +0 -0
  37. package/assets/sounds/tanks/health_pickup.ogg +0 -0
  38. package/assets/sounds/tanks/last_life.mp3 +0 -0
  39. package/assets/sounds/tanks/last_life.ogg +0 -0
  40. package/assets/sounds/tanks/life_lost.mp3 +0 -0
  41. package/assets/sounds/tanks/life_lost.ogg +0 -0
  42. package/assets/sounds/tanks/respawn.mp3 +0 -0
  43. package/assets/sounds/tanks/respawn.ogg +0 -0
  44. package/assets/sounds/tanks/shield_end.mp3 +0 -0
  45. package/assets/sounds/tanks/shield_end.ogg +0 -0
  46. package/assets/sounds/tanks/shield_loop.mp3 +0 -0
  47. package/assets/sounds/tanks/shield_loop.ogg +0 -0
  48. package/assets/sounds/tanks/wall_hit.mp3 +0 -0
  49. package/assets/sounds/tanks/wall_hit.ogg +0 -0
  50. package/dist/chunks/{BattleshipGameCard-iRk8d4vR.js → BattleshipGameCard-B-B4r7lK.js} +146 -144
  51. package/dist/chunks/{BattleshipGameCard-iRk8d4vR.js.map → BattleshipGameCard-B-B4r7lK.js.map} +1 -1
  52. package/dist/chunks/{ChatContext-DjIEifGY.js → ChatContext-DQtKsR6Z.js} +2 -2
  53. package/dist/chunks/{ChatContext-DjIEifGY.js.map → ChatContext-DQtKsR6Z.js.map} +1 -1
  54. package/dist/chunks/RacingLiveGameCard-c1G7uoDI.js +1654 -0
  55. package/dist/chunks/RacingLiveGameCard-c1G7uoDI.js.map +1 -0
  56. package/dist/chunks/{TanksGameCard-B47ZQcSr.js → TanksGameCard-CvTaF7tu.js} +164 -162
  57. package/dist/chunks/{TanksGameCard-B47ZQcSr.js.map → TanksGameCard-CvTaF7tu.js.map} +1 -1
  58. package/dist/chunks/TanksLiveGameCard-COr9Oay5.js +1011 -0
  59. package/dist/chunks/TanksLiveGameCard-COr9Oay5.js.map +1 -0
  60. package/dist/chunks/avalancheScene3d-Z5QyZIid.js +1299 -0
  61. package/dist/chunks/avalancheScene3d-Z5QyZIid.js.map +1 -0
  62. package/dist/chunks/connect4Sounds-DmD-E9kX.js +235 -0
  63. package/dist/chunks/connect4Sounds-DmD-E9kX.js.map +1 -0
  64. package/dist/chunks/connectionStore-DwgIUl30.js +13 -0
  65. package/dist/chunks/connectionStore-DwgIUl30.js.map +1 -0
  66. package/dist/chunks/createLiveScene-CWBunxPi.js +367 -0
  67. package/dist/chunks/createLiveScene-CWBunxPi.js.map +1 -0
  68. package/dist/chunks/createRaceScene-C7Rw89kj.js +305 -0
  69. package/dist/chunks/createRaceScene-C7Rw89kj.js.map +1 -0
  70. package/dist/chunks/{createTankScene-CV7Brxmt.js → createTankScene-yhX6la27.js} +150 -147
  71. package/dist/chunks/{createTankScene-CV7Brxmt.js.map → createTankScene-yhX6la27.js.map} +1 -1
  72. package/dist/chunks/decor-CyyCnmct.js +418 -0
  73. package/dist/chunks/decor-CyyCnmct.js.map +1 -0
  74. package/dist/chunks/fx-1ZwzmPWj.js +458 -0
  75. package/dist/chunks/fx-1ZwzmPWj.js.map +1 -0
  76. package/dist/chunks/fx-UZwhOmdl.js +584 -0
  77. package/dist/chunks/fx-UZwhOmdl.js.map +1 -0
  78. package/dist/chunks/gameStatus-BChd29yI.js +62 -0
  79. package/dist/chunks/gameStatus-BChd29yI.js.map +1 -0
  80. package/dist/chunks/{connect4Sounds-Cv0q31VW.js → games-BvYTWgaR.js} +814 -951
  81. package/dist/chunks/games-BvYTWgaR.js.map +1 -0
  82. package/dist/chunks/rolldown-runtime-CGnMp29N.js +10 -0
  83. package/dist/chunks/tank-DjEQ4FXF.js +553 -0
  84. package/dist/chunks/tank-DjEQ4FXF.js.map +1 -0
  85. package/dist/chunks/tanks-live-BcKmrhnV.js +261 -0
  86. package/dist/chunks/tanks-live-BcKmrhnV.js.map +1 -0
  87. package/dist/chunks/{tanksSounds-CUNDIOal.js → tanksSounds-DwjfSp3W.js} +43 -11
  88. package/dist/chunks/tanksSounds-DwjfSp3W.js.map +1 -0
  89. package/dist/chunks/track-BcnnpnAm.js +259 -0
  90. package/dist/chunks/track-BcnnpnAm.js.map +1 -0
  91. package/dist/chunks/util-DwI9bfS7.js +57 -0
  92. package/dist/chunks/util-DwI9bfS7.js.map +1 -0
  93. package/dist/index.js +2176 -1592
  94. package/dist/index.js.map +1 -1
  95. package/dist/styles.css +1 -1
  96. package/index.d.ts +4 -2
  97. package/package.json +1 -1
  98. package/dist/chunks/TanksLiveGameCard-DGsnMD3j.js +0 -1225
  99. package/dist/chunks/TanksLiveGameCard-DGsnMD3j.js.map +0 -1
  100. package/dist/chunks/connect4Sounds-Cv0q31VW.js.map +0 -1
  101. package/dist/chunks/createLiveScene-BqI7qV4n.js +0 -364
  102. package/dist/chunks/createLiveScene-BqI7qV4n.js.map +0 -1
  103. package/dist/chunks/fx-BHsl4S_J.js +0 -1470
  104. package/dist/chunks/fx-BHsl4S_J.js.map +0 -1
  105. package/dist/chunks/gameStatus-Cu1Z8un9.js +0 -69
  106. package/dist/chunks/gameStatus-Cu1Z8un9.js.map +0 -1
  107. package/dist/chunks/tanksSounds-CUNDIOal.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,7 +2,103 @@
2
2
 
3
3
  All notable changes to `@minicode-dev/chat` (owner: Minicode, project: LIRA).
4
4
 
5
- ## Unreleased
5
+ Dates are npm publish dates (UTC). Changes are matched to each version by commit time and publish time; a release
6
+ may also include work that was still uncommitted when it was published.
7
+
8
+ ## 0.1.13 — 2026-10-28
9
+
10
+ ### Added
11
+
12
+ - Avalancha effect (`avalanche`, 🚀): a 7-second 3D shower of low-poly money, cars, tanks and confetti that fall,
13
+ bounce and pile up before a bill-sweep finale. Uses the optional `three` peer (lazy) and falls back to a CSS emoji
14
+ animation without WebGL, after a lost WebGL context or with reduced motion. Also available as a countdown final effect.
15
+ - Approved recording `assets/sounds/effects/avalanche.mp3` (7.0 s). Hosts must serve it with the other effect sounds.
16
+ - `ChatEffectId` now includes `'avalanche'`.
17
+
18
+ ### Changed
19
+
20
+ - Internal documentation moved to `docs/` (not included in the package).
21
+
22
+ ## 0.1.12 — 2026-10-26
23
+
24
+ ### Added
25
+
26
+ - Manual TURN recovery inside Tanques LIVE: one player pastes temporary `iceServers` (or a Cloudflare TURN response)
27
+ and both peers reconnect. The configuration travels through the private chat signaling encrypted with ephemeral
28
+ ECDH/AES-GCM, applies to the current match only and is never persisted. Includes connection diagnostics and a
29
+ relay-only debugging option.
30
+
31
+ ## 0.1.11 — 2026-10-26
32
+
33
+ ### Added
34
+
35
+ - Countdown messages (`[minicode-countdown:v1]`): quick or custom durations up to 24 hours, a hidden final effect
36
+ revealed at zero, optional sound and an effect preview. Older clients show a readable fallback.
37
+
38
+ ## 0.1.10 — 2026-10-23
39
+
40
+ ### Fixed
41
+
42
+ - UUIDs for messages, games and notifications are generated on plain-HTTP LAN origins, where
43
+ `crypto.randomUUID` is unavailable.
44
+ - Tanques LIVE shows connection diagnostics (signaling vs. ICE) and can retry the link without resetting tanks or HP.
45
+
46
+ ## 0.1.9 — 2026-10-23
47
+
48
+ ### Changed
49
+
50
+ - Emoji autocomplete resolves familiar emoticons (case and nose variants) and ignores URLs, paths, times and
51
+ completed tokens.
52
+
53
+ ## 0.1.8 — 2026-10-23
54
+
55
+ ### Added
56
+
57
+ - WebRTC peer links signaled through chat text (`LIRA_WEBRTC_V1:`): two negotiated DataChannels, ACK/retransmit,
58
+ deduplication, glare handling, ICE restart and reconnection. Signaling frames are never shown, stored or counted as
59
+ unread. No backend changes.
60
+ - Public exports `createPeerLink`, `createChatSignaling`, `rtcSignals`, `withSignalFaults`, `DEFAULT_ICE_SERVERS`,
61
+ `WEBRTC_PREFIX`, `MAX_SIGNAL_LENGTH`, `isWebrtcMessage`, `encodeSignal`, `decodeSignal` and the lazy `WebRtcLab`.
62
+ - Tanques LIVE 3D (`tanks_live`): real-time 1 vs. 1 tank combat over WebRTC, hits resolved by the inviting host,
63
+ 3D scene with Canvas 2D fallback, desktop and touch controls, rematch. Behind `features.games.tanksLive` (off by default).
64
+ - `config.webrtc` (`iceServers`, `iceTransportPolicy`).
65
+
66
+ ## 0.1.7 — 2026-10-23
67
+
68
+ ### Added
69
+
70
+ - Tanques de guerra 3D (`tanks`), a turn-based tank duel: deterministic integer physics, seeded maps, craters and
71
+ three ammo types; lockstep sync over `LIRA_GAME_V1` with state hashes, resync and reload restore; lazy `three`
72
+ scene with a playable Canvas 2D fallback; 12-sound pack in `assets/sounds/tanks/`. Behind `features.games.tanks`
73
+ (off by default).
74
+ - Games are dispatched through a per-game registry, so new games never fall into the Connect 4 path.
75
+
76
+ ### Fixed
77
+
78
+ - `decodeAudioData` rejections for missing sound files no longer surface as unhandled errors.
79
+
80
+ ## 0.1.6 — 2026-10-23
81
+
82
+ ### Added
83
+
84
+ - Effect sounds play in background tabs and closed chats; returning to the conversation within `maxAgeMs` replays
85
+ the full effect. New `effects.backgroundSound` option (default `true`).
86
+
87
+ ## 0.1.5 — 2026-10-23
88
+
89
+ ### Changed
90
+
91
+ - Nudge becomes a three.js electric storm (Canvas 2D fallback) and confetti a 3D party (CSS fallback), both synced
92
+ to new 7-second recordings with a per-effect volume level and lighter budgets on mobile.
93
+
94
+ ## 0.1.4 — 2026-10-23
95
+
96
+ ### Changed
97
+
98
+ - Incoming effects autoplay by default in visible conversations, with a 5-second cooldown and no window-focus requirement.
99
+ - New incoming effects can replace an active animation; confetti now fills the panel with 220 responsive particles.
100
+
101
+ ## 0.1.3 — 2026-10-23
6
102
 
7
103
  ### Added
8
104
 
@@ -14,13 +110,24 @@ All notable changes to `@minicode-dev/chat` (owner: Minicode, project: LIRA).
14
110
 
15
111
  ### Changed
16
112
 
17
- - Incoming effects autoplay by default in visible conversations, with a 5-second cooldown and no window-focus requirement.
18
- - New incoming effects can replace an active animation; confetti now fills the panel with 220 responsive particles.
19
-
20
113
  - Effects respect mute, reduced motion, cooldowns and manual replay; old messages and duplicates do not autoplay.
21
114
  - Standalone development and release documentation. Host applications must update their served sound assets.
22
115
 
23
- ## 0.1.0 (unreleased)
116
+ ## 0.1.2 — 2026-10-23
117
+
118
+ - Published one minute after 0.1.1, with no separate commit; no changes recorded.
119
+
120
+ ## 0.1.1 — 2026-10-23
121
+
122
+ ### Added
123
+
124
+ - `npm run release` script: version bump, build, package content validation and publish.
125
+
126
+ ### Changed
127
+
128
+ - `publishConfig.access` is now `public` (it was `restricted`).
129
+
130
+ ## 0.1.0 — 2026-10-22
24
131
 
25
132
  First release extracted from LIRA.
26
133