惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
T
The Exploit Database - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
F
Fox-IT International blog
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
I
Intezer
P
Privacy & Cybersecurity Law Blog
B
Blog RSS Feed
Latest news
Latest news
小众软件
小众软件
A
Arctic Wolf
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 热门话题
博客园 - 聂微东
B
Blog
T
Troy Hunt's Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
Malwarebytes
Malwarebytes
爱范儿
爱范儿
Recorded Future
Recorded Future
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
D
Docker
T
Threat Research - Cisco Blogs
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
E
Exploit-DB.com RSS Feed
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
PCI Perspectives
PCI Perspectives
Scott Helme
Scott Helme
N
Netflix TechBlog - Medium
博客园 - 三生石上(FineUI控件)
T
True Tiger Recordings
C
Check Point Blog
Microsoft Azure Blog
Microsoft Azure Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
K
Kaspersky official blog
Security Latest
Security Latest
The Hacker News
The Hacker News
Microsoft Security Blog
Microsoft Security Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Stack Overflow Blog
Stack Overflow Blog
S
Security @ Cisco Blogs
C
CXSECURITY Database RSS Feed - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
M
Microsoft Research Blog - Microsoft Research

Recent Commits to openclaw:main

fix: accept trailing fuzzy voice wake questions · openclaw/openclaw@d001d35 fix(podman): bound setup image builds · openclaw/openclaw@d6fcb56 fix(podman): kill timed container launches · openclaw/openclaw@6118f3f fix(scripts): preserve native pnpm exec paths · openclaw/openclaw@fb853de fix(ci): bound docker pull smoke steps · openclaw/openclaw@e96cde7 fix(codex): bridge cli api-key auth into app-server fix: update Discord voice to libopus-wasm 0.1.0 · openclaw/openclaw@0f605ee fix(e2e): kill timed docker helper commands · openclaw/openclaw@e89afa6 fix(ci): kill timed website installer docker steps · openclaw/openclaw@d54c906 fix(scripts): trim macOS node bootstrap · openclaw/openclaw@4ff5a61 fix(ci): kill timed install smoke docker steps · openclaw/openclaw@cf6f9ad feat(ios): show Talk voice mode (#86798) · openclaw/openclaw@19e4c37 fix(setup): kill timed image pulls when supported fix(test): default Vitest stall watchdog fix(ci): bound crabbox hydrate downloads · openclaw/openclaw@d1c8f09 fix(control-ui): guard stale overview usage refresh fix(qa): require genai otel model spans (#86920) refactor: move transcripts into core fix(message-tool): hydrate structured reply attachments fix(e2e): kill timed npm install process groups fix(ci): kill timed workflow process groups fix(e2e): kill timed setup process groups fix(e2e): bound resource-sampled docker runs · openclaw/openclaw@d0dd8b8 fix(mac): fail closed on restart gateway check · openclaw/openclaw@295b5ea fix(e2e): time out live docker setup installs · openclaw/openclaw@8c7f226 ci: resolve major node fallback versions · openclaw/openclaw@e37ac22 ci: use local node toolcache setup · openclaw/openclaw@4c6aeb9 ci: add node download fallback fix(e2e): bound docker npm install phases · openclaw/openclaw@9777526 ci: restore pnpm store cache with corepack · openclaw/openclaw@84e4bff ci: avoid pnpm setup action download · openclaw/openclaw@13f72e4 fix(e2e): time out telegram package installs · openclaw/openclaw@a17ac3e ci: avoid unconditional bun action download · openclaw/openclaw@e549d0c ci: avoid token-backed read checkouts · openclaw/openclaw@df13d3a ci: use unauthenticated workflow fetches fix(e2e): time out package npm installs · openclaw/openclaw@a07dc38 test: speed up slow CI regressions · openclaw/openclaw@30e59b4 fix(release): fail closed on cross-os agent turns · openclaw/openclaw@dfe94ff fix(e2e): reject corrupt plugin update false greens · openclaw/openclaw@419178b fix(qa): preserve corrupt auth profile files · openclaw/openclaw@efebf6b fix(matrix): reject malformed integer cli values · openclaw/openclaw@cb34175 fix(canvas): reject invalid snapshot formats · openclaw/openclaw@884d346 fix(browser): reject invalid wait load states · openclaw/openclaw@13c6a33 fix(ci): time out website installer docker runs · openclaw/openclaw@a3bb4fe fix(discord): gate native built-in UI before owner auth fix(ci): fail Testbox changed-check delegation · openclaw/openclaw@92fb79e fix(ci): time out install smoke docker runs · openclaw/openclaw@30c4489 ci(release): retry transient GitHub API suspension errors (#86859) · openclaw/openclaw@94a04e1 fix(podman): time out detached launches · openclaw/openclaw@8307e2f Auto-scale live tool result caps (#86857) fix(podman): time out setup image pulls · openclaw/openclaw@c2b1d20 perf: use typed arrays for audio codec loops (#86856) · openclaw/openclaw@18ff19e fix(e2e): time out live image pulls · openclaw/openclaw@f0599fd fix(mac): require dist dSYM artifacts · openclaw/openclaw@fe9f28f docs: update changelog for testbox delegation · openclaw/openclaw@71e7a1f fix(e2e): time out installer smoke containers · openclaw/openclaw@9208272 fix: simplify testbox changed-check delegation · openclaw/openclaw@e20b8d7 fix(mac): require packaged app resources · openclaw/openclaw@198d0a5 test: update docker stats helper expectations · openclaw/openclaw@11512b1 fix(e2e): time out live Docker runs · openclaw/openclaw@d1f2eb0 fix(mac): remove unused codesign entitlements · openclaw/openclaw@e8cb2b5 fix(docker): time out setup image pulls · openclaw/openclaw@dcf0941 fix(mac): fail closed on missing staple app · openclaw/openclaw@da16a96 fix(qa-slack): preserve failure debug artifacts · openclaw/openclaw@4ebc13a fix(e2e): time out standalone Docker smokes · openclaw/openclaw@f1ceed9 fix(mac): clean codesign entitlement temps · openclaw/openclaw@68f877e fix(e2e): time out install smoke Docker copies · openclaw/openclaw@1c5b835 fix(mac): fail closed on dmg plist reads · openclaw/openclaw@7aedff8 fix(e2e): route gateway network client through Docker helper · openclaw/openclaw@f2ad94e fix(mac): fail closed on dist plist reads · openclaw/openclaw@8e110a2 test(codex): widen app-server wait timeout type · openclaw/openclaw@4c8e9da fix(e2e): time out Docker image reuse probes docs: clarify compatibility defaults · openclaw/openclaw@4f1cd8e fix(e2e): route named container cleanup through helper · openclaw/openclaw@e295c86 fix(mac): fail closed on plist stamp errors · openclaw/openclaw@91080fd fix(e2e): route focused docker smokes through run helper · openclaw/openclaw@4838e70 fix(mattermost): tag typed text slash control commands · openclaw/openclaw@21aebd5 fix(e2e): route sampled docker runs through helpers fix(e2e): clean package docker artifacts on setup failure · openclaw/openclaw@90bcec9 ci(release): include performance run in validation manifest · openclaw/openclaw@0e73379 test(e2e): harden release media memory smoke · openclaw/openclaw@99032f0 fix(e2e): clean package onboarding artifacts · openclaw/openclaw@f63754b fix(e2e): honor Docker harness run timeouts · openclaw/openclaw@b34e1b3 fix(imessage): dedupe accounts sharing the local Messages source (#86… · openclaw/openclaw@9434228 fix(scripts): detect shell-wrapped changed gates fix(codex): preserve sandbox bootstrap path style · openclaw/openclaw@3f6b63a perf: skip canonical session migration parses · openclaw/openclaw@c5530c7 fix(e2e): clean skill install package mounts · openclaw/openclaw@d3bbfa1 fix(e2e): clean Codex plugin live artifacts · openclaw/openclaw@a5653c0 fix(e2e): clean sampled Docker logs on failure · openclaw/openclaw@b93cee4 refactor: migrate validators to TypeBox (#86639) · openclaw/openclaw@3548cff fix(e2e): clean package mount tarballs · openclaw/openclaw@b377618 fix(scripts): format auth expiries on macos · openclaw/openclaw@437a9e9 fix(e2e): clean functional Docker build inputs Fix iMessage image attachment roots (#86569) · openclaw/openclaw@2e17003 chore(release): refresh plugin sdk api baseline · openclaw/openclaw@918472a fix(e2e): fail on invalid test state payloads · openclaw/openclaw@4a1d772 ci(release): apply exact extension batch excludes fix(installer): reject invalid shell options ci(release): pass vitest batch options before roots
fix(e2e): kill timed live docker runs · openclaw/openclaw@dc0d4c2
vincentkoc · 2026-05-26 · via Recent Commits to openclaw:main

@@ -0,0 +1,90 @@

1+

import { execFileSync } from "node:child_process";

2+

import { chmodSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";

3+

import { tmpdir } from "node:os";

4+

import path from "node:path";

5+

import { afterEach, describe, expect, it } from "vitest";

6+7+

const tempDirs: string[] = [];

8+9+

function makeTempBin(prefix: string) {

10+

const dir = mkdtempSync(path.join(tmpdir(), prefix));

11+

tempDirs.push(dir);

12+

return dir;

13+

}

14+15+

function writeExecutable(filePath: string, contents: string) {

16+

writeFileSync(filePath, contents, "utf8");

17+

chmodSync(filePath, 0o755);

18+

}

19+20+

function resolveDockerRunArgs(pathPrefix: string) {

21+

const script = [

22+

"source scripts/lib/live-docker-auth.sh",

23+

"ARGS=()",

24+

"openclaw_live_init_docker_run_args ARGS 42s",

25+

"printf '%s\\n' \"${ARGS[@]}\"",

26+

].join("\n");

27+28+

return execFileSync("/bin/bash", ["-c", script], {

29+

cwd: process.cwd(),

30+

encoding: "utf8",

31+

env: {

32+

...process.env,

33+

PATH: pathPrefix,

34+

},

35+

}).trimEnd().split("\n");

36+

}

37+38+

afterEach(() => {

39+

while (tempDirs.length > 0) {

40+

rmSync(tempDirs.pop()!, { force: true, recursive: true });

41+

}

42+

});

43+44+

describe("scripts/lib/live-docker-auth.sh", () => {

45+

it("adds a kill-after grace period when timeout supports it", () => {

46+

const binDir = makeTempBin("openclaw-live-docker-auth-gnu-");

47+

writeExecutable(

48+

path.join(binDir, "timeout"),

49+

[

50+

"#!/bin/sh",

51+

'if [ "$1" = "--kill-after=1s" ] && [ "$2" = "1s" ] && [ "$3" = "true" ]; then',

52+

" exit 0",

53+

"fi",

54+

"exit 64",

55+

"",

56+

].join("\n"),

57+

);

58+59+

expect(resolveDockerRunArgs(binDir)).toEqual([

60+

"timeout",

61+

"--kill-after=30s",

62+

"42s",

63+

"docker",

64+

"run",

65+

]);

66+

});

67+68+

it("falls back to plain timeout when kill-after is unavailable", () => {

69+

const binDir = makeTempBin("openclaw-live-docker-auth-plain-");

70+

writeExecutable(

71+

path.join(binDir, "timeout"),

72+

[

73+

"#!/bin/sh",

74+

'if [ "$1" = "--kill-after=1s" ]; then',

75+

" exit 1",

76+

"fi",

77+

"exit 0",

78+

"",

79+

].join("\n"),

80+

);

81+82+

expect(resolveDockerRunArgs(binDir)).toEqual(["timeout", "42s", "docker", "run"]);

83+

});

84+85+

it("uses docker directly when timeout is unavailable", () => {

86+

const binDir = makeTempBin("openclaw-live-docker-auth-no-timeout-");

87+88+

expect(resolveDockerRunArgs(binDir)).toEqual(["docker", "run"]);

89+

});

90+

});