@antzsoft/chat-core 1.3.3 → 1.3.5
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.
- package/README.md +35 -1
- package/dist/index.cjs +14 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +14 -7
- package/dist/index.js.map +1 -1
- package/dist/internal.d.cts +1 -1
- package/dist/internal.d.ts +1 -1
- package/dist/{storage-DdHsneZR.d.cts → storage-DJh54pps.d.cts} +7 -0
- package/dist/{storage-DdHsneZR.d.ts → storage-DJh54pps.d.ts} +7 -0
- package/docs/integration-guide.html +63 -3
- package/package.json +1 -1
|
@@ -155,7 +155,7 @@ section.sec>h2:hover{color:#fff}
|
|
|
155
155
|
|
|
156
156
|
<div class="section-label">What's New</div>
|
|
157
157
|
<ul>
|
|
158
|
-
<li><a href="#whats-new">v1.3.
|
|
158
|
+
<li><a href="#whats-new">v1.3.4 Release Notes</a></li>
|
|
159
159
|
</ul>
|
|
160
160
|
|
|
161
161
|
<div class="section-label">Getting Started</div>
|
|
@@ -250,12 +250,72 @@ section.sec>h2:hover{color:#fff}
|
|
|
250
250
|
<h2>What's New</h2>
|
|
251
251
|
<p style="color:var(--muted);font-size:13px;margin-bottom:20px">Version history and release notes. Click a version to expand.</p>
|
|
252
252
|
|
|
253
|
-
<!-- ── v1.3.
|
|
253
|
+
<!-- ── v1.3.4 (current) ── -->
|
|
254
|
+
<div class="wn-version open" id="wn-134">
|
|
255
|
+
<div class="wn-header" onclick="toggleVersion('wn-134')">
|
|
256
|
+
<div class="wn-title">
|
|
257
|
+
<span class="wn-ver">v1.3.4</span>
|
|
258
|
+
<span class="wn-badge current">Current</span>
|
|
259
|
+
<span class="wn-date">July 2026</span>
|
|
260
|
+
</div>
|
|
261
|
+
<span class="wn-chevron">▲</span>
|
|
262
|
+
</div>
|
|
263
|
+
<div class="wn-body">
|
|
264
|
+
|
|
265
|
+
<div class="wn-item" id="wn-134-deleted-conv-ids">
|
|
266
|
+
<div class="wn-item-header" onclick="toggleItem('wn-134-deleted-conv-ids')">
|
|
267
|
+
<span class="wn-tag new">New</span>
|
|
268
|
+
<span class="wn-item-title"><code>deletedConversationIds</code> in <code>CrossConversationSyncResponse</code></span>
|
|
269
|
+
<span class="wn-chevron-sm">▾</span>
|
|
270
|
+
</div>
|
|
271
|
+
<div class="wn-item-body">
|
|
272
|
+
<p><code>syncApi.pull(since)</code> now returns <code>deletedConversationIds: string[]</code> — IDs of conversations this user explicitly deleted from their list (via the delete-conversation action) since the <code>since</code> cursor. The client should remove these from local storage and the UI conversation list.</p>
|
|
273
|
+
<table>
|
|
274
|
+
<thead><tr><th>Property</th><th>Type</th><th>Description</th></tr></thead>
|
|
275
|
+
<tbody>
|
|
276
|
+
<tr><td><code>deletedConversationIds</code></td><td><code>string[]</code></td><td>Conversation IDs to remove from local list. Empty array when none were deleted in the sync window.</td></tr>
|
|
277
|
+
</tbody>
|
|
278
|
+
</table>
|
|
279
|
+
<pre><code><span class="kw">const</span> result = <span class="kw">await</span> syncApi.<span class="fn">pull</span>(lastSyncedAt);
|
|
280
|
+
|
|
281
|
+
<span class="cm">// Remove conversations the user deleted from their list</span>
|
|
282
|
+
<span class="kw">for</span> (<span class="kw">const</span> convId <span class="kw">of</span> result.deletedConversationIds) {
|
|
283
|
+
<span class="kw">await</span> db.conversations.<span class="fn">delete</span>(convId);
|
|
284
|
+
}</code></pre>
|
|
285
|
+
<p><strong>Scoped to the requesting user only</strong> — if another user deletes their copy of a shared DM, it does not appear in your <code>deletedConversationIds</code>. <strong>Cursor-safe</strong> — once the client saves the returned <code>syncedAt</code> as the new cursor, the same IDs will not reappear on the next <code>pull()</code>. No acknowledged-receipt tracking needed.</p>
|
|
286
|
+
<p><strong>No integration changes required</strong> beyond consuming the new field. The field is always present (empty array when nothing was deleted).</p>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
|
|
290
|
+
<div class="wn-item" id="wn-134-sync-guards">
|
|
291
|
+
<div class="wn-item-header" onclick="toggleItem('wn-134-sync-guards')">
|
|
292
|
+
<span class="wn-tag fix">Fix</span>
|
|
293
|
+
<span class="wn-item-title">Sync access guard parity with message listing API</span>
|
|
294
|
+
<span class="wn-chevron-sm">▾</span>
|
|
295
|
+
</div>
|
|
296
|
+
<div class="wn-item-body">
|
|
297
|
+
<p>All three sync paths now enforce the same access rules as <code>GET /messages</code>. Previously sync could return messages that message listing would not show.</p>
|
|
298
|
+
<table>
|
|
299
|
+
<thead><tr><th>Guard</th><th>Before</th><th>After</th></tr></thead>
|
|
300
|
+
<tbody>
|
|
301
|
+
<tr><td><code>membershipPeriods</code> windows</td><td>Not enforced — all messages returned regardless of when user was a member</td><td>Messages outside the user's active membership windows are excluded. Re-added users only see messages from their active periods.</td></tr>
|
|
302
|
+
<tr><td><code>status</code> filter</td><td>Only <code>deletedFor</code> checked — <code>failed</code>-status messages leaked through</td><td>Only <code>active</code> and <code>deleted</code> (tombstone) messages returned, matching message listing</td></tr>
|
|
303
|
+
<tr><td><code>isHidden</code> group check</td><td>Not checked — hidden group members could still sync</td><td>Hidden group participants (exit+delete) receive <code>403</code>. Hidden DM participants still allowed (consistent with message listing).</td></tr>
|
|
304
|
+
<tr><td>Removed-member read access</td><td><code>isActive: true</code> required — removed members blocked from syncing history</td><td>Removed members can sync read-only history, matching message listing <code>validateConversationAccess</code></td></tr>
|
|
305
|
+
</tbody>
|
|
306
|
+
</table>
|
|
307
|
+
<p><strong>No integration changes required.</strong> Response shape is unchanged — only the correctness of the returned message set improves.</p>
|
|
308
|
+
</div>
|
|
309
|
+
</div>
|
|
310
|
+
|
|
311
|
+
</div>
|
|
312
|
+
</div><!-- /.wn-version -->
|
|
313
|
+
|
|
314
|
+
<!-- ── v1.3.3 ── -->
|
|
254
315
|
<div class="wn-version open" id="wn-133">
|
|
255
316
|
<div class="wn-header" onclick="toggleVersion('wn-133')">
|
|
256
317
|
<div class="wn-title">
|
|
257
318
|
<span class="wn-ver">v1.3.3</span>
|
|
258
|
-
<span class="wn-badge current">Current</span>
|
|
259
319
|
<span class="wn-date">June 2026</span>
|
|
260
320
|
</div>
|
|
261
321
|
<span class="wn-chevron">▲</span>
|
package/package.json
CHANGED