慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

人人都是产品经理
人人都是产品经理
美团技术团队
J
Java Code Geeks
T
The Exploit Database - CXSecurity.com
博客园 - 聂微东
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Proofpoint News Feed
AWS News Blog
AWS News Blog
博客园_首页
S
Secure Thoughts
S
Schneier on Security
量子位
Simon Willison's Weblog
Simon Willison's Weblog
H
Help Net Security
Spread Privacy
Spread Privacy
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
M
Microsoft Research Blog - Microsoft Research
T
Tailwind CSS Blog
The Cloudflare Blog
V
V2EX - 技术
I
InfoQ
O
OpenAI News
有赞技术团队
有赞技术团队
F
Fortinet All Blogs
Google DeepMind News
Google DeepMind News
V
V2EX
Jina AI
Jina AI
Hacker News: Ask HN
Hacker News: Ask HN
F
Future of Privacy Forum
C
Comments on: Blog
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
Cyberwarzone
Cyberwarzone
Project Zero
Project Zero
P
Privacy International News Feed
H
Hacker News: Front Page
Engineering at Meta
Engineering at Meta
Security Latest
Security Latest
P
Privacy & Cybersecurity Law Blog
Recent Announcements
Recent Announcements
小众软件
小众软件
The Hacker News
The Hacker News
Martin Fowler
Martin Fowler
T
Threatpost
P
Proofpoint News Feed
博客园 - 司徒正美
S
SegmentFault 最新的问题

Recent Commits to openclaw:main

fix(ci): pin aged lru cache lock entry · openclaw/openclaw@8ee767b fix(matrix): keep fallback tool warnings mention-inert · openclaw/openclaw@d2a1f62 fix(ci): preserve forked shrinkwrap pins · openclaw/openclaw@98a9a52 fix(e2e): bound agent turn assertion logs · openclaw/openclaw@162a79b perf(gateway): slim current metadata identity cache · openclaw/openclaw@97a8c09 chore(release): prepare 2026.5.27 · openclaw/openclaw@7aaca4a fix(e2e): zero log tail buffers · openclaw/openclaw@46f5905 fix(memory): salvage qmd search JSON after nonzero exit (#87225) · openclaw/openclaw@b7a5bcb Harden hostname normalization for repeated trailing dots [AI] (#87305) · openclaw/openclaw@0314d67 fix(e2e): harden kitchen sink log tailing · openclaw/openclaw@12dc398 fix: block side-effecting command wrappers [AI] (#87292) · openclaw/openclaw@8e41c11 fix(e2e): bound bundled runtime log scans · openclaw/openclaw@694907d fix(matrix): ignore filename-embedded mxids · openclaw/openclaw@5574f75 fix(e2e): relax kitchen sink plugin memory guard · openclaw/openclaw@20eab65 fix(gateway): require admin for device role approvals (#87146) · openclaw/openclaw@0d0bddf Block unsafe Node runtime env overrides [AI] (#87308) · openclaw/openclaw@9159013 fix(matrix): await shared DM notices · openclaw/openclaw@d242774 fix(e2e): bound Telegram proof log polling fix(matrix): send mention finals normally · openclaw/openclaw@0d56583 fix(matrix): preserve final mention delivery · openclaw/openclaw@bca2501 fix(matrix): keep draft previews mention-inert · openclaw/openclaw@96eec2a fix(e2e): bound Open WebUI control probes · openclaw/openclaw@5eeaa56 fix(qa): use read failure for Matrix mention progress · openclaw/openclaw@bf5fef8 test(qa): assert final-first Matrix mention previews fix(qa): keep Matrix mention preview finals strict · openclaw/openclaw@b8cf83a fix(e2e): bound ClawHub preflight waits · openclaw/openclaw@5bf1f16 fix(qa): relax Matrix artifact modes on Windows · openclaw/openclaw@101c834 fix(auto-reply): suppress reasoning-prefixed NO_REPLY · openclaw/openclaw@0c493a1 fix(e2e): bound kitchen sink log scans · openclaw/openclaw@4d099c3 fix(qa): force Matrix mention progress search · openclaw/openclaw@e2f6734 Deprecate memory-specific embedding provider registration (#85072) · openclaw/openclaw@c9d4f7e fix(ci): bound real behavior proof API waits · openclaw/openclaw@4a8d89f fix(gateway): reject no-auth tailscale exposure · openclaw/openclaw@dc5954b fix(agents): avoid false Codex runtime live switches perf(gateway): trust current metadata lifecycle cache chore(release): update appcast for 2026.5.26 · openclaw/openclaw@c95b51f refactor: move channel message sdk compat into core · openclaw/openclaw@8e5183c ci(release): harden postpublish verification · openclaw/openclaw@ef17bba ci(release): accept main full-validation proof · openclaw/openclaw@1e67af7 fix(cli): reject malformed gateway timeouts · openclaw/openclaw@e61f175 fix(dev): bound issue labeler OpenAI waits fix(openai): normalize responses replay tool ids fix(status): keep default status fast path bounded · openclaw/openclaw@7121f67 feat(embeddings): add OpenAI-compatible core provider (#85269) · openclaw/openclaw@4d89e00 Make Telegram sendMessage actions durable (#87261) · openclaw/openclaw@f3fe48e fix(dev): bound gh-read API waits · openclaw/openclaw@5fb57b5 fix(vllm): wire configured thinking params · openclaw/openclaw@e153ece fix(agents): separate heartbeat runtime template (#85416) · openclaw/openclaw@75221e0 fix(agents): honor OpenAI-compatible cache retention · openclaw/openclaw@3e351b7 fix: require admin for node device approvals · openclaw/openclaw@517ce3d
修整(fix(ci)):合并嵌套收缩包裹覆盖固定 · 开爪(openclaw)@c285766
vincentkoc · 2026-05-28 · via Recent Commits to openclaw:main

@@ -4,6 +4,7 @@ import { parse } from "yaml";

44

import {

55

collectCurrentShrinkwrapOverrides,

66

collectPnpmLockViolations,

7+

mergeOverrides,

78

parsePnpmPackageKey,

89

readShrinkwrapOverrides,

910

} from "../scripts/generate-npm-shrinkwrap.mjs";

@@ -132,6 +133,82 @@ describe("package manager build policy", () => {

132133

});

133134

});

134135136+

it("merges exact current shrinkwrap pins with nested lock-derived pins", () => {

137+

expect(

138+

mergeOverrides(

139+

{ "@mistralai/mistralai": "2.2.1" },

140+

{ "@mistralai/mistralai": { ".": "2.2.1", zod: "4.4.3" } },

141+

{},

142+

),

143+

).toEqual({

144+

"@mistralai/mistralai": { ".": "2.2.1", zod: "4.4.3" },

145+

});

146+

});

147+148+

it("preserves npm alias pins when merging nested lock-derived pins", () => {

149+

expect(

150+

mergeOverrides(

151+

{ "node-domexception": "npm:@nolyfill/domexception@1.0.28" },

152+

{ "node-domexception": { ".": "1.0.28", child: "2.0.0" } },

153+

{},

154+

),

155+

).toEqual({

156+

"node-domexception": {

157+

".": "npm:@nolyfill/domexception@1.0.28",

158+

child: "2.0.0",

159+

},

160+

});

161+

});

162+163+

it("preserves later npm alias pins when nested pins are already merged", () => {

164+

expect(

165+

mergeOverrides(

166+

{ "node-domexception": { ".": "1.0.28", child: "2.0.0" } },

167+

{ "node-domexception": "npm:@nolyfill/domexception@1.0.28" },

168+

{},

169+

),

170+

).toEqual({

171+

"node-domexception": {

172+

".": "npm:@nolyfill/domexception@1.0.28",

173+

child: "2.0.0",

174+

},

175+

});

176+

});

177+178+

it("rejects non-exact root pins when merging nested pins", () => {

179+

expect(() =>

180+

mergeOverrides(

181+

{ "floating-package": "^1.0.0" },

182+

{ "floating-package": { ".": "~1.0.0", child: "2.0.0" } },

183+

{},

184+

),

185+

).toThrow(/conflicts with pnpm lock policy/u);

186+

expect(() =>

187+

mergeOverrides(

188+

{ "floating-package": { ".": "^1.0.0", child: "2.0.0" } },

189+

{ "floating-package": "~1.0.0" },

190+

{},

191+

),

192+

).toThrow(/conflicts with pnpm lock policy/u);

193+

});

194+195+

it("rejects distinct npm alias targets with matching versions", () => {

196+

expect(() =>

197+

mergeOverrides(

198+

{ "aliased-package": "npm:@safe/foo@1.0.0" },

199+

{ "aliased-package": { ".": "npm:@other/foo@1.0.0", child: "2.0.0" } },

200+

{},

201+

),

202+

).toThrow(/conflicts with pnpm lock policy/u);

203+

expect(() =>

204+

mergeOverrides(

205+

{ "aliased-package": { ".": "npm:@safe/foo@1.0.0", child: "2.0.0" } },

206+

{ "aliased-package": "npm:@other/foo@1.0.0" },

207+

{},

208+

),

209+

).toThrow(/conflicts with pnpm lock policy/u);

210+

});

211+135212

it("keeps npm shrinkwrap package versions inside the pnpm lock graph", () => {

136213

const pnpmLockPackages = collectPnpmLockPackages();

137214

const shrinkwrapPaths = [