@ai-matrx/desktop-protocol 0.21.60 → 0.21.62

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/CHANGELOG.md CHANGED
@@ -2,14 +2,42 @@
2
2
 
3
3
  ### Unreleased
4
4
 
5
+ - **Protocol 1.63 — a chat's instance, and what an instance record lacks (2026-10-21).** `ChatRow.home` (`ChatPlace`): the instance whose folder holds the chat, read only (Claude: the side window holding its newest record copy, else main; Codex: the home whose database holds it). `AppInstance.missing` (`InstanceGap[]`: account / email / version): what the record still lacks after Matrx filled what it remembered (Matrx 2 ledger D10). Optional; stripped for a 1.62 peer by `forPeer`. Consumer action: none.
6
+ - **Protocol 1.62 — moves as records (2026-10-20).** `ChatRow.moved` (`ChatMove[]`, newest first: `kind` move / copy, `from`, `to`, `at_ms`, `back_at_ms`): every Move and Copy of a chat between instances as Matrx recorded it, so a screen reads where a chat went and whether it came back from the record, never from a project named "From X". Optional; stripped for a 1.61 peer by `forPeer`. Consumer action: none.
5
7
  - **Protocol 1.61 — where a chat's title shows (2026-10-20).** `ChatRow.title_sync` (`ChatTitleSync`: `state` synced / not_synced / unsupported, and a `note`): the title facet's sync state for the chat's app, so a screen can say honestly whether the app shows the person's name. Optional; stripped for a 1.60 peer by `forPeer`. Consumer action: none.
6
8
  - **Shared code ships once per side (2026-10-18).** Built `splitting: false`, the root, `/frame` and `/client` each carried their own copy of 44 shared modules. ESM now builds them in one split pass (`chunk-server-*.js`, no banner); `/react` builds alone, stamped. CJS unsplit; declarations per group. ESM JS 610,843 -> 398,722 bytes; root + `/client` together 597 KB -> 390 KB; `/frame` stays zod-free (6 KB); every entry's export names identical (ESM and CJS). Guard: `../scripts/check-ships-once.mjs`, run in `build`. Consumer action: none.
7
9
 
8
- ## 0.21.60
10
+ ## 0.21.62
9
11
 
10
12
  UNVERIFIED: this release has no Unreleased entry and the source comparison could not be made (the caller supplied no source comparison). Whether source changed is unknown; consumer action is unknown.
11
13
  Check the package's gitHead on npm against this version's gitHead: `git diff <previous gitHead> <this gitHead> -- apps/shared/desktop-protocol/src`.
12
14
 
15
+ ## 0.21.61
16
+
17
+ SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
18
+ so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
19
+ Diff: `git diff 97978bd752 e86170a22e -- apps/shared/desktop-protocol/src`
20
+
21
+ Changed shipped source files (5):
22
+ - `apps/shared/desktop-protocol/src/contract.ts`
23
+ - `apps/shared/desktop-protocol/src/schema/apps-chats.ts`
24
+ - `apps/shared/desktop-protocol/src/schema/primitives.ts`
25
+ - `apps/shared/desktop-protocol/src/schema/registry.ts`
26
+ - `apps/shared/desktop-protocol/src/versioning.ts`
27
+
28
+ ## 0.21.60
29
+
30
+ SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
31
+ so they may include breaking API changes. Consumer action is UNKNOWN: read the diff before upgrading.
32
+ Diff: `git diff 1c52fd1b8c 97978bd752 -- apps/shared/desktop-protocol/src`
33
+
34
+ Changed shipped source files (5):
35
+ - `apps/shared/desktop-protocol/src/contract.ts`
36
+ - `apps/shared/desktop-protocol/src/schema/apps-chats.ts`
37
+ - `apps/shared/desktop-protocol/src/schema/primitives.ts`
38
+ - `apps/shared/desktop-protocol/src/schema/registry.ts`
39
+ - `apps/shared/desktop-protocol/src/versioning.ts`
40
+
13
41
  ## 0.21.59
14
42
 
15
43
  SOURCE CHANGED WITH NO RELEASE NOTE. This release shipped source changes that nobody described in an Unreleased entry,
@@ -6,7 +6,7 @@ import {
6
6
  import { z } from "zod";
7
7
  import { UUID_SHAPE_PATTERN } from "@ai-matrx/kit/uuid";
8
8
  var PROTOCOL_MAJOR = 1;
9
- var PROTOCOL_MINOR = 61;
9
+ var PROTOCOL_MINOR = 63;
10
10
  var PROTOCOL_VERSION = `${PROTOCOL_MAJOR}.${PROTOCOL_MINOR}`;
11
11
  var ProtocolVersion = z.string().regex(/^[1-9][0-9]{0,2}\.[0-9]{1,3}$/);
12
12
  var RequestId = z.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/);
@@ -1191,6 +1191,13 @@ var ChatTitleSource = z13.enum(["app", "app-remembered", "custom-title", "ai-tit
1191
1191
  var ChatAppGroup = z13.strictObject({ window: ChatPlace, group_id: z13.string().max(120), name: z13.string().max(200) });
1192
1192
  var ChatParent = z13.strictObject({ id: ChatId, how: z13.enum(["spawned", "dispatched", "forked"]), title: z13.string().max(1e3).nullable() });
1193
1193
  var ChatTitleSync = z13.strictObject({ state: z13.enum(["synced", "not_synced", "unsupported"]), note: z13.string().max(200) });
1194
+ var ChatMove = z13.strictObject({
1195
+ kind: z13.enum(["move", "copy"]),
1196
+ from: ChatPlace.nullable(),
1197
+ to: ChatPlace.nullable(),
1198
+ at_ms: epochMs.nullable(),
1199
+ back_at_ms: epochMs.nullable()
1200
+ });
1194
1201
  var ChatRow = z13.strictObject({
1195
1202
  id: ChatId,
1196
1203
  /** The short id people see (the listing's first 8 characters). */
@@ -1242,7 +1249,15 @@ var ChatRow = z13.strictObject({
1242
1249
  /** 1.59: earlier sessions of this same chat (the app continued it under new session ids). */
1243
1250
  prior_sessions: z13.array(ChatId).max(50).optional(),
1244
1251
  /** 1.61: where the title shows (the title facet's sync state for this chat's app). */
1245
- title_sync: ChatTitleSync.optional()
1252
+ title_sync: ChatTitleSync.optional(),
1253
+ /** 1.62: every Move and Copy of this chat between instances, newest first (absent = never moved or copied). */
1254
+ moved: z13.array(ChatMove).max(50).optional(),
1255
+ /**
1256
+ * 1.63: the instance the chat belongs to: the one whose folder holds it (read only; nothing is
1257
+ * moved). Claude: the side window holding its newest record copy (main mirrors every window), else
1258
+ * main; Codex: the home whose database holds it. Absent = only Matrx's holder keeps it.
1259
+ */
1260
+ home: ChatPlace.optional()
1246
1261
  });
1247
1262
  var ChatFamily = z13.strictObject({
1248
1263
  id: ChatId,
@@ -1782,6 +1797,7 @@ var AppInstall = z15.strictObject({
1782
1797
  location: z15.string().max(1024),
1783
1798
  version: z15.string().max(80).nullable()
1784
1799
  });
1800
+ var InstanceGap = z15.enum(["account", "email", "version"]);
1785
1801
  var AppInstance = z15.strictObject({
1786
1802
  app_key: AppKey,
1787
1803
  /** "main", or the instance's name: the same key every window action takes. */
@@ -1807,7 +1823,9 @@ var AppInstance = z15.strictObject({
1807
1823
  open_chats: nonNegInt,
1808
1824
  launched_ms: epochMs.nullable(),
1809
1825
  quit_ms: epochMs.nullable(),
1810
- first_launch_ms: epochMs.nullable()
1826
+ first_launch_ms: epochMs.nullable(),
1827
+ /** 1.63: what this record still lacks after Matrx filled what it remembered (absent = nothing). */
1828
+ missing: z15.array(InstanceGap).max(3).optional()
1811
1829
  });
1812
1830
  var AccountResetSource = z15.enum(["app", "usage_history", "your_list"]);
1813
1831
  var AccountGap = z15.enum(["email", "plan", "usage"]);
@@ -4732,6 +4750,7 @@ var NAMED_SCHEMAS = {
4732
4750
  ChatAppGroup,
4733
4751
  ChatParent,
4734
4752
  ChatTitleSync,
4753
+ ChatMove,
4735
4754
  AppsWindowsSetAccountParams,
4736
4755
  AppsWindowsForgetParams,
4737
4756
  ProbeFact,
@@ -4739,6 +4758,7 @@ var NAMED_SCHEMAS = {
4739
4758
  AppsChatsProbeParams,
4740
4759
  AppsChatsProbeResult,
4741
4760
  InstanceStatus,
4761
+ InstanceGap,
4742
4762
  AppInstall,
4743
4763
  AppInstance,
4744
4764
  AccountResetSource,
@@ -5550,6 +5570,7 @@ var FIELDS_SINCE = {
5550
5570
  CodingDiscoveredChat: { accountId: "1.57" },
5551
5571
  CodingRecentRow: { accountId: "1.57" },
5552
5572
  CodingSearchHit: { accountId: "1.57" },
5573
+ AppInstance: { missing: "1.63" },
5553
5574
  AppsInstancesListParams: { fresh: "1.51" },
5554
5575
  AppsInstancesListResult: { as_of_ms: "1.51", refreshing: "1.51" },
5555
5576
  AppsAccountsListParams: { fresh: "1.51" },
@@ -5557,7 +5578,7 @@ var FIELDS_SINCE = {
5557
5578
  AppsChatsListResult: { updating: "1.9", live: "1.9", families: "1.10" },
5558
5579
  AppsAccountsUsageResult: { problem: "1.12" },
5559
5580
  AppsAccountsResetsResult: { problem: "1.12" },
5560
- ChatRow: { app_project: "1.13", tokens: "1.13", original_title: "1.14", title_source: "1.14", title_override: "1.14", archived: "1.15", session_id: "1.59", app_groups: "1.59", parent: "1.59", prior_sessions: "1.59", title_sync: "1.61" },
5581
+ ChatRow: { app_project: "1.13", tokens: "1.13", original_title: "1.14", title_source: "1.14", title_override: "1.14", archived: "1.15", session_id: "1.59", app_groups: "1.59", parent: "1.59", prior_sessions: "1.59", title_sync: "1.61", moved: "1.62", home: "1.63" },
5561
5582
  AccountUsage: { plan: "1.13", credits: "1.13", five_hour_resets_by_ms: "1.25" },
5562
5583
  ResourcesDisk: { name: "1.17" },
5563
5584
  StackServer: { cpu_percent: "1.18", memory_bytes: "1.18" },
@@ -5683,6 +5704,8 @@ var NESTED_RESULTS = /* @__PURE__ */ new Map([
5683
5704
  // 1.60: each closed window's reopen outcome in a restart_verify copy.
5684
5705
  ["apps.chats.copy_to_account", [["restart", "CopyRestart"]]],
5685
5706
  ["apps.windows.list", [["windows", "AppWindowInfo"]]],
5707
+ // 1.63: what an instance record still lacks.
5708
+ ["apps.instances.list", [["instances", "AppInstance"]]],
5686
5709
  ["apps.windows.set_remote_control", [["remote_control", "WindowRemoteControl"]]],
5687
5710
  ["coding.providers", [["providers", "CodingProviderStatus"]]],
5688
5711
  // 1.57: the account a coding record belongs to.
@@ -6048,6 +6071,7 @@ export {
6048
6071
  ChatAppGroup,
6049
6072
  ChatParent,
6050
6073
  ChatTitleSync,
6074
+ ChatMove,
6051
6075
  ChatRow,
6052
6076
  ChatFamily,
6053
6077
  AppsChatsListParams,
@@ -6150,6 +6174,7 @@ export {
6150
6174
  AppsChatsCopyToAccountResult,
6151
6175
  InstanceStatus,
6152
6176
  AppInstall,
6177
+ InstanceGap,
6153
6178
  AppInstance,
6154
6179
  AccountResetSource,
6155
6180
  AccountGap,
@@ -6671,4 +6696,4 @@ export {
6671
6696
  closeRule,
6672
6697
  isTerminalClose
6673
6698
  };
6674
- //# sourceMappingURL=chunk-server-SQA64KFX.js.map
6699
+ //# sourceMappingURL=chunk-server-EQCCXWD7.js.map