Repository navigation
Expand file tree
/
Copy pathshared-app-macos-26.6.2.json
More file actions
8743 lines (8743 loc) · 326 KB
/
Copy pathshared-app-macos-26.6.2.json
File metadata and controls
8743 lines (8743 loc) · 326 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"selectedEngines": [
"chromium",
"webkit"
],
"status": "passed",
"startedAt": "2026-09-13T00:44:26.246Z",
"hosts": [
{
"name": "chromium",
"status": "passed",
"checks": [
"routing alias editor fits 320px at normal and enlarged text, authored input boundaries meet measured contrast, and cancelling leaves the alias registry unchanged",
"alias middle/first/last fallback removal, cancel, keep and confirmed deletion preserve a named focus destination, saved profiles and provider silence",
"keyboard navigation to Preferences, focused native-option changes and Space-activated checkbox saves preserve focus; a held durable reply cannot steal focus after Tab leaves the panel, defaults are restored, and focus remains visible in a 390px layout with enlarged text",
"a new conversation shows an explicit empty state above the composer until the first message is saved",
"message articles and repeated actions have unique role/page-position context while retaining each visible action label; existing edit, quote, regenerate and branch scenarios use these accessible names",
"create, rename, tags and system prompt commit through the production worker",
"actual provider HTTP stream is visible before terminal; generation completes durably",
"all six themes apply through the root attribute with distinct backgrounds, body and muted text at ≥ 4.5:1 (cool-minimal 13.89, compact-ops 14.42, terminal 14.03, bubbles 13.18, focus 13.97, warm-reading 12.55), interaction preferences unchanged apart from the revision, and the saved status stays visible",
"send-key preferences save through the production worker without changing the draft, a lost save reply is shown and recovered by reloading the durable value, another client reads the saved value and its stale edit is refused; Mod+Enter and Enter each submit through the provider path, newline input survives, and composition/repeated Enter events never submit; the preference survives a fresh browser process",
"second turn sends the exact selected ancestor path and prompt while retaining internal provenance locally",
"four interaction preferences save through the production worker while preserving the draft, canonical history and provider/count HTTP; timestamps, model badges, compact composer and native model radios render their selected modes, current radio supports keyboard activation, lost durable replies recover by reload and a second client's revision prevents a stale UI edit before defaults are restored",
"regenerate creates a distinct attempt and preserves both response branches",
"editing creates a new immutable sibling and keeps the original message and generated descendants",
"the selected branch continues through the second real provider adapter",
"model output limits gate invalid keyboard/button sends and persist exact settings independently for both providers and regenerated attempts",
"catalog-declared temperature, top-p and stop sequences gate invalid sends without losing the draft, map to each protocol's fields, omit blank settings and are recorded per attempt",
"stop terminates controlled HTTP and retains the committed response prefix",
"a streamed two-part reply changes the polite generation status exactly twice (in progress, complete): committed chunks never re-announce",
"long streamed text uses bounded mutable segments without splitting Unicode scalars or losing text",
"quote in reply appends the selected passage or whole inline message as a blockquote with the caret at the end, refuses an over-limit quote without altering the draft, and sends the quoted text",
"keyboard-only workflow: skip link, new conversation, send, stop, regenerate, edit/cancel, rename and search-result navigation keep visible focus on a named control; streamed content is not a live region and status announces only at boundaries",
"a search with no matches shows an explicit empty state with what to try, and closing it restores the view",
"automatic derived indexing supplies lexical search across streamed deltas in the shared interface",
"portable and open exports download actual disk-backed TAR bytes; user-confirmed temporary cleanup preserves canonical history",
"keyboard export preparation restores the original control, save/release/temporary-copy removal park focus at the export heading, and live progress announces phase names without byte or record counters",
"composer attaches images through the host file picker and drag-and-drop, refuses non-image, oversized and mislabeled files, removes a staged image before sending, and publishes the remaining image as a verified attachment, Image part and provider image block that previews from the archive",
"provider connect and connection-check buttons work by keyboard and retain focus across asynchronous disabled states and the Connect-to-Replace label change",
"provider answers drive the composer's connection status and availability: a 429 with retry-after shows rate limited with the provider's reason and blocks sending until the retry time passes, a 401 shows authentication expired and blocks sending until Providers re-checks the connection, the device's offline signal blocks sending until it returns, both failed attempts are recorded, and the next request omits the failed attempt's empty assistant turn",
"background account-health checks update visible status through bounded model metadata only; offline and hidden activity suppresses due work, authentication rejection pauses probing, explicit checks recover, and cancelling a held probe preserves prior health without canonical writes or content traffic",
"every completed attempt records reported tokens and a cost estimated from the reviewed catalog price, failed attempts stay unpriced, each attempt line shows its usage and estimate provenance, and the conversation header sums attempts, tokens and priced estimates from the storage worker",
"counting prompt tokens sends the exact draft and branch to Anthropic's count endpoint without generation fields, shows the provider's count for this draft, commits nothing, clears when the draft changes, and reports that counting is not implemented for the OpenAI Chat Completions connection",
"the starting-branch list shows every root alternative, choosing one commits the active path and lists its own continuations step by step, and the edited branch and its descendants stay intact while another path is active",
"stop terminates an OpenAI stream and records its interrupted attempt, and text streamed by the Anthropic connection is indexed and found by search, which opens the hit at the exact generated part; create, reopen, edit and search themselves involve no provider",
"the connected credential is absent from every canonical record, every provider request body, every exported archive, browser storage and the rendered document; only the host injects it into request headers",
"switching the composer to another provider shows the compatibility report for the active path, refuses to send until the exact report is reviewed, records the switch as a ProviderSwitch event committed with the user turn, and lists it in the conversation",
"conversation fallback removal names its numbered target, preserves keyboard focus at Conversation routing after durable removal, and performs no provider or count request",
"a stored fallback continues a failed or partial primary attempt with the other connection as a separate attempt whose AutomaticFallback event is committed with it and names the failure, the partial attempt keeps its committed text off the active path, and a user stop never falls back",
"the conversation's routing profile chooses the route before the first attempt: a selected connection that fails the minimum context requirement or whose credential the provider rejected is routed around with the reason recorded as an AutomaticFallback event on the attempt, no qualifying candidate refuses sending with every reason stated, and clearing the requirement restores the selected connection",
"the open conversation shows its portability status with one inspectable reason per configured target and what is never sent, and a path whose assistant turn carries a reasoning marker without a verified provider block is portable to every target with that omission named per target and no invented block",
"reviewed migration routes the 4 eligible conversations to OpenAI · GPT-4.1 mini: the review lists each one with what it would carry, Keep the current routing changes nothing, confirming commits one SetRoutingProfile and one Migration event per conversation against its revision, messages are untouched, ineligible conversations are left alone, a migrated conversation opens on the target connection with its Migration event listed, and a second reviewed migration routes the same conversations back to Anthropic · Claude Haiku 4.5 with one more event each",
"the search form's portability filter uses the 4 statuses the library analysis published to the storage owner and is applied in the worker's SQL: \"comet\" keeps all 24 of its 24 hits under the fully-portable filter, \"picture\" drops from 1 to 0 under it and keeps 1 under provider-dependent, the blocked filter returns none, and the coverage note names the analysis",
"bulk portability analyses all 4 library conversations page by page against the configured targets (2 fully portable, 1 with transformations, 1 provider-dependent, 0 blocked, 0 without messages, 0 failed) with inspectable per-target reasons, an outcome filter, 32-row pages and a way to open each conversation",
"keyboard import picker, start and report preparation preserve focus through async work; opening the saved conversation focuses its heading, and import live progress announces phases without changing numeric counters",
"settled compatibility announcements retain one atomic status node through repeated valid settings edits; blocked reasons remain readable without remounted alerts, focus and draft remain, and inspection sends no HTTP or canonical writes",
"a ChatGPT export imported through the production importer continues with the Anthropic connection: the artifact-bearing branch is blocked with the adapter's reason, the text branch is chosen, its sketch without exported bytes is shown as a transformation and sent as a note naming the file, the switch from the import origin is reviewed with an unknown privacy class and recorded, the request carries exactly the imported path plus the new turn, and every imported message and part is unchanged afterwards",
"a verified PNG attachment on a user message is sent as a provider image block with its exact bytes, and the recorded attempt keeps parameters without image data",
"long saved alias names fit the application selector and reviewed profile at 320px normal/enlarged text, with an exact visible accessible label and keyboard cancellation preserving registry, canonical state and provider silence",
"routing aliases create/edit/delete in Preferences, preserve and reorder an unavailable target, recover a lost durable-save reply and refuse stale edits; applying an explicitly reviewed immutable snapshot preserves the draft, commits the primary/fallbacks/constraints with one atomic canonical sync operation, requires a fresh provider-switch review and sends through the chosen route; later alias edits/deletion never change the conversation, and registry/profile/missing-primary behavior survive a browser-process restart",
"reviewed attachment exclusions cancel without a write, commit immutable context and event, replace a verified PNG with the identical marker in token counting, sending and regeneration, retain original parts, clear and reapply without rewriting snapshots, and survive process restart",
"unknown-outcome recovery survives dismissed errors, conversation navigation and lexical search; a failed check stays recoverable, and a held exact replay preserves newer navigation without duplicate canonical writes or provider traffic",
"summary proposal request matches frozen verified body, excludes reviewed attachments, records separate generation usage without selecting its output, requires request/text review, saves edited text and audit atomically despite lost reply, leaves source history unchanged, and sends the same reviewed prefix through count/send/regenerate/fallback; attachment-exclusion markers also agree in a separate failed-primary/fallback pair before applying the summary; repeated proposal includes prior summary and cancellation retains an ineligible proposal",
"pending recovery stays reachable independently of ordinary error dismissal; known refusals dismiss without writes to a visible Workspace status heading, while a held fresh-branch reconciliation reply respects focus moved to Title and commits no duplicate history",
"explicit fresh branch review/cancel sends no HTTP or writes; lost durable reply reconciles one context and both audit events; draft and staged image survive; original messages and parts remain exact; count, failed primary and fallback carry system prompt plus new draft without old history or summary; next Send creates a root and old history remains selectable",
"alias and compaction review keyboard actions recover focus through save, cancel, remove and busy transitions; summary label/count status and populated alias/attachment/summary/fresh-branch layouts pass 320px normal/enlarged checks",
"per-attempt total cost limit blocks uncounted keyboard/button sends without writes or HTTP; explicit exact-input count unlocks, draft/output edits expire it, and an over-budget fallback receives neither generation nor hidden count HTTP; summary generation independently waits for reviewed count; sufficient conservative budgets allow primary/fallback/regeneration and record cost basis; alias editor/review persists a v4 total-cap snapshot",
"required processing region refuses unknown/different-region send and count without writes or HTTP, routes an unknown primary to eligible US before the initial attempt with exact native fixture binding/model and recorded review basis, permits US regeneration, and refuses unknown/EU fallbacks after a US failure without extra HTTP",
"summary region review refuses count/generation to an unknown selected primary, accepts the eligible US target with unchanged output settings and durable review basis, and a v5 region alias snapshots independently of later alias edits while fresh branching preserves the conversation policy",
"PDF picker/drop preserves original verified bytes as Attachment and File, shows metadata without preview execution, removes drafts and refuses unsupported/oversized/mislabeled files; both provider protocols send and regenerate exact originals, Anthropic counts the same file, and a portable TAR is restored through reviewed managed activation before regenerating the restored PDF",
"keyboard restore picker and replacement review retain focus, releasing candidate work and completing activation park focus at the restore heading, and live restore phases exclude numeric progress counters",
"WAV/MP3 picker and drop retain exact Audio parts and verified bytes, refuse unsupported/mislabeled/oversized drafts, send and regenerate input_audio with text-only output, block unsupported models without dispatch, and preserve originals through portable restore and restored regeneration",
"an Anthropic response with a citation and an unknown output block, and an OpenAI response with a URL annotation and a provider-specific delta, are retained as Citation and stream-located ProviderArtifact parts; the next send, count, regeneration and cross-provider switch carry the answer text plus a plain source note and none of the provider-specific records, with the switch report naming each transformation, while import-derived artifacts remain refused by name",
"manual thinking for the reviewed Haiku 4.5 profile refuses budgets below 1,024, at or above the output limit, with temperature or an out-of-range top-p without writes or HTTP; a thinking-enabled send carries the enabled budget and records signed and redacted receipts beside their markers; count, a later send, and regeneration carry those blocks first and unchanged from verified receipts on the producing model; the OpenAI switch report and portability name the omitted blocks and the OpenAI request carries none; returning to Anthropic restores them with the response's records unchanged",
"accessibility audit passes on 10 views: every visible control named, visible text at 4.5:1 or better, unique landmark names, no skipped heading levels, no live region inside the message list, status regions with text, and outlines on keyboard-focused controls (551 controls, 851 text nodes)",
"the conversation library and an open conversation with saved messages fit 320px at normal and 200% root text size without horizontal overflow",
"a 180-character title with a 70-character unbroken token wraps in the library, the heading and the settings form at 320px and 200% text without overflow, and renaming back restores the original",
"all four interaction preferences survive a fresh browser process with exact revision and send-key preserved; saved timestamps, hidden badges, compact composer and model list render without credentials or HTTP at 390px, then defaults are restored for subsequent checks",
"a fresh browser process retains canonical branches and messages, keeps the stopped attempt with its recorded interrupted status and sealed output, can switch branches without a provider, loses session credentials, and fits a narrow viewport",
"reviewed summary, generated proposal and exact saved input survive browser-process restart; saved proposals remain inspectable without a configured provider, and clear creates an audited snapshot preserving attachment exclusions",
"fresh branch null selection and context survive browser-process restart without provider credentials; mobile layout fits and original root remains navigable without provider HTTP",
"v4 cost profile and recorded fallback cost basis survive process restart without provider credentials; per-attempt limit remains inspectable in the narrow layout",
"v5 regional conversation snapshot, independent edited alias, generation/summary review basis and fresh-branch selection survive process restart without provider credentials or HTTP and fit the narrow layout",
"PDF File parts, attachment metadata and original byte hash survive a browser-process restart without credentials, remain visible in narrow history, and trigger no provider HTTP",
"Audio canonical parts, metadata and original byte hashes survive browser-process restart without credentials or provider traffic and fit narrow history",
"saved ready export is discovered after process loss, downloaded without re-exporting and matches its original checksum",
"after a fresh browser process the thinking receipts still verify and a follow-up on the producing model carries the same signed and redacted blocks first and unchanged",
"compare sends one turn to two models at once: each answer is its own generation and sibling branch, a Compare event names both, the turn stays selected until one answer is chosen, the choice and the compare view survive a reload, and the next turn continues from the chosen answer",
"when one compared model fails mid-stream the other candidate completes and stays selectable, the failure is named per candidate, and both attempts remain in history",
"critique starts a new generation that reviews the last answer: the request carries the branch through that answer and the review instruction, the output is a sibling of the reviewed answer's parent with a badge naming what it reviewed, a Critique event names both generations, and the reviewed answer and its parts are unchanged",
"invalid operator relay configuration leaves local history, search and creation available while provider connections remain disabled",
"before enrolment Best is explicitly lexical-only with the storage reason and exact hits still navigate",
"enrolment verifies the pinned model, selects WASM SIMD · CPU and indexes every visible chunk with progress, backend, speed and size shown",
"Semantic mode embeds the query locally and ranks a paraphrase without shared terms first, explained as a semantic match",
"Best fuses lexical and semantic rankings by reciprocal rank: the dual-origin hit leads and every result explains its origin",
"Exact mode stays purely lexical",
"the Storage health inference self-test re-hashes the model (cache), reproduces the frozen token ids and reference vectors on the scalar and SIMD backends, and reports the WebGPU backend as unsupported on the WASM SIMD · CPU route",
"the saved diagnostics file carries the storage report and the five inference checks, and none of the seeded conversation text",
"Pause keeps stored vectors searchable and refuses new claims; Resume indexes only the chunk added meanwhile",
"on the CPU route a GPU device-loss injection is refused and the backend stays WASM SIMD · CPU",
"after a browser restart the enrolment, generation and vectors persist, the verified model loads from its OPFS copy and semantic queries work without re-indexing",
"Rebuild semantic index starts generation 4 (from 2), re-embeds all four chunks and answers the same semantic query, with canonical record and sync-operation counts and the message list unchanged",
"Disable stops indexing and unloads the runtime while the stored index and enrolment survive",
"Delete semantic index removes every vector and the enrolment, keeps canonical messages and lexical search, and Semantic mode states that it is not enabled",
"an unprovisioned model is reported as an explicit asset failure; Best falls back to text matches with a visible reason and exact hits remain",
"a fresh archive shows step 1 (local storage disclosure) above the usable landing page, with onboarding recorded as not completed",
"step 2 reports SQLite WASM/OPFS, FTS5, WASM SIMD, the host model, WebGPU (unavailable) and persistence (not granted) from actual capabilities and diagnostics",
"requesting persistent storage reports the browser's actual answer (not granted) and re-reads the status",
"step 3 offers extension, provider export and Quixi archive; the import section opens with the extension pairing code and the steps resume where they were",
"step 4 reports the configured provider connections and says history stays usable without one",
"Later on step 5 records completion in device-local preferences; after a browser restart the steps stay hidden",
"Preferences can show the setup again; Enable on step 5 enrols local semantic search through the same controller and completes the setup",
"Storage health shows location, database, usage/quota, persistence and an Export backup action that opens the export section"
],
"audits": {
"welcome": {
"view": "welcome",
"controls": 25,
"unnamed": [],
"textNodes": 34,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "search",
"name": null
},
{
"role": "region",
"name": "Your Quixi history stays on this device by default."
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 2,
"text": "Your Quixi history stays on this device "
},
{
"level": 1,
"text": "Pick up where you left off."
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"conversation": {
"view": "conversation",
"controls": 165,
"unnamed": [],
"textNodes": 272,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "search",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "region",
"name": "Portability"
},
{
"role": "region",
"name": "Conversation messages"
},
{
"role": "banner",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "banner",
"name": null
},
{
"role": "region",
"name": "Branch choices"
},
{
"role": "region",
"name": "Conversation routing"
},
{
"role": "region",
"name": "Request context"
},
{
"role": "region",
"name": "Attachment exclusions"
},
{
"role": "region",
"name": "Conversation summary"
},
{
"role": "region",
"name": "Fresh context branch"
},
{
"role": "region",
"name": "Apply routing alias"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 1,
"text": "Comet notebook"
},
{
"level": 2,
"text": "Branch continuations"
},
{
"level": 3,
"text": "Conversation routing"
},
{
"level": 3,
"text": "Attachment exclusions"
},
{
"level": 3,
"text": "Conversation summary"
},
{
"level": 3,
"text": "Fresh context branch"
},
{
"level": 3,
"text": "Apply routing alias"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 0,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"searchResults": {
"view": "search results",
"controls": 77,
"unnamed": [],
"textNodes": 108,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "search",
"name": null
},
{
"role": "region",
"name": "Search results"
},
{
"role": "banner",
"name": null
},
{
"role": "region",
"name": "Portability"
},
{
"role": "region",
"name": "Conversation messages"
},
{
"role": "banner",
"name": null
},
{
"role": "region",
"name": "Branch choices"
},
{
"role": "region",
"name": "Conversation routing"
},
{
"role": "region",
"name": "Request context"
},
{
"role": "region",
"name": "Attachment exclusions"
},
{
"role": "region",
"name": "Conversation summary"
},
{
"role": "region",
"name": "Fresh context branch"
},
{
"role": "region",
"name": "Apply routing alias"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 2,
"text": "Search results"
},
{
"level": 1,
"text": "Keyboard notebook"
},
{
"level": 2,
"text": "Branch continuations"
},
{
"level": 3,
"text": "Conversation routing"
},
{
"level": 3,
"text": "Attachment exclusions"
},
{
"level": 3,
"text": "Conversation summary"
},
{
"level": 3,
"text": "Fresh context branch"
},
{
"level": 3,
"text": "Apply routing alias"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 0,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 1
},
"imports": {
"view": "imports",
"controls": 26,
"unnamed": [],
"textNodes": 43,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Import your history"
},
{
"role": "banner",
"name": null
},
{
"role": "region",
"name": "Browser extension"
},
{
"role": "region",
"name": "Saved imports"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 2,
"text": "Import your history"
},
{
"level": 3,
"text": "Browser extension"
},
{
"level": 3,
"text": "Saved imports"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 0,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"providers": {
"view": "providers",
"controls": 67,
"unnamed": [],
"textNodes": 136,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Workspace status"
},
{
"role": "region",
"name": "Provider connections"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 2,
"text": "Provider connections"
},
{
"level": 3,
"text": "OpenAI"
},
{
"level": 3,
"text": "Anthropic"
},
{
"level": 3,
"text": "OpenAI · US"
},
{
"level": 3,
"text": "OpenAI · Europe (EEA + Switzerland)"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"preferences": {
"view": "preferences",
"controls": 47,
"unnamed": [],
"textNodes": 64,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Workspace status"
},
{
"role": "region",
"name": "Preferences"
},
{
"role": "region",
"name": "Routing aliases"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 1,
"text": "Preferences"
},
{
"level": 2,
"text": "Routing aliases"
},
{
"level": 3,
"text": "Private"
},
{
"level": 3,
"text": "Budget"
},
{
"level": 3,
"text": "Regional"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"documents": {
"view": "documents",
"controls": 35,
"unnamed": [],
"textNodes": 39,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Workspace status"
},
{
"role": "region",
"name": "Documents"
},
{
"role": "banner",
"name": null
},
{
"role": "navigation",
"name": "Document library"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 1,
"text": "Documents"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"exports": {
"view": "exports",
"controls": 34,
"unnamed": [],
"textNodes": 44,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Workspace status"
},
{
"role": "region",
"name": "Export your history"
},
{
"role": "region",
"name": "Saved archive work"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 1,
"text": "Export your history"
},
{
"level": 2,
"text": "Ready to save"
},
{
"level": 2,
"text": "Saved archive work"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"semantic": {
"view": "semantic",
"controls": 33,
"unnamed": [],
"textNodes": 38,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Workspace status"
},
{
"role": "region",
"name": "Semantic search"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 1,
"text": "Semantic search"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
},
"storageHealth": {
"view": "storageHealth",
"controls": 42,
"unnamed": [],
"textNodes": 73,
"contrast": [],
"landmarks": [
{
"role": "complementary",
"name": "Conversation library"
},
{
"role": "navigation",
"name": "Workspace"
},
{
"role": "main",
"name": null
},
{
"role": "region",
"name": "Workspace status"
},
{
"role": "region",
"name": "Storage"
},
{
"role": "region",
"name": "Diagnostics"
},
{
"role": "region",
"name": "Storage health"
},
{
"role": "region",
"name": "Doctor audit"
},
{
"role": "region",
"name": "File content verification"
}
],
"duplicateLandmarks": [],
"headings": [
{
"level": 2,
"text": "Workspace status"
},
{
"level": 2,
"text": "Storage"
},
{
"level": 2,
"text": "Diagnostics"
},
{
"level": 3,
"text": "Save report"
},
{
"level": 3,
"text": "Repair actions"
},
{
"level": 3,
"text": "Inference"
},
{
"level": 1,
"text": "Storage health"
},
{
"level": 2,
"text": "Doctor audit"
},
{
"level": 2,
"text": "File content verification"
}
],
"headingSkips": [],
"liveInsideMessages": 0,
"statusWithoutText": [],
"focusChecked": 6,
"focusWithoutOutline": [],
"emptyStatusPlaceholders": 0
}
},
"aliasReflow": {
"mode": "assert",
"name": "chromium",
"caseName": "alias-editor",
"scope": "Computed CSS reflow and enabled control-border contrast; no screen-reader or native-control pixel-rendering qualification.",
"samples": [
{
"size": "normal",
"viewportWidth": 320,
"documentWidth": 320,
"region": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1394
},
"rootFontSize": "16px",
"focused": {
"tag": "BUTTON",
"id": "",
"label": "Cancel alias edit",
"insideRegion": true
},
"controlCount": 14,
"controls": [
{
"tag": "FIELDSET",
"label": "Alias profileAlias nameAlias primaryChoose a connection and modelAlias fallback candidateChoose a connection and modelAdd alias fallbackRequire alias tool suppo",
"bounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"containerBounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"disabled": false,
"overflow": false
},
{
"tag": "INPUT",
"label": "Alias name",
"bounds": {
"left": 32.19,
"right": 287.81,
"width": 255.63,
"height": 41.28
},
"containerBounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"disabled": false,
"overflow": false
},
{
"tag": "SELECT",
"label": "Alias primary",
"bounds": {
"left": 32.19,
"right": 287.81,
"width": 255.63,
"height": 39.59
},
"containerBounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"disabled": false,
"overflow": false
},
{
"tag": "SELECT",
"label": "Alias fallback candidate",
"bounds": {
"left": 32.19,
"right": 287.81,
"width": 255.63,
"height": 39.59
},
"containerBounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"disabled": false,
"overflow": false
},
{
"tag": "BUTTON",
"label": "Add alias fallback",
"bounds": {
"left": 32.19,
"right": 287.81,
"width": 255.63,
"height": 38.94
},
"containerBounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"disabled": true,
"overflow": false
},
{
"tag": "INPUT",
"label": "Require alias tool support",
"bounds": {
"left": 36.19,
"right": 49.19,
"width": 13,
"height": 13
},
"containerBounds": {
"left": 19.19,
"right": 300.81,
"width": 281.63,
"height": 1269.44
},
"disabled": false,
"overflow": false
},
{
"tag": "INPUT",
"label": "Require alias image input",
"bounds": {
"left": 36.19,
"right": 49.19,
"width": 13,
"height": 13
},
"containerBounds": {
"left": 19.19,