@frockbot/plugin-audit 0.3.11 → 0.3.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frockbot/plugin-audit",
3
- "version": "0.3.11",
3
+ "version": "0.3.13",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {
@@ -25,18 +25,18 @@
25
25
  "typecheck": "vue-tsc --noEmit -p tsconfig.json"
26
26
  },
27
27
  "dependencies": {
28
- "@frockbot/client-core": "0.3.11",
29
- "@frockbot/client-ui": "0.3.11",
30
- "@frockbot/kernel-contracts": "0.3.11",
31
- "@frockbot/plugin-shell": "0.3.11",
32
- "@frockbot/secret-shapes": "0.3.11",
28
+ "@frockbot/client-core": "0.3.13",
29
+ "@frockbot/client-ui": "0.3.13",
30
+ "@frockbot/kernel-contracts": "0.3.13",
31
+ "@frockbot/plugin-shell": "0.3.13",
32
+ "@frockbot/secret-shapes": "0.3.13",
33
33
  "cordis": "4.0.0-rc.8",
34
34
  "vue": "3.5.41"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/bun": "1.4.0",
38
38
  "@vitejs/plugin-vue": "6.0.8",
39
- "typescript": "5.9.3",
39
+ "typescript": "npm:typescript-native-bridge@6.0.3-bridge.16.tsgo.7.0.2",
40
40
  "vite": "8.2.2",
41
41
  "vue-tsc": "3.3.10"
42
42
  },
package/src/bot.ts CHANGED
@@ -273,10 +273,12 @@ export class AuditOutboxV1 {
273
273
  if (entries.length === 0) return this.state();
274
274
  const outbox = await this.read();
275
275
  const seen = new Set(
276
- outbox.entries.map((entry) => `${entry.runId}${entry.occurrenceId}`),
276
+ outbox.entries.map(
277
+ (entry) => `${entry.runId}\u0000${entry.occurrenceId}`,
278
+ ),
277
279
  );
278
280
  for (const entry of entries) {
279
- const key = `${entry.runId}${entry.occurrenceId}`;
281
+ const key = `${entry.runId}\u0000${entry.occurrenceId}`;
280
282
  if (seen.has(key)) continue;
281
283
  seen.add(key);
282
284
  outbox.entries.push(entry);
@@ -314,12 +316,15 @@ export class AuditOutboxV1 {
314
316
  const remaining = await this.read();
315
317
  // Anything appended while the sink was in flight stays pending.
316
318
  const deliveredKeys = new Set(
317
- outbox.entries.map((entry) => `${entry.runId}${entry.occurrenceId}`),
319
+ outbox.entries.map(
320
+ (entry) => `${entry.runId}\u0000${entry.occurrenceId}`,
321
+ ),
318
322
  );
319
323
  const next: StoredOutbox = {
320
324
  schemaVersion: 1,
321
325
  entries: remaining.entries.filter(
322
- (entry) => !deliveredKeys.has(`${entry.runId}${entry.occurrenceId}`),
326
+ (entry) =>
327
+ !deliveredKeys.has(`${entry.runId}\u0000${entry.occurrenceId}`),
323
328
  ),
324
329
  truncated: remaining.truncated || outbox.truncated,
325
330
  };
@@ -212,12 +212,24 @@ function when(entry: AuditEntryV1): string {
212
212
  gap: 12px;
213
213
  }
214
214
 
215
+ /*
216
+ * The section head wraps rather than squeezing its own description. With the
217
+ * action fixed at its intrinsic width, the sentence was folded into a ~180px
218
+ * ribbon while a quarter of the panel sat empty beside it; below that basis
219
+ * the action takes its own line instead.
220
+ */
215
221
  .audit__header {
216
222
  display: flex;
223
+ flex-wrap: wrap;
217
224
  align-items: center;
218
225
  gap: 10px;
219
226
  }
220
227
 
228
+ .audit__header > :deep(.ui-button),
229
+ .audit__header > button {
230
+ margin-left: auto;
231
+ }
232
+
221
233
  .audit__icon {
222
234
  display: grid;
223
235
  width: var(--frock-avatar-sm);
@@ -233,7 +245,7 @@ function when(entry: AuditEntryV1): string {
233
245
  .audit__intro {
234
246
  display: flex;
235
247
  min-width: 0;
236
- flex: 1 1 auto;
248
+ flex: 1 1 14rem;
237
249
  flex-direction: column;
238
250
  }
239
251