@aexol/spectral 0.3.6 → 0.3.7

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.
@@ -488,6 +488,7 @@ export function handleClientMessage(frame, deps) {
488
488
  sessionId,
489
489
  history: attachResult.history,
490
490
  currentTurn: attachResult.currentTurn,
491
+ forkCompactPending: attachResult.forkCompactPending || undefined,
491
492
  },
492
493
  });
493
494
  // Surface bridge-start failures as `error` events; otherwise the
@@ -559,6 +560,7 @@ export function handleSubscribe(frame, deps) {
559
560
  sessionId,
560
561
  history: attachResult.history,
561
562
  currentTurn: attachResult.currentTurn,
563
+ forkCompactPending: attachResult.forkCompactPending || undefined,
562
564
  },
563
565
  });
564
566
  if (isNewSubscriber) {
@@ -105,6 +105,7 @@ export class SessionStreamManager {
105
105
  history: detail.messages,
106
106
  currentTurn: stream.currentTurn ? snapshotTurn(stream.currentTurn) : null,
107
107
  ready: stream.ready,
108
+ forkCompactPending: stream.forkCompactSourceId != null,
108
109
  };
109
110
  }
110
111
  /**
@@ -417,7 +417,7 @@ export class SessionStore {
417
417
  if (!row)
418
418
  return null;
419
419
  const messages = this.getMessages(id);
420
- return {
420
+ const detail = {
421
421
  id: row.id,
422
422
  projectId: row.project_id,
423
423
  title: row.title,
@@ -425,6 +425,12 @@ export class SessionStore {
425
425
  updatedAt: row.updated_at,
426
426
  messages,
427
427
  };
428
+ // Expose the fork-compact flag so the UI can show a special send
429
+ // button for the first message of a forked session.
430
+ if (this.getForkCompactSource(id)) {
431
+ detail.forkCompactPending = true;
432
+ }
433
+ return detail;
428
434
  }
429
435
  /** Convenience for routes/managers that just need the projectId. */
430
436
  getSessionProjectId(id) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexol/spectral",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "Always-on coding agent for Aexol — branded pi wrapper with relay-based browser access.",
5
5
  "type": "module",
6
6
  "private": false,