Skip to content

sync: upstream to v2026.3.13-1 (751 commits)#2398

Merged
alexey-pelykh merged 1 commit intomainfrom
sync/b9-v2026.3.13-1
Apr 18, 2026
Merged

sync: upstream to v2026.3.13-1 (751 commits)#2398
alexey-pelykh merged 1 commit intomainfrom
sync/b9-v2026.3.13-1

Conversation

@alexey-pelykh
Copy link
Copy Markdown

Summary

DIFF-SYNC B9: upstream v2026.3.12v2026.3.13-1 (751 commits).

Disposition

Bucket Count
INCLUDE 800
EXCLUDE (incl. -GUT/-STUB) 296
PROTECTED-M → EXTRACT 39
EXTRACT (original) 29
UNKNOWN 0 ✓
COLLISION 0 ✓

Registry updates (recorded in remoteclaw/hq@7704c74)

  • 2 directory-level INCLUDE rules (src/signal/, src/whatsapp/)
  • 17 file-level INCLUDE overrides (5 extensions/test-utils/, 12 src/browser/, src/test-helpers/whatsapp-outbound.ts)
  • 25 new-upstream EXCLUDE-GUT (provider-usage ×13, memory-tool ×4, pi-* ×3, ollama ×3, exec-approvals ×2)
  • 116 B9-post CI fix EXTRACT (fork-divergent imports)
  • 19 B9-post EXCLUDE-GUT (new upstream files with gutted deps)
  • 2 flipped EXCLUDE-GUT → INCLUDE (extensions/shared/channel-status-summary.ts, passive-monitor.ts)

D.3 stabilization

Applied 800 INCLUDE files wholesale, rebranded (openclaw → remoteclaw, OpenClaw → RemoteClaw, ai.openclaw → org.remoteclaw, Sources/OpenClaw → Sources/RemoteClaw, docs.remoteclaw.ai → docs.remoteclaw.org). Initial pnpm tsgo: 447 errors in 154 files. Stabilization subclaude (b3sdnt2cv, 2h 48m, 138 turns) reverted 116 INCLUDE files to fork HEAD + EXTRACT reclass, deleted 19 new upstream files + EXCLUDE-GUT reclass, flipped 2 EXCLUDE-GUT → INCLUDE, applied 13 .ai → .org rebrand fixes. Final commit: 126 A + 3 D + 539 M = 668 files.

Gates passed

  • pnpm check (format + tsgo + lint + no-random-messaging + no-remoteclaw-ai): PASS
  • D.4.5 fork-marker regression gate: PASS (tombstones 0, stub fingerprints 0, no unregistered EXCLUDE-GUT violations)
  • Rebrand gate: no openclaw/OpenClaw/OPENCLAW/remoteclaw.ai leakage in applied files

EXTRACT hunk porting (D.4) — deferred to follow-up

The 116 INCLUDE→EXTRACT reverts cover files guarded by the Middleware Boundary (provider-usage, model-selection, model-auth, pi-embedded-dependent tools/auto-reply/reply) where upstream improvements require coordinated producer/consumer shape updates (e.g. GatewaySessionsDefaults.contextTokens, NormalizeReplyOptions.enableSlackInteractiveReplies, SessionListRow.contextTokens, SendParams.idempotencyKey, TelegramTransport interface, ChatHost.client/chatModelOverrides). Per-file rationale in upstream/disposition.tsv § B9-post CI fixes. Deferred to a follow-up session for hunk-by-hunk review.

Test plan

  • CI passes (unit + channels + gateway + extensions + performance + scoped + e2e matrices)
  • publish-next simulation: node --import tsx scripts/release-check.ts
  • Post-merge: npm publish @next auto-fires, verify remoteclaw@next installs + runs
  • Regression scan: @mariozechner/pi-agent-core|pi-ai|pi-coding-agent imports grep clean

Upstream range

70d7a0854c..23d5d24b32 — 751 cherry-picked commits listed in commit trailers.

🤖 Generated with Claude Code

B9 DIFF-SYNC: v2026.3.12 → v2026.3.13-1. Disposition gate: 800 INCLUDE / 296 EXCLUDE / 39 PROTECTED-M→EXTRACT / 29 EXTRACT / 0 UNKNOWN / 0 COLLISION. After D.3 build stabilization: 116 INCLUDE→EXTRACT reverts (fork-divergent imports), 19 new-upstream files reclassified EXCLUDE-GUT (gutted deps), 2 EXCLUDE-GUT→INCLUDE (extensions/shared test helpers). 13 .ai→.org rebrand fixes. Final commit: 126 A + 3 D + 539 M = 668 files. pnpm check (format/tsgo/lint/no-random-messaging/no-remoteclaw-ai) PASS. Fork-marker regression gate PASS (tombstones 0, stub fingerprints 0).

Key upstream improvements adopted: new Chrome MCP browser automation (chrome-mcp.ts reclassified INCLUDE but subsequently EXCLUDE-GUT due to pw-role-snapshot/SnapshotAriaNode gutted deps), snapshot-roles.ts + url-pattern.ts adopted, Slack interactive-replies infrastructure applied, new src/browser/routes/ test helpers adopted, extensions/test-utils/ shared test utilities (5 files), src/test-helpers/whatsapp-outbound.ts, hook-auth handshake helpers (EXCLUDE-GUT after apply — bootstrap-token AuthProvidedKind not in fork).

EXTRACT skip summary (116 files deferred to D.4 hunk porting): provider-usage + model-selection + model-auth subsystems (fork-gutted, Middleware Boundary), src/agents/tools/* with pi-embedded rewiring, auto-reply/reply/* with pi-embedded routing + skill-commands, matrix/feishu/mattermost channel tests with upstream-only API assumptions, ui/ views with GatewaySessionsDefaults.contextTokens + ChatHost.client shape divergence. Per-file rationales in upstream/disposition.tsv § B9-post CI fixes.

Upstream-range: 70d7a08..23d5d24
Upstream-boundary: v2026.3.13-1
Cherry-picked-from: 61d171a
Cherry-picked-from: 32dcae9
Cherry-picked-from: 2ae8837
Cherry-picked-from: f6e5b67
Cherry-picked-from: a6bdf2d
Cherry-picked-from: aa0cb4e
Cherry-picked-from: 81ecae9
Cherry-picked-from: 5fc43ff
Cherry-picked-from: bc33192
Cherry-picked-from: 94a2926
Cherry-picked-from: 4f3ed8f
Cherry-picked-from: ad65778
Cherry-picked-from: 7e41ba4
Cherry-picked-from: 2ce6b77
Cherry-picked-from: b6d1d0d
Cherry-picked-from: 1f9cc64
Cherry-picked-from: f4fef64
Cherry-picked-from: f251e7e
Cherry-picked-from: 70459e7
Cherry-picked-from: a142853
Cherry-picked-from: a4a5fdc
Cherry-picked-from: f1d9fcd
Cherry-picked-from: 3fb6292
Cherry-picked-from: 5c40c1c
Cherry-picked-from: b857a8d
Cherry-picked-from: f4a2bbe
Cherry-picked-from: 2659fc6
Cherry-picked-from: df765f6
Cherry-picked-from: 8bc163d
Cherry-picked-from: eee5d7c
Cherry-picked-from: 01674c5
Cherry-picked-from: bed6616
Cherry-picked-from: 66e02b2
Cherry-picked-from: c5d9058
Cherry-picked-from: 6720bf5
Cherry-picked-from: 3bc9d91
Cherry-picked-from: 6ad675c
Cherry-picked-from: 95b4132
Cherry-picked-from: e474ac8
Cherry-picked-from: 0e6f150
Cherry-picked-from: dfcc2fa
Cherry-picked-from: f0179d3
Cherry-picked-from: 8622395
Cherry-picked-from: 7aedb6d
Cherry-picked-from: 013ad58
Cherry-picked-from: 6a61d55
Cherry-picked-from: 1ac4bac
Cherry-picked-from: 6decaeb
Cherry-picked-from: c3e7890
Cherry-picked-from: 97dc493
Cherry-picked-from: e885f19
Cherry-picked-from: 74e50d3
Cherry-picked-from: 55ebdce
Cherry-picked-from: 38b0986
Cherry-picked-from: 8410d5a
Cherry-picked-from: bcbfbb8
Cherry-picked-from: 27e863c
Cherry-picked-from: 10afde9
Cherry-picked-from: 5c73ed6
Cherry-picked-from: d925b01
Cherry-picked-from: 965bdb2
Cherry-picked-from: 200625b
Cherry-picked-from: 17bd36b
Cherry-picked-from: 66cb015
Cherry-picked-from: 8b82a01
Cherry-picked-from: 9cfc2d4
Cherry-picked-from: 757077d
Cherry-picked-from: 42d6e35
Cherry-picked-from: d9a604f
Cherry-picked-from: 231589e
Cherry-picked-from: 258945d
Cherry-picked-from: 0acd1f6
Cherry-picked-from: b61bc49
Cherry-picked-from: 91d9573
Cherry-picked-from: c083192
Cherry-picked-from: f4094ab
Cherry-picked-from: d886ca6
Cherry-picked-from: 5b53481
Cherry-picked-from: 5197171
Cherry-picked-from: 66de731
Cherry-picked-from: 1ec6b01
Cherry-picked-from: 7285e04
Cherry-picked-from: d4b193b
Cherry-picked-from: fb93acb
Cherry-picked-from: 88de476
Cherry-picked-from: 6e3f0f9
Cherry-picked-from: 0db62fc
Cherry-picked-from: 414e9c8
Cherry-picked-from: 997256d
Cherry-picked-from: d7637d3
Cherry-picked-from: 4e055d8
Cherry-picked-from: d1fda7b
Cherry-picked-from: f7f5c24
Cherry-picked-from: 827b166
Cherry-picked-from: d55fa78
Cherry-picked-from: e8a80cf
Cherry-picked-from: 487e188
Cherry-picked-from: 81ea997
Cherry-picked-from: 66aabf5
Cherry-picked-from: 3850ea1
Cherry-picked-from: 8de2f73
Cherry-picked-from: 2bfe188
Cherry-picked-from: e5fe818
Cherry-picked-from: 19edeb1
Cherry-picked-from: e363725
Cherry-picked-from: 604203c
Cherry-picked-from: 5ef458c
Cherry-picked-from: 40ab39b
Cherry-picked-from: 89e52d6
Cherry-picked-from: 2351caa
Cherry-picked-from: 0146345
Cherry-picked-from: 25f458a
Cherry-picked-from: 1aca4c7
Cherry-picked-from: cbd264f
Cherry-picked-from: 8dab4a4
Cherry-picked-from: 4d523f4
Cherry-picked-from: 91f725a
Cherry-picked-from: 9050aa9
Cherry-picked-from: a23a23b
Cherry-picked-from: 9fbb7eb
Cherry-picked-from: 70d6217
Cherry-picked-from: e794417
Cherry-picked-from: 17eaa59
Cherry-picked-from: 958a2f3
Cherry-picked-from: 983fecc
Cherry-picked-from: 2083b05
Cherry-picked-from: 576134e
Cherry-picked-from: 4eb2790
Cherry-picked-from: 9984e83
Cherry-picked-from: 7621589
Cherry-picked-from: 482fdd8
Cherry-picked-from: 226c1be
Cherry-picked-from: 701bed8
Cherry-picked-from: a638509
Cherry-picked-from: dcbc574
Cherry-picked-from: 4523260
Cherry-picked-from: 727fc79
Cherry-picked-from: 4dbab06
Cherry-picked-from: 7676095
Cherry-picked-from: f806b07
Cherry-picked-from: 97aa786
Cherry-picked-from: 614844c
Cherry-picked-from: 5eaa146
Cherry-picked-from: 944a2c9
Cherry-picked-from: 42f9737
Cherry-picked-from: 1886fe5
Cherry-picked-from: 8225b9e
Cherry-picked-from: b644669
Cherry-picked-from: b72ac79
Cherry-picked-from: 320de5e
Cherry-picked-from: 5f87b1e
Cherry-picked-from: 49cbcea
Cherry-picked-from: 2d39c50
Cherry-picked-from: f8efa30
Cherry-picked-from: 54999be
Cherry-picked-from: c90b10b
Cherry-picked-from: 68a507a
Cherry-picked-from: 6e7e82e
Cherry-picked-from: d07c6c0
Cherry-picked-from: ed14682
Cherry-picked-from: 1243927
Cherry-picked-from: fbdea7f
Cherry-picked-from: d78b7b3
Cherry-picked-from: 903cb06
Cherry-picked-from: 91b9c47
Cherry-picked-from: 34a5523
Cherry-picked-from: 2da384e
Cherry-picked-from: ba1d7b2
Cherry-picked-from: e91a5c7
Cherry-picked-from: 4fe59ed
Cherry-picked-from: 26578a1
Cherry-picked-from: 2d1134b
Cherry-picked-from: 6d06c58
Cherry-picked-from: 9442260
Cherry-picked-from: a0fb5c7
Cherry-picked-from: 403e35e
Cherry-picked-from: 0a50eb0
Cherry-picked-from: a9194f7
Cherry-picked-from: 3920c44
Cherry-picked-from: 56798bd
Cherry-picked-from: 285b50c
Cherry-picked-from: 6ad2f79
Cherry-picked-from: 70489cb
Cherry-picked-from: 766f13d
Cherry-picked-from: 3c70e50
Cherry-picked-from: 7a53eb7
Cherry-picked-from: 060f3e5
Cherry-picked-from: 0e8672a
Cherry-picked-from: 4f1195f
Cherry-picked-from: 6ae66a8
Cherry-picked-from: 6e32daa
Cherry-picked-from: e268e7a
Cherry-picked-from: d4f36fe
Cherry-picked-from: 60f2aba
Cherry-picked-from: 7709e4a
Cherry-picked-from: 2235511
Cherry-picked-from: 2d0b9ee
Cherry-picked-from: 816ffb9
Cherry-picked-from: b7ca908
Cherry-picked-from: 4357cf4
Cherry-picked-from: fa05947
Cherry-picked-from: 71a3dd8
Cherry-picked-from: 699ac5a
Cherry-picked-from: 2e409da
Cherry-picked-from: a5a2e48
Cherry-picked-from: 4c77c3a
Cherry-picked-from: e8c300c
Cherry-picked-from: 8240fc5
Cherry-picked-from: fffe587
Cherry-picked-from: 3b9989b
Cherry-picked-from: 1ae2163
Cherry-picked-from: 98716bc
Cherry-picked-from: f8b13e5
Cherry-picked-from: 47a15d7
Cherry-picked-from: 369032c
Cherry-picked-from: 4d16d13
Cherry-picked-from: 50c4e89
Cherry-picked-from: a54bf71
Cherry-picked-from: ff6636e
Cherry-picked-from: bff340c
Cherry-picked-from: 0da9a25
Cherry-picked-from: a56e620
Cherry-picked-from: a474a9c
Cherry-picked-from: b6c297a
Cherry-picked-from: 4df8722
Cherry-picked-from: 0f8531d
Cherry-picked-from: 9b0e333
Cherry-picked-from: d7aa3cc
Cherry-picked-from: 66979bc
Cherry-picked-from: 46d4fe2
Cherry-picked-from: 0201f3f
Cherry-picked-from: fd5243c
Cherry-picked-from: fd340a8
Cherry-picked-from: 6a44ca9
Cherry-picked-from: a7c293b
Cherry-picked-from: 6cabcf3
Cherry-picked-from: f15abb6
Cherry-picked-from: 58a51e2
Cherry-picked-from: 801113b
Cherry-picked-from: f8ee528
Cherry-picked-from: 809785d
Cherry-picked-from: aed626e
Cherry-picked-from: ee80b4b
Cherry-picked-from: 3eb039c
Cherry-picked-from: cad1c95
Cherry-picked-from: 8cd48c2
Cherry-picked-from: c59ae15
Cherry-picked-from: 1b91fa9
Cherry-picked-from: 97ce150
Cherry-picked-from: 301594b
Cherry-picked-from: 0f9e16c
Cherry-picked-from: da51e40
Cherry-picked-from: bd758bb
Cherry-picked-from: aaea0b2
Cherry-picked-from: 07b3f52
Cherry-picked-from: 91c94c8
Cherry-picked-from: b9e5f23
Cherry-picked-from: 36e9a81
Cherry-picked-from: 7b70fa2
Cherry-picked-from: bbb5208
Cherry-picked-from: a5671ea
Cherry-picked-from: 22e9765
Cherry-picked-from: ccd763a
Cherry-picked-from: b471945
Cherry-picked-from: 1d99401
Cherry-picked-from: 41fa63a
Cherry-picked-from: 088d643
Cherry-picked-from: f7b9cfe
Cherry-picked-from: 0790030
Cherry-picked-from: 86caf45
Cherry-picked-from: 9b24f89
Cherry-picked-from: c5dc61e
Cherry-picked-from: 017c0dc
Cherry-picked-from: 0229246
Cherry-picked-from: fd58268
Cherry-picked-from: a4a7958
Cherry-picked-from: 2ebc7e3
Cherry-picked-from: 40b0cbd
Cherry-picked-from: 8ca510a
Cherry-picked-from: b213348
Cherry-picked-from: 4d1fcc1
Cherry-picked-from: 1ea5bba
Cherry-picked-from: 5af8322
Cherry-picked-from: 7ca8804
Cherry-picked-from: a7e5925
Cherry-picked-from: 9a14696
Cherry-picked-from: 854df83
Cherry-picked-from: b5eb329
Cherry-picked-from: 2cf6e2e
Cherry-picked-from: 1dc8e17
Cherry-picked-from: 407d0d2
Cherry-picked-from: a57c590
Cherry-picked-from: 868fd32
Cherry-picked-from: 63802c1
Cherry-picked-from: 1803d16
Cherry-picked-from: aaeb348
Cherry-picked-from: ae1a1fc
Cherry-picked-from: e82ba71
Cherry-picked-from: 7e49e98
Cherry-picked-from: 1ef0aa4
Cherry-picked-from: f59b2b1
Cherry-picked-from: d0337a1
Cherry-picked-from: a66a085
Cherry-picked-from: 65f92fd
Cherry-picked-from: fac7540
Cherry-picked-from: 0826feb
Cherry-picked-from: 56e5b8b
Cherry-picked-from: c04ea0e
Cherry-picked-from: cb99a23
Cherry-picked-from: fb4aa7e
Cherry-picked-from: 2fe4c4f
Cherry-picked-from: 6a9e141
Cherry-picked-from: b7ff825
Cherry-picked-from: ccced29
Cherry-picked-from: 592d932
Cherry-picked-from: 25e900f
Cherry-picked-from: a9d8518
Cherry-picked-from: 110eeec
Cherry-picked-from: 0530d1c
Cherry-picked-from: f2300f4
Cherry-picked-from: b23bfef
Cherry-picked-from: 5b51d92
Cherry-picked-from: d964c15
Cherry-picked-from: 8896a47
Cherry-picked-from: 1683949
Cherry-picked-from: f0d0ad3
Cherry-picked-from: 58baf22
Cherry-picked-from: b9f0eff
Cherry-picked-from: 853999f
Cherry-picked-from: f5b9095
Cherry-picked-from: 158d970
Cherry-picked-from: 52900b4
Cherry-picked-from: 4de2685
Cherry-picked-from: e665888
Cherry-picked-from: fbcea50
Cherry-picked-from: daca6c9
Cherry-picked-from: 9b590c9
Cherry-picked-from: ae5563d
Cherry-picked-from: 2d7a061
Cherry-picked-from: e7863d7
Cherry-picked-from: c659f6c
Cherry-picked-from: eea41f3
Cherry-picked-from: dd54b6f
Cherry-picked-from: 73c2edb
Cherry-picked-from: fa04e62
Cherry-picked-from: a6375a2
Cherry-picked-from: 7235ee5
Cherry-picked-from: 29bc011
Cherry-picked-from: ed3dd6a
Cherry-picked-from: 84a50ac
Cherry-picked-from: ef15600
Cherry-picked-from: 8f852ef
Cherry-picked-from: a2fcaf9
Cherry-picked-from: f06ae90
Cherry-picked-from: 25eb3d5
Cherry-picked-from: 95f8b91
Cherry-picked-from: 7eb38e8
Cherry-picked-from: a879ad7
Cherry-picked-from: 4ec0a12
Cherry-picked-from: ba34266
Cherry-picked-from: 83571fd
Cherry-picked-from: fa1ce9f
Cherry-picked-from: 7119ab1
Cherry-picked-from: e4924a0
Cherry-picked-from: 77d2f9a
Cherry-picked-from: 467a7ba
Cherry-picked-from: 0f637b5
Cherry-picked-from: 9b6790e
Cherry-picked-from: 94531fa
Cherry-picked-from: d9fb1e0
Cherry-picked-from: 1301462
Cherry-picked-from: 4269ea4
Cherry-picked-from: 71639d1
Cherry-picked-from: 12432ca
Cherry-picked-from: d4d0091
Cherry-picked-from: 9ecd189
Cherry-picked-from: 3ffb9f1
Cherry-picked-from: d347a44
Cherry-picked-from: aa551e5
Cherry-picked-from: 65cf2ce
Cherry-picked-from: 67f7d1e
Cherry-picked-from: c889803
Cherry-picked-from: b501071
Cherry-picked-from: d5d2fe1
Cherry-picked-from: de9ea76
Cherry-picked-from: 0159269
Cherry-picked-from: 4674fbf
Cherry-picked-from: 6ecc184
Cherry-picked-from: e64cc90
Cherry-picked-from: 0574ac2
Cherry-picked-from: d7f9035
Cherry-picked-from: 7fd21b6
Cherry-picked-from: d3f46fa
Cherry-picked-from: eca22c0
Cherry-picked-from: 89e0e80
Cherry-picked-from: 8ddb531
Cherry-picked-from: 143ae5a
Cherry-picked-from: 6756e37
Cherry-picked-from: 867dc6a
Cherry-picked-from: a8508f2
Cherry-picked-from: 534e4b1
Cherry-picked-from: 1cea43d
Cherry-picked-from: 6d0e4c7
Cherry-picked-from: 0836bf8
Cherry-picked-from: cdde51c
Cherry-picked-from: 56299ef
Cherry-picked-from: 4ecdd79
Cherry-picked-from: 4fd8b98
Cherry-picked-from: 80569ba
Cherry-picked-from: fe55622
Cherry-picked-from: 2f82ade
Cherry-picked-from: 3a59d40
Cherry-picked-from: 783d320
Cherry-picked-from: 330631a
Cherry-picked-from: 5a9d3ab
Cherry-picked-from: e56e0cc
Cherry-picked-from: 090c0c4
Cherry-picked-from: 0c79c86
Cherry-picked-from: 42ccee6
Cherry-picked-from: e8addf2
Cherry-picked-from: 256c91c
Cherry-picked-from: 651ccf9
Cherry-picked-from: 28b0d8e
Cherry-picked-from: 3e6c837
Cherry-picked-from: d062252
Cherry-picked-from: 8c7bdbe
Cherry-picked-from: c2a9c56
Cherry-picked-from: c355b8a
Cherry-picked-from: 9c08312
Cherry-picked-from: a976cc2
Cherry-picked-from: 1f4b8c4
Cherry-picked-from: 9da06d9
Cherry-picked-from: 9044a10
Cherry-picked-from: a9fd340
Cherry-picked-from: b84c703
Cherry-picked-from: cfc9a21
Cherry-picked-from: 4d686b4
Cherry-picked-from: fc140bb
Cherry-picked-from: ffee3df
Cherry-picked-from: d537904
Cherry-picked-from: 6b49a60
Cherry-picked-from: cd72fa6
Cherry-picked-from: 9747da8
Cherry-picked-from: 377b42c
Cherry-picked-from: e1fedd4
Cherry-picked-from: 0643c0d
Cherry-picked-from: bde0385
Cherry-picked-from: 8b05cd4
Cherry-picked-from: 5f0e97b
Cherry-picked-from: 8dcee1f
Cherry-picked-from: 75c7c16
Cherry-picked-from: 5c07207
Cherry-picked-from: 8c21284
Cherry-picked-from: bf631b5
Cherry-picked-from: eec1b3a
Cherry-picked-from: 9dafcd4
Cherry-picked-from: e762a57
Cherry-picked-from: ec31948
Cherry-picked-from: ba2d57d
Cherry-picked-from: 48853f8
Cherry-picked-from: 28a49aa
Cherry-picked-from: e2fa47f
Cherry-picked-from: f568bd2
Cherry-picked-from: 3957f29
Cherry-picked-from: fca6b57
Cherry-picked-from: 7fe5cd2
Cherry-picked-from: b7afc7b
Cherry-picked-from: 9666188
Cherry-picked-from: d291148
Cherry-picked-from: 2192bb7
Cherry-picked-from: 8dd4545
Cherry-picked-from: 341d3e3
Cherry-picked-from: 35cf3d0
Cherry-picked-from: e7fb2fe
Cherry-picked-from: 784020f
Cherry-picked-from: 1ea97fd
Cherry-picked-from: 5225667
Cherry-picked-from: fff514c
Cherry-picked-from: 8473a29
Cherry-picked-from: c74e521
Cherry-picked-from: 92dbb59
Cherry-picked-from: e08dc6f
Cherry-picked-from: 7d69579
Cherry-picked-from: 4e05357
Cherry-picked-from: 95818a7
Cherry-picked-from: 1a5a3fe
Cherry-picked-from: d53d4dc
Cherry-picked-from: ea82458
Cherry-picked-from: 806e3c1
Cherry-picked-from: 420b067
Cherry-picked-from: 2dd1804
Cherry-picked-from: e731974
Cherry-picked-from: df2bda6
Cherry-picked-from: e6a26e8
Cherry-picked-from: d904f37
Cherry-picked-from: da1ec45
Cherry-picked-from: 5a25580
Cherry-picked-from: 5cc7513
Cherry-picked-from: 855748a
Cherry-picked-from: cba07a4
Cherry-picked-from: feba7ea
Cherry-picked-from: 3a21f8b
Cherry-picked-from: 1fe261f
Cherry-picked-from: f201bad
Cherry-picked-from: 2cd1a4b
Cherry-picked-from: c61f3f4
Cherry-picked-from: 0625547
Cherry-picked-from: ad52724
Cherry-picked-from: 0652b88
Cherry-picked-from: 14c052a
Cherry-picked-from: 95ed44c
Cherry-picked-from: 5067d06
Cherry-picked-from: ae7121d
Cherry-picked-from: a5f0f66
Cherry-picked-from: 44e1c6c
Cherry-picked-from: 8ddaca1
Cherry-picked-from: fd656ed
Cherry-picked-from: 94e7480
Cherry-picked-from: 985be2a
Cherry-picked-from: 4ec0fcf
Cherry-picked-from: 5f34391
Cherry-picked-from: 60dc46a
Cherry-picked-from: b1b6c7a
Cherry-picked-from: 9780e99
Cherry-picked-from: 44cd367
Cherry-picked-from: 07e5fc1
Cherry-picked-from: c209689
Cherry-picked-from: d2a36d0
Cherry-picked-from: f95c09b
Cherry-picked-from: 1a319b7
Cherry-picked-from: fdbfdec
Cherry-picked-from: c3fadff
Cherry-picked-from: dbef3df
Cherry-picked-from: 5939645
Cherry-picked-from: 9c52e1b
Cherry-picked-from: 146cba4
Cherry-picked-from: bf6da81
Cherry-picked-from: 7771444
Cherry-picked-from: ddfa6e6
Cherry-picked-from: 6d159a4
Cherry-picked-from: 7c95a25
Cherry-picked-from: 7c58de2
Cherry-picked-from: 1fefd4e
Cherry-picked-from: 60d308c
Cherry-picked-from: d17490f
Cherry-picked-from: a423b1d
Cherry-picked-from: 3e77263
Cherry-picked-from: c84c76e
Cherry-picked-from: ba9fb4d
Cherry-picked-from: 549cb65
Cherry-picked-from: c351b49
Cherry-picked-from: b8a2b1b
Cherry-picked-from: cda4e90
Cherry-picked-from: 413c8d1
Cherry-picked-from: 0386dcb
Cherry-picked-from: 12cbadd
Cherry-picked-from: eb32f42
Cherry-picked-from: a9b5fe4
Cherry-picked-from: bb84e5e
Cherry-picked-from: cda9eac
Cherry-picked-from: 7817eb0
Cherry-picked-from: 3442acb
Cherry-picked-from: cab2f89
Cherry-picked-from: d2bebfb
Cherry-picked-from: 47b0ee3
Cherry-picked-from: 4a6020c
Cherry-picked-from: cf43951
Cherry-picked-from: 348f8e8
Cherry-picked-from: 0ece383
Cherry-picked-from: 03d0762
Cherry-picked-from: 4f78d85
Cherry-picked-from: 9270c03
Cherry-picked-from: 54728c6
Cherry-picked-from: da2f85a
Cherry-picked-from: 09fd72b
Cherry-picked-from: dfcbfcf
Cherry-picked-from: 5189ba8
Cherry-picked-from: 5024fd0
Cherry-picked-from: f155d8f
Cherry-picked-from: b4a3e53
Cherry-picked-from: e6213b2
Cherry-picked-from: 6bbf2d4
Cherry-picked-from: 96c48f5
Cherry-picked-from: e928f55
Cherry-picked-from: 2622b05
Cherry-picked-from: 0f48556
Cherry-picked-from: 6a545c0
Cherry-picked-from: e895d4d
Cherry-picked-from: 3e92438
Cherry-picked-from: d4d7174
Cherry-picked-from: cf39c03
Cherry-picked-from: 30dbd1a
Cherry-picked-from: 5ba1bfd
Cherry-picked-from: 9e28f5a
Cherry-picked-from: 690f7bb
Cherry-picked-from: 5dd9389
Cherry-picked-from: 8f86cb9
Cherry-picked-from: ec2663e
Cherry-picked-from: a6b4294
Cherry-picked-from: 6cb8729
Cherry-picked-from: 51fe0bf
Cherry-picked-from: 0db1c31
Cherry-picked-from: 1bf56e7
Cherry-picked-from: 897910e
Cherry-picked-from: 7eeefb3
Cherry-picked-from: 389de66
Cherry-picked-from: 03c2814
Cherry-picked-from: 565dc0d
Cherry-picked-from: e003038
Cherry-picked-from: 05a1b0c
Cherry-picked-from: 41c9e3e
Cherry-picked-from: 99b2745
Cherry-picked-from: a3ece09
Cherry-picked-from: 6a1ba52
Cherry-picked-from: 07dacec
Cherry-picked-from: 6cc86ad
Cherry-picked-from: 2f58647
Cherry-picked-from: 7cb6553
Cherry-picked-from: 198c248
Cherry-picked-from: 6464149
Cherry-picked-from: 88b87d8
Cherry-picked-from: b5349f7
Cherry-picked-from: 8633d2e
Cherry-picked-from: b697c05
Cherry-picked-from: 3bf3ebf
Cherry-picked-from: 31c8bb9
Cherry-picked-from: db9c755
Cherry-picked-from: 06bdfc4
Cherry-picked-from: fc408bb
Cherry-picked-from: 5b63f64
Cherry-picked-from: 0bf930b
Cherry-picked-from: 6a9285d
Cherry-picked-from: 54998a1
Cherry-picked-from: c1b3a49
Cherry-picked-from: 5ea03ef
Cherry-picked-from: 84a2a28
Cherry-picked-from: 9c343fb
Cherry-picked-from: 8cef6f2
Cherry-picked-from: f0a266c
Cherry-picked-from: bc9a9cf
Cherry-picked-from: cc3846d
Cherry-picked-from: f5ab0c1
Cherry-picked-from: cc5168b
Cherry-picked-from: 1d300c4
Cherry-picked-from: fbc06f1
Cherry-picked-from: e1b9250
Cherry-picked-from: 5aa79f1
Cherry-picked-from: f3d4bb4
Cherry-picked-from: 3e8d9bc
Cherry-picked-from: 431463d
Cherry-picked-from: 584e3c2
Cherry-picked-from: 29b9e21
Cherry-picked-from: 2920d61
Cherry-picked-from: 4ed3b62
Cherry-picked-from: bec76be
Cherry-picked-from: 8f4e77e
Cherry-picked-from: 572df97
Cherry-picked-from: 91d4f5c
Cherry-picked-from: 987c254
Cherry-picked-from: 1f85c9a
Cherry-picked-from: e25fa44
Cherry-picked-from: 91f1894
Cherry-picked-from: 981062a
Cherry-picked-from: a68caaf
Cherry-picked-from: 118abfb
Cherry-picked-from: 87c447e
Cherry-picked-from: f5b006f
Cherry-picked-from: 2d32cf2
Cherry-picked-from: 4aec20d
Cherry-picked-from: 9b50000
Cherry-picked-from: 7778627
Cherry-picked-from: ee1d4eb
Cherry-picked-from: 644fb76
Cherry-picked-from: 8de94ab
Cherry-picked-from: 4a00cef
Cherry-picked-from: 369430f
Cherry-picked-from: 6a812b6
Cherry-picked-from: e358d57
Cherry-picked-from: a14a326
Cherry-picked-from: 49f3fbf
Cherry-picked-from: acfb95e
Cherry-picked-from: e351a86
Cherry-picked-from: 3ccf5f9
Cherry-picked-from: 592dd35
Cherry-picked-from: b6b5e5c
Cherry-picked-from: fb40b09
Cherry-picked-from: 6b04ab1
Cherry-picked-from: e94ac57
Cherry-picked-from: 7b8e48f
Cherry-picked-from: 1ff8de3
Cherry-picked-from: a4525b7
Cherry-picked-from: 6b07604
Cherry-picked-from: ef8cc3d
Cherry-picked-from: 966653e
Cherry-picked-from: 4171840
Cherry-picked-from: 261a40d
Cherry-picked-from: 3f37afd
Cherry-picked-from: 5018370
Cherry-picked-from: a37e25f
Cherry-picked-from: f4ed317
Cherry-picked-from: 202765c
Cherry-picked-from: 394fd87
Cherry-picked-from: 55e79ad
Cherry-picked-from: ca41473
Cherry-picked-from: 72b6a11
Cherry-picked-from: 80e7da9
Cherry-picked-from: 0a3b9a9
Cherry-picked-from: 3cf06f7
Cherry-picked-from: be8d51c
Cherry-picked-from: 2f03de0
Cherry-picked-from: af4731a
Cherry-picked-from: e9b1e85
Cherry-picked-from: 496176d
Cherry-picked-from: 6142923
Cherry-picked-from: 4e68684
Cherry-picked-from: 45721d5
Cherry-picked-from: b934cb4
Cherry-picked-from: b72c877
Cherry-picked-from: f9ea879
Cherry-picked-from: 2c39cd0
Cherry-picked-from: b28a225
Cherry-picked-from: 60cb1d6
Cherry-picked-from: 84428bb
Cherry-picked-from: 4d3a2f6
Cherry-picked-from: a3eed2b
Cherry-picked-from: 7638052
Cherry-picked-from: c045448
Cherry-picked-from: 8b0e16a
Cherry-picked-from: c761b5b
Cherry-picked-from: 720b9d2
Cherry-picked-from: beff0cf
Cherry-picked-from: e986aa1
Cherry-picked-from: 5ca0233
Cherry-picked-from: 0705225
Cherry-picked-from: 4e27c9b
Cherry-picked-from: f07033e
Cherry-picked-from: 5b06619
Cherry-picked-from: d40a4e3
Cherry-picked-from: 3066607
Cherry-picked-from: aae75b5
Cherry-picked-from: 80e6701
Cherry-picked-from: fa6ff39
Cherry-picked-from: 402f255
Cherry-picked-from: 93e7fca
Cherry-picked-from: a0f09a4
Cherry-picked-from: 32d8ec9
Cherry-picked-from: 6d0939d
Cherry-picked-from: 8023f4c
Cherry-picked-from: c38e7b0
Cherry-picked-from: 16ececf
Cherry-picked-from: 771066d
@alexey-pelykh alexey-pelykh merged commit 04a7853 into main Apr 18, 2026
12 checks passed
@alexey-pelykh alexey-pelykh deleted the sync/b9-v2026.3.13-1 branch April 18, 2026 13:08
alexey-pelykh added a commit that referenced this pull request Apr 18, 2026
B9 sync applied upstream extension package.json files wholesale,
reintroducing two regressions that publish-next's release-check catches
(but PR CI doesn't exercise):

1. **Version drift** (23 extensions): upstream bumped to CalVer 2026.3.13;
   fork convention is 0.6.0 (ADR-era floor). All 23 reverted.

2. **Stale allowlist entries** (6 extensions): rootDependencyMirrorAllowlist
   listed packages that ARE in root package.json (not missing) — validator
   flags as drift. Emptied allowlist for googlechat, matrix, msteams, nostr,
   tlon, zalouser.

3. **Gutted dep reintroduction** (matrix): upstream re-added
   @mariozechner/pi-agent-core to extensions/matrix/package.json
   (dependencies). Fork gutted this per Middleware Boundary Principle.
   Not imported in matrix code; removed from deps.

Local release-check exits 0. Companion to PR #2398 (merged 04a7853).
alexey-pelykh added a commit that referenced this pull request Apr 18, 2026
B9 sync applied upstream extension package.json files wholesale,
reintroducing two regressions that publish-next's release-check catches
(but PR CI doesn't exercise):

1. **Version drift** (23 extensions): upstream bumped to CalVer 2026.3.13;
   fork convention is 0.6.0 (ADR-era floor). All 23 reverted.

2. **Stale allowlist entries** (6 extensions): rootDependencyMirrorAllowlist
   listed packages that ARE in root package.json (not missing) — validator
   flags as drift. Emptied allowlist for googlechat, matrix, msteams, nostr,
   tlon, zalouser.

3. **Gutted dep reintroduction** (matrix): upstream re-added
   @mariozechner/pi-agent-core to extensions/matrix/package.json
   (dependencies). Fork gutted this per Middleware Boundary Principle.
   Not imported in matrix code; removed from deps.

Local release-check exits 0. Companion to PR #2398 (merged 04a7853).
alexey-pelykh added a commit that referenced this pull request Apr 18, 2026
…2399)

B9 sync applied upstream extension package.json files wholesale,
reintroducing two regressions that publish-next's release-check catches
(but PR CI doesn't exercise):

1. **Version drift** (23 extensions): upstream bumped to CalVer 2026.3.13;
   fork convention is 0.6.0 (ADR-era floor). All 23 reverted.

2. **Stale allowlist entries** (6 extensions): rootDependencyMirrorAllowlist
   listed packages that ARE in root package.json (not missing) — validator
   flags as drift. Emptied allowlist for googlechat, matrix, msteams, nostr,
   tlon, zalouser.

3. **Gutted dep reintroduction** (matrix): upstream re-added
   @mariozechner/pi-agent-core to extensions/matrix/package.json
   (dependencies). Fork gutted this per Middleware Boundary Principle.
   Not imported in matrix code; removed from deps.

Local release-check exits 0. Companion to PR #2398 (merged 04a7853).
alexey-pelykh added a commit that referenced this pull request Apr 23, 2026
…theme-orb vocabulary — resolve v2026.3.13-1 sync drift (#2509)

Cluster 2 of #2502 CSS class drift audit. The v2026.3.13-1 upstream sync
(04a7853, #2398) also renamed `.nav*` → `.sidebar*` and replaced the
`.theme-toggle*` segmented-button component with `.theme-orb*` trigger +
dropdown. ui/src/ui/app-render.ts and app-render.helpers.ts were
fork-diverged and not paired-updated in #2501/#2506 — this PR covers the
residue (5 orphans from the same sync commit).

Changes:
- app-render.ts: `<aside class="nav …nav--collapsed">` → `.sidebar
  …sidebar--collapsed` (the `.nav` rule was removed upstream; `.sidebar`
  at layout.css:324 + `.sidebar--collapsed` at layout.css:350 plus 20+
  descendant selectors at layout.css:630-801 drive the collapsed visual).
- app-render.helpers.ts: replace `renderThemeToggle` segmented-button
  implementation with theme-orb trigger + dropdown menu pattern mirroring
  upstream f76a3c5. Adds setOpen/toggleOpen/pickMode helpers, THEME_
  MODE_OPTIONS, and renderThemeModeIcon (DRY over trigger + options).
  Preserves fork's pointer-coord ThemeTransitionContext for the ripple
  theme transition (upstream's `pick` targets skins, not modes — fork
  needs the fine-grained origin). Keeps local renderSunIcon /
  renderMoonIcon / renderMonitorIcon helpers (still live via
  renderThemeModeIcon).

Verification:
- `node scripts/audit-css-class-drift.mjs`: cluster 04a7853 is gone
  from the report (orphans 36→31, clusters 3→2); remaining clusters
  (0667aa5: 21 config-*, 21ac4b9: 1 .btn-sm) are out of scope per
  #2502's per-cluster routing.
- `pnpm tsgo` (0 errors), `pnpm lint` (0 warnings/errors), `pnpm test`
  (800 files, 7014 tests passing), `pnpm format` idempotent.
- Fork-integrity gates: zombie-import, stub-debt (126 baseline),
  throwing-stub-callers — all pass.

Third instance of the definition-site-sync-without-paired-call-site-
update variant documented in HQ #57 (#2493 and #2501 were the first two).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
alexey-pelykh added a commit that referenced this pull request Apr 23, 2026
…theme-orb vocabulary — resolve v2026.3.13-1 sync drift (#2509) (#2514)

Cluster 2 of #2502 CSS class drift audit. The v2026.3.13-1 upstream sync
(04a7853, #2398) also renamed `.nav*` → `.sidebar*` and replaced the
`.theme-toggle*` segmented-button component with `.theme-orb*` trigger +
dropdown. ui/src/ui/app-render.ts and app-render.helpers.ts were
fork-diverged and not paired-updated in #2501/#2506 — this PR covers the
residue (5 orphans from the same sync commit).

Changes:
- app-render.ts: `<aside class="nav …nav--collapsed">` → `.sidebar
  …sidebar--collapsed` (the `.nav` rule was removed upstream; `.sidebar`
  at layout.css:324 + `.sidebar--collapsed` at layout.css:350 plus 20+
  descendant selectors at layout.css:630-801 drive the collapsed visual).
- app-render.helpers.ts: replace `renderThemeToggle` segmented-button
  implementation with theme-orb trigger + dropdown menu pattern mirroring
  upstream f76a3c5. Adds setOpen/toggleOpen/pickMode helpers, THEME_
  MODE_OPTIONS, and renderThemeModeIcon (DRY over trigger + options).
  Preserves fork's pointer-coord ThemeTransitionContext for the ripple
  theme transition (upstream's `pick` targets skins, not modes — fork
  needs the fine-grained origin). Keeps local renderSunIcon /
  renderMoonIcon / renderMonitorIcon helpers (still live via
  renderThemeModeIcon).

Verification:
- `node scripts/audit-css-class-drift.mjs`: cluster 04a7853 is gone
  from the report (orphans 36→31, clusters 3→2); remaining clusters
  (0667aa5: 21 config-*, 21ac4b9: 1 .btn-sm) are out of scope per
  #2502's per-cluster routing.
- `pnpm tsgo` (0 errors), `pnpm lint` (0 warnings/errors), `pnpm test`
  (800 files, 7014 tests passing), `pnpm format` idempotent.
- Fork-integrity gates: zombie-import, stub-debt (126 baseline),
  throwing-stub-callers — all pass.

Third instance of the definition-site-sync-without-paired-call-site-
update variant documented in HQ #57 (#2493 and #2501 were the first two).

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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