@yadsh/dsh-qa-surface 0.6.0 → 0.6.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"QaChangelog.js","sourceRoot":"","sources":["../../../src/client/components/QaChangelog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QaChangelog.js","sourceRoot":"","sources":["../../../src/client/components/QaChangelog.tsx"],"names":[],"mappings":"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"}
@@ -19,12 +19,13 @@ export function projectBoundSessionState(input) {
19
19
  ? "error"
20
20
  : snapshot.openState !== "open"
21
21
  ? "creating"
22
- : snapshot.running || input.admissionPending
22
+ : (snapshot.running || input.admissionPending) &&
23
+ input.compatibilityReadOnly !== true
23
24
  ? "running"
24
25
  : "ready";
25
26
  const sourcesByTurn = new Map(input.sourceBundles.map((bundle) => [bundle.turn, bundle]));
26
27
  const messages = projectTranscript(input.conversationSnapshot, {
27
- running: snapshot.running,
28
+ running: snapshot.running === true && input.compatibilityReadOnly !== true,
28
29
  showToolActivity: config.ui.showToolActivity,
29
30
  showReasoning: config.ui.showReasoning,
30
31
  subagentNames: input.subagentNames,
@@ -62,8 +63,12 @@ export function projectBoundSessionState(input) {
62
63
  messages,
63
64
  pendingMessage: null,
64
65
  error,
66
+ compatibilityReadOnly: input.compatibilityReadOnly === true,
65
67
  canSend: input.connected && phase === "ready" && input.policyReady,
66
- canStop: input.connected && snapshot.running && config.ui.showStop,
68
+ canStop: input.connected &&
69
+ snapshot.running &&
70
+ config.ui.showStop &&
71
+ input.compatibilityReadOnly !== true,
67
72
  chatsRevision: input.chatsRevision,
68
73
  sources: latest === undefined
69
74
  ? []
@@ -76,8 +81,8 @@ export function projectBoundSessionState(input) {
76
81
  sourcesComplete: latest?.complete ?? true,
77
82
  incompleteSourceOrigins: latest?.incompleteOrigins,
78
83
  viewingSubagent: input.viewingSubagent,
79
- approvals: input.approvals,
80
- questions: input.questions,
84
+ approvals: input.compatibilityReadOnly === true ? [] : input.approvals,
85
+ questions: input.compatibilityReadOnly === true ? [] : input.questions,
81
86
  };
82
87
  }
83
88
  //# sourceMappingURL=project-session-state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-session-state.js","sourceRoot":"","sources":["../../src/client/project-session-state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-session-state.js","sourceRoot":"","sources":["../../src/client/project-session-state.ts"],"names":[],"mappings":"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"}
@@ -598,6 +598,7 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
598
598
  .dsh-qa-work-tool__body section>span{display:block;padding:7px 10px 0;color:var(--dsw-alias-label-tertiary);font-size:11px;font-weight:600;line-height:18px;text-transform:uppercase;letter-spacing:.04em}
599
599
  .dsh-qa-work-tool__body pre{max-height:260px;overflow:auto;margin:0;padding:7px 10px 10px;color:var(--dsw-alias-label-secondary);background:transparent;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:19px;white-space:pre-wrap;overflow-wrap:anywhere}
600
600
  .dsh-qa-error{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px auto;padding:10px 12px;border:1px solid var(--dsh-qa-error);border-radius:10px;color:var(--dsw-alias-label-primary);font-size:13px}
601
+ .dsh-qa-compatibility{margin:16px auto;padding:10px 12px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font-size:13px;line-height:19px}
601
602
  .dsh-qa-error button{border:0;background:transparent;color:var(--dsh-qa-accent);font:inherit;font-weight:600;cursor:pointer}
602
603
  .dsh-qa-approvals{display:flex;flex-direction:column;gap:8px;width:100%;margin-bottom:10px}
603
604
  .dsh-qa-approval{padding:12px 14px;border:1px solid var(--dsh-qa-warning30);border-radius:12px;background:var(--dsh-qa-warning10)}
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,SAAS;IAChB,yDAAyD;IACzD,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,uBAAuB;IACvB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,kBAAkB;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,gBAAgB;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,yBAAyB;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;IACvB,mDAAmD;IACnD,cAAc,EAAE,SAAS;IACzB,qDAAqD;IACrD,OAAO,EAAE,wBAAwB;CACzB,CAAC;AAEX,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACrD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;KAChE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;kBAQzB,eAAe;qBACZ,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAyGpB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mJA4MoH,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2UpK,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG;IACvB,KAAK,EAAE,SAAS;IAChB,yDAAyD;IACzD,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,WAAW,EAAE,SAAS;IACtB,uBAAuB;IACvB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,kBAAkB;IAClB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,gBAAgB;IAChB,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,SAAS;IACrB,yBAAyB;IACzB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,SAAS;IACvB,mDAAmD;IACnD,cAAc,EAAE,SAAS;IACzB,qDAAqD;IACrD,OAAO,EAAE,wBAAwB;CACzB,CAAC;AAEX,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAC/B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;KACrD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,YAAY,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;KAChE,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;kBAQzB,eAAe;qBACZ,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAyGpB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mJA4MoH,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4UpK,CAAC"}
@@ -5,6 +5,7 @@ export const QA_SESSION_IDLE_STATE = Object.freeze({
5
5
  messages: Object.freeze([]),
6
6
  pendingMessage: null,
7
7
  error: null,
8
+ compatibilityReadOnly: false,
8
9
  canSend: false,
9
10
  canStop: false,
10
11
  chatsRevision: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAqSA,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAmB,MAAM,CAAC,MAAM,CAAC;IACjE,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,SAAS;IAClC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAqSA,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAmB,MAAM,CAAC,MAAM,CAAC;IACjE,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,IAAI;IACX,qBAAqB,EAAE,KAAK;IAC5B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,SAAS;IAClC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAC7B,CAAC,CAAC"}
package/lib/client.js CHANGED
@@ -6123,7 +6123,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6123
6123
  },
6124
6124
  sourceLocation: {
6125
6125
  "file": "packages/dsh-qa-surface/src/index.ts",
6126
- "line": 396,
6126
+ "line": 399,
6127
6127
  "column": 3
6128
6128
  }
6129
6129
  },
@@ -6150,7 +6150,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6150
6150
  },
6151
6151
  sourceLocation: {
6152
6152
  "file": "packages/dsh-qa-surface/src/index.ts",
6153
- "line": 415,
6153
+ "line": 418,
6154
6154
  "column": 3
6155
6155
  }
6156
6156
  },
@@ -6186,7 +6186,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6186
6186
  },
6187
6187
  sourceLocation: {
6188
6188
  "file": "packages/dsh-qa-surface/src/index.ts",
6189
- "line": 384,
6189
+ "line": 387,
6190
6190
  "column": 3
6191
6191
  }
6192
6192
  },
@@ -6213,7 +6213,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6213
6213
  },
6214
6214
  sourceLocation: {
6215
6215
  "file": "packages/dsh-qa-surface/src/index.ts",
6216
- "line": 405,
6216
+ "line": 408,
6217
6217
  "column": 3
6218
6218
  }
6219
6219
  },
@@ -6249,7 +6249,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6249
6249
  },
6250
6250
  sourceLocation: {
6251
6251
  "file": "packages/dsh-qa-surface/src/index.ts",
6252
- "line": 379,
6252
+ "line": 382,
6253
6253
  "column": 3
6254
6254
  }
6255
6255
  },
@@ -6285,7 +6285,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6285
6285
  },
6286
6286
  sourceLocation: {
6287
6287
  "file": "packages/dsh-qa-surface/src/index.ts",
6288
- "line": 428,
6288
+ "line": 431,
6289
6289
  "column": 3
6290
6290
  }
6291
6291
  },
@@ -6321,7 +6321,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6321
6321
  },
6322
6322
  sourceLocation: {
6323
6323
  "file": "packages/dsh-qa-surface/src/index.ts",
6324
- "line": 441,
6324
+ "line": 444,
6325
6325
  "column": 3
6326
6326
  }
6327
6327
  },
@@ -6348,7 +6348,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6348
6348
  },
6349
6349
  sourceLocation: {
6350
6350
  "file": "packages/dsh-qa-surface/src/index.ts",
6351
- "line": 390,
6351
+ "line": 393,
6352
6352
  "column": 3
6353
6353
  }
6354
6354
  },
@@ -6407,7 +6407,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6407
6407
  },
6408
6408
  sourceLocation: {
6409
6409
  "file": "packages/dsh-qa-surface/src/index.ts",
6410
- "line": 609,
6410
+ "line": 619,
6411
6411
  "column": 9
6412
6412
  }
6413
6413
  },
@@ -6466,7 +6466,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6466
6466
  },
6467
6467
  sourceLocation: {
6468
6468
  "file": "packages/dsh-qa-surface/src/index.ts",
6469
- "line": 638,
6469
+ "line": 648,
6470
6470
  "column": 9
6471
6471
  }
6472
6472
  },
@@ -6515,7 +6515,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6515
6515
  },
6516
6516
  sourceLocation: {
6517
6517
  "file": "packages/dsh-qa-surface/src/index.ts",
6518
- "line": 650,
6518
+ "line": 660,
6519
6519
  "column": 9
6520
6520
  }
6521
6521
  },
@@ -6542,7 +6542,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6542
6542
  },
6543
6543
  sourceLocation: {
6544
6544
  "file": "packages/dsh-qa-surface/src/index.ts",
6545
- "line": 466,
6545
+ "line": 469,
6546
6546
  "column": 9
6547
6547
  }
6548
6548
  },
@@ -6560,7 +6560,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6560
6560
  },
6561
6561
  sourceLocation: {
6562
6562
  "file": "packages/dsh-qa-surface/src/index.ts",
6563
- "line": 456,
6563
+ "line": 459,
6564
6564
  "column": 3
6565
6565
  }
6566
6566
  },
@@ -6596,7 +6596,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6596
6596
  },
6597
6597
  sourceLocation: {
6598
6598
  "file": "packages/dsh-qa-surface/src/index.ts",
6599
- "line": 595,
6599
+ "line": 605,
6600
6600
  "column": 9
6601
6601
  }
6602
6602
  },
@@ -6632,7 +6632,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6632
6632
  },
6633
6633
  sourceLocation: {
6634
6634
  "file": "packages/dsh-qa-surface/src/index.ts",
6635
- "line": 624,
6635
+ "line": 634,
6636
6636
  "column": 9
6637
6637
  }
6638
6638
  },
@@ -6681,7 +6681,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6681
6681
  },
6682
6682
  sourceLocation: {
6683
6683
  "file": "packages/dsh-qa-surface/src/index.ts",
6684
- "line": 669,
6684
+ "line": 679,
6685
6685
  "column": 9
6686
6686
  }
6687
6687
  },
@@ -6717,7 +6717,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6717
6717
  },
6718
6718
  sourceLocation: {
6719
6719
  "file": "packages/dsh-qa-surface/src/index.ts",
6720
- "line": 546,
6720
+ "line": 556,
6721
6721
  "column": 9
6722
6722
  }
6723
6723
  },
@@ -6753,7 +6753,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6753
6753
  },
6754
6754
  sourceLocation: {
6755
6755
  "file": "packages/dsh-qa-surface/src/index.ts",
6756
- "line": 723,
6756
+ "line": 733,
6757
6757
  "column": 3
6758
6758
  }
6759
6759
  },
@@ -6789,7 +6789,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6789
6789
  },
6790
6790
  sourceLocation: {
6791
6791
  "file": "packages/dsh-qa-surface/src/index.ts",
6792
- "line": 717,
6792
+ "line": 727,
6793
6793
  "column": 3
6794
6794
  }
6795
6795
  },
@@ -6816,7 +6816,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6816
6816
  },
6817
6817
  sourceLocation: {
6818
6818
  "file": "packages/dsh-qa-surface/src/index.ts",
6819
- "line": 711,
6819
+ "line": 721,
6820
6820
  "column": 3
6821
6821
  }
6822
6822
  },
@@ -6865,7 +6865,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6865
6865
  },
6866
6866
  sourceLocation: {
6867
6867
  "file": "packages/dsh-qa-surface/src/index.ts",
6868
- "line": 742,
6868
+ "line": 752,
6869
6869
  "column": 3
6870
6870
  }
6871
6871
  },
@@ -6892,7 +6892,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6892
6892
  },
6893
6893
  sourceLocation: {
6894
6894
  "file": "packages/dsh-qa-surface/src/index.ts",
6895
- "line": 768,
6895
+ "line": 778,
6896
6896
  "column": 3
6897
6897
  }
6898
6898
  },
@@ -6941,7 +6941,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6941
6941
  },
6942
6942
  sourceLocation: {
6943
6943
  "file": "packages/dsh-qa-surface/src/index.ts",
6944
- "line": 732,
6944
+ "line": 742,
6945
6945
  "column": 3
6946
6946
  }
6947
6947
  },
@@ -6990,7 +6990,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6990
6990
  },
6991
6991
  sourceLocation: {
6992
6992
  "file": "packages/dsh-qa-surface/src/index.ts",
6993
- "line": 755,
6993
+ "line": 765,
6994
6994
  "column": 3
6995
6995
  }
6996
6996
  },
@@ -7026,7 +7026,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7026
7026
  },
7027
7027
  sourceLocation: {
7028
7028
  "file": "packages/dsh-qa-surface/src/index.ts",
7029
- "line": 582,
7029
+ "line": 592,
7030
7030
  "column": 9
7031
7031
  }
7032
7032
  }
@@ -9118,12 +9118,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9118
9118
  * reason class and an operator hint.
9119
9119
  */
9120
9120
  var QaPolicyAttestationError = class extends Error {
9121
- constructor() {
9121
+ reason;
9122
+ constructor(reason = null) {
9122
9123
  super("QA session policy could not be attested.");
9124
+ this.reason = reason;
9123
9125
  this.name = "QaPolicyAttestationError";
9124
9126
  }
9125
9127
  };
9126
9128
  /**
9129
+ * Refusals that classify an existing chat as belonging to an older deployment
9130
+ * composition. Keeping only its transcript is safe: policyReady stays false,
9131
+ * so no prompt, cancel, approval or question reaches the Host.
9132
+ */
9133
+ function canOpenAsCompatibilityReadOnly(reason) {
9134
+ return reason === "composition-mismatch" || reason === "agent-unavailable" || reason === "adoption-refused";
9135
+ }
9136
+ /**
9127
9137
  * Extract the coarse attestation reason code from a Host wire failure, if the
9128
9138
  * failure carries the marker.
9129
9139
  */
@@ -9136,7 +9146,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9136
9146
  if (reason === "unknown-tools") return "A lockdown.toolPolicy name is not mounted in this session's tool catalog — check the deployment agent preset and the tool's server availability.";
9137
9147
  if (reason === "workspace-unavailable") return "The configured session.workspaceId does not match a registered workspace - create the workspace or fix the id (session.cwd is the no-registry alternative).";
9138
9148
  if (reason === "composition-mismatch") return "The session's agent preset, workspace or model no longer matches the deployment QA config.";
9139
- if (reason === "permission-preset") return "The configured permission preset did not resolve to the pinned sandbox/approval policy.";
9149
+ if (reason === "permission-preset") return "The configured permission preset did not resolve to the pinned sandbox/approval policy. Keep approval=never even when interaction.approvals is interactive; QA parks composed tool-gate requests itself.";
9140
9150
  if (reason === "adoption-refused") return "This browser tried to adopt a session created outside the current QA policy.";
9141
9151
  if (reason === "session-owned-elsewhere") return "The session belongs to another QA account; the deployment's ownership map refused this browser.";
9142
9152
  if (reason === "auth-required") return "The account token is absent, expired or rotated - sign in again through the QA gate.";
@@ -9608,6 +9618,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9608
9618
  messages: Object.freeze([]),
9609
9619
  pendingMessage: null,
9610
9620
  error: null,
9621
+ compatibilityReadOnly: false,
9611
9622
  canSend: false,
9612
9623
  canStop: false,
9613
9624
  chatsRevision: 0,
@@ -10980,10 +10991,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10980
10991
  function projectBoundSessionState(input) {
10981
10992
  const { config, sessionSnapshot: snapshot } = input;
10982
10993
  const error = input.operationError ?? (snapshot.removed || snapshot.openState === "error" ? "Этот чат больше недоступен." : null);
10983
- const phase = !input.connected ? "reconnecting" : snapshot.removed || snapshot.openState === "error" ? "error" : snapshot.openState !== "open" ? "creating" : snapshot.running || input.admissionPending ? "running" : "ready";
10994
+ const phase = !input.connected ? "reconnecting" : snapshot.removed || snapshot.openState === "error" ? "error" : snapshot.openState !== "open" ? "creating" : (snapshot.running || input.admissionPending) && input.compatibilityReadOnly !== true ? "running" : "ready";
10984
10995
  const sourcesByTurn = new Map(input.sourceBundles.map((bundle) => [bundle.turn, bundle]));
10985
10996
  const messages = projectTranscript(input.conversationSnapshot, {
10986
- running: snapshot.running,
10997
+ running: snapshot.running === true && input.compatibilityReadOnly !== true,
10987
10998
  showToolActivity: config.ui.showToolActivity,
10988
10999
  showReasoning: config.ui.showReasoning,
10989
11000
  subagentNames: input.subagentNames,
@@ -11010,15 +11021,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11010
11021
  messages,
11011
11022
  pendingMessage: null,
11012
11023
  error,
11024
+ compatibilityReadOnly: input.compatibilityReadOnly === true,
11013
11025
  canSend: input.connected && phase === "ready" && input.policyReady,
11014
- canStop: input.connected && snapshot.running && config.ui.showStop,
11026
+ canStop: input.connected && snapshot.running && config.ui.showStop && input.compatibilityReadOnly !== true,
11015
11027
  chatsRevision: input.chatsRevision,
11016
11028
  sources: latest === void 0 ? [] : [...latest.sources, ...config.sources.display.showDiscovered ? latest.discovered ?? [] : []],
11017
11029
  sourcesComplete: latest?.complete ?? true,
11018
11030
  incompleteSourceOrigins: latest?.incompleteOrigins,
11019
11031
  viewingSubagent: input.viewingSubagent,
11020
- approvals: input.approvals,
11021
- questions: input.questions
11032
+ approvals: input.compatibilityReadOnly === true ? [] : input.approvals,
11033
+ questions: input.compatibilityReadOnly === true ? [] : input.questions
11022
11034
  };
11023
11035
  }
11024
11036
  //#endregion
@@ -11065,6 +11077,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11065
11077
  pendingSubmission;
11066
11078
  pendingSequence = 0;
11067
11079
  policyReady = false;
11080
+ /** Historical transcript retained after the Host classifies policy drift. */
11081
+ compatibilityReadOnly = false;
11068
11082
  drafting = false;
11069
11083
  /** The chat session to return to when a subagent view closes. */
11070
11084
  chatSessionId = null;
@@ -11256,7 +11270,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11256
11270
  async startDraft() {
11257
11271
  if (this.disposed || this.config.session.policy === "fixed" || this.config.lockdown.enabled && !this.config.lockdown.allowSessionReset) return;
11258
11272
  const previous = this.session;
11259
- if (previous?.getSnapshot().running === true) try {
11273
+ if (!this.compatibilityReadOnly && previous?.getSnapshot().running === true) try {
11260
11274
  await previous.cancel();
11261
11275
  } catch (error) {
11262
11276
  console.error("dsh-qa-surface: stop before draft failed", error);
@@ -11338,7 +11352,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11338
11352
  this.forgetChat(sessionId);
11339
11353
  throw new Error("Этот чат больше недоступен.");
11340
11354
  }
11341
- await this.bind(sessionId);
11355
+ await this.bind(sessionId, { allowCompatibilityReadOnly: true });
11342
11356
  if (this.disposed || operation !== this.generation) return;
11343
11357
  this.chats.saveActive(sessionId);
11344
11358
  } catch (error) {
@@ -11469,14 +11483,17 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11469
11483
  const list = await waitFor(this.sessions.list, (snapshot) => snapshot.phase === "ready", this.timeoutMs);
11470
11484
  let id = null;
11471
11485
  let restored = false;
11486
+ let existing = false;
11472
11487
  if (this.config.session.policy === "fixed") {
11473
11488
  id = this.config.session.fixedSessionId;
11474
11489
  if (id === null || !Object.hasOwn(list.byId, id)) throw new Error("Configured fixed session is unavailable.");
11490
+ existing = true;
11475
11491
  } else if (this.config.session.policy === "browser-persistent") {
11476
11492
  const stored = this.chats.activeId();
11477
11493
  if (stored !== null && Object.hasOwn(list.byId, stored)) {
11478
11494
  id = stored;
11479
11495
  restored = true;
11496
+ existing = true;
11480
11497
  } else if (stored !== null) this.chats.clearActive();
11481
11498
  }
11482
11499
  if (id === null) id = await createQaSession({
@@ -11485,7 +11502,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11485
11502
  });
11486
11503
  if (this.disposed || operation !== this.generation) return;
11487
11504
  try {
11488
- await this.bind(id, { report: !restored });
11505
+ await this.bind(id, {
11506
+ report: !restored,
11507
+ allowCompatibilityReadOnly: existing
11508
+ });
11489
11509
  } catch (error) {
11490
11510
  if (this.disposed || operation !== this.generation) throw error;
11491
11511
  if (!restored || this.config.session.policy !== "browser-persistent" || !(error instanceof QaPolicyAttestationError)) throw error;
@@ -11560,7 +11580,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11560
11580
  }
11561
11581
  }
11562
11582
  async bind(id, options = {}) {
11563
- const { report = true, attest = true, track = true } = options;
11583
+ const { report = true, attest = true, track = true, allowCompatibilityReadOnly = false } = options;
11564
11584
  this.sessions.open(id);
11565
11585
  let binding = this.sessions.binding(id);
11566
11586
  if (binding === void 0) {
@@ -11572,6 +11592,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11572
11592
  this.session = binding.session;
11573
11593
  this.conversationBinding = this.conversation.binding(id);
11574
11594
  this.policyReady = false;
11595
+ this.compatibilityReadOnly = false;
11575
11596
  this.unsubscribeSession = binding.session.subscribe(() => {
11576
11597
  this.admissionPending = false;
11577
11598
  this.operationError = null;
@@ -11583,7 +11604,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11583
11604
  await waitFor(binding.session, (snapshot) => snapshot.openState === "open" || snapshot.openState === "error", this.timeoutMs);
11584
11605
  if (binding.session.getSnapshot().openState !== "open") throw new Error("Session binding could not be opened.");
11585
11606
  if (attest) {
11586
- if ((await this.attestPolicy(report)).kind !== "ok") throw new QaPolicyAttestationError();
11607
+ const step = await this.attestPolicy(report);
11608
+ if (step.kind === "refused") {
11609
+ if (!allowCompatibilityReadOnly || !canOpenAsCompatibilityReadOnly(step.reason)) throw new QaPolicyAttestationError(step.reason);
11610
+ this.compatibilityReadOnly = true;
11611
+ this.operationError = null;
11612
+ } else if (step.kind !== "ok") throw new QaPolicyAttestationError();
11587
11613
  }
11588
11614
  if (track) {
11589
11615
  this.chatSessionId = String(this.session.sessionId);
@@ -11608,6 +11634,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11608
11634
  this.stopPendingPolling();
11609
11635
  this.admissionPending = false;
11610
11636
  this.policyReady = false;
11637
+ this.compatibilityReadOnly = false;
11611
11638
  }
11612
11639
  waitForConnection() {
11613
11640
  return waitFor(this.connection, (description) => description !== void 0, this.timeoutMs);
@@ -11648,7 +11675,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11648
11675
  const projectedSourceBundles = projectTurnSources(conversationSnapshot, sessionId, this.config.session.cwd ?? void 0);
11649
11676
  const sourceBundles = this.hostSources.merge(projectedSourceBundles);
11650
11677
  if (!snapshot.running) this.hostSources.refresh(sessionId, () => this.publish());
11651
- this.syncPendingPolling(snapshot.running === true);
11678
+ this.syncPendingPolling(snapshot.running === true && !this.compatibilityReadOnly);
11652
11679
  const projectionInput = {
11653
11680
  connected,
11654
11681
  sessionId,
@@ -11660,6 +11687,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11660
11687
  author: this.accounts?.messageAuthorOf(sessionId),
11661
11688
  operationError: this.operationError,
11662
11689
  policyReady: this.policyReady,
11690
+ compatibilityReadOnly: this.compatibilityReadOnly,
11663
11691
  admissionPending: this.admissionPending || this.pendingSubmission !== void 0,
11664
11692
  chatsRevision: this.chatsRevision,
11665
11693
  viewingSubagent: this.viewingSubagent,
@@ -11726,7 +11754,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11726
11754
  */
11727
11755
  async attestPolicy(reportFailure = true) {
11728
11756
  const session = this.session;
11729
- if (session === void 0) return { kind: "refused" };
11757
+ if (session === void 0) return {
11758
+ kind: "refused",
11759
+ reason: null
11760
+ };
11730
11761
  const sessionId = String(session.sessionId);
11731
11762
  if (!this.config.lockdown.enabled) {
11732
11763
  this.policyReady = true;
@@ -11756,12 +11787,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11756
11787
  }
11757
11788
  if (outcome.authRequired) {
11758
11789
  this.accounts?.onAuthRequired();
11759
- return { kind: "refused" };
11790
+ return {
11791
+ kind: "refused",
11792
+ reason: outcome.reason
11793
+ };
11760
11794
  }
11761
11795
  this.policyReady = false;
11762
11796
  this.operationError = CONFIGURATION_ERROR;
11763
11797
  this.publish();
11764
- return { kind: "refused" };
11798
+ return {
11799
+ kind: "refused",
11800
+ reason: outcome.reason
11801
+ };
11765
11802
  }
11766
11803
  emit() {
11767
11804
  for (const listener of this.listeners) listener();
@@ -11772,19 +11809,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11772
11809
  * refresh that follows is what the surface renders.
11773
11810
  */
11774
11811
  async answerApproval(requestId, decision) {
11775
- if (this.session === void 0) return;
11812
+ if (this.session === void 0 || this.compatibilityReadOnly) return;
11776
11813
  await this.hostApprovals.answer(String(this.session.sessionId), this.hostToken(), requestId, decision);
11777
11814
  this.publish();
11778
11815
  }
11779
11816
  /** Send the operator's answers to one parked question request. */
11780
11817
  async answerQuestion(requestId, answers) {
11781
- if (this.session === void 0) return;
11818
+ if (this.session === void 0 || this.compatibilityReadOnly) return;
11782
11819
  await this.hostQuestions.answer(String(this.session.sessionId), this.hostToken(), requestId, answers);
11783
11820
  this.publish();
11784
11821
  }
11785
11822
  /** Close a parked question request without answering it. */
11786
11823
  async cancelQuestion(requestId) {
11787
- if (this.session === void 0) return;
11824
+ if (this.session === void 0 || this.compatibilityReadOnly) return;
11788
11825
  await this.hostQuestions.cancel(String(this.session.sessionId), this.hostToken(), requestId);
11789
11826
  this.publish();
11790
11827
  }
@@ -14329,8 +14366,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14329
14366
  }
14330
14367
  //#endregion
14331
14368
  //#region src/client/components/QaChangelog.tsx
14332
- const QA_VERSION = "0.6.0";
14369
+ const QA_VERSION = "0.6.1";
14333
14370
  const QA_CHANGELOG = [
14371
+ {
14372
+ version: "0.6.1",
14373
+ date: "2026-09-15",
14374
+ sections: [{
14375
+ title: "Исправления",
14376
+ items: ["Старые чаты после изменения конфигурации стенда больше не пропадают и не заменяются новой пустой сессией: их история открывается в явном режиме только для чтения. Отправка сообщений, остановка ответа, одобрения и ответы на вопросы в таком чате отключены, поэтому прежний рабочий каталог или набор прав не обходят актуальную политику; новый чат создаётся уже с текущими настройками.", "Рабочее пространство и QA-пресет прав теперь проверяются до создания сессии. Ошибка в имени workspace или сочетании sandbox/approval не оставляет мёртвый чат, а браузер получает безопасный код причины для диагностики. Интерактивные одобрения по-прежнему показываются в QA-интерфейсе, но permission preset должен сохранять approval: never как страховочный запрет."]
14377
+ }]
14378
+ },
14334
14379
  {
14335
14380
  version: "0.6.0",
14336
14381
  date: "2026-09-15",
@@ -14499,7 +14544,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
14499
14544
  className: "dsh-qa-changelog__date",
14500
14545
  children: entry.date
14501
14546
  }),
14502
- entry.version === "0.6.0" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
14547
+ entry.version === "0.6.1" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
14503
14548
  className: "dsh-qa-changelog__current",
14504
14549
  children: "текущая"
14505
14550
  }) : null
@@ -18154,6 +18199,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
18154
18199
  thinkingPhrases: config.thinkingPhrases
18155
18200
  })
18156
18201
  }),
18202
+ state.compatibilityReadOnly === true ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
18203
+ className: "dsh-qa-compatibility",
18204
+ role: "status",
18205
+ children: "Этот чат создан при другой конфигурации стенда и открыт только для чтения. История сохранена; чтобы продолжить работу с текущими настройками, создайте новый чат."
18206
+ }) : null,
18157
18207
  state.error === null ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
18158
18208
  className: "dsh-qa-error",
18159
18209
  role: "alert",
@@ -18924,6 +18974,7 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
18924
18974
  .dsh-qa-work-tool__body section>span{display:block;padding:7px 10px 0;color:var(--dsw-alias-label-tertiary);font-size:11px;font-weight:600;line-height:18px;text-transform:uppercase;letter-spacing:.04em}
18925
18975
  .dsh-qa-work-tool__body pre{max-height:260px;overflow:auto;margin:0;padding:7px 10px 10px;color:var(--dsw-alias-label-secondary);background:transparent;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:19px;white-space:pre-wrap;overflow-wrap:anywhere}
18926
18976
  .dsh-qa-error{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px auto;padding:10px 12px;border:1px solid var(--dsh-qa-error);border-radius:10px;color:var(--dsw-alias-label-primary);font-size:13px}
18977
+ .dsh-qa-compatibility{margin:16px auto;padding:10px 12px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font-size:13px;line-height:19px}
18927
18978
  .dsh-qa-error button{border:0;background:transparent;color:var(--dsh-qa-accent);font:inherit;font-weight:600;cursor:pointer}
18928
18979
  .dsh-qa-approvals{display:flex;flex-direction:column;gap:8px;width:100%;margin-bottom:10px}
18929
18980
  .dsh-qa-approval{padding:12px 14px;border:1px solid var(--dsh-qa-warning30);border-radius:12px;background:var(--dsh-qa-warning10)}