@stigmer/react 3.2.0 → 3.2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/react",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "React provider and client hook for the Stigmer platform SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@bufbuild/protovalidate": "^1.1.1",
39
39
  "@dagrejs/dagre": "^1.1.4",
40
- "@stigmer/theme": "3.2.0",
40
+ "@stigmer/theme": "3.2.1",
41
41
  "diff": "^8.0.3",
42
42
  "fflate": "^0.8.2",
43
43
  "hast-util-to-jsx-runtime": "^2.3.6",
@@ -60,8 +60,8 @@
60
60
  "@codemirror/state": "^6.0.0",
61
61
  "@codemirror/view": "^6.0.0",
62
62
  "@lezer/highlight": "^1.0.0",
63
- "@stigmer/protos": "3.2.0",
64
- "@stigmer/sdk": "3.2.0",
63
+ "@stigmer/protos": "3.2.1",
64
+ "@stigmer/sdk": "3.2.1",
65
65
  "@tanstack/react-table": "^8.20.0",
66
66
  "@xyflow/react": "^12.0.0",
67
67
  "elkjs": "^0.9.0",
@@ -56,6 +56,10 @@ export interface UseNewSessionFlowOptions {
56
56
  * localStorage on explicit change — always takes precedence on
57
57
  * subsequent visits.
58
58
  *
59
+ * Ignored for the `"guest"` audience: guest sessions always run the
60
+ * platform's share-surface policy (cursor harness, Auto model), never an
61
+ * embedder preference or a stored Console choice.
62
+ *
59
63
  * @default DEFAULT_HARNESS ("native")
60
64
  */
61
65
  readonly defaultHarness?: HarnessOption;
@@ -1 +1 @@
1
- {"version":3,"file":"useNewSessionFlow.d.ts","sourceRoot":"","sources":["../../src/session/useNewSessionFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useNewSessionFlow.d.ts","sourceRoot":"","sources":["../../src/session/useNewSessionFlow.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,20 @@ import { useRunnerAdapter } from "../runner-adapter.js";
15
15
  import { resolveExecutionRuntimeEnv } from "./runtime-env.js";
16
16
  const DEFAULT_AGENT_TIMEOUT_MS = 10_000;
17
17
  const STORAGE_KEY_HARNESS = "stigmer:session:harness";
18
+ /**
19
+ * Platform policy for guest (share/embed) sessions: the cursor harness with
20
+ * the Auto model (an omitted modelName resolves to cursor's "default"/Auto in
21
+ * the runner).
22
+ *
23
+ * This lives CLIENT-side deliberately — it is the only layer that can. The
24
+ * SDK's guest audience covers both public visitors (guest tokens) and org
25
+ * members chatting via an org-audience share (their own member tokens, which
26
+ * carry no share linkage in Phase A) — the server cannot distinguish the
27
+ * latter from ordinary Console traffic, so share-surface policy must be
28
+ * applied where the surface is known. Server-side guest-token gates own the
29
+ * abuse controls (rate limits, bounded execution profile).
30
+ */
31
+ const GUEST_HARNESS = "cursor";
18
32
  function modelStorageKey(harness) {
19
33
  return harness === "cursor"
20
34
  ? "stigmer:session:model:cursor"
@@ -68,6 +82,11 @@ export function useNewSessionFlow(options) {
68
82
  const executionTarget = options.executionTarget ?? contextTarget;
69
83
  const adapter = useRunnerAdapter();
70
84
  const [harness, setHarnessRaw] = useState(() => {
85
+ // Guests get the fixed platform policy (see GUEST_HARNESS) and never
86
+ // touch localStorage: a browser previously used in the Console must not
87
+ // leak its stored harness into a share/embed session.
88
+ if (isGuest)
89
+ return GUEST_HARNESS;
71
90
  if (typeof window === "undefined")
72
91
  return defaultHarness ?? DEFAULT_HARNESS;
73
92
  // Only explicit user choices are persisted (see setHarness), so a
@@ -96,17 +115,24 @@ export function useNewSessionFlow(options) {
96
115
  const validModelId = modelId && getModel(modelId) ? modelId : undefined;
97
116
  const setHarness = useCallback((h) => {
98
117
  setHarnessRaw(h);
118
+ // Guests have no harness picker; if a caller invokes this anyway, the
119
+ // guest surface must never write into the Console's preference keys.
120
+ if (isGuest)
121
+ return;
99
122
  // Persist only explicit choices — never the seeded value — so the
100
123
  // embedder's defaultHarness keeps applying until the user decides.
101
124
  localStorage.setItem(STORAGE_KEY_HARNESS, h);
102
125
  const storedModel = localStorage.getItem(modelStorageKey(h));
103
126
  const plain = storedModel ? (parseModelKey(storedModel)?.modelId ?? storedModel) : undefined;
104
127
  setModelId(plain);
105
- }, []);
128
+ }, [isGuest]);
106
129
  // Restore persisted model — only after the registry has loaded so
107
130
  // getModel can actually validate the stored ID against live data.
131
+ // Guests skip the restore: modelId stays undefined, the create omits
132
+ // modelName, and the cursor harness resolves it to Auto — a Console-used
133
+ // browser must not leak its stored model into a share/embed session.
108
134
  useEffect(() => {
109
- if (isModelsLoading)
135
+ if (isGuest || isModelsLoading)
110
136
  return;
111
137
  const stored = localStorage.getItem(modelStorageKey(harness));
112
138
  if (stored) {
@@ -115,15 +141,18 @@ export function useNewSessionFlow(options) {
115
141
  setModelId(plain);
116
142
  }
117
143
  }
118
- }, [getModel, harness, isModelsLoading]);
144
+ }, [getModel, harness, isGuest, isModelsLoading]);
119
145
  // Persist model on change (using current harness key).
120
146
  // Strip compound keys (e.g. "cursor/default") to plain modelId before storing.
147
+ // Guests never persist — the symmetric half of the isolation above.
121
148
  useEffect(() => {
149
+ if (isGuest)
150
+ return;
122
151
  if (modelId) {
123
152
  const plain = parseModelKey(modelId)?.modelId ?? modelId;
124
153
  localStorage.setItem(modelStorageKey(harness), plain);
125
154
  }
126
- }, [modelId, harness]);
155
+ }, [modelId, harness, isGuest]);
127
156
  const submit = useCallback(async (message, selectedModel, context) => {
128
157
  if (isSubmitting)
129
158
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"useNewSessionFlow.js","sourceRoot":"","sources":["../../src/session/useNewSessionFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useNewSessionFlow.js","sourceRoot":"","sources":["../../src/session/useNewSessionFlow.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,17 @@ export interface UsePersistedModelOptions {
9
9
  * When `"native"` or omitted, the default key and registry apply.
10
10
  */
11
11
  readonly harness?: HarnessOption;
12
+ /**
13
+ * When `false`, the hook is a stable no-op: it never reads or writes
14
+ * localStorage and always returns `undefined` with a no-op setter.
15
+ *
16
+ * Guest (share/embed) surfaces disable persistence so a browser previously
17
+ * used in the Console cannot leak its stored model into a guest session,
18
+ * and a guest session never pollutes the Console's preference keys.
19
+ *
20
+ * @default true
21
+ */
22
+ readonly enabled?: boolean;
12
23
  }
13
24
  /** Return value of {@link usePersistedModel}. */
14
25
  export type UsePersistedModelReturn = readonly [
@@ -1 +1 @@
1
- {"version":3,"file":"usePersistedModel.d.ts","sourceRoot":"","sources":["../../src/session/usePersistedModel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;CAClC;AAED,iDAAiD;AACjD,MAAM,MAAM,uBAAuB,GAAG,SAAS;IAC7C,OAAO,EAAE,MAAM,GAAG,SAAS;IAC3B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;CACjC,CAAC;AAkBF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,wBAAwB,GACjC,uBAAuB,CA8BzB"}
1
+ {"version":3,"file":"usePersistedModel.d.ts","sourceRoot":"","sources":["../../src/session/usePersistedModel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,iDAAiD;AACjD,MAAM,MAAM,uBAAuB,GAAG,SAAS;IAC7C,OAAO,EAAE,MAAM,GAAG,SAAS;IAC3B,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI;CACjC,CAAC;AAkBF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,wBAAwB,GACjC,uBAAuB,CAuCzB"}
@@ -35,17 +35,20 @@ function extractPlainModelId(value) {
35
35
  */
36
36
  export function usePersistedModel(options) {
37
37
  const harness = options?.harness;
38
+ const enabled = options?.enabled ?? true;
38
39
  const { getModel } = useModelRegistry({ harness });
39
40
  const key = storageKey(harness);
40
41
  const prevKeyRef = useRef(key);
41
42
  const [modelId, setModelId] = useState(() => {
42
- if (typeof window === "undefined")
43
+ if (!enabled || typeof window === "undefined")
43
44
  return undefined;
44
45
  const raw = localStorage.getItem(key);
45
46
  return raw ? extractPlainModelId(raw) : undefined;
46
47
  });
47
48
  // Re-read from localStorage when the storage key changes (harness transition).
48
49
  useEffect(() => {
50
+ if (!enabled)
51
+ return;
49
52
  if (prevKeyRef.current === key)
50
53
  return;
51
54
  prevKeyRef.current = key;
@@ -53,13 +56,21 @@ export function usePersistedModel(options) {
53
56
  return;
54
57
  const raw = localStorage.getItem(key);
55
58
  setModelId(raw ? extractPlainModelId(raw) : undefined);
56
- }, [key]);
59
+ }, [enabled, key]);
57
60
  useEffect(() => {
61
+ if (!enabled)
62
+ return;
58
63
  if (modelId) {
59
64
  localStorage.setItem(key, modelId);
60
65
  }
61
- }, [modelId, key]);
66
+ }, [enabled, modelId, key]);
67
+ if (!enabled) {
68
+ // Stable no-op shape: undefined model, inert setter. Returned after the
69
+ // hooks above so the hook order is identical whether enabled or not.
70
+ return [undefined, NOOP_SET_MODEL];
71
+ }
62
72
  const validModelId = modelId && getModel(modelId) ? modelId : undefined;
63
73
  return [validModelId, setModelId];
64
74
  }
75
+ const NOOP_SET_MODEL = () => { };
65
76
  //# sourceMappingURL=usePersistedModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePersistedModel.js","sourceRoot":"","sources":["../../src/session/usePersistedModel.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAqBtD,SAAS,UAAU,CAAC,OAAuB;IACzC,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,uBAAuB,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAkC;IAElC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,GAAG,EAAE;QAC9D,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QACpD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO,KAAK,GAAG;YAAE,OAAO;QACvC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;QAEzB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnB,MAAM,YAAY,GAAG,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,OAAO,CAAC,YAAY,EAAE,UAAU,CAAU,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"usePersistedModel.js","sourceRoot":"","sources":["../../src/session/usePersistedModel.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAgCtD,SAAS,UAAU,CAAC,OAAuB;IACzC,OAAO,OAAO,KAAK,QAAQ;QACzB,CAAC,CAAC,8BAA8B;QAChC,CAAC,CAAC,uBAAuB,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAkC;IAElC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAqB,GAAG,EAAE;QAC9D,IAAI,CAAC,OAAO,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QAChE,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,OAAO,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,UAAU,CAAC,OAAO,KAAK,GAAG;YAAE,OAAO;QACvC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;QAEzB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,wEAAwE;QACxE,qEAAqE;QACrE,OAAO,CAAC,SAAS,EAAE,cAAc,CAAU,CAAC;IAC9C,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,OAAO,CAAC,YAAY,EAAE,UAAU,CAAU,CAAC;AAC7C,CAAC;AAED,MAAM,cAAc,GAAyB,GAAG,EAAE,GAAE,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionPageFlow.d.ts","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionPageFlow.d.ts","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"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"}
@@ -67,7 +67,18 @@ export function useSessionPageFlow(options) {
67
67
  const conv = useSessionConversation(sessionId, org);
68
68
  const harness = fromProtoHarness(conv.session?.spec?.harness ?? Harness.UNSPECIFIED);
69
69
  const executionTarget = fromProtoExecutionTarget(conv.session?.spec?.executionTarget ?? ExecutionTarget.UNSPECIFIED);
70
- const [persistedModelId, setPersistedModelId] = usePersistedModel({ harness });
70
+ // Guests never read or write the Console's persisted model preference —
71
+ // their follow-ups carry no modelName, and the session's harness (cursor
72
+ // for share surfaces) resolves the model server-side.
73
+ const [persistedModelId, setPersistedModelId] = usePersistedModel({
74
+ harness,
75
+ enabled: !isGuest,
76
+ });
77
+ // Guest note: this stays undefined for guests by construction — guest
78
+ // executions never carry a modelName (the first message omits it and the
79
+ // server-side guest execution profile owns the field thereafter). The
80
+ // guest flow test asserts that invariant; if it ever breaks, fix the
81
+ // server profile rather than special-casing here.
71
82
  const lastExecModelId = useMemo(() => {
72
83
  const lastExec = conv.completedExecutions.at(-1);
73
84
  return lastExec?.spec?.executionConfig?.modelName || undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"useSessionPageFlow.js","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSessionPageFlow.js","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"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"}
@@ -801,6 +801,70 @@ describe("useNewSessionFlow", () => {
801
801
  expect(opts.onError).toHaveBeenCalled();
802
802
  });
803
803
 
804
+ it("always uses the cursor harness, ignoring a stored Console choice", () => {
805
+ // A browser previously used in the Console must not leak its stored
806
+ // harness into a share/embed session.
807
+ localStorage.setItem(STORAGE_KEY_HARNESS, "native");
808
+ const opts = { ...defaultOptions(), audience: "guest" as const };
809
+ const { result } = renderHook(() => useNewSessionFlow(opts), { wrapper: createWrapper() });
810
+
811
+ expect(result.current.harness).toBe("cursor");
812
+ });
813
+
814
+ it("ignores the embedder's defaultHarness — guests get platform policy", () => {
815
+ const opts = {
816
+ ...defaultOptions(),
817
+ audience: "guest" as const,
818
+ defaultHarness: "native" as const,
819
+ };
820
+ const { result } = renderHook(() => useNewSessionFlow(opts), { wrapper: createWrapper() });
821
+
822
+ expect(result.current.harness).toBe("cursor");
823
+ });
824
+
825
+ it("does not restore a stored model — modelId stays undefined", () => {
826
+ localStorage.setItem(STORAGE_KEY_MODEL_CURSOR, DEFAULT_CURSOR_MODEL_ID);
827
+ const opts = { ...defaultOptions(), audience: "guest" as const };
828
+ const { result } = renderHook(() => useNewSessionFlow(opts), { wrapper: createWrapper() });
829
+
830
+ expect(result.current.modelId).toBeUndefined();
831
+ });
832
+
833
+ it("never writes Console preference keys", () => {
834
+ const opts = { ...defaultOptions(), audience: "guest" as const };
835
+ const { result } = renderHook(() => useNewSessionFlow(opts), { wrapper: createWrapper() });
836
+
837
+ act(() => result.current.setHarness("native"));
838
+ act(() => result.current.setModelId(DEFAULT_CURSOR_MODEL_ID));
839
+
840
+ expect(localStorage.getItem(STORAGE_KEY_HARNESS)).toBeNull();
841
+ expect(localStorage.getItem(STORAGE_KEY_MODEL_NATIVE)).toBeNull();
842
+ expect(localStorage.getItem(STORAGE_KEY_MODEL_CURSOR)).toBeNull();
843
+ });
844
+
845
+ it("submits with the cursor harness and NO model (server resolves Auto)", async () => {
846
+ // Stored values simulate a Console-used browser: neither may leak.
847
+ localStorage.setItem(STORAGE_KEY_HARNESS, "native");
848
+ localStorage.setItem(STORAGE_KEY_MODEL_CURSOR, DEFAULT_CURSOR_MODEL_ID);
849
+ const opts = { ...defaultOptions(), audience: "guest" as const };
850
+ const { result } = renderHook(() => useNewSessionFlow(opts), { wrapper: createWrapper() });
851
+
852
+ act(() => {
853
+ result.current.setAgentRef({ org: "acme", slug: "support-bot" });
854
+ result.current.setResolution({ mode: "saved", instanceId: "shared-inst" });
855
+ });
856
+ await act(async () => {
857
+ await result.current.submit("Hello");
858
+ });
859
+
860
+ const execInput = mockCreateExecution.mock.calls[0][0];
861
+ expect(execInput.sessionSpec.harness).toBe("cursor");
862
+ // Omitted model = cursor's Auto ("default") in the runner. If this ever
863
+ // carries a value, guest follow-ups would silently pin to it via
864
+ // lastExecModelId in useSessionPageFlow.
865
+ expect(execInput.modelName).toBeUndefined();
866
+ });
867
+
804
868
  it("surfaces launch-gate refusal copy verbatim from the status description", async () => {
805
869
  // The backend resolves owner-customizable refusal copy server-side and
806
870
  // carries it in the gRPC status description — the flow must hand it to
@@ -70,6 +70,42 @@ describe("usePersistedModel", () => {
70
70
  });
71
71
  });
72
72
 
73
+ describe("disabled mode (guest isolation)", () => {
74
+ it("returns undefined even when a valid model is stored", () => {
75
+ localStorage.setItem(STORAGE_KEY_NATIVE, DEFAULT_MODEL_ID);
76
+ const { result } = renderHook(
77
+ () => usePersistedModel({ harness: "native", enabled: false }),
78
+ { wrapper: createWrapper() },
79
+ );
80
+ expect(result.current[0]).toBeUndefined();
81
+ });
82
+
83
+ it("never writes localStorage through the setter", () => {
84
+ const { result } = renderHook(
85
+ () => usePersistedModel({ harness: "native", enabled: false }),
86
+ { wrapper: createWrapper() },
87
+ );
88
+
89
+ act(() => result.current[1](DEFAULT_MODEL_ID));
90
+
91
+ expect(localStorage.getItem(STORAGE_KEY_NATIVE)).toBeNull();
92
+ expect(result.current[0]).toBeUndefined();
93
+ });
94
+
95
+ it("does not re-read storage on a harness transition", () => {
96
+ localStorage.setItem(STORAGE_KEY_CURSOR, DEFAULT_CURSOR_MODEL_ID);
97
+ const { result, rerender } = renderHook(
98
+ ({ harness }: { harness: "native" | "cursor" }) =>
99
+ usePersistedModel({ harness, enabled: false }),
100
+ { initialProps: { harness: "native" as "native" | "cursor" }, wrapper: createWrapper() },
101
+ );
102
+
103
+ rerender({ harness: "cursor" });
104
+
105
+ expect(result.current[0]).toBeUndefined();
106
+ });
107
+ });
108
+
73
109
  describe("compound key handling", () => {
74
110
  it("extracts plain modelId from compound key in localStorage", () => {
75
111
  localStorage.setItem(STORAGE_KEY_CURSOR, "cursor/default");
@@ -61,8 +61,17 @@ vi.mock("../../execution/useSessionVariables", () => ({
61
61
  useSessionVariables: () => mockSessionVariables,
62
62
  }));
63
63
 
64
+ // Honors `enabled` like the real hook: disabled → no persisted model. Guest
65
+ // isolation depends on this contract (usePersistedModel has its own tests).
66
+ const usePersistedModelSpy = vi.fn(
67
+ (opts?: { harness?: string; enabled?: boolean }) =>
68
+ (opts?.enabled === false
69
+ ? ([undefined, vi.fn()] as const)
70
+ : (["model-x", vi.fn()] as const)),
71
+ );
64
72
  vi.mock("../usePersistedModel", () => ({
65
- usePersistedModel: () => ["model-x", vi.fn()] as const,
73
+ usePersistedModel: (opts?: { harness?: string; enabled?: boolean }) =>
74
+ usePersistedModelSpy(opts),
66
75
  }));
67
76
 
68
77
  const useAgentRefFromSessionSpy = vi.fn((_instanceId: string | null) => ({
@@ -109,4 +118,42 @@ describe("useSessionPageFlow — guest audience", () => {
109
118
  // No override: the execution continues on the session's bound instance.
110
119
  expect(mockSendFollowUp.mock.calls[0][1].agentInstanceId).toBeUndefined();
111
120
  });
121
+
122
+ it("disables model persistence — a Console-stored model must not leak in", () => {
123
+ renderHook(() => useSessionPageFlow({ ...OPTS, audience: "guest" }));
124
+
125
+ expect(usePersistedModelSpy).toHaveBeenCalledWith(
126
+ expect.objectContaining({ enabled: false }),
127
+ );
128
+ });
129
+
130
+ it("keeps model persistence for other audiences", () => {
131
+ renderHook(() => useSessionPageFlow(OPTS));
132
+
133
+ expect(usePersistedModelSpy).toHaveBeenCalledWith(
134
+ expect.objectContaining({ enabled: true }),
135
+ );
136
+ });
137
+
138
+ it("sends follow-ups with NO model — the session's harness resolves it", async () => {
139
+ // Invariant this relies on: guest executions never carry a modelName
140
+ // (the first message omits it and the server-side guest execution
141
+ // profile owns spec.execution_config thereafter), so the composer's
142
+ // lastExecModelId fallback stays undefined too. If this test starts
143
+ // failing because a guest execution carries a model, fix the server
144
+ // profile — do not special-case lastExecModelId.
145
+ mockConv.completedExecutions = [
146
+ { spec: { executionConfig: { maxCostUsd: 0.5 } } },
147
+ ];
148
+ const { result } = renderHook(() =>
149
+ useSessionPageFlow({ ...OPTS, audience: "guest" }),
150
+ );
151
+
152
+ await act(async () => {
153
+ await result.current.handleSubmit("follow up");
154
+ });
155
+
156
+ expect(mockSendFollowUp.mock.calls[0][1].modelName).toBeUndefined();
157
+ mockConv.completedExecutions = [];
158
+ });
112
159
  });
@@ -23,6 +23,21 @@ const DEFAULT_AGENT_TIMEOUT_MS = 10_000;
23
23
 
24
24
  const STORAGE_KEY_HARNESS = "stigmer:session:harness";
25
25
 
26
+ /**
27
+ * Platform policy for guest (share/embed) sessions: the cursor harness with
28
+ * the Auto model (an omitted modelName resolves to cursor's "default"/Auto in
29
+ * the runner).
30
+ *
31
+ * This lives CLIENT-side deliberately — it is the only layer that can. The
32
+ * SDK's guest audience covers both public visitors (guest tokens) and org
33
+ * members chatting via an org-audience share (their own member tokens, which
34
+ * carry no share linkage in Phase A) — the server cannot distinguish the
35
+ * latter from ordinary Console traffic, so share-surface policy must be
36
+ * applied where the surface is known. Server-side guest-token gates own the
37
+ * abuse controls (rate limits, bounded execution profile).
38
+ */
39
+ const GUEST_HARNESS: HarnessOption = "cursor";
40
+
26
41
  function modelStorageKey(harness: HarnessOption): string {
27
42
  return harness === "cursor"
28
43
  ? "stigmer:session:model:cursor"
@@ -78,6 +93,10 @@ export interface UseNewSessionFlowOptions {
78
93
  * localStorage on explicit change — always takes precedence on
79
94
  * subsequent visits.
80
95
  *
96
+ * Ignored for the `"guest"` audience: guest sessions always run the
97
+ * platform's share-surface policy (cursor harness, Auto model), never an
98
+ * embedder preference or a stored Console choice.
99
+ *
81
100
  * @default DEFAULT_HARNESS ("native")
82
101
  */
83
102
  readonly defaultHarness?: HarnessOption;
@@ -205,6 +224,10 @@ export function useNewSessionFlow(
205
224
  const adapter = useRunnerAdapter();
206
225
 
207
226
  const [harness, setHarnessRaw] = useState<HarnessOption>(() => {
227
+ // Guests get the fixed platform policy (see GUEST_HARNESS) and never
228
+ // touch localStorage: a browser previously used in the Console must not
229
+ // leak its stored harness into a share/embed session.
230
+ if (isGuest) return GUEST_HARNESS;
208
231
  if (typeof window === "undefined") return defaultHarness ?? DEFAULT_HARNESS;
209
232
  // Only explicit user choices are persisted (see setHarness), so a
210
233
  // stored value always outranks the embedder's defaultHarness.
@@ -241,6 +264,9 @@ export function useNewSessionFlow(
241
264
  const setHarness = useCallback(
242
265
  (h: HarnessOption) => {
243
266
  setHarnessRaw(h);
267
+ // Guests have no harness picker; if a caller invokes this anyway, the
268
+ // guest surface must never write into the Console's preference keys.
269
+ if (isGuest) return;
244
270
  // Persist only explicit choices — never the seeded value — so the
245
271
  // embedder's defaultHarness keeps applying until the user decides.
246
272
  localStorage.setItem(STORAGE_KEY_HARNESS, h);
@@ -248,13 +274,16 @@ export function useNewSessionFlow(
248
274
  const plain = storedModel ? (parseModelKey(storedModel)?.modelId ?? storedModel) : undefined;
249
275
  setModelId(plain);
250
276
  },
251
- [],
277
+ [isGuest],
252
278
  );
253
279
 
254
280
  // Restore persisted model — only after the registry has loaded so
255
281
  // getModel can actually validate the stored ID against live data.
282
+ // Guests skip the restore: modelId stays undefined, the create omits
283
+ // modelName, and the cursor harness resolves it to Auto — a Console-used
284
+ // browser must not leak its stored model into a share/embed session.
256
285
  useEffect(() => {
257
- if (isModelsLoading) return;
286
+ if (isGuest || isModelsLoading) return;
258
287
  const stored = localStorage.getItem(modelStorageKey(harness));
259
288
  if (stored) {
260
289
  const plain = parseModelKey(stored)?.modelId ?? stored;
@@ -262,16 +291,18 @@ export function useNewSessionFlow(
262
291
  setModelId(plain);
263
292
  }
264
293
  }
265
- }, [getModel, harness, isModelsLoading]);
294
+ }, [getModel, harness, isGuest, isModelsLoading]);
266
295
 
267
296
  // Persist model on change (using current harness key).
268
297
  // Strip compound keys (e.g. "cursor/default") to plain modelId before storing.
298
+ // Guests never persist — the symmetric half of the isolation above.
269
299
  useEffect(() => {
300
+ if (isGuest) return;
270
301
  if (modelId) {
271
302
  const plain = parseModelKey(modelId)?.modelId ?? modelId;
272
303
  localStorage.setItem(modelStorageKey(harness), plain);
273
304
  }
274
- }, [modelId, harness]);
305
+ }, [modelId, harness, isGuest]);
275
306
 
276
307
  const submit = useCallback(
277
308
  async (
@@ -15,6 +15,17 @@ export interface UsePersistedModelOptions {
15
15
  * When `"native"` or omitted, the default key and registry apply.
16
16
  */
17
17
  readonly harness?: HarnessOption;
18
+ /**
19
+ * When `false`, the hook is a stable no-op: it never reads or writes
20
+ * localStorage and always returns `undefined` with a no-op setter.
21
+ *
22
+ * Guest (share/embed) surfaces disable persistence so a browser previously
23
+ * used in the Console cannot leak its stored model into a guest session,
24
+ * and a guest session never pollutes the Console's preference keys.
25
+ *
26
+ * @default true
27
+ */
28
+ readonly enabled?: boolean;
18
29
  }
19
30
 
20
31
  /** Return value of {@link usePersistedModel}. */
@@ -60,32 +71,43 @@ export function usePersistedModel(
60
71
  options?: UsePersistedModelOptions,
61
72
  ): UsePersistedModelReturn {
62
73
  const harness = options?.harness;
74
+ const enabled = options?.enabled ?? true;
63
75
  const { getModel } = useModelRegistry({ harness });
64
76
  const key = storageKey(harness);
65
77
  const prevKeyRef = useRef(key);
66
78
 
67
79
  const [modelId, setModelId] = useState<string | undefined>(() => {
68
- if (typeof window === "undefined") return undefined;
80
+ if (!enabled || typeof window === "undefined") return undefined;
69
81
  const raw = localStorage.getItem(key);
70
82
  return raw ? extractPlainModelId(raw) : undefined;
71
83
  });
72
84
 
73
85
  // Re-read from localStorage when the storage key changes (harness transition).
74
86
  useEffect(() => {
87
+ if (!enabled) return;
75
88
  if (prevKeyRef.current === key) return;
76
89
  prevKeyRef.current = key;
77
90
 
78
91
  if (typeof window === "undefined") return;
79
92
  const raw = localStorage.getItem(key);
80
93
  setModelId(raw ? extractPlainModelId(raw) : undefined);
81
- }, [key]);
94
+ }, [enabled, key]);
82
95
 
83
96
  useEffect(() => {
97
+ if (!enabled) return;
84
98
  if (modelId) {
85
99
  localStorage.setItem(key, modelId);
86
100
  }
87
- }, [modelId, key]);
101
+ }, [enabled, modelId, key]);
102
+
103
+ if (!enabled) {
104
+ // Stable no-op shape: undefined model, inert setter. Returned after the
105
+ // hooks above so the hook order is identical whether enabled or not.
106
+ return [undefined, NOOP_SET_MODEL] as const;
107
+ }
88
108
 
89
109
  const validModelId = modelId && getModel(modelId) ? modelId : undefined;
90
110
  return [validModelId, setModelId] as const;
91
111
  }
112
+
113
+ const NOOP_SET_MODEL: (id: string) => void = () => {};
@@ -249,8 +249,19 @@ export function useSessionPageFlow(
249
249
  const executionTarget: ExecutionTargetOption | undefined = fromProtoExecutionTarget(
250
250
  conv.session?.spec?.executionTarget ?? ExecutionTarget.UNSPECIFIED,
251
251
  );
252
- const [persistedModelId, setPersistedModelId] = usePersistedModel({ harness });
253
-
252
+ // Guests never read or write the Console's persisted model preference —
253
+ // their follow-ups carry no modelName, and the session's harness (cursor
254
+ // for share surfaces) resolves the model server-side.
255
+ const [persistedModelId, setPersistedModelId] = usePersistedModel({
256
+ harness,
257
+ enabled: !isGuest,
258
+ });
259
+
260
+ // Guest note: this stays undefined for guests by construction — guest
261
+ // executions never carry a modelName (the first message omits it and the
262
+ // server-side guest execution profile owns the field thereafter). The
263
+ // guest flow test asserts that invariant; if it ever breaks, fix the
264
+ // server profile rather than special-casing here.
254
265
  const lastExecModelId = useMemo(() => {
255
266
  const lastExec = conv.completedExecutions.at(-1);
256
267
  return lastExec?.spec?.executionConfig?.modelName || undefined;