-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsource-adoptions.json
More file actions
835 lines (835 loc) · 73.1 KB
/
Copy pathsource-adoptions.json
File metadata and controls
835 lines (835 loc) · 73.1 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
{
"version": 1,
"adopted": [
{
"id": "ui-mother",
"url": "https://github.com/Emanuele-web04/synara.git",
"revision": "9016d80708e5900d4f8bca19f4e5f209f70ce0f0",
"paths": [
".github",
".gitattributes",
".gitignore",
".mise.toml",
".oxfmtrc.json",
".oxlintrc.json",
"apps/desktop",
"apps/web",
"apps/server",
"packages/contracts",
"packages/shared",
"patches",
"scripts",
"package.json",
"bun.lock",
"bunfig.toml",
"tsconfig.base.json",
"turbo.json",
"vitest.config.ts"
],
"rights": "The fixed source is MIT-licensed under the retained exact legal text. The maintainer has authorized retention, adaptation and redistribution of the reviewed code. Former product identity assets, release identity and release history are not adopted.",
"mode": "adapt",
"changes": "Haros is a downstream distribution of the exact Synara product platform. It retains the inherited Desktop, Web, Server, contracts, shared Product Orchestration, Workbench, Engine and recovery substrate. Haros owns truthful bilingual branding, package/app/protocol/updater/profile/storage/artifact namespace, stock-Pi isolation and its distribution authorities. Synara release/account/public identity, website, headless release tarball and legacy Synara/DP Code storage migration are excluded. Product differences stay in the existing owners: ThreadGoal remains distinct from per-turn Todo; Groups translate inherited Space semantics to conversation membership; Engine identity/readiness reuse the canonical Engine owner; Automation uses consecutive-failure choices of one, three, five or keep running with three as default. From Synara 57f48ef1 through a93c47e2, Haros directly adopts the Browser tab strip, canonical Claude model ordering, readable picker geometry, stepped spinner, codeCache, bounded streaming-highlight throttle, 15-second Codex discovery grace, numstat Git statistics and lossless Engine-event hot-path improvements. Quit recovery is semantically translated into the existing protected loopback desktop shutdown and Product Orchestration owners: only a confirmed normal quit may create a private one-shot record, exact turn binding is required, restart dispatches an ordinary localized user message through the existing Queue and permission limits, and no public quit-resume RPC or second Product Store is introduced. From a93c47e2 through 9016d8070, Haros additionally adopts the Electron 43.4.1 security uplift, resumable Engine idle-stop semantics, cross-conversation Queue drain with turn-start fencing, transport-owned expensive-read retry with last-good file rendering, workspace-index-verified relative file chips, authoritative streamed-completion replacement, live assistant delivery, Claude Auto context-variant verification, installed-CLI update gating, stable created-at ordering, macOS numbered task navigation, legacy workspace fallback deletion, and the reviewed shared/server edge-case hardening for prototype keys, Windows paths, UTF-8 limits, mapped addresses, delivery boundaries, empty mentions/chunks, listener identity, dot-prefixed children, prerelease versions, Retry-After, credential temp files, localStorage clear, Windows home display and PDF destinations. The new mechanisms remain inside existing Haros owners; no parallel Queue, Product Store, file index, retry scheduler, Engine registry or lifecycle authority is introduced. WebMCP is not adopted, so page-declared model tools remain unavailable until Browser trust and HostGateway ownership are approved. The new in-thread find, sidebar customization, sidechat expiry, expanded usage panels, provider enablement controls and Devin Engine are not adopted, so those product affordances remain absent. Kilo retirement is rejected because Kilo is an intentional Haros Engine. Divergent/newer-schema repair, ACP load-replay fencing, lossless gateway message slicing, thread-specific pull-request attribution, Claude post-compaction usage reset, POSIX/Windows lifecycle refactors and large-database startup tuning are deferred as separate persistence, gateway or lifecycle cuts; their upstream recovery, correctness or performance gains are not claimed by this update. Source-desktop isolation and the Claude Fable 5.1 catalog already have equal or stronger Haros-owned implementations and are not duplicated. Floating Browser, wholesale raw-payload clearing, Synara version/release identity, README/What's New/CHANGELOG, screenshots/assets, server tarball and release configuration remain excluded; the existing linear working shimmer is retained because the proposed stepped visual did not obtain independent translucent-surface proof.",
"currentOverride": "The older non-adoption statements for WebMCP, in-thread find, Sidebar customization, usage expansion and the listed process/SQLite lifecycle cuts are superseded by the separately authorized and revision-pinned omnimind-recent-mechanisms record. They are now adopted through Haros-owned contracts and owners named there, not by advancing this pinned Synara revision. Kilo remains intentionally retained and Devin remains outside the Haros Engine registry.",
"updatePolicy": "Pinned production revision. Each maintainer-triggered update begins with an exact read-only intake; safe mother mechanisms enter by standing default, while every proposed non-adoption, defer, current-stronger disposition, identity divergence or new high-risk change must state its loss and receive contextual maintainer confirmation before the fact-closed adoption set is pushed."
},
{
"id": "omnimind-recent-mechanisms",
"url": "https://github.com/SolvingLab/OmniMind.git",
"revision": "30a79b2e5845c1ae9899d6508d60e66b63ee4fd1",
"previousRevision": "b5a966bb9de09861c98a1d7ac3936b092614fed3",
"paths": [
"packages/contracts/src/engine.ts",
"packages/contracts/src/engine.test.ts",
"packages/shared/src/productSurface.ts",
"packages/shared/src/productSurface.test.ts",
"apps/server/src/persistence/Migrations.ts",
"apps/server/src/persistence/Migrations.integration.test.ts",
"apps/server/src/persistence/Migrations/002_EngineSessionAdmission.ts",
"apps/server/src/persistence/Services/EngineSessionRuntime.ts",
"apps/server/src/persistence/Layers/EngineSessionRuntime.ts",
"apps/server/src/engine/Services/EngineAdapter.ts",
"apps/server/src/engine/Services/EngineService.ts",
"apps/server/src/engine/Services/EngineSessionDirectory.ts",
"apps/server/src/engine/Layers/EngineSessionDirectory.ts",
"apps/server/src/engine/Layers/EngineSessionDirectory.integration.test.ts",
"apps/server/src/engine/Layers/EngineService.ts",
"apps/server/src/engine/Layers/EngineService.integration.test.ts",
"apps/server/src/engine/Layers/AntigravityAdapter.integration.test.ts",
"apps/server/src/engine/Layers/ClaudeAdapter.integration.test.ts",
"apps/server/src/engine/Layers/CodexAdapter.integration.test.ts",
"apps/server/src/engine/Layers/OpenCodeAdapter.test.ts",
"apps/server/src/engine/Layers/OAModelServices.integration.test.ts",
"apps/server/src/engine/Layers/PiAdapter.ts",
"apps/server/src/engine/Layers/PiAdapter.integration.test.ts",
"apps/server/src/engine/piFamilyNativeEventProjection.ts",
"apps/server/src/orchestration/Layers/EngineCommandReactor.ts",
"apps/server/src/orchestration/importThreadRoute.ts",
"apps/server/src/orchestration/importThreadRoute.integration.test.ts",
"apps/server/integration/providerService.integration.test.ts",
"packages/contracts/src/orchestration.ts",
"packages/contracts/src/orchestration.test.ts",
"packages/contracts/src/ipc.ts",
"packages/contracts/src/rpc.ts",
"packages/contracts/src/ws.ts",
"apps/server/src/persistence/Migrations/003_PendingUserInputDraft.ts",
"apps/server/src/persistence/Services/ProjectionPendingInteractions.ts",
"apps/server/src/persistence/Layers/ProjectionPendingInteractions.ts",
"apps/server/src/persistence/Layers/ProjectionPendingInteractions.integration.test.ts",
"apps/server/src/orchestration/Layers/ProjectionPipeline.ts",
"apps/server/src/orchestration/Layers/ProjectionPipeline.integration.test.ts",
"apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts",
"apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.integration.test.ts",
"apps/server/scripts/verify-ask-user-live.ts",
"apps/server/src/wsRequestAdmission.ts",
"apps/server/src/wsRpc.ts",
"apps/web/src/wsNativeApi.ts",
"apps/web/src/wsNativeApi.test.ts",
"apps/web/src/pendingInteractionDerivation.ts",
"apps/web/src/pendingInteractionDerivation.test.ts",
"apps/web/src/components/chat/usePendingUserInputController.ts",
"apps/web/src/components/chat/usePendingUserInputController.browser.tsx",
"apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx",
"apps/web/src/components/chat/ComposerPendingUserInputPanel.browser.tsx",
"apps/web/src/i18n/messages/composer.ts",
"apps/web/src/components/chat/useThreadErrorToast.ts",
"apps/web/src/components/chat/useThreadErrorToast.test.ts",
"apps/web/src/hooks/useThreadUnblock.ts",
"apps/web/src/i18n/messages/conversation.ts",
"apps/web/src/lib/threadUnblock.ts",
"apps/web/src/lib/threadUnblock.test.ts",
"apps/desktop/src/browserManager.ts",
"apps/desktop/src/browserAutomation/desktopBrowserAutomationHost.ts",
"apps/desktop/src/browserUsePipeServer.ts",
"apps/desktop/src/browserIpc.ts",
"apps/desktop/src/ipcChannels.ts",
"apps/desktop/src/main.ts",
"apps/desktop/src/preload.ts",
"apps/web/src/hooks/useBrowserPanelDesktopBridge.ts",
"apps/web/src/lib/deletedThreadClientReconciliation.ts",
"apps/web/src/lib/storage.ts",
"apps/web/src/browserStateStore.ts",
"apps/web/src/rightDockStore.ts",
"apps/web/src/splitViewStore.ts",
"apps/web/src/routes/__root.tsx",
"apps/web/src/components/chat/SingleChatSurface.tsx",
"apps/web/src/components/chat/SplitChatSurface.tsx",
"packages/oa-web-access/curator-page.ts",
"packages/oa-web-access/curator-page.js",
"packages/oa-web-access/curator-server.ts",
"packages/oa-web-access/index.ts",
"packages/oa-web-access/test/harnessos-curator-presentation.test.mjs",
"packages/oa-web-access/test/curator-server-timeout.test.mjs",
"packages/oa-web-access/test/harnessos-instance-isolation.test.mjs",
"apps/desktop/src/browserAutomation/desktopBrowserAutomationHost.test.ts",
"apps/desktop/src/browserAutomation/browserManagerAutomation.test.ts",
"apps/web/src/components/chat/browserPanelOpenRequest.ts",
"apps/web/src/components/chat/toolCallGroup.logic.ts",
"apps/web/src/components/chat/toolCallGroup.logic.test.ts",
"apps/web/src/i18n/messages/timeline.ts",
"apps/web/src/i18n/messages/source-control.ts",
"apps/web/src/hooks/useBrowserPanelDesktopBridge.test.ts",
"apps/web/src/lib/deletedThreadClientReconciliation.test.ts",
"apps/web/e2e/engineWebSurfaceLease.e2e.ts",
"apps/web/playwright.electron.config.ts",
"packages/contracts/src/toolResults.ts",
"packages/contracts/src/index.ts",
"apps/server/src/engine/toolResultSnapshot.ts",
"apps/server/src/engine/toolResultSnapshot.test.ts",
"apps/server/src/orchestration/engineRuntimeActivityProjection.ts",
"apps/server/src/engine/unmappedEngineEvents.ts",
"apps/server/src/engine/Layers/EngineSessionReaper.test.ts",
"apps/server/src/orchestration/Layers/CheckpointReactor.integration.test.ts",
"apps/server/src/orchestration/Layers/EngineCommandReactor.integration.test.ts",
"apps/server/src/orchestration/Layers/EngineRuntimeIngestion.integration.test.ts",
"apps/server/src/hostGateway/Layers/HostGateway.integration.test.ts",
"apps/web/src/workLog.ts",
"apps/web/src/lib/toolCallDetails.ts",
"apps/web/src/lib/toolCallDetailsFormatting.ts",
"apps/web/src/lib/toolResultRead.ts",
"apps/web/src/lib/liveActivityPresentation.ts",
"apps/web/src/lib/engineReactQuery.ts",
"apps/web/src/lib/diffRendering.ts",
"apps/web/src/lib/diffRendering.test.ts",
"apps/web/src/components/chat/MessagesTimeline.tsx",
"apps/web/src/components/chat/ChatTranscriptPane.tsx",
"apps/web/src/components/chat/MessagesTimeline.logic.ts",
"apps/web/src/components/chat/MessagesTimeline.logic.test.ts",
"apps/web/src/components/chat/MessagesTimeline.test.tsx",
"apps/web/src/components/chat/TimelineWorkEntryRow.tsx",
"apps/web/src/components/chat/ToolCallDetailsDialog.tsx",
"apps/web/src/components/chat/MarkdownCodeBlock.tsx",
"apps/web/src/components/chat/TurnChangedFilesEvidence.tsx",
"apps/web/src/components/chat/FileDiffView.tsx",
"apps/web/src/components/chat/FileDiffHeader.tsx",
"apps/web/src/components/DiffPanelFileList.tsx",
"apps/web/src/components/chat/GitPanel.tsx",
"apps/web/src/lib/engineReactQuery.test.ts",
"apps/web/src/components/chat/transcriptScroll.ts",
"apps/web/src/components/chat/transcriptScroll.test.ts",
"apps/web/src/components/chat/MessagesTimeline.turnProcess.browser.tsx",
"apps/web/src/components/chat/MessagesTimeline.toolDetails.browser.tsx",
"apps/web/src/components/chat/MessagesTimeline.reasoning.browser.tsx",
"apps/web/src/components/chat/SingleChatSurface.errorDetails.browser.tsx",
"apps/web/src/components/chat/SingleChatSurface.browserOpenRequest.test.ts",
"apps/web/src/components/chat/SplitChatSurface.browserOpenRequest.test.ts",
"apps/web/src/components/ChatView.tsx",
"apps/web/src/components/ChatView.browser-suite.tsx",
"apps/web/src/components/chat/ComposerEnginePicker.tsx",
"apps/web/src/components/chat/workspaceExplorer.browser.tsx",
"apps/web/src/components/chat/ProjectPicker.tsx",
"apps/web/src/components/chat/ProjectPicker.notice.browser.tsx",
"apps/web/src/lib/toolCallDetails.test.ts",
"apps/web/src/session-logic.test.ts",
"apps/web/src/workLog.test.ts",
"scripts/lib/build-cache-path.ts",
"scripts/lib/electron-artifacts.ts",
"scripts/lib/electron-artifacts.test.ts",
"scripts/download-electron-artifact.mjs",
"scripts/lib/desktop-artifact-output.ts",
"scripts/lib/desktop-artifact-output.test.ts",
"scripts/build-desktop-artifact.ts",
"scripts/build-desktop-artifact.test.ts",
"apps/desktop/scripts/build-appsnap-helper.mjs",
"apps/desktop/scripts/build-appsnap-helper.test.mjs",
"scripts/package.json",
"package.json",
"bun.lock",
"README.md",
"docs/README.zh-CN.md",
"packages/shared/src/serverSettings.test.ts",
"apps/desktop/scripts/dev-electron.mjs",
"apps/desktop/scripts/electron-launcher.mjs",
"apps/desktop/scripts/smoke-test.mjs",
"apps/desktop/scripts/start-electron.mjs",
"apps/desktop/scripts/source-desktop-launch.mjs",
"apps/desktop/scripts/source-desktop-launch.test.mjs",
"apps/desktop/src/backendShutdown.ts",
"apps/desktop/src/browserAnnotations/guestPreload.ts",
"apps/desktop/src/browserAutomation/cdpRuntime.ts",
"apps/desktop/src/browserAutomation/webMcp.ts",
"apps/desktop/src/browserAutomation/webMcp.test.ts",
"apps/desktop/src/browserWebMcp/guestBridge.ts",
"apps/desktop/src/browserWebMcp/guestBridge.test.ts",
"apps/desktop/src/browserWebMcp/guestBridgeLegacyNative.test.ts",
"apps/desktop/src/browserWebMcp/guestBridgeSecurity.test.ts",
"apps/desktop/src/browserSessionPolicy.ts",
"apps/desktop/src/browserSessionPolicy.test.ts",
"apps/desktop/src/desktopUserDataProfile.ts",
"apps/desktop/src/desktopUserDataProfile.test.ts",
"apps/desktop/src/ownedChildProcess.ts",
"apps/desktop/src/ownedChildProcess.test.ts",
"apps/desktop/src/voiceTranscription.ts",
"apps/server/src/engine/Layers/ClaudeAdapter.ts",
"apps/server/src/engine/Layers/CodexAdapter.ts",
"apps/server/src/engine/Layers/EngineHealth.ts",
"apps/server/src/engine/Layers/EngineHealth.integration.test.ts",
"apps/server/src/engine/Layers/OAAgentPromptFiles.ts",
"apps/server/src/engine/Layers/OAAgentPromptFiles.integration.test.ts",
"apps/server/src/engine/Layers/OpenCodeAdapter.ts",
"apps/server/src/engine/Layers/PiRuntimeIsolation.integration.test.ts",
"apps/server/src/engine/Services/OAAgentPromptFiles.ts",
"apps/server/src/engine/claudeTokenUsage.ts",
"apps/server/src/engine/claudeTokenUsage.test.ts",
"apps/server/src/engine/goalMode.ts",
"apps/server/src/engine/interactionMode.ts",
"apps/server/src/engine/oaPromptPolicyExtension.ts",
"apps/server/src/engine/oaPromptPolicyExtension.test.ts",
"apps/server/src/engine/oaSessionExtensions.ts",
"apps/server/src/engine/piBarrierPatch.test.ts",
"apps/server/src/engine/piFamilyPrompt.ts",
"apps/server/src/engine/piOwnerLocalDynamicToolWire.test.ts",
"apps/server/src/engine/supervisedProcessTeardown.ts",
"apps/server/src/engine/supervisedProcessTeardown.test.ts",
"apps/server/src/hostGateway/browserTools.test.ts",
"apps/server/src/orchestration/engineRuntimeActivityProjection.test.ts",
"apps/server/src/persistence/Layers/Sqlite.ts",
"apps/server/src/persistence/Migrations/004_ProfileCacheWriteTelemetry.ts",
"apps/server/src/persistence/sqliteMemoryBudget.ts",
"apps/server/src/persistence/sqliteMemoryBudget.test.ts",
"apps/server/src/platform/processTreeController.ts",
"apps/server/src/platform/processTreeController.test.ts",
"apps/server/src/platform/windowsProcessSnapshot.ts",
"apps/server/src/processRunner.ts",
"apps/server/src/profileStats.ts",
"apps/server/src/profileStats.integration.test.ts",
"apps/server/src/profileStatsArchive.ts",
"apps/server/src/profileStatsArchive.integration.test.ts",
"apps/server/src/serverSettings.ts",
"apps/server/src/serverSettings.integration.test.ts",
"apps/server/src/terminal/Layers/Manager.ts",
"apps/server/src/terminal/Layers/Manager.integration.test.ts",
"apps/server/src/terminal/subprocessActivity.ts",
"apps/server/src/terminal/subprocessActivity.test.ts",
"apps/web/index.html",
"apps/web/package.json",
"apps/web/src/components/FileDiffSharedHeader.browser.tsx",
"apps/web/src/components/ModelServiceIcon.test.tsx",
"apps/web/src/components/SettingsSidebarNav.test.tsx",
"apps/web/src/components/Sidebar.tsx",
"apps/web/src/components/chat/ContextWindowMeter.tsx",
"apps/web/src/components/chat/RightDock.tsx",
"apps/web/src/components/chat/RightDockMotion.geometry.browser.tsx",
"apps/web/src/components/chat/ThreadFindBar.tsx",
"apps/web/src/components/chat/ThreadFindBar.browser.tsx",
"apps/web/src/components/chat/ThreadFindHighlights.tsx",
"apps/web/src/components/chat/ThreadFindHighlights.browser.tsx",
"apps/web/src/components/chat/TurnChangedFilesEvidence.browser.tsx",
"apps/web/src/components/chat/threadFind.logic.ts",
"apps/web/src/components/chat/threadFind.logic.test.ts",
"apps/web/src/components/chat/useDockPaneRuntimeActivation.browser.tsx",
"apps/web/src/components/profile/profileSelectors.test.ts",
"apps/web/src/components/settings/ProfileSettingsPanel.tsx",
"apps/web/src/components/settings/ModelsSettingsPanel.browser.tsx",
"apps/web/src/components/settings/PromptsSettingsPanel.tsx",
"apps/web/src/components/settings/PromptsSettingsPanel.browser.tsx",
"apps/web/src/components/ui/sidebar.tsx",
"apps/web/src/components/ui/sidebar.browser.tsx",
"apps/web/src/hooks/useDockPaneRuntimeActivation.ts",
"apps/web/src/i18n/messages/settings-capabilities.ts",
"apps/web/src/i18n/messages/settings-profile-usage.ts",
"apps/web/src/i18n/messages/shell.ts",
"apps/web/src/index.css",
"apps/web/src/lib/contextWindow.ts",
"apps/web/src/lib/contextWindow.test.ts",
"apps/web/src/localPreferences.ts",
"apps/web/src/rightDockStore.ts",
"apps/web/src/rightDockStore.test.ts",
"apps/web/src/routes/_chat.tsx",
"apps/web/src/settingsMetadata/promptSettings.ts",
"apps/web/src/settingsSearchMetadata.ts",
"apps/web/src/sidebarNavOrdering.ts",
"apps/web/src/sidebarNavOrdering.test.ts",
"apps/web/vite.config.ts",
"packages/contracts/src/browserAutomationErrors.ts",
"packages/contracts/src/browserAutomationIds.ts",
"packages/contracts/src/browserAutomationJson.ts",
"packages/contracts/src/browserAutomationToolCatalogue.ts",
"packages/contracts/src/browserAutomationToolInputs.ts",
"packages/contracts/src/browserAutomationToolOutputs.ts",
"packages/contracts/src/browserAutomationTools.test.ts",
"packages/contracts/src/engineRuntime.ts",
"packages/contracts/src/engineRuntime.test.ts",
"packages/contracts/src/oaAgentPrompts.ts",
"packages/contracts/src/oaAgentPrompts.test.ts",
"packages/contracts/src/settings.ts",
"packages/contracts/src/settings.test.ts",
"packages/contracts/src/stats.ts",
"packages/shared/src/browserAutomationCatalogue.ts",
"packages/shared/src/browserAutomationCatalogue.test.ts",
"packages/shared/src/browserAutomationPresentation.ts",
"packages/shared/src/desktopIdentity.ts",
"packages/shared/src/desktopIdentity.test.ts",
"scripts/dev-runner.ts",
"scripts/dev-runner.test.ts",
"scripts/lib/legal-metadata.test.ts",
"scripts/lib/packaged-legal-closure.test.ts",
"scripts/lib/packaged-workspace-manifests.ts",
"scripts/vendor-oa-runtime.mjs",
"scripts/vendor-oa-runtime.test.mjs"
],
"sourcePaths": [
"packages/contracts/src/agentExecution.ts",
"packages/shared/src/agentWorkSurface.ts",
"apps/server/src/agent/Layers/AgentRuntimeHost.ts",
"apps/server/src/orchestration/Layers/AgentCommandReactor.ts",
"packages/contracts/src/orchestration.ts",
"packages/shared/src/pendingUserInputs.ts",
"apps/server/src/persistence/Services/ProjectionPendingUserInputs.ts",
"apps/server/src/persistence/Layers/ProjectionPendingUserInputs.ts",
"apps/server/src/orchestration/Layers/ProjectionPipeline.ts",
"apps/server/src/orchestration/Layers/ProjectionSnapshotQuery.ts",
"apps/web/src/pendingUserInputDerivation.ts",
"apps/web/src/components/chat/usePendingUserInputController.ts",
"apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx",
"apps/web/src/components/chat/useThreadErrorToast.ts",
"apps/web/src/hooks/useThreadUnblock.ts",
"apps/web/src/i18n/messages/conversation.ts",
"apps/web/src/lib/threadUnblock.ts",
"apps/desktop/src/browserManager.ts",
"apps/desktop/src/browserUsePipeServer.ts",
"apps/desktop/src/browserIpc.ts",
"apps/desktop/src/ipcChannels.ts",
"apps/desktop/src/main.ts",
"apps/desktop/src/preload.ts",
"apps/web/src/hooks/useBrowserPanelDesktopBridge.ts",
"apps/web/src/rightDockStore.ts",
"apps/web/src/splitViewStore.ts",
"apps/web/src/lib/deletedThreadClientReconciliation.ts",
"apps/web/src/routes/__root.tsx",
"packages/om-web-access/curator-presentation.ts",
"packages/om-web-access/curator-page.ts",
"packages/om-web-access/curator-server.ts",
"packages/om-web-access/index.ts",
"packages/om-web-access/test/omnimind-curator-presentation.test.mjs",
"packages/om-web-access/test/omnimind-curator-runtime.test.mjs",
"packages/om-web-access/test/curator-server-timeout.test.mjs",
"apps/desktop/src/browserAutomation/desktopBrowserAutomationHost.ts",
"apps/desktop/src/browserAutomation/desktopBrowserAutomationHost.test.ts",
"apps/desktop/src/browserAutomation/browserManagerAutomation.test.ts",
"apps/desktop/src/browserUsePipeServer.test.ts",
"apps/web/src/components/chat/browserPanelOpenRequest.ts",
"apps/web/src/components/chat/toolCallGroup.logic.ts",
"apps/web/src/components/chat/toolCallGroup.logic.test.ts",
"apps/web/src/i18n/messages/timeline.ts",
"apps/web/src/lib/deletedThreadClientReconciliation.test.ts",
"apps/desktop/src/browserManager.test.ts",
"apps/web/src/components/chat/SplitChatSurface.browserOpenRequest.test.ts",
"apps/web/src/hooks/useBrowserPanelDesktopBridge.test.ts",
"packages/contracts/src/toolResults.ts",
"apps/server/src/agent/toolResultSnapshot.ts",
"apps/server/src/agent/toolResultSnapshot.test.ts",
"apps/server/src/agent/Services/PiAgentRuntime.ts",
"apps/server/src/agent/Layers/PiAgentRuntime.ts",
"apps/server/src/orchestration/agentRuntimeActivityProjection.ts",
"apps/server/src/agent/unmappedPiEvents.ts",
"apps/server/src/wsRpc.ts",
"packages/contracts/src/ws.ts",
"packages/contracts/src/rpc.ts",
"packages/contracts/src/ipc.ts",
"apps/web/src/wsNativeApi.ts",
"apps/web/src/workLog.ts",
"apps/web/src/lib/toolCallDetails.ts",
"apps/web/src/lib/toolCallDetailsFormatting.ts",
"apps/web/src/lib/toolResultRead.ts",
"apps/web/src/lib/liveActivityPresentation.ts",
"apps/web/src/lib/checkpointDiffReactQuery.ts",
"apps/web/src/lib/diffRendering.ts",
"apps/web/src/lib/diffRendering.test.ts",
"apps/web/src/components/chat/MessagesTimeline.tsx",
"apps/web/src/components/chat/ChatTranscriptPane.tsx",
"apps/web/src/components/chat/MessagesTimeline.logic.ts",
"apps/web/src/components/chat/MessagesTimeline.test.tsx",
"apps/web/src/components/chat/TimelineWorkEntryRow.tsx",
"apps/web/src/components/chat/ToolCallDetailsDialog.tsx",
"apps/web/src/components/chat/MarkdownCodeBlock.tsx",
"apps/web/src/components/chat/TurnChangedFilesEvidence.tsx",
"apps/web/src/components/chat/FileDiffView.tsx",
"apps/web/src/components/chat/FileDiffHeader.tsx",
"apps/web/src/components/DiffPanelFileList.tsx",
"apps/web/src/components/chat/GitPanel.tsx",
"apps/web/src/lib/checkpointDiffReactQuery.test.ts",
"apps/web/src/components/chat/useTailAnchorScroll.ts",
"apps/web/src/components/chat/transcriptScroll.ts",
"apps/web/src/components/chat/transcriptScroll.test.ts",
"apps/web/src/components/chat/MessagesTimeline.tailAnchor.browser.tsx",
"apps/web/src/components/chat/MessagesTimeline.turnProcess.browser.tsx",
"apps/web/src/components/chat/MessagesTimeline.toolDetails.browser.tsx",
"apps/web/src/components/ChatView.tsx",
"apps/web/src/components/chat/ProjectPicker.tsx",
"apps/web/src/i18n/messages/composer.ts",
"apps/web/src/lib/toolCallDetails.test.ts",
"scripts/lib/build-cache-path.ts",
"scripts/lib/electron-artifacts.ts",
"scripts/lib/electron-artifacts.test.ts",
"scripts/download-electron-artifact.mjs",
"scripts/lib/desktop-artifact-output.ts",
"scripts/lib/desktop-artifact-output.test.ts",
"scripts/build-desktop-artifact.ts",
"scripts/build-desktop-artifact.test.ts",
"apps/desktop/scripts/build-appsnap-helper.mjs",
"apps/desktop/scripts/build-appsnap-helper.test.mjs",
"scripts/package.json",
"package.json",
"bun.lock",
"README.md",
"packages/shared/src/serverSettings.test.ts",
"apps/desktop/scripts/electron-launcher.mjs",
"apps/desktop/scripts/smoke-test.mjs",
"apps/desktop/scripts/source-desktop-launch.mjs",
"apps/desktop/scripts/source-desktop-launch.test.mjs",
"apps/desktop/scripts/start-electron.mjs",
"apps/desktop/src/backendShutdown.ts",
"apps/desktop/src/browserAnnotations/guestPreload.ts",
"apps/desktop/src/browserAutomation/cdpRuntime.ts",
"apps/desktop/src/browserAutomation/webMcp.ts",
"apps/desktop/src/browserAutomation/webMcp.test.ts",
"apps/desktop/src/browserSessionPolicy.ts",
"apps/desktop/src/browserSessionPolicy.test.ts",
"apps/desktop/src/browserWebMcp/guestBridge.ts",
"apps/desktop/src/browserWebMcp/guestBridge.test.ts",
"apps/desktop/src/desktopUserDataProfile.ts",
"apps/desktop/src/desktopUserDataProfile.test.ts",
"apps/desktop/src/ownedChildProcess.ts",
"apps/desktop/src/ownedChildProcess.test.ts",
"apps/desktop/src/voiceTranscription.ts",
"apps/server/src/agent/Layers/OmniMindAgentPromptFiles.ts",
"apps/server/src/agent/Layers/OmniMindAgentPromptFiles.integration.test.ts",
"apps/server/src/agent/Layers/PiAgentRuntime.ts",
"apps/server/src/agent/Layers/PiAgentRuntime.modelSelection.test.ts",
"apps/server/src/agent/Layers/PiAgentRuntime.tokenUsage.test.ts",
"apps/server/src/agent/Services/OmniMindAgentPromptFiles.ts",
"apps/server/src/agent/goalMode.ts",
"apps/server/src/agent/interactionMode.ts",
"apps/server/src/agent/omnimindPromptPolicyExtension.ts",
"apps/server/src/agent/omnimindPromptPolicyExtension.test.ts",
"apps/server/src/agent/omnimindSessionExtensions.ts",
"apps/server/src/agent/piAiCrossModelThinkingPatch.integration.test.ts",
"apps/server/src/agent/piBarrierPatch.test.ts",
"apps/server/src/agent/piOwnerLocalDynamicToolWire.test.ts",
"apps/server/src/persistence/Layers/Sqlite.ts",
"apps/server/src/persistence/Schema.ts",
"apps/server/src/persistence/Schema.integration.test.ts",
"apps/server/src/persistence/sqliteMemoryBudget.ts",
"apps/server/src/persistence/sqliteMemoryBudget.test.ts",
"apps/server/src/platform/processTreeController.ts",
"apps/server/src/platform/processTreeController.test.ts",
"apps/server/src/platform/windowsProcessSnapshot.ts",
"apps/server/src/processRunner.ts",
"apps/server/src/processRunner.integration.test.ts",
"apps/server/src/profileStats.ts",
"apps/server/src/profileStats.integration.test.ts",
"apps/server/src/profileStatsArchive.ts",
"apps/server/src/profileStatsArchive.test.ts",
"apps/server/src/serverSettings.ts",
"apps/server/src/terminal/Layers/Manager.ts",
"apps/server/src/terminal/Layers/Manager.integration.test.ts",
"apps/server/src/terminal/processTreeKiller.ts",
"apps/server/src/terminal/processTreeKiller.test.ts",
"apps/server/src/terminal/subprocessActivity.ts",
"apps/server/src/terminal/subprocessActivity.test.ts",
"apps/server/src/terminal/windowsProcessSnapshot.test.ts",
"apps/web/index.html",
"apps/web/package.json",
"apps/web/src/components/FileDiffSharedHeader.browser.tsx",
"apps/web/src/components/ModelServiceIcon.test.tsx",
"apps/web/src/components/SettingsSidebarNav.test.tsx",
"apps/web/src/components/Sidebar.tsx",
"apps/web/src/components/chat/ContextWindowMeter.tsx",
"apps/web/src/components/chat/RightDock.tsx",
"apps/web/src/components/chat/RightDockMotion.geometry.browser.tsx",
"apps/web/src/components/chat/ThreadFindBar.tsx",
"apps/web/src/components/chat/ThreadFindBar.browser.tsx",
"apps/web/src/components/chat/ThreadFindHighlights.tsx",
"apps/web/src/components/chat/ThreadFindHighlights.browser.tsx",
"apps/web/src/components/chat/TurnChangedFilesEvidence.browser.tsx",
"apps/web/src/components/chat/threadFind.logic.ts",
"apps/web/src/components/chat/threadFind.logic.test.ts",
"apps/web/src/components/chat/useDockPaneRuntimeActivation.browser.tsx",
"apps/web/src/components/profile/profileSelectors.test.ts",
"apps/web/src/components/settings/ProfileSettingsPanel.tsx",
"apps/web/src/components/settings/PromptsSettingsPanel.tsx",
"apps/web/src/components/settings/PromptsSettingsPanel.browser.tsx",
"apps/web/src/components/ui/sidebar.tsx",
"apps/web/src/components/ui/sidebar.browser.tsx",
"apps/web/src/hooks/useDockPaneRuntimeActivation.ts",
"apps/web/src/i18n/messages/settings-capabilities.ts",
"apps/web/src/i18n/messages/settings-profile-usage.ts",
"apps/web/src/i18n/messages/shell.ts",
"apps/web/src/index.css",
"apps/web/src/lib/contextWindow.ts",
"apps/web/src/lib/contextWindow.test.ts",
"apps/web/src/localPreferences.ts",
"apps/web/src/rightDockStore.test.ts",
"apps/web/src/routes/_chat.tsx",
"apps/web/src/settingsMetadata/promptSettings.ts",
"apps/web/src/settingsSearchMetadata.ts",
"apps/web/src/sidebarNavOrdering.ts",
"apps/web/src/sidebarNavOrdering.test.ts",
"apps/web/src/wsNativeApi.test.ts",
"apps/web/vite.config.ts",
"packages/contracts/src/agentRuntimeEvents.ts",
"packages/contracts/src/agentRuntimeEvents.test.ts",
"packages/contracts/src/browserAutomationErrors.ts",
"packages/contracts/src/browserAutomationIds.ts",
"packages/contracts/src/browserAutomationJson.ts",
"packages/contracts/src/browserAutomationToolCatalogue.ts",
"packages/contracts/src/browserAutomationToolInputs.ts",
"packages/contracts/src/browserAutomationToolOutputs.ts",
"packages/contracts/src/browserAutomationTools.test.ts",
"packages/contracts/src/omnimindAgentPrompts.ts",
"packages/contracts/src/omnimindAgentPrompts.test.ts",
"packages/contracts/src/settings.ts",
"packages/contracts/src/settings.test.ts",
"packages/contracts/src/stats.ts",
"packages/shared/src/browserAutomationCatalogue.ts",
"packages/shared/src/browserAutomationCatalogue.test.ts",
"packages/shared/src/browserAutomationPresentation.ts",
"packages/shared/src/desktopIdentity.ts",
"packages/shared/src/desktopIdentity.test.ts",
"packages/shared/src/windowsProcess.ts",
"packages/shared/src/windowsProcess.test.ts",
"scripts/dev-runner.ts",
"scripts/dev-runner.test.ts",
"scripts/lib/release-workspace-manifests.ts",
"scripts/vendor-omnimind-pi-runtime.mjs",
"scripts/vendor-omnimind-pi-runtime.test.mjs"
],
"rights": "The maintainer confirmed that the reviewed commits were authored by liuzaoqu and authorized their complete adaptation into Haros. This record adopts only the fixed source revision's reviewed mechanisms and tests; private records, credentials, endpoints, user data, raw service responses, OmniMind product identity and release identity are excluded.",
"mode": "adapt",
"changes": "Haros translates OmniMind's immutable Chat/Agent session-admission mechanism into one three-way EngineSessionAdmission owned by existing Haros contracts and Product Project truth. Agent, Chat and Studio remain distinct Product surfaces; Studio intentionally uses chat work authority. The admission is persisted as a first-class Engine binding field through Haros migration 002, old mixed or orphaned bindings fail visible recovery instead of receiving fabricated continuation, and no optional-field inference, compatibility read or second registry remains. OmniMind's terminal Agent-delivery mechanism is translated into Haros's existing multi-Engine durable delivery owner: every terminal turn-start state must surface one deterministic Product activity correlated to the original message, Engine, nullable native runtime generation and delivery sequence before cursor advancement; exact Session CAS cannot overwrite a newer running Turn; startup scans every blocker without treating it as successful or silently resending the failed message; existing Queue, edit/resend and Goal continuation owners remain intact. Recovery actions and notices use Haros's existing Web surfaces with English and Simplified Chinese copy, not a donor UI or second blocker state. OmniMind's canonical Ask User lifecycle is translated into the existing projection_pending_interactions owner through Haros migration 003: a bounded CanonicalUserInputDraftV1 and monotonic revision are updated by a narrow non-event RPC only while the exact user-input lifecycle is pending; response claim and thread deletion clear the draft in the same persistence owner. The focused Composer alone writes after a 250 ms debounce and synchronously flushes before blur, pane/page loss and submit; stale acknowledgements never replace newer local state. Raw strings and selection facts round-trip without recommendation preselection or ordinary-message fallback, while the earliest malformed request remains visibly cancellable. Draft bodies never enter orchestration events, logs, metrics or a second store. OmniMind's Curator presentation generations, acknowledged reveal/release, replay fencing and user-takeover semantics are generalized inside Haros's existing Desktop Browser owner as Engine Web Surface leases. Haros retains its stricter internal-only tab and credential-blind presentation-context boundaries; one Thread generation may own concurrent exact surfaces, while Renderer projections remain transient and can only acknowledge Desktop facts. Product deletion first seals Desktop replay and destroys native Browser ownership, then clears Dock/Split/route projections; cleanup failure is diagnostic-only and never rolls back the authoritative delete. Curator continues through the existing OA Web Access seam with strict loopback URL parsing, explicit review approval and truthful stop/duration projection. Timeline adoption is translated into one EngineToolActionKind contract emitted by adapters from native structured tool identities and recovered for old events only from persisted item/request facts, one redacted 24 KiB durable ToolResultSnapshotV1, and an optional adapter full-read seam that never starts a Session or creates a permanent raw-result store. Command content keeps native text/image order with stdout and stderr remaining explicit facts. Checkpoint cumulative diff is the sole changed-file authority; FileDiffView/Header own disclosure, copy and scrolling, and per-file copy exists only for exact parser-to-patch identity. Passive transcript clicks and selection retain tail following; only wheel or touch-move take viewport control. Send to Agent remains Haros's existing copy workflow and states its non-continuation boundary in English and Simplified Chinese. Deterministic Desktop packaging remains Haros's unsigned artifact owner: it exact-matches apps/desktop Electron metadata to the installed package and official checksum manifest, acquires only checksum-verified official archives through one Haros build cache with proxy-source-only diagnostics, cross-process locks and hard timeouts, and stages copies so downstream tools cannot mutate cache truth. AppSnap cache identity includes source/script, requested architecture, optimization/release mode, target/deployment target, framework set, Swift path/version, Xcode path/version, SDK path/version and ad-hoc signing mode; cache publication is locked and atomic, and every reuse rechecks codesign plus exact lipo architectures. Target validation requires exactly one .dmg, .AppImage, .exe or macOS .app as appropriate; metadata, blockmaps and builder diagnostics cannot satisfy success. --local-app is a replaceable unsigned macOS dir convenience only, while explicit output directories and candidate outputs stay immutable. No signing, notarization, publication, updater feed, donor release identity or release credential path is adopted. No Curator registry, Renderer presentation database, Server presentation state machine, dual Browser owner, deleted-thread replay compatibility path, UI tool-name/text heuristic, result database, tool-result diff truth, duplicate diff surface or OmniMind product identity is retained. Focused acceptance covers timeout, uncertain, dead retry exhaustion, activity-write failure before cursor, startup restoration, late newer-Turn ownership, unrelated-thread progress, editable error phase, localized unblock outcomes, catalog parity, migration/restart/draft CAS/size/cleanup/concurrency, malformed-request cancellation, concurrent surfaces, exact-generation takeover, hydration/terminal races, release replay, local/remote deletion cleanup, UTF-8 snapshot bounds, mixed result ordering, explicit unavailable full reads, checkpoint copy identity, transcript anchoring, proxy priority, universal Electron acquisition, corrupted checksum/cache refusal, native toolchain fingerprint drift, cache locking, primary artifact identity and local-app authority. Deletion boundary: no second delivery store, retry scheduler, Session state machine, permanent failure payload, Ask event history, presentation persistence, compatibility read, durable raw tool-result store, signing/notarization/release owner or updater authority is retained; failed messages are never auto-replayed, resolved drafts are not recoverable and deleted surfaces cannot be revived.",
"latestCut": {
"range": "b5a966bb9de09861c98a1d7ac3936b092614fed3..30a79b2e5845c1ae9899d6508d60e66b63ee4fd1",
"adoptedMechanisms": "The latest cut adds exact per-file diff parsing/copy evidence, Pi 0.84.4 lifecycle and cross-model private-thinking isolation, source Desktop profile isolation, bounded SQLite memory tuning, transcript-wide Thread Find, configurable Agent navigation ordering, two-stage Sidebar drag dismissal with focus recovery, bounded page-declared WebMCP execution, one turn-scoped Prompt policy and Personal Strategy owner, four-bucket cache telemetry, centralized process-tree teardown, and generation-safe Right Dock activation.",
"harosDifferences": "All mechanisms stay behind Haros ProductSurface, ENGINE_DESCRIPTORS, Engine adapters, HostGateway, Desktop Browser, Timeline/Diff, Settings and migration owners. Prompt vNext retires the former engines.oa.defaultPrompt setting instead of dual-reading it; Personal Strategy is the sole editable prompt surface. WebMCP accepts only bounded JSON contracts and the exact active Desktop page generation, never ambient renderer authority. Process teardown is consolidated under apps/server/src/platform instead of retaining terminal-specific parallel implementations. Cache writes are a separate token fact rather than being relabeled as uncached input. Haros retains Kilo, Agent/Chat/Studio separation and its existing product identity.",
"tests": "Focused contract, migration, Server adapter/prompt/token/process, Desktop source-profile/WebMCP/session-policy, Web Thread Find/Sidebar/Right Dock/Diff, browser interaction and Pi archive reproduction tests are required, followed by repository format, lint, typecheck, unit, integration, stable-browser, Desktop smoke, legal metadata and source-adoption gates.",
"deletionBoundary": "The superseded 0.84.3 archive and three dependency patches are deleted. The old OA defaultPrompt contract, mutator, runtime read and duplicate prompt UI are deleted. Terminal-local process-tree and Windows snapshot owners are deleted after their authority moves to the platform owner. No persistent WebMCP registry, raw page payload store, second Prompt composer, second Sidebar order, second token total, compatibility dual-read, donor identity, signing, notarization, publication or updater authority is retained."
},
"updatePolicy": "Pinned to the exact reviewed revision. Every absorption cut updates this same record before donor code or mechanisms enter, naming only actual source and target paths plus Haros differences, tests and deletion boundaries. Re-review is required for revision, rights, ownership, compatibility, persistence, release or shipped-byte changes; obsolete adopted seams are deleted rather than retained as compatibility layers."
},
{
"id": "device-helper-hid-reference",
"url": "https://github.com/facebook/idb.git",
"revision": "dd0cb550510331f2d11e9130cb003d2425688e28",
"paths": [
"apps/server/native/device-helper/Sources/HIDBridge.h",
"apps/server/native/device-helper/Sources/HIDBridge.m"
],
"sourcePaths": [
"PrivateHeaders/SimulatorApp/Indigo.h",
"FBSimulatorControl/HID/FBSimulatorIndigoHID.swift"
],
"rights": "The selected HID message layout and delivery mechanism are adapted from facebook/idb under its retained MIT license. No idb binary, service, product identity or unrelated source is adopted.",
"mode": "adapt",
"changes": "Namespaced Objective-C bridge for Haros's locally built iOS Simulator helper; packaged artifacts must retain the exact license notice.",
"updatePolicy": "Pinned revision; re-review private API compatibility and rights before changing the reference revision.",
"licenseFiles": ["apps/server/native/device-helper/LICENSE.facebook-idb"]
},
{
"id": "bundled-oa-runtime",
"url": "https://github.com/earendil-works/pi.git",
"revision": "b8b873b9872db04a938fb4357b5e8e824ddc051c",
"npmArtifactGitHead": "b79e4cc834970cca69daebffab7df1da7d1e52c4",
"paths": [
"vendor/oa-runtime-0.84.4.tgz",
"patches/pi-coding-agent/0.84.4-model-config-reader.patch",
"patches/@earendil-works%2Fpi-coding-agent@0.84.4.patch",
"scripts/vendor-oa-runtime.mjs"
],
"sourcePaths": ["packages/coding-agent", "scripts/build-coding-agent-bundle.mjs"],
"archiveSha256": "3552baed000c1f30c6675ca7f2830e44c56eed6ddf03df09a123a14428001186",
"upstreamPackage": "@earendil-works/pi-coding-agent@0.84.4",
"upstreamPackageIntegrity": "sha512-jmOlrqUmvhh/siNWFRXjYLJzhKFIHNsAQaysRwzQPQFnPAaV/vhqHsLH/MBsIISA1Rjj7WTUFR3nJrpXoLx39w==",
"generation": {
"sharedRuntimeBytes": "patched",
"factoryDefaultSeam": "The product runtime exports its stable identity-neutral default instruction segment and accepts one caller-supplied replacement as an input to the same native builder. Dynamic tools, guidelines, context, Skills, cwd, manual SYSTEM replacement and Extension mutation remain native; no second composer or Prompt registry is introduced.",
"patchPath": "patches/pi-coding-agent/0.84.4-model-config-reader.patch",
"patchSha256": "414962fee6a6021cc43154a42ed279facc367299524b63f856ef7a03ed1bb3b8",
"bundleDependencyResolution": "The product source keeps jsonc-parser's package-root import so unbundled Node execution uses the package's supported CommonJS entry. Only the upstream esbuild bundle resolves that exact import to the package's ESM build, preventing an external runtime stub without changing parser behavior or globally changing package resolution.",
"stockPatchPath": "patches/@earendil-works%2Fpi-coding-agent@0.84.4.patch",
"stockPatchSha256": "330b06f6fe4474953102ada8eb4e8326067c05108a9795625e5d399d05ea6a45",
"generatorPath": "scripts/vendor-oa-runtime.mjs",
"behavioralDifferences": [
"package identity",
"piConfig.configDir",
"identity-neutral default system prompt without unshipped docs navigation",
"bounded project context root or global-only context projection",
"host-owned immutable engine contract appended after extension turn mutation",
"injectable models.json content reader",
"accepted model-config provider provenance",
"credential-blind model-config projection",
"typed persistent model-config provider mutation with retained-model merge, preview and safe credential-reference intent",
"typed credential-blind model cost and tier editing",
"typed nested editing for a closed protocol-specific compat subset",
"write-only environment header-reference set/clear with value-blind metadata",
"explicit generic model discovery through the configured Pi protocol and credential",
"typed prompt outcomes for handled extension commands and input hooks, including current-session Agent work started through sendUserMessage or sendMessage triggerTurn",
"explicit reader-mode models store path remains file-backed",
"request-scoped missing-package policy for resource loading",
"intent-scoped package resource listing and filtering",
"credential-blind public npm package identities and actions"
],
"archiveDisposition": "The OA archive is rebuilt from exact Pi 0.84.4 source with one committed product patch, retains the upstream LICENSE, removes standalone CLI entrypoint exposure, omits development/public documentation and example payloads, and exact-pins the Pi-family dependency closure. Its default prompt base is identity-neutral and contains no navigation to omitted docs/examples; OA identity remains in a separate immutable Engine contract that is normalized and appended exactly once after Extension turn mutation, while general Host/tool guidance stays in the mutable native append lifecycle. ResourceLoader remains the sole context owner while accepting either a canonical Project root boundary for an admitted Agent Session or global-only mode for Chat and passive discovery. Passive discovery never obtains Project trust or executes Project Extension factories. Stock Pi receives only the compiled typed prompt-outcome behavior through the separately hashed Bun patch; its package identity, default prompt, config, state and catalog remain stock. The product patch adds no registry, trust store, Prompt store or second persisted configuration."
},
"rights": "The fixed Pi coding-agent source and generated runtime are MIT-licensed. The shipped archive retains its upstream LICENSE.",
"mode": "adapt",
"changes": "The OA physical module is generated from packages/coding-agent at the fixed revision. It preserves Pi's native runtime, ResourceLoader, SettingsManager, PackageManager and Extension lifecycle behind narrow Haros projections. Its package identity is @harnessos/oa-runtime and piConfig routes OA private state to .harnessos with Engine identity oa. Stock Pi keeps its upstream package identity, prompts, config, state and ecosystem. Packaging removes the standalone pi bin and development-only scripts/dependencies, omits unshipped docs/examples, and exact-pins the Pi-family dependency closure.",
"updatePolicy": "Pinned revision, upstream npm integrity, exact product-source and stock dependency patch digests, and product archive SHA-256. Reproduction runs `node scripts/vendor-oa-runtime.mjs --source <clean-exact-pi-checkout>`: before any source build the generator verifies both committed patch identities, rejects the wrong or dirty revision, applies the sole product source patch with a conflict check, restores pinned generated model data, builds and runs focused Pi reader/mutation/runtime tests with network discovery disabled, applies the recorded identity/configDir/archive closure, verifies deterministic packing and cleans its temporary tree. Bun applies the separately hashed stock dependency patch or fails on conflict. On every Pi intake, first remove the patches if upstream exposes equivalent safe reader/provenance/persistent-mutation/store/prompt-outcome APIs; otherwise update the affected patch, its digest owner and this adoption record together, and stop loudly on any digest drift or conflict. Pi post-tag code is excluded until separately adopted. Any source, version, generation rule, dependency closure, archive digest, rights or license change requires explicit source intake and affected runtime/ecosystem revalidation before replacement."
},
{
"id": "pi-ai-oauth-page-renderer",
"url": "https://github.com/earendil-works/pi.git",
"revision": "b8b873b9872db04a938fb4357b5e8e824ddc051c",
"npmArtifactGitHead": "b79e4cc834970cca69daebffab7df1da7d1e52c4",
"paths": ["patches/@earendil-works%2Fpi-ai@0.84.4.patch", "package.json", "bun.lock"],
"sourcePaths": [
"packages/ai/src/auth/types.ts",
"packages/ai/src/auth/oauth/oauth-page.ts",
"packages/ai/src/auth/oauth/openai-codex.ts",
"packages/ai/src/auth/oauth/anthropic.ts",
"packages/ai/src/auth/oauth/openrouter.ts",
"packages/ai/src/auth/oauth/radius.ts"
],
"upstreamPackage": "@earendil-works/pi-ai@0.84.4",
"upstreamPackageIntegrity": "sha512-AClAZxf5+c4RRu44NJPS6wyQy+Nmq+Mzyyrdvm4ZVMNuixelO02RZX4G4Aq1F145Yzp43wnM5S+hLlSI7ypfVw==",
"patchSha256": "ff84239657d981d0ac50687c13dfe66e8612acb98b329c7221f6e473aefe260c",
"rights": "The fixed Pi AI source and patched dependency remain MIT-licensed under the retained Pi redistribution text. No OAuth protocol, credential store or Provider identity is adopted as Haros product authority.",
"mode": "adapt",
"changes": "A per-login optional AuthInteraction renderer may replace only the browser loopback completion/error HTML. It receives only the safe authorization-received/error state, never Provider messages, diagnostics, codes or token-exchange results. OpenAI Codex, Anthropic, OpenRouter and Radius pass the same request-scoped renderer through their existing callback servers; absent or failing renderers retain the stock Pi page. Provider authorization, state validation, token exchange, cancellation and device-code flows remain unchanged.",
"updatePolicy": "Pinned package integrity plus Bun patchedDependencies. Every install applies the committed patch or fails on conflict; remove it when upstream exposes an equivalent request-scoped renderer. A Pi update must re-check all four browser callback providers and prove the stock default and device-code paths remain unchanged before changing the pinned package or patch. The current provider-default automation is valid only because each OAuth select prompt it can consume in pinned Pi 0.84.4 marks its first option as default/recommended; source intake must re-prove that property or fail closed to an explicit user choice rather than treating array order as a permanent API."
},
{
"id": "noun-project-converge-interaction-mode-icon",
"url": "https://thenounproject.com/icon/converge-3918477/",
"revision": "noun-project-icon-3918477",
"paths": [
"apps/web/public/central-icons-reversed/converge.svg",
"apps/web/src/lib/icons.tsx"
],
"sourcePaths": ["noun-converge-3918477.svg"],
"sourceSha256": "eebf4a928d2d943ecd2236fda74d57b9af4f3e193206e21d8be83f6b2057579d",
"rights": "The maintainer supplied this Noun Project icon by Adrien Coquet and confirmed a valid royalty-free, attribution-free license for Haros adaptation and redistribution. Purchase records and personal license material remain private and are not committed.",
"mode": "copied-adapted",
"changes": "The selected three-way converge silhouette is redrawn as one 24px Central-style outline asset with currentColor, 1.5px rounded strokes and no original filled paths. It is presentation-only and does not own interaction-mode behavior or capability.",
"updatePolicy": "Pinned to Noun Project icon 3918477 and the recorded source digest. Any geometry, source, author or rights change requires maintainer confirmation plus small-size, light/dark and Composer-menu visual revalidation."
},
{
"id": "noun-project-learn-interaction-mode-icon",
"url": "https://thenounproject.com/icon/education-8386792/",
"revision": "noun-project-icon-8386792",
"paths": ["apps/web/public/central-icons-reversed/learn.svg", "apps/web/src/lib/icons.tsx"],
"sourcePaths": ["noun-education-8386792.svg"],
"sourceSha256": "d388f71e3b27db29988a73999dff99477c92ba084a265dade5d101885677dd68",
"rights": "The maintainer supplied this Noun Project icon by Studio Danro and confirmed a valid royalty-free, attribution-free license for Haros adaptation and redistribution. Purchase records and personal license material remain private and are not committed.",
"mode": "copied-adapted",
"changes": "The selected education-cap silhouette is redrawn as one 24px Central-style outline asset with currentColor, 1.5px rounded strokes and no original filled paths. It is presentation-only and does not own learning behavior or capability.",
"updatePolicy": "Pinned to Noun Project icon 8386792 and the recorded source digest. Any geometry, source, author or rights change requires maintainer confirmation plus small-size, light/dark and Composer-menu visual revalidation."
},
{
"id": "thinking-orbs-composing-20px",
"url": "https://github.com/Jakubantalik/thinking-orbs.git",
"revision": "bd204b73c9b6660fad7210b1ad48d9dc2adbb89d",
"paths": [
"apps/web/src/components/chat/ComposingOrb.tsx",
"apps/web/src/components/chat/composingOrbPainter.ts",
"apps/web/src/components/chat/composingOrbPainter.test.ts",
"apps/web/src/components/chat/ThinkingStatus.browser.tsx"
],
"sourcePaths": [
"src/ThinkingOrb.tsx",
"src/theme.ts",
"src/presets.ts",
"src/engine/core.ts",
"src/engine/profiles.ts",
"src/engine/ribbon.ts"
],
"upstreamPackage": "thinking-orbs@0.3.1",
"upstreamPackageIntegrity": "sha512-3BG1aeB1RUTxItCml/BBuIz5JRM4kZqGuyx+vouv0fXTtcR9ZNoKjWGneHPx94y74GxgArwJZ1qbJR5dt54kSw==",
"upstreamTarballSha256": "f561ab192d0f80a367c2cf56d9fd409f3dc0570521c08300c3bbf232ede79296",
"rights": "The fixed source is MIT-licensed under the retained exact legal text. Adoption is limited to the Composing/Ribbon 20px painter and the runtime guards needed by Haros's single live-status consumer; no package binary or unrelated state is shipped.",
"mode": "copied-adapted",
"changes": "The official Composing 20px preset is resolved to one fixed local painter with the exact 208-mark geometry, projection, depth ink, dot sizing and speed. A product-local canvas wrapper retains DPR cap 2, requestAnimationFrame, offscreen and hidden-document pause, reduced-motion static frame and the existing Haros theme authority. The other eight states, 64px presets, registries, generic React API, package dependency and unused configuration were deliberately removed. Fixed geometry and Chromium pixel baselines prevent drift.",
"updatePolicy": "Pinned package version, Git revision, npm integrity and tarball SHA-256. Do not tune or rewrite the painter from memory. Any source, preset, rights or lifecycle change requires exact upstream comparison plus affected geometry, pixel, theme, visibility and reduced-motion revalidation before replacement."
},
{
"id": "bitfun-thinking-hints-motion",
"url": "https://github.com/GCWing/BitFun.git",
"revision": "f9aebc102b21d6d4ac3ffd4088defebf7f4baff1",
"catalogReferenceRevision": "142d7e38729b3d646ae305c162e6848d0d44fff9",
"paths": [
"apps/web/src/components/chat/ThinkingStatus.tsx",
"apps/web/src/components/chat/ThinkingStatus.browser.tsx",
"apps/web/src/i18n/thinking-hints.en-US.json",
"apps/web/src/i18n/thinking-hints.zh-CN.json",
"apps/web/src/i18n/thinkingHints.ts",
"apps/web/src/index.css"
],
"sourcePaths": [
"src/web-ui/src/flow_chat/components/modern/ProcessingIndicator.tsx",
"src/web-ui/src/flow_chat/components/modern/ProcessingIndicator.scss",
"src/web-ui/src/locales/en-US/flow-chat/processing-hints.json",
"src/web-ui/src/locales/zh-CN/flow-chat/processing-hints.json"
],
"catalogInputSha256": {
"en-US": "54faf3727ef54e1d3a4dea4e3ef1002cfb596a28683ae73d319701476dd598b3",
"zh-CN": "f5249bbd0b49f20c038a0be2d4839ed18c8c96aa48cd139bf99d201c4b9d1135"
},
"rights": "The selected historical motion and upstream catalog lineage are MIT-licensed under the retained BitFun legal text. The maintainer supplied and approved the final index-aligned 338-item Chinese and English catalog inputs for Haros.",
"mode": "copied-adapted",
"changes": "Haros retains the reviewed 400ms -4px entry, 1.6s opacity 1-to-.25 breathe and five-second keyed replacement. The initial hint is randomized, later hints advance without changing on ordinary renders, trailing static ellipses are replaced by the approved three-dot symmetric tide, and reduced-motion freezes all decorative motion. The presentation stays inside Haros's existing transient Timeline row; it creates no runtime-status store, transcript item, reasoning claim or progress authority. The original one-second blank delay and BitFun dot-matrix icon are not adopted because Haros preserves immediate feedback with its selected Composing orb.",
"updatePolicy": "Pinned historical motion revision, catalog reference revision, exact catalog-input digests and retained legal text. Catalog edits must preserve bilingual count/index parity and uniqueness; motion edits require focused Timeline, reduced-motion, truncation, stream/scroll and pixel review."
},
{
"id": "bundled-oa-web-access",
"url": "https://github.com/nicobailon/pi-web-access.git",
"revision": "08e347f4fe6bea807882c2363527118cce6eb539",
"paths": [
"packages/oa-web-access",
"packages/contracts/src/oaWebSearch.ts",
"apps/server/src/engineWebSurface",
"apps/server/src/browserAutomation",
"apps/server/src/engine/Layers/OAWebSearchSettings.ts",
"apps/server/src/engine/Services/OAWebSearchSettings.ts",
"apps/desktop/src/browserManager.ts",
"apps/web/src/components/settings/WebSearchSettingsPanel.tsx",
"apps/web/src/components/chat/MessagesTimeline.tsx",
"apps/web/src/components/chat/TimelineWorkEntryRow.tsx",
"scripts/lib/packaged-workspace-manifests.ts"
],
"sourcePaths": ["."],
"upstreamPackage": "pi-web-access@0.25.0",
"upstreamPackageIntegrity": "sha512-DYOEIMEPwpC6pHElexBy3XuaYPnfMxH0ZBaGrILFsLNQzhhHJ3kJLrCQU4fnKXYXV6OEwxsLt2pBP76koK4hHg==",
"upstreamTarballSha256": "06b3cb2b9d3118f66cd2fe84e5453dc0a8b8feaf099ae05e543ff9ebe80ae103",
"rights": "The fixed pi-web-access source is MIT-licensed under the retained exact legal text by Nico Bailon. Haros keeps the upstream LICENSE, provenance and author tests. Of the 27 runtime Provider identities, the pre-existing 26 identities retain 25 exact-pinned local original-color identifying assets with recorded source, SHA-256 and known license or trademark disposition; the new Kimi identity uses the neutral provider fallback until a separate asset admission decision exists. Those marks identify their respective services and do not assert ownership, partnership or endorsement. Runtime routing never depends on asset admission.",
"mode": "fork-narrowly",
"changes": "The complete mature upstream 0.25.0 source remains one private workspace package for the bundled OA. The adopted stable release retains Codex-aware current-model Hosted Search, explicit proxy transport, Kimi explicit-only search, Gemini ADC and browser-profile selection, GitHub PR/issue retrieval, Defuddle extraction fallback, and get_search_content bridge/error fixes through the existing seams. Haros adds only the six bounded seams for per-Session and per-call lifecycle isolation, one package-owned canonical config service, the OA runtime profile, typed bilingual observer/review presentation, route evidence to the Pi active set, and honest Unicode source_check evidence semantics. The config owner pins directory and file identity, reads through the verified descriptor, enforces a 1 MiB fail-closed limit and preserves rejected bytes; GitHub subprocesses receive a positive environment allowlist instead of ambient Provider secrets. source_check propagates cancellation without storing partial artifacts and reports the same route success/failure evidence as web_search. Inside the existing runtime-profile and presentation seams, `broad` adds bounded multi-source coverage between first-success `auto` and full-fanout `all`; query scheduling caps combined fan-out without adding a scheduler service. One package-local result projector now owns stable source ordering, de-duplication, complete Agent source directories, summary inputs, and stored-query reads while the existing Artifact remains the only stored result. The OA profile defaults to auto-summary with process display off while retaining raw results, responseId, storedResults and continuation; an open observer receives the already-returned summary as a read-only inline tail, while explicit review preserves generation, editing, regeneration, preview and approval in the adopted upstream document flow. Renderer-owned locale/theme context crosses Desktop and Browser Automation as one bounded typed snapshot and fails closed when malformed; Timeline projects readable product labels plus allowlisted Web Access input, output and source detail without exposing arbitrary third-party arguments. Settings consumes the same config and credential-blind Provider projections. It is not a Host capability, HostGateway backend, npm release or stock Pi compatibility profile.",
"updatePolicy": "Pinned to the exact current stable release and commit; maintainer-triggered updates intake the newest stable release, never unpublished main, and do not create a second fork repository. Every update restarts at docs/source-intake.md, re-runs the source-intake gate, preserves the upstream structure and author tests, regenerates the auditable upstream/P1-P6 diff inventory, and jointly revalidates Provider routing and projection, Curator protocol, config schema, source_check, proxy transport, rights, asset admission, typed presentation-context round trips, Timeline label/detail/causal-order contracts, focused Haros journeys and packaged closure. Remove the narrow fork when a lower-maintenance equivalent Pi ecosystem capability proves equal or better."
},
{
"id": "bundled-oa-ask-user",
"url": "https://github.com/mrclrchtr/supi.git",
"revision": "ce8af5f57304ad114319aa75c00920f029ceb8e7",
"paths": [
"packages/oa-ask",
"apps/server/src/engine/askUserHostBridge.ts",
"apps/server/src/engine/oaAskUserExtension.ts",
"apps/server/src/engine/userInputPresenterRegistry.ts",
"apps/server/src/engine/Layers/PiAdapter.ts",
"packages/contracts/src/orchestration.ts",
"packages/contracts/src/rpc.ts",
"apps/web/src/components/chat/ComposerPendingUserInputPanel.tsx"
],
"sourcePaths": ["packages/supi-ask-user"],
"upstreamPackage": "@mrclrchtr/supi-ask-user@5.0.0",
"upstreamPackageIntegrity": "sha512-uBlvlXTvSrdvTvvdbpapwVwA4I3DMcIaHSGe18mtd4KdWAhd36yY1UwGvAbFXcS2NvJ18VIkaJpi112CSoabJQ==",
"upstreamTarballSha256": "d687d4d448cc115a67ceb473b8e9ceeb56dddb047901b1f2daa05d6ae0cb300e",
"rights": "The fixed supi-ask-user source is MIT-licensed by Marcel Richter under the exact legal text retained in packages/oa-ask/LICENSE. The npm artifact omitted LICENSE/NOTICE; Haros distributes only the reviewed source fork with retained ancestry and changes, not the upstream package artifact, TUI, branding or supi-core bundle.",
"mode": "fork-subtractively",
"changes": "Haros retains the stable question and option identities, choice/text domain, controller, lease and structured-result lineage while deleting the upstream TUI, transcript, supi-core, configuration, events, timers, terminal/session helpers, recommendation preselection, trimming and product caps. The private Host-neutral fork supplies the single ask_user definition and deterministic structured result. Haros's canonical contract, Composer Question UI, presenter lease, value-label bridge, terminal settlement, restart fencing and provenance remain product-owned. Registration is limited to bundled OA Sessions with a compatible presenter and exactly one bundled same-name provenance; stock Pi, HostGateway and third-party Extensions receive no Product Ask authority.",
"updatePolicy": "Pinned exact version, commit, npm integrity and tarball digest; no latest tracking or direct install. Every update starts at docs/source-intake.md, re-runs the retained upstream baseline, replays P1-P7, preserves the author-test disposition and removes the fork if a lower-maintenance mature runtime proves equal. TUI, supi-core, second config/lifecycle owners, arbitrary caps, trim, preselection, ordinary-text fallback and fake restart recovery remain rejected.",
"licenseFiles": ["packages/oa-ask/LICENSE"]
},
{
"id": "pi-agent-core-interactive-barrier",
"url": "https://github.com/earendil-works/pi.git",
"revision": "b8b873b9872db04a938fb4357b5e8e824ddc051c",
"npmArtifactGitHead": "b79e4cc834970cca69daebffab7df1da7d1e52c4",
"paths": [
"patches/@earendil-works%2Fpi-agent-core@0.84.4.patch",
"package.json",
"bun.lock",
"apps/server/src/engine/piBarrierPatch.test.ts"
],
"upstreamPackage": "@earendil-works/pi-agent-core@0.84.4",
"patchSha256": "711152d85a45bd4eb543e711c525191a2f3bf2d289b0c96e0c5c8cabc94a7846",
"rights": "The fixed Pi agent-core source and patched dependency remain MIT-licensed under the retained Pi redistribution text.",
"mode": "adapt",
"changes": "Adds one default-inert executionMode named barrier. Before any sibling argument preparation, hook or execute, the batch runs only the source-order first barrier and emits structured blocked results for every sibling. An answered barrier continues with a fresh model request; terminal or failed barriers stop the loop. No stock Tool selects barrier, and batches without one retain the upstream parallel/sequential path.",
"updatePolicy": "Bun applies the exact patch or fails on conflict. On every Pi intake, first delete it if upstream provides equivalent preflight barrier semantics. Otherwise re-prove sibling prepare/before/execute are zero on both sides of the barrier, multiple-barrier behavior, answered replan, terminal no-continuation and unchanged stock batches. Stop if maintenance would require an ask_user name special-case, duplicated scheduler or agent-loop rewrite."
},
{
"id": "percho-startup-splash",
"url": "https://github.com/Jaxton07/percho.git",
"revision": "575216c2690c7e2b30d9ad10b773f424b469c163",
"paths": [
"apps/web/src/startup/startupSplashDom.ts",
"apps/web/src/startup/startupSplash.ts",
"apps/web/src/styles/startup-splash.css"
],
"sourcePaths": [
"packages/desktop/src/renderer/src/splash-dom.ts",
"packages/desktop/src/renderer/src/splash.ts",
"packages/desktop/src/renderer/src/styles/splash.css"
],
"sourceSha256": {
"packages/desktop/src/renderer/src/splash-dom.ts": "9b1f39b8bd8a9eb19299794333080c3289af00d255f2e611f36e95fc320e5fc9",
"packages/desktop/src/renderer/src/splash.ts": "b7bf65e7bec76f28c3a1c24c30422df91a53f283c7d0f3b6f2e2f64cb063d7cb",
"packages/desktop/src/renderer/src/styles/splash.css": "4abdf18669bec3e6f48fd2a2d6e23d562ed61991a2f17d952a344032724a4b2f"
},
"licenseSha256": "27e29ff5583c46bfba33748632fb4024427f7fa3783aeb728fc628caa002d2bd",
"rights": "The fixed Percho source is MIT-licensed by Jaxton07 under the retained exact legal text. Adoption is limited to the synchronous first-frame splash DOM, CSS choreography and presentation controller; no Percho product identity, state owner, window lifecycle or readiness authority is adopted.",
"mode": "copied-adapted",
"changes": "Haros retains the synchronous pre-bundle DOM, 64-dot golden-angle swarm, breathe and light rotation, particle scatter exit, content-visibility isolation, theme-first background and reduced-motion structure. Product identity, theme tokens and once-per-process timing are adapted locally: only the first product window in a new Desktop process plays the splash, while windows restored in the same process skip it. The donor's decorative horizontal sweep, persistent sonar rings, radial exit waves and slow-start status copy are omitted because they carry no authoritative progress and compete with the particle composition. Percho's Promise.allSettled readiness and unconditional maximum display timeout are explicitly rejected: the splash exits only from Haros's existing transport, Settings/Engine snapshot and focused Composer catalog owners, or into deterministic recovery. The copied layer is presentation-only, leaves retries in React Query and creates no second BrowserWindow, store or persisted state.",
"updatePolicy": "Pinned exact revision and donor digests. Do not retune or rewrite the particle geometry from memory. Any source, identity, timing, lifecycle, rights or readiness change requires exact upstream comparison plus first-frame, theme, reduced-motion, cleanup, focused Composer recovery and packaged Electron revalidation. The adoption can be removed by deleting the three copied presentation files and their bootstrap/readiness wiring without changing Engine or Product State owners."
}
]
}