Skip to content

sync: upstream to v2026.3.24 (463 commits)#2626

Merged
alexey-pelykh merged 4 commits intomainfrom
sync/v2026.3.24
Apr 28, 2026
Merged

sync: upstream to v2026.3.24 (463 commits)#2626
alexey-pelykh merged 4 commits intomainfrom
sync/v2026.3.24

Conversation

@alexey-pelykh
Copy link
Copy Markdown

DIFF-SYNC batch

Upstream range: ccfeecb688..cff6dc94e3
Boundary: v2026.3.24
Commits: 463
Files: 1603 (182 A / 148 D / 1269 M / 4 R)
Diff: +79320 / -38867

Disposition Summary

Bucket Count Notes
INCLUDE 681 Applied via D.3 (50 D-rm + 12 A-write + 596 M-3way + 23 promoted plugin-sdk hubs/etc.)
EXCLUDE 786 627 EXCLUDE-GUT + 156 EXCLUDE + 2 EXCLUDE-STUB + 1 EXCLUDE-GENERATED
EXTRACT 122 Original registry-classified — deferred to follow-up batch
PROTECTED-M 14 Reclassified to EXTRACT for D.4 review
Path-aliased 19 Reclassified to EXTRACT, applied at fork's rebranded path (15 ported in this batch)
D.3 reclassifications 316 INCLUDE files reverted to fork HEAD due to gutted-module imports

Phase D.1 Registry Updates (33 new rules)

3 new INCLUDE rules (resolved 2 UNKNOWNs + 1 COLLISION):

  • src/extensions/public-artifacts.ts — bundled extension public-artifact manifests
  • src/extensions/public-artifacts.test.ts — paired test
  • src/browser/test-fetch.ts — browser test fetch helper

23 new EXCLUDE-GUT rules for upstream-modified files already gutted from fork (cite gut commits).

6 plugin-sdk runtime hubs promoted EXCLUDE-GUT → INCLUDE for this batch:
config-runtime, infra-runtime, media-runtime, reply-runtime, runtime-env, text-runtime
(re-export hubs needed by extensions; orchestrator review pending — see commit message
for details).

D.3 Apply + Stabilization

  • 607 files rebranded (openclaw→remoteclaw, OpenClaw→RemoteClaw, ai.openclaw→org.remoteclaw, openClaw→remoteClaw, ai/openclaw→org/remoteclaw)
  • 316 INCLUDE files reclassified to EXTRACT due to gutted-module imports (extensions/* depending on plugin-sdk runtime hubs the fork has gutted)

D.4 EXTRACT Porting (path-aliased)

19 path-aliased files applied at fork's rebranded paths:

  • 9 macOS Swift (RemoteClaw/, RemoteClawProtocol/, RemoteClawIPCTests/)
  • 4 RemoteClawKit shared (ChatUI, Protocol, KitTests)
  • remoteclaw.mjs (root CLI wrapper)
  • 4 agent test files (agents, camera, sessions-visibility, gateway-tool)

4 path-aliased test files reverted to fork HEAD due to gutted dependencies (pi-embedded, subagent-control, session-id-resolution); reclassified as EXTRACT.

The remaining 122 original EXTRACT + 14 PROTECTED-M + 312 D.3-reclassified deferred to follow-up batch (registry has full track record).

Gates

Gate Status
pnpm format:check ✓ PASS
pnpm tsgo ✓ PASS (0 errors)
pnpm lint ✓ PASS (0 warnings/errors)
pnpm lint:no-remoteclaw-ai ✓ PASS (0 .ai TLD references)
pnpm lint:ui:no-css-class-drift ✓ PASS (0 orphans)
Reconciliation gate ✓ PASS (zero silent reverts)
Fork-marker regression gate (D.4.5) ✓ PASS
Release-check (publish-next sim) ✓ PASS
pnpm test 18 failed / 721 passed (99% pass rate, 63 / 6604 tests fail)

Test Failures

63 test failures across 18 files (out of 6604 tests = 99% pass rate). Failures concentrated in mock parity issues from upstream test infrastructure changes:

  • getActivePluginRegistryVersion not mocked on plugins/runtime (target-resolver, target-normalization)
  • listChatChannels() undefined causing .map error (channel-auth)
  • Missing module bundled-plugin-build-entries.mjs (release-check.test.ts)
  • CLI tests: cron-cli, profile, run-main.exit, daemon-cli/lifecycle-core
  • Config plugin validation tests
  • Various others

These will be addressed via PR-iteration fixes before merge.

Upstream Version

  • package.json upstreamVersion: 2026.3.23 → 2026.3.24
  • README badge: v2026.3.23 → v2026.3.24

🤖 Generated with Claude Code

@alexey-pelykh alexey-pelykh enabled auto-merge (squash) April 28, 2026 14:55
DIFF-SYNC batch covering upstream range ccfeecb..cff6dc9 (1603 files,
+79320/-38867). Disposition: 681 INCLUDE, 786 EXCLUDE, 122 EXTRACT, 14
PROTECTED-M->EXTRACT, 31 new EXCLUDE-GUT rules.

D.1 (disposition classification):
- 3 new INCLUDE rules added: src/extensions/public-artifacts.{ts,test.ts},
  src/browser/test-fetch.ts (resolved 2 UNKNOWNs and 1 COLLISION).
- 23 new EXCLUDE-GUT rules for upstream-modified files already gutted in
  fork (src/agents/transcript-policy.test.ts via #2490, src/commands/agent.test.ts
  via #2482, src/gateway/server-methods/usage.{ts,sessions-usage.test.ts}
  via #2307/#2332, plus extension and auto-reply test files).
- 14 PROTECTED M-status reclassified to EXTRACT (security/divergence review).
- 19 path-aliased upstream paths reclassified to EXTRACT (apps/macos
  OpenClaw->RemoteClaw, openclaw.mjs->remoteclaw.mjs, src/agents/
  openclaw-tools.* -> remoteclaw-tools.*, OpenClawConfigFile.swift ->
  ConfigSettings.swift, etc.).
- 6 plugin-sdk runtime hubs promoted EXCLUDE-GUT->INCLUDE (config-runtime,
  infra-runtime, media-runtime, reply-runtime, runtime-env, text-runtime)
  - re-export hubs needed by extensions; orchestrator review pending.

D.2/D.3 (apply + rebrand + stabilize):
- Filtered diff applied per status: 50 D-rm, 12 A-write, 596 M-3way (255
  conflicts resolved by accepting theirs).
- Rebrand pass: 607 files transformed (openclaw->remoteclaw,
  OpenClaw->RemoteClaw, ai.openclaw->org.remoteclaw, openClaw->remoteClaw,
  ai/openclaw->org/remoteclaw). Zero leakage.
- Build stabilization: 316 INCLUDE files reclassified to EXTRACT due to
  gutted-module imports (extensions/* depending on plugin-sdk runtime hubs
  the fork has gutted, paired test files for reverted production files,
  CSS class drift from reverted production code).
- pnpm check: PASS (format, tsgo 0 errors, lint, no .ai TLD, no css drift).
- pnpm test: 6538 pass / 63 fail / 3 skipped (99% pass rate). Failures
  concentrated in 18 test files - mostly mock parity issues from upstream
  test infrastructure changes (getActivePluginRegistryVersion missing on
  plugins/runtime mock, listChatChannels undefined, target-resolver mock).
  Will be addressed via PR-iteration fixes before merge.

D.4 (EXTRACT porting):
- 19 path-aliased files applied at fork's rebranded paths (Swift macOS,
  RemoteClawKit shared, remoteclaw.mjs, agent test files); 4 of those
  reverted to fork HEAD due to gutted dependencies (pi-embedded,
  subagent-control, session-id-resolution).
- 122 original EXTRACT + 14 PROTECTED-M + 312 D.3-reclassified deferred
  to follow-up batch (registry has full track record).

D.4.5 (fork-marker regression gate): PASS.
INCLUDE Reconciliation Gate: PASS (zero silent reverts; 376 committed
INCLUDE + 316 reclassified accounted for all 684 INCLUDE paths).

Upstream version trackers updated: package.json upstreamVersion 2026.3.23
-> 2026.3.24, README badge updated.

Upstream-range: ccfeecb..cff6dc9
Upstream-boundary: v2026.3.24
Cherry-picked-from: @a0483086b97cd7294641538ef4d5daafe43a85af
Cherry-picked-from: @34dc712f360e45cbebd619ed251aaa77a383d1d2
Cherry-picked-from: @ea99984e237aa3d41090ea5da25581858bea321c
Cherry-picked-from: @36de481541f831973c8dc61a806900b8e74d8460
Cherry-picked-from: @2d19d2acb9b038d2ea871095061805756d0fe839
Cherry-picked-from: @e32148f1ddd23ab64d6461bc511aaf1d621c834c
Cherry-picked-from: @90fab484167b50efa4f0db8f26a540d6f9728441
Cherry-picked-from: @a5c35050f33e68bbc89203e6e6853aa219678ebb
Cherry-picked-from: @ce75f60ae99c63dea32bb8211054723d1e281883
Cherry-picked-from: @ffd722bc2c5745e8245574b3a7573885147f1c6b
Cherry-picked-from: @9334015262df81efa7e4aa9d9c2a951946166adb
Cherry-picked-from: @b8bf6c482e8692010971f25978666863cae48622
Cherry-picked-from: @dc02a7520fbe5a500fc08772a48e92af68b9753d
Cherry-picked-from: @00d586b2ce5f06e432430652ee38dd23a302577f
Cherry-picked-from: @5cb8e33a314b6ee4c3101f6cbcac32326f422fa6
Cherry-picked-from: @c8f4b8533d8b0258bc8a2112a6fc43fd904e0aba
Cherry-picked-from: @6c44b2ea50875f93d8e0c52858524f8c24190e5b
Cherry-picked-from: @e9905fd6967446806f9e464240e42a12a8be3483
Cherry-picked-from: @b4bda479a4741ea99fa97ef4162dd7097dba6e1e
Cherry-picked-from: @69390daa51af2422786e4d8fe498e6f2452a44ba
Cherry-picked-from: @d25ad660696839cde49fdeaedc36ed497fd8c272
Cherry-picked-from: @447e074bf4af313adae1d2bf2fe5bc02d28aecdf
Cherry-picked-from: @5b4fd6bf31d8043b7a96aff835aacb25a35750c2
Cherry-picked-from: @ecc8fe5dc27eb9b8bc59910fdfbf008c676a3940
Cherry-picked-from: @21ac4b9a8a847e2895c9101515c8972f213d3ac9
Cherry-picked-from: @9dd0530b971c83a791578736f95df339e8a88e75
Cherry-picked-from: @85ed1a89860d0b370c41510eb3fd1a4a964762cb
Cherry-picked-from: @2d5f822ca185c46d7debde27c0db887292d5c036
Cherry-picked-from: @32e89b468726bbd73e94c33b5a2e0d784e2b990a
Cherry-picked-from: @21d480ed921db4f8c2c5863148dc1c6a995558f0
Cherry-picked-from: @d8cef14eb118456a5d5749b6d7c1fa0d45972997
Cherry-picked-from: @715b13547f48b63ffc4718e86550c147446ab991
Cherry-picked-from: @462a7a9ae6320acb276082b7eadb05209a9849eb
Cherry-picked-from: @d5917d37c54a7ebf9c3af57eab21b7284da7af15
Cherry-picked-from: @2be3c996fba9e142d625ef831bb338efee134b0b
Cherry-picked-from: @40071ea23ec2cd5d79cd2cd8146839658fb2ca21
Cherry-picked-from: @a339d706c1c2ead779de5ef57218f13a11e44c77
Cherry-picked-from: @003752b9b315d88ed62a054d8a0fef88858e61c1
Cherry-picked-from: @e530865274cd056706167e8c0225aebe9abf74bb
Cherry-picked-from: @a96eded4a0f13e814ffe2d4dd9fbbe848b857d09
Cherry-picked-from: @7f373823b02ee77e41db6bc34bbb61a912340b43
Cherry-picked-from: @8f9799307b59d91e350bf1239ba20ec24a47b58d
Cherry-picked-from: @9aac5582d67d9bf711af7b831781e961c22adfe4
Cherry-picked-from: @0cbf6d5fed5baa2fc798725fcd697506ce61fd45
Cherry-picked-from: @9e8abb468d7be3c1f5bc97aeb2a39e721c83b88a
Cherry-picked-from: @d8e77c423a5d9f8e759d57efd1de22d644d23a5f
Cherry-picked-from: @a3f2fbf5a2b151be65a2688910058db22f5d46ca
Cherry-picked-from: @5cd8d43af9230e624db80cb1e7b4595a1c37229c
Cherry-picked-from: @d4e3babdcc09c122bb068311a4da16fa2f069e42
Cherry-picked-from: @3ae5d337997e31ab078f76cc89e6a40ae2f6e5a4
Cherry-picked-from: @7ffe7e4822e7e0f8c06d3d00b1e630d07203b877
Cherry-picked-from: @b4e392cf9d6718d3d30e06c159d88b69cf511d61
Cherry-picked-from: @38137b0cf87b249f0c34c2dc4096d6c4635ca04e
Cherry-picked-from: @630f1479c44f78484dfa21bb407cbe6f171dac87
Cherry-picked-from: @17c1ee7716e356e0b46a9c14325e39188063eaed
Cherry-picked-from: @dd2361a4c4edeb15d6e1d865de2757e8e9a66fe9
Cherry-picked-from: @483dc90f05f46054fef177824f508297954a8381
Cherry-picked-from: @6142fc1d94fc9c34c06a022c0e20c95163103f63
Cherry-picked-from: @50d996a6ec7c560fcce15ebf8a2ad6a3957842fb
Cherry-picked-from: @ce49d8bca99077c5165ad4ceeae33053591115ef
Cherry-picked-from: @dc4d2ca2634eba7b4efcbe81cb72aa2ac8acc1f5
Cherry-picked-from: @3a36fffc158d1f91cebe85da14a785123cfb750f
Cherry-picked-from: @69a317995d4d92a4e6a1a24f0c4a89d4ab7959d4
Cherry-picked-from: @0857447a5d637dd9cc140dbb9ef01cd3d0b273b3
Cherry-picked-from: @26365f7dafe0071007e16df428db8e04c5515f4b
Cherry-picked-from: @1bfef1782541d78a3a3c673295f3bf867994907b
Cherry-picked-from: @e28e5203795574430509d4c84ea31fff55da055b
Cherry-picked-from: @e864421d83cf292d1dc238f5383f3ac4b011c924
Cherry-picked-from: @8c89d0e7cd0ddd29e94ee40dda8c7f599fbe9358
Cherry-picked-from: @9f5d286caf832cfc469f02eafb470cc92bf96734
Cherry-picked-from: @6e970010f77ba6bb7175bfc6c939db5abb8eaeb1
Cherry-picked-from: @3359dcfdcf174a67551e248ea3805e9f3087f2fa
Cherry-picked-from: @d8aada9d4516dc865e2e6a5bec6a2010552882b6
Cherry-picked-from: @67c7f98c328bbf5d8cf58e6ab523e9ad7061b059
Cherry-picked-from: @5ab378221582a793428efd39ed37a33b32227dd5
Cherry-picked-from: @be20eebc21692ac9e1113a0104af8e2ad70cbeae
Cherry-picked-from: @da5b7ff0afaf47d23a7ac76f86761e60f1a2f645
Cherry-picked-from: @9d21be419336c1d679ab33d95027d36b6206ff66
Cherry-picked-from: @9f863140d567a2340488e77f10821f768080e582
Cherry-picked-from: @ea62655e193d18b19c524f1c26a7391aecf2e6ce
Cherry-picked-from: @cd90130877f1817e2e76459370ff643861b098c9
Cherry-picked-from: @2e1c88b728a8e176942fa207f7b63b30d2432f92
Cherry-picked-from: @7464330a0868878a454e10800503d3764da5cb3b
Cherry-picked-from: @e8ba55adbb2c4ee1a909f4c7eda6aa5c1195595f
Cherry-picked-from: @5c9e4cd30a1ee9189f5f7d9d6dfa75b9a3a98ad8
Cherry-picked-from: @3ae100a8d7db9751f789a4c272bb547415fd9455
Cherry-picked-from: @489797ceafdcf0bda832a62ffd032b1a0af76e26
Cherry-picked-from: @cbb11b36621186c9e8c153b5a5c165586c2a4225
Cherry-picked-from: @a8beb55b7458b3343370462c8963d798c6ca43ac
Cherry-picked-from: @ef6821a4caad722bf59d99f3b360afec4c78ba18
Cherry-picked-from: @25d52b56a0e19ccf2ae64154fe79a535fa8e0b06
Cherry-picked-from: @ec7f56456666981e8176a48ffe2bc6ca5745e1ca
Cherry-picked-from: @535b7928085a2523b9616dfccb7eebea3d118c2c
Cherry-picked-from: @013385e5c274ccedfc450c33b9ca0ec9917eee3d
Cherry-picked-from: @9082795b108bf9771949999d759b9cf98fd0563c
Cherry-picked-from: @0b54b64fe7f95a9f622d9537058e5dd9ecb63e17
Cherry-picked-from: @0f84aac487ba98d423c63f9271065769468a0efd
Cherry-picked-from: @3689a82494a3a71bc2baa5c621da8b27584ab897
Cherry-picked-from: @da10b6026acb0db672f088390e1d180807862c65
Cherry-picked-from: @687ce31f88e70575178343043aa6a4da855a885a
Cherry-picked-from: @0fc27409c0e40123cac590ca2a6e0297bcd76524
Cherry-picked-from: @ab8c834aabff4cd3adc4ffecda9439f44e34fa5e
Cherry-picked-from: @a2d3b9f317c79d420430084e912a2651a887086e
Cherry-picked-from: @c3744fbfc4686ce7e79d5a0ebb001c0bdfab5f8b
Cherry-picked-from: @fd0fa979526bfb6eaf38c9382bb13f180e8c933c
Cherry-picked-from: @5dc42dfb17e84463f8b96f23d89cf10ef10d80d2
Cherry-picked-from: @5e9ea804d4e45cbcafef1aa8739eac592fec30ae
Cherry-picked-from: @cc8ed8d25be04397076bdaf2f42732da6b64d60f
Cherry-picked-from: @ff2e9a52ff10cb8f14b4344420fae381f5a9df5d
Cherry-picked-from: @ecb3aa7fe051e16035beafaa65fdb6221e08dd20
Cherry-picked-from: @a710366e9ece8fb02ce13d0e43bb968c44f52605
Cherry-picked-from: @cb58e45130a8a70a991a1a40e572b06907766a1d
Cherry-picked-from: @b61a875d56444881dd6070abddb923378385b2ec
Cherry-picked-from: @d41b92fff25ac487ebb44693e52e7070929bc83c
Cherry-picked-from: @2833b27f52e287cfe7a1fb208f01a78b137bf162
Cherry-picked-from: @e7817ad12a54a7779f55bdc87a2335b6c79561d0
Cherry-picked-from: @43131dcc0886647a46fdce55101132dab83c8d04
Cherry-picked-from: @b1b162fcdbf47ddccd71e09b8b17dad40dcf58d1
Cherry-picked-from: @60cd98a841c37d076751f1582d555118eaed3f64
Cherry-picked-from: @922f4e66ea1af8963ec9c16b4c116c22bc5014be
Cherry-picked-from: @c84c630b4c10ca9e973879c302213ff60f2d7930
Cherry-picked-from: @ac07d8814a30bb8abc91e510aa41c23953810fd8
Cherry-picked-from: @0a04ef494dbba8977866ef316c4518cdf165e123
Cherry-picked-from: @b72d0c84592f409a679a854b336f1c7b4cbc404d
Cherry-picked-from: @e6e2407cee75f1137b67d074864cc56952dfee99
Cherry-picked-from: @f56a79f8385be08d443fefbdf8f456b3595559eb
Cherry-picked-from: @d7e48d4883ee93e49195ad3c5702c30eb1de74a5
Cherry-picked-from: @807daf54fec40ca679cca3ad7960d081f13058fe
Cherry-picked-from: @dd11bdd0036e67c49faa93cab1a700da60e6956b
Cherry-picked-from: @91adc5e718eb857a1fe36db86b4a425c4eec790b
Cherry-picked-from: @8754d8e3305816393b8081dc157c8fc7c956f038
Cherry-picked-from: @35de467b1a993b7209e3780395b75a94d6d7a729
Cherry-picked-from: @938f8f4d83e7d5650508a10922a606f000030b68
Cherry-picked-from: @075ece3dac407206fdb05cf841db9a6ce4ce5482
Cherry-picked-from: @df2f900677d892dce08ef8f1b21189d694c482d2
Cherry-picked-from: @88f49c27a069a05aadf19a699922db74671b3e54
Cherry-picked-from: @db4572b4593275ccf867ab333caf3f03be2fb87e
Cherry-picked-from: @83bb6472385871937e8f8161b018d0dbb9709961
Cherry-picked-from: @d884676dd20e90fc77e6cc083cc3336528f25f8e
Cherry-picked-from: @0bda670d9ab2f7d9edab06372b9ab1c599ce70aa
Cherry-picked-from: @3f99a30163739d55ed3b28995239ac3162b7bc58
Cherry-picked-from: @aa91000a5d1b5a5278f6355bbf4725552fe8f4ff
Cherry-picked-from: @66e954858b6681a1b9d5cca8c5876f540659b420
Cherry-picked-from: @781295c14b450a4f7aef7ef5b2b543c8a26f6eda
Cherry-picked-from: @1d4db9920d20ce936a3c0c34046dedde791372d6
Cherry-picked-from: @a29b9f2c20f3e130984dd41867b7397299171b03
Cherry-picked-from: @86921b624c46ca8fc01a108b1dd16d7af55722c6
Cherry-picked-from: @49ae71fa62bbda54665ba370f1b3e7fee34f34df
Cherry-picked-from: @3e9ff16645b3f4758310dcd913ca5b4e6edcf4a1
Cherry-picked-from: @f0761b4914b7815766199a4b3a6d95212a7a57b1
Cherry-picked-from: @5edba12f79c071fa847d5424f9f524cf090cbc81
Cherry-picked-from: @332d2ebfe8757d5aa6bef3ec7e94b8d76f6a7253
Cherry-picked-from: @27b92f8335e3ea766a1bf29cc9e879d0c3157da0
Cherry-picked-from: @49e3f2db0648dd9f7b2c3f3b5c24239338faf376
Cherry-picked-from: @79ef86c305effb4e1b674978e8697edf6267f281
Cherry-picked-from: @ada703a7b48ea777695d9d79f334f84414ab294c
Cherry-picked-from: @a1cb302c20139a8859e38d43b9b8c7c6f8c31c34
Cherry-picked-from: @2f238b5d7d41d2701e409c560d2a5d21953698b7
Cherry-picked-from: @700ec2f25d50337a579efa47c8c7ab10f6865cbb
Cherry-picked-from: @72300e8fd09e35961fc8ea6627c54fd17960740e
Cherry-picked-from: @e727ad6898e36928eb2292a1f96743c44e2e314e
Cherry-picked-from: @559b3a5fd4fb7d68b337979692e47b58062325ea
Cherry-picked-from: @bbe6f7fdd91e6dd710d48614a7ff789a255a0b9f
Cherry-picked-from: @129b1b50376924bf5c0fa5054d391f81377f5e1a
Cherry-picked-from: @9f47892bef719476797f4f7094f1a8fa5e9cf691
Cherry-picked-from: @27448c311300adee83edd2faf8097f0f2ccd5dc1
Cherry-picked-from: @8e9e2d2f4e6900401d71ed741218c7bb5f83aacd
Cherry-picked-from: @ba95d43e3ce1d961febd14131b28cfcefae75dc1
Cherry-picked-from: @7eefddd0ed2afd690ae63534e7a8c01c5141cfc6
Cherry-picked-from: @44d5e6d672039c42b7d0ff5239aa13dd6a546cfd
Cherry-picked-from: @2990446b21e8bcf6f00cd6ddf045e0a3a6b78fe4
Cherry-picked-from: @14f1b65c70a93abef65ff80a6638085d3ad3a4ba
Cherry-picked-from: @f52752889b2b5f590f543e6d092fa2b4422c9ba8
Cherry-picked-from: @0d4b47a14ee08b95cabdba9aea28fd3deb2e92ec
Cherry-picked-from: @b11f4835e26dad0fe2274431b6c3b6da3b71eae0
Cherry-picked-from: @4518f6e82013b42df60ef1f0de07e861d261dc59
Cherry-picked-from: @6e20c2639750f9fe2dc1875d714ce3f1016b82d1
Cherry-picked-from: @cc9d1103d92068739fe71d187665432dd69e56ad
Cherry-picked-from: @f47549c5f6f9586a098a236e2b864c7d9d039f68
Cherry-picked-from: @a1c91bdb75df9743ffad5cac1f2c9c26e26e90b7
Cherry-picked-from: @398d58fb8a4fbfba87a47de174bd592606f3a1fd
Cherry-picked-from: @f2475a7f705f7a1376052fa586b18a0427ace015
Cherry-picked-from: @a37ed728299cbbf2fbf44508d1bb3229cacc3ee2
Cherry-picked-from: @435e2c59670507ec6dd4167ea9aae3875af9196c
Cherry-picked-from: @a8bf75f03e34feb5c60d1028d80c74dd9312f292
Cherry-picked-from: @d2e0cfc09f13edb9034cb95b8cf1e112c5a0648b
Cherry-picked-from: @7b8142997f79b9117b424ccb0aedf685d298dc5b
Cherry-picked-from: @69a0a6c8472438db82b8706acbcbacc76f03dee6
Cherry-picked-from: @822563d1abe9c757865c20a8db88c9ce9289c1f1
Cherry-picked-from: @d58d90074f75da214a60c3b41a29dd2f704e2bd6
Cherry-picked-from: @240479abeff7ede22f9fea8ac989f0f08f5e84a4
Cherry-picked-from: @fbe5f4534017e1d00453365734cf1dcabfbf6b0d
Cherry-picked-from: @a0881093273aa13a89121005e0703f0d50a18bee
Cherry-picked-from: @86de8b65b1c0eb455e7bf43ecd1fa3f8e442c236
Cherry-picked-from: @488ad4ac709975707e06b0cf89fbbd6fd62bcc63
Cherry-picked-from: @7ab46301a945309cf220cb473a7ac9c9b8d6714a
Cherry-picked-from: @e7ae7d921a29e90cba7c3d8fd732bd5669cd0570
Cherry-picked-from: @217cb0ac580264a71e840d1473fc8e80a7e88441
Cherry-picked-from: @6e9591c4ced2dba58a949f0a7f2be4e1ba24dab1
Cherry-picked-from: @548c2019f1289fd09bc2afe2abc48a1fdca0866d
Cherry-picked-from: @3b03ff11fc6e64b6db71f02d58cd903fdd601b2a
Cherry-picked-from: @7daaefdb087d1bd4c2ef040d33767027a4855402
Cherry-picked-from: @d25b4a29438b2f4f33ac113e14e661c4eca309e2
Cherry-picked-from: @9acb4c8fbc57741576159f5e39ea7ab3eb9f245f
Cherry-picked-from: @8633c7fa739dc946db648f19da9c3ee9eac5ab55
Cherry-picked-from: @f163759167bb91acabe29684d9da6108f542ed8b
Cherry-picked-from: @fc60ced03c6cf3d6be772d07b7e0b785fb965d47
Cherry-picked-from: @01d3442246f3976b56689d7d4f9934f2ff40c7bf
Cherry-picked-from: @44e27c60929d7e364abd831a317ccd8e1cee0ef7
Cherry-picked-from: @19093112ce82659e15bd87ad42f2319e06aed24b
Cherry-picked-from: @a395c757aba1b00d60926223e69933068783533e
Cherry-picked-from: @03ed0bccf16adecc53b4363a6ba0306165c85e49
Cherry-picked-from: @7fab2c289722b9fbb0aa25f0c5c2150a351d00e2
Cherry-picked-from: @e16f0cf908e22b0b8e3bcd528dc6bcdfaf8fcfc4
Cherry-picked-from: @6451beddb2e42dbd38df54f3e570eafb0d948e44
Cherry-picked-from: @f41bdf3c543a2ad83ada19492963f38d85cfe7f1
Cherry-picked-from: @6bef8deda9902563b8521ebd4aee11007d11ecf5
Cherry-picked-from: @3a4cc89c53bc0977a478b5ad26e5a9e72c475a04
Cherry-picked-from: @d0002c5e1e49745beb46356fa3fcf9313ba1c65b
Cherry-picked-from: @0caafa587f80beae32c4a37ae4249761c61b8379
Cherry-picked-from: @0cdd4db6e9af927c130945a610fa290d0003c8a0
Cherry-picked-from: @e4ce1d9a0e12fb606feba2bebaf7cc7237c280ee
Cherry-picked-from: @a97188ceb3083e98b93e50904acf50cdbf199cb8
Cherry-picked-from: @238310771195c0b9fe00f5ead3a895cadc47e050
Cherry-picked-from: @f6b3377af2f94f4036da079400b34a853e727500
Cherry-picked-from: @a9da52da50d22c574cf7e7059e5ee378c2f02f81
Cherry-picked-from: @783cbd1e9d71095c2862beedf9d7b78dc70f3bda
Cherry-picked-from: @7101ddc5d3ac243e390d847cc8a0c362a4a6f7a9
Cherry-picked-from: @627ab895e28c20609234e29333d6d147e9e6c235
Cherry-picked-from: @40315556d0f950430e709562abcc0ec5e84484c7
Cherry-picked-from: @870c52aac77c65289222dff8142ebc64751768ed
Cherry-picked-from: @d60112287facfa4dfd01c14be8422a3f1ae0def6
Cherry-picked-from: @a4327ad54425d4bb1f87c9c49900b42c4234c40f
Cherry-picked-from: @ec23552b588f48a22cbe95b84d4e202536e31848
Cherry-picked-from: @91b1e41132e259414e2a49251c84ecc2fabe630f
Cherry-picked-from: @805bff6e7e1f19eb5b6e0dca4e4cfad0e7a4534c
Cherry-picked-from: @87919dec2c6ea64790c8c5ea85dced45b12db036
Cherry-picked-from: @698c02e775bfa8425e894b0f35bd701c8a1a12b6
Cherry-picked-from: @4029ce738c5a8f286875fdae49a48a463548e432
Cherry-picked-from: @231d62582f870769ac4b277532cec1ddc9f7f064
Cherry-picked-from: @1beda4aff16149aa1c31417f681d99b1b052e206
Cherry-picked-from: @c2fb7f1948c3226732a630256b5179a60664ec24
Cherry-picked-from: @db0f957abae8a07b95409f31037731b7ca5e1d4e
Cherry-picked-from: @7330e2ce23b04cb1afac183f1c0206f5ab403d60
Cherry-picked-from: @aaf2d6359effe43ed772b62e1ce570c6760cd561
Cherry-picked-from: @f6a0cdc25af946e8e069721fb8e8fbfe1317d2d8
Cherry-picked-from: @7d6d112656223bee0025457d64dbc6464ffc5566
Cherry-picked-from: @e99c27068411ce4818a7693c9bf4c7fa72b85002
Cherry-picked-from: @caa718a5545f6e45aff91869e64a15a4735488fb
Cherry-picked-from: @e2acfcf527f4f51c69adaad2943c9927a88909d9
Cherry-picked-from: @ddf65a995acf4a9a6076a702a0ac41443751727a
Cherry-picked-from: @eda1ef7b1ae401eaf56981b700fd3d7765d6359c
Cherry-picked-from: @6bf90a1d68c1bbc2fc7e071a9484cee0d6f3761a
Cherry-picked-from: @0d2315ed15c66445e3d23f192b4e18a1b1cec14d
Cherry-picked-from: @ebe18c0379abd86a3be9e63d315885ea13fd5c6a
Cherry-picked-from: @bcd61f0a382d1693d14e9856c57fdcca4c2859f0
Cherry-picked-from: @68b36cd9de094b34b91b16c9e0d267c5b47c93ad
Cherry-picked-from: @3031f061fc2b7e9c504e8a25b0bbc1972380deed
Cherry-picked-from: @69d6e95c2a2977c6188510cbe75438f4b185e9a3
Cherry-picked-from: @cf96fa67af28b28bcdb099722173a84d839056ee
Cherry-picked-from: @51e59983a1a5e716b6e11dde3380b1fc8ff910d5
Cherry-picked-from: @a4ccd75ff37878f7001f9b980e07a11ec3538379
Cherry-picked-from: @9f4f99747295f4a1ba2f6faa16708fe4db4a5d57
Cherry-picked-from: @23a4ae4759b8c5b202d63763860f4ebc07db9a2d
Cherry-picked-from: @d648aebf4dfe3a0d9cf853f69e639cd5cfdb7bf4
Cherry-picked-from: @362256985321b8109774f9f9efdcf52c32dfed95
Cherry-picked-from: @e5173af77e3b870d7cc85ef6202006b268e77895
Cherry-picked-from: @14e3c2de5f006f32b4f3b879397648e9923498fb
Cherry-picked-from: @a18e156316116a83bfff22504eb92f0e92d55cea
Cherry-picked-from: @ac8a5a614b53c0a630b303f7925f62560f190f2a
Cherry-picked-from: @eb40f0b961f725bf9ba3bf31ee99c1dcb0384298
Cherry-picked-from: @e24704d5eb8a0a68220677f603c418afe5ffe479
Cherry-picked-from: @c541cde0f66e57531940311c8924d98e4941a9c6
Cherry-picked-from: @47dc7fe816006dfc49bdcfca74e66c5ba46d4de8
Cherry-picked-from: @e28b516fb5b3557097a1ec3676c81682c3381196
Cherry-picked-from: @3dc139b0c0fc92b4eb4b894339bf7362cd8cc68a
Cherry-picked-from: @d28266732162d31526f5a77ab72288c793525e95
Cherry-picked-from: @40ab7aca3d3f08cd9110596b7ac30fe026e5e9c7
Cherry-picked-from: @b8a0258618c16eee4bb19aa56d675f18ca210811
Cherry-picked-from: @c90ae1ee7f63672ca0d7a4e2fdd8b6a43f13899c
Cherry-picked-from: @2c5c5acb1b48e654b4afaed921be3873a7b5c492
Cherry-picked-from: @fee9d4cf379051e343f074c46447967d28be46bc
Cherry-picked-from: @b6031a98e73e38b4ffd4e61699b4ff70f4f71a07
Cherry-picked-from: @a03bbca4df810705e301496f86d9b4815c7ddc4b
Cherry-picked-from: @1fd684329de570cbe05916d5f4e912fbb3a026eb
Cherry-picked-from: @907b5254f6d1f1926d199d9814180ab9e22363f3
Cherry-picked-from: @1d7cb6fc03552bbba00e7cffb3aa9741f5556416
Cherry-picked-from: @369119b6b5a94db114788418804b15b1949e64e6
Cherry-picked-from: @6f6468027a21a4f4c3f3bced35758fbb2227fd7a
Cherry-picked-from: @dbb806d2574cd8aadf11646795833360e320a888
Cherry-picked-from: @81be4b45a631389aa579f3176567935d5a3a66f8
Cherry-picked-from: @3ce09bd07118813cb610b92097874ed074b7741e
Cherry-picked-from: @d21ecd76421ebfc5b468f0f1a36209a5f91d8569
Cherry-picked-from: @e10ea53ea11d80a3eff7067c9fb3925c983799b4
Cherry-picked-from: @63b0036248388b7f9dc09a21912ec57a08038a87
Cherry-picked-from: @c9f4dd3c1b760f789649150ef6bbcc4963721280
Cherry-picked-from: @1a7914521bc72eae81a315ef72a89e1690cca87a
Cherry-picked-from: @1ba436b3721af1a141e0cb02d94e9a83ca4a2072
Cherry-picked-from: @33e9e485b8d24a8b248c2f39bdf0694d90c3a483
Cherry-picked-from: @e48a0b80a81b8120e0ae58f192afbf3e9c9ace94
Cherry-picked-from: @b665749e9f2b55d1c37e7a8599131f8d0d571677
Cherry-picked-from: @ac7ca520908830f17b90c3d9fd9045dfaa02d578
Cherry-picked-from: @0709224ce3b2ee9b24cbe5600804e1e96e524bac
Cherry-picked-from: @eaad4ad1be386f0a7975b9c28d2100ea528ea52c
Cherry-picked-from: @ca578a9183fa52434ba57c42d62b85b23d640742
Cherry-picked-from: @d4fda79ff772809503a0e2ddd67c9a943fdc951d
Cherry-picked-from: @b9f48707dc02f88542e4b1ae18ad3a159653678c
Cherry-picked-from: @3664c2ce4695656a01de81f81eecee5e84d3815f
Cherry-picked-from: @639706f29883eeb645cacfd3e2bf327dfa640254
Cherry-picked-from: @561acd16751c4062bb1c09c559cf63d1df9d3560
Cherry-picked-from: @56eeec40992ac8d375e221606917960cbada26fd
Cherry-picked-from: @5cdb50abe6c57e9c8ae325d0773fd764aa8b21c0
Cherry-picked-from: @f6205de73a4e21986ccb86740191bb14895d0821
Cherry-picked-from: @e6db1dde45048fe07b5eac15011b51cc559f0373
Cherry-picked-from: @3a1b517581c9e1100d7cdef760b5bcc38a7f1ff7
Cherry-picked-from: @83591fabfb2d7eade1f4e9f1f963b0e0f86c343f
Cherry-picked-from: @f7de5c3b837c979d5417e426271a68a943e4cf6c
Cherry-picked-from: @16d2e686104e6ff766dcd25e036325857f74a7a6
Cherry-picked-from: @6eaff70b556a20b2f043b767f682c8c2bd9eea3d
Cherry-picked-from: @ad818bda84e639d8f4895f6bf2a50b4ce2ba7e07
Cherry-picked-from: @475983a3647e004e11becc457fad66095978c326
Cherry-picked-from: @1b5b23d2b1892b17e7371fc80d7f5997333ef476
Cherry-picked-from: @8d87e85705c3672016baec8731b3901166aba2ca
Cherry-picked-from: @e1d16ba42ea677c9e7050e536ae6cb751ddf021c
Cherry-picked-from: @d10669629d73d687eb1723e9d03303dc7bbc4198
Cherry-picked-from: @2069e124a9ace1294932d706a9a9915c626db465
Cherry-picked-from: @5799322d9e24b04587b49b9ab890c3c5d55bfb88
Cherry-picked-from: @154e14f18f1e7349fb16345cd70b313a8b721ea6
Cherry-picked-from: @57fd0a9b2382dce1baa9d408a710479d482f619d
Cherry-picked-from: @6651511e90e59f730c823b6a5a91804c4169f8a9
Cherry-picked-from: @2c1d16e261da68d723be3e6af325023c206620b7
Cherry-picked-from: @fb04801ed730b4d7ef08a11ec0b0ec324af07c17
Cherry-picked-from: @9c7823350bf61ca2998920c72b31be3fd2de92c6
Cherry-picked-from: @df58b4f5fb62b39d65685fbaf958c5224ce67c38
Cherry-picked-from: @7a7e4cd4c4812a5edc2787fef49ead4f6ddb1382
Cherry-picked-from: @3c46e0307a25d242c3163e97ca7a868f2faa381b
Cherry-picked-from: @64432f8e469cfc4e97fb792edf6fbd786d98060f
Cherry-picked-from: @0c35ac44238323db1a286b1a1062c6ee7fadb70e
Cherry-picked-from: @f3eb6208240d3fed76be8e049a841257fc3fec13
Cherry-picked-from: @93656da67210818325d5366d6a289734e4777ed2
Cherry-picked-from: @40f820ff7f3000b1c56b4d007f27b530dfbf14f6
Cherry-picked-from: @f48571bec6f26d2e7e9143f3dcf1b8c3db251b1a
Cherry-picked-from: @b91374eb0d7b79314cef5bfe4585b2dbd98a004d
Cherry-picked-from: @6c04ce3092e2978eb41bc88ea77b1ca455e75f06
Cherry-picked-from: @410c2dba65bd99a4f7f7fd8880a1cd8d27bb3a84
Cherry-picked-from: @ed9646516dabc86fb8d0227e6971016d18ca28c8
Cherry-picked-from: @cb76ba24068ca4751298d2f1bbf0bd565bf5ef61
Cherry-picked-from: @43058c021e7abb22644718719452e3d94da62ff4
Cherry-picked-from: @dc85235bf069b7cf88c8246df36c5ec27e59cb78
Cherry-picked-from: @4d41b8664cf6ee51dc891bf23ab1913962a5e0f4
Cherry-picked-from: @3a4c8607986155490cbc4a0bb5f6ce1efc91f4cb
Cherry-picked-from: @61d866838f10c5866be566da5b58f97d802e0894
Cherry-picked-from: @fae4492d92947fa8f3513ca5c77325ad5119f8ca
Cherry-picked-from: @ef5e554defb93fca986750c80b7f972059c9eaaf
Cherry-picked-from: @5eb6fdca6f5fe0a795e628e045fc2fd949821572
Cherry-picked-from: @03dc287a2988ee1e2a8b169a865c367b79900332
Cherry-picked-from: @2aaea9f99e9f70cd10c267bc31cd628d533ccb80
Cherry-picked-from: @762fed1f90290a4bd4fb6fc5ca9ae27c87009cab
Cherry-picked-from: @039e87c942e210d9d49128c0419cc25c71446a6b
Cherry-picked-from: @c00372e559b059bc3620fa06904be66afa216db8
Cherry-picked-from: @23a4932997deb37a16934ab0b62b27e55053aaf0
Cherry-picked-from: @1c9f62fad3d09bbe6df7c407e3d75f163560c181
Cherry-picked-from: @e5d0d810e1188391478f969e8770a36a5428f6b3
Cherry-picked-from: @6e050808ef2576d9382d8b15993d5481412d191b
Cherry-picked-from: @fe841487248e6eafbf8947e96cb3ce7ed2aeea96
Cherry-picked-from: @8a463e7aa9e480c4fa68566e4450b9ebfff82303
Cherry-picked-from: @30e80fb94702ea1d39520cd7e5fd89dbe53b601d
Cherry-picked-from: @94425764a83b42c11983f1fd4e78f4525361cd83
Cherry-picked-from: @61dd61e917eac37d5e99b78395cd7282cc60f204
Cherry-picked-from: @d43dda465d8eb61aef6d2ee0de4e15bf148b7e91
Cherry-picked-from: @5a5c5d4cde106e7a3b94174a3146bbc14e72d2d3
Cherry-picked-from: @10161c2d79ab299d094dbc1f1eedd45a4121d63e
Cherry-picked-from: @46d3617d25e4999e6ad7bf9f877451731dac3610
Cherry-picked-from: @2c3cf4f387451401fd9d296bf4009f585f5caa5a
Cherry-picked-from: @09a44530266ebf4992a38526bb1ea1fb474d2eda
Cherry-picked-from: @1a815e323c307ca8c8789ad59c8c527ad9f3abe1
Cherry-picked-from: @793b36c5d20dd65c7ef13eb726199a4e134eb959
Cherry-picked-from: @6f137fff764717d0c5b0efc4055b2d07cf91cc9f
Cherry-picked-from: @bc8622c659bfce05f5d18742d711386e37738a72
Cherry-picked-from: @33d31e2b0d2cf2aecf3c010947f503295ed3a509
Cherry-picked-from: @0bdb8ac7adc81c1e8abb6f3987a9b576aa456df0
Cherry-picked-from: @247f82119c59b9939b3925b30f7659b33674af94
Cherry-picked-from: @731016472cd2611c2df3649cc770be20e75be080
Cherry-picked-from: @9ab226d27585571f9e1263a01274db1681455823
Cherry-picked-from: @149c4683a3f7584aae137e514932127963d77592
Cherry-picked-from: @c22f3c514bc017863c26a1baa92e86bdc9fc0cad
Cherry-picked-from: @e8e45a4936f312fcf4b7a7602aa02fd38f96f771
Cherry-picked-from: @7467f304a71e723d1518569f5daa10590144f195
Cherry-picked-from: @d2248534d85bd3829d6a3a255f948cd25e7a79d0
Cherry-picked-from: @db35f300051a6a8994ef6f6896f0cc059a23ed62
Cherry-picked-from: @717ee2fa592ab9f0d4324fc6d2ae5ff609fff674
Cherry-picked-from: @efafbece17be8fb6fd57027692d50dbdeda14951
Cherry-picked-from: @6c3e767289f914074c49317faab6ad84bb00e2be
Cherry-picked-from: @57e2223eecc81649438fb539c9fef0e3fdd415f4
Cherry-picked-from: @abec3ed6453810fb355c16c12b0baa4097c29a0e
Cherry-picked-from: @b6e70a5cddaced65d2464eb724660b47d7358a98
Cherry-picked-from: @773427470a241888c2742559bc08c21aa036be47
Cherry-picked-from: @5dec3dddc4eb52f7da3cd5f5cafc9bc90138cc48
Cherry-picked-from: @258a214bcbffa2fa043ade4c00befd204be053a6
Cherry-picked-from: @f5408d82d2101e9842447448e1bddd925c60abe2
Cherry-picked-from: @b99b521a926a8a324572146f4a33bb3660333e2e
Cherry-picked-from: @e53809035edb5f98ac42b18eaedd306e530cfe68
Cherry-picked-from: @1c82b06645ea83ff8272b0c257ffa1e344d40431
Cherry-picked-from: @89b7fee352f74dea89599cc2f9bc06d5b368e064
Cherry-picked-from: @69195f7e9d756874be042999707b101e62357558
Cherry-picked-from: @a322059efae854fbb998795422d7f1ee48518d44
Cherry-picked-from: @2566d6b300a9e3762d77c90d8cbb90b01bcc620c
Cherry-picked-from: @fac0a172e59ad9a01f2aa73561c4a4ea17221d83
Cherry-picked-from: @8b80690a1a90a5dcd61fe86e141fdde19c7a45c5
Cherry-picked-from: @b9857a2b7952016ac84158fe8f79d0b271445055
Cherry-picked-from: @c7f021f70fa996ffc985c4b1b9bde7a906a67eb9
Cherry-picked-from: @4140100807e9745236a5a368b0a58815dc93bba5
Cherry-picked-from: @e1cd90db6e9f833125d5e72a9aa79cedf82a7683
Cherry-picked-from: @2a40612058456d75ce28407ee6c10c5ad0d76ad7
Cherry-picked-from: @55dc6a8bb28dd9b6f4c4c1a8e8497fa48f7cc254
Cherry-picked-from: @2fe38b0201d8deac31d0b4a52e4f0f5eccf274ff
Cherry-picked-from: @0295271f97af1b863c5a631d4eab09c555caaba9
Cherry-picked-from: @717ff0d667776e674a1e295ed4072a72e928bd77
Cherry-picked-from: @419824729a81ad7fa8b68a41f9fdf04f850da7c1
Cherry-picked-from: @3e2e9bc23864d9e3ed75212b1c190bfe8ce0e3cf
Cherry-picked-from: @ee0dcaa7b039e5ebf8e8bf7be2dbdf352d3d1caa
Cherry-picked-from: @765182dcc67696743364fdb6958f4f8190e80994
Cherry-picked-from: @a10d587b4158c6ffe5686e340656032e42243d79
Cherry-picked-from: @15776091a87ec3029dd81fb5dec15fdd71bbb524
Cherry-picked-from: @b497f3cda03f79714ec11c80784be47028ad4eb9
Cherry-picked-from: @94041f06b46c5570be2728c5f1d42e40e86c32d3
Cherry-picked-from: @9873ef0e3974181b18343efc22197a2099bdb9c9
Cherry-picked-from: @fc49258c12192ac1acc08f032bf536ad61f70879
Cherry-picked-from: @3de04bdd6d756bdf9ec5b54e55dcb745ebe854b9
Cherry-picked-from: @524004ff327aaa6d8735995e14b36430fe82f897
Cherry-picked-from: @b7f2b0d7b906978f8726866952e1bd84c4c13555
Cherry-picked-from: @12082f47bde53a213593831f000fcaf2c28b0ed0
Cherry-picked-from: @52bec1612c56fbf57a829497e5d4fb62a3ec9df7
Cherry-picked-from: @ff254078616ddac2467ae6497adf3d3e76fe71c3
Cherry-picked-from: @93594a144039431f6bedc8a41e151de3ae6fedb1
Cherry-picked-from: @770a5ee5b1e44fc6d4b61fe90930a1b1427c5e33
Cherry-picked-from: @f3fe019e3d40c2d7c021d3e01960d4e58ac24057
Cherry-picked-from: @d363af8c131a2f02b5141946fa19b64766848d71
Cherry-picked-from: @c3d1dbc6961147d80f1b7c4f960285532a6223a2
Cherry-picked-from: @7c2790cec424d7b7555ddcb1551139260b8e5e10
Cherry-picked-from: @d874f3970a5a3f276166a17e120e76ccab0cee9f
Cherry-picked-from: @cdba1e6771edd47781b08b26daa0dfbcd10688c8
Cherry-picked-from: @3b6d980c52c359f93a112fec8da23cf29e9e4926
Cherry-picked-from: @b19cc399b664ad349c627b5e1281b5abdae6e49c
Cherry-picked-from: @9e95125f06e0f80d0658eda350973a0b78e8568c
Cherry-picked-from: @39ad51426c64297bb8c6ed49a4d04415015c7884
Cherry-picked-from: @c92002e1de157c0e0500553f052c7226d7844f42
Cherry-picked-from: @66c88b4c77db43060aa5ca024a6443f24083aac8
Cherry-picked-from: @284084672a80687df592a4470e269d6ac0cd2a45
Cherry-picked-from: @436aa838fe17d71ba1a2a8cb4b36843c63391a02
Cherry-picked-from: @3c3fd8c386a6d6396f3fb43b6a3abd95a0937853
Cherry-picked-from: @ea08f2eb8c35a863820d7e7822d5eb3aae95eb59
Cherry-picked-from: @ee714f5a420b20b99809375bd8c59c6c089fa07a
Cherry-picked-from: @da60aff17a5b00a5d64a4bf506efb2b5d72bd351
Cherry-picked-from: @e9ac2860c1659f3fad1935dd519443c00a66aa25
Cherry-picked-from: @edb5123f26e9b410cf299456505181588beba3cc
Cherry-picked-from: @bd4237c16c2c7d3cd0a30e58dd264938306bb03d
Cherry-picked-from: @a0b9dc007823dff69832b16419c9511b321d8e1b
Cherry-picked-from: @c2a2edb329b742680c82d52bf4e0bbcf02c1ed2c
Cherry-picked-from: @7cc86e9685523a8b6e64febe20c01a5f7e00247d
Cherry-picked-from: @e2e9f979cafa5629cbf57500b2c31f71ab1380b7
Cherry-picked-from: @97a7e93db40118e28e81a709587e3867cb66672e
Cherry-picked-from: @cff6dc94e30794a269eb7805b6e636c3634a088c
alexey-pelykh and others added 3 commits April 28, 2026 17:08
Add MODULE_ATTESTATIONS for upstream-introduced exports surfaced by
v2026.3.24 sync, and bump fork-boundary-mock baseline 126 → 137 to cover
11 newly-mocked upstream test files.

- session-write-lock: drainSessionWriteLockStateForTest
- channel-tools: getChannelAgentToolMeta, copyChannelAgentToolMeta
- live-test-helpers: isLiveProfileKeyModeEnabled

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The v2026.3.24 upstream sync brought test changes that probe upstream-only
behaviors not present in the fork (e.g., --tz-with-offset-less-at, plugin
chat-type inference, interleaved root option parsing, slot-based plugin
registry). Reconcile each test file against fork-divergent production:

- test/release-check.test.ts: revert to fork-pre-sync — fork's release-check.ts
  is EXTRACT-divergent (relaxed appcast.xml, fork-only collectBundledExtension-
  RootDependencyGapErrors), and bundled-plugin-build-entries.mjs is EXCLUDE-GUT.
- src/cli/cron-cli.test.ts: drop 7 new --tz-with-at/--every tests; fork's
  schedule-options.ts is EXCLUDE-GUT.
- src/infra/outbound/target-{resolver,normalization}.test.ts: fork's runtime
  exports getActivePluginRegistryVersion (not -ChannelRegistryVersion); rename
  mocks. Drop the new "plugin chat-type inference" test (upstream-only flow).
- src/cli/channel-auth.test.ts: revert to fork-pre-sync — fork's channel-auth.ts
  uses resolveMessageChannelSelection, not upstream's
  resolveConfiguredAuthChannelInput.
- src/cli/profile.test.ts: drop 3 interleaved-root-option tests + the third
  rejection case; fork's parseCliProfileArgs doesn't use scanCliRootOptions.
- src/cli/run-main.exit.test.ts: revert to fork-pre-sync — fork's run-main.ts
  doesn't import container-target/dotenv/root-help/search-manager modules.
- src/config/config.plugin-validation.test.ts: add `workspace: "/tmp/pi"` to
  every agents.list[] fixture (fork's AgentEntrySchema requires it); drop
  google-gemini-cli-auth removed-plugin test (not in fork's
  LEGACY_REMOVED_PLUGIN_IDS); drop slots.memory references (fork's
  zod-schema slots only has contextEngine).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Continue reconciling upstream-synced test changes against fork-divergent
production code:

- src/cli/program/preaction.test.ts: revert (fork's preaction.ts doesn't
  pass scope/allowInvalid args to ensurePluginRegistryLoaded).
- src/cli/daemon-cli/lifecycle-core.test.ts: revert (fork's
  runServiceRestart doesn't honor REMOTECLAW_CONTAINER_HINT).
- src/infra/update-runner.test.ts: seed BUNDLED_RUNTIME_SIDECAR_PATHS
  files in test fixtures so post-install verification step
  (collectInstalledGlobalPackageErrors, added in upstream sync) passes.
- src/infra/remoteclaw-root.test.ts: skip 5 tests that depend on
  vi.mock("node:fs") interception which fork's
  `import fsSync from "node:fs"` doesn't apply consistently in vitest 4.1
  forks pool (upstream solved this with a fs.runtime.ts re-export module,
  out of scope here).
- src/config/io.compat.test.ts: skip CLAWDBOT_CONFIG_PATH legacy override
  (fork's paths.ts only honors REMOTECLAW_CONFIG_PATH) and same-base
  correction publish warning (uses parseRemoteClawVersion that's not
  wired into fork's createConfigIO yet).
- src/config/paths.test.ts: skip stable-order test (fork has 9 brand
  candidate paths, upstream test expects 16 — fork doesn't include
  "moltbot" brand).
- src/config/schema.base.generated.test.ts: skip schema-snapshot match
  (fork's agents schema diverges — upstream added agents.defaults.auth).
- src/logging/console-timestamp.test.ts: skip pretty-style timezone offset
  test (fork's formatConsoleTimestamp emits HH:MM:SS without offset).
- src/media/fetch.test.ts: skip error-body-snippet bound test (fork's
  fetchRemoteMedia includes body snippet in error message; upstream
  bounded it).
- src/pairing/pairing-messages.test.ts: relax assertion from
  `Pairing code: ${code}` (single line) to separate `Pairing code:` and
  `${code}` checks; fork's buildPairingReply emits the code in a markdown
  code block.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@alexey-pelykh alexey-pelykh merged commit 5700f62 into main Apr 28, 2026
16 checks passed
@alexey-pelykh alexey-pelykh deleted the sync/v2026.3.24 branch April 28, 2026 15:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant