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

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园_首页
博客园 - 【当耐特】
V
Visual Studio Blog
博客园 - 叶小钗
月光博客
月光博客
美团技术团队
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
博客园 - Franky
Martin Fowler
Martin Fowler
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
refactor: trim exec infra exports · openclaw/openclaw@45d...
steipete · 2026-05-02 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -82,7 +82,7 @@ function isKnownArchNameToken(token: string): boolean {

8282
8383

type WrapperScanDirective = "continue" | "consume-next" | "stop" | "invalid";

8484
85-

export function isEnvAssignment(token: string): boolean {

85+

function isEnvAssignment(token: string): boolean {

8686

return /^[A-Za-z_][A-Za-z0-9_]*=.*/.test(token);

8787

}

8888

@@ -531,12 +531,12 @@ const DISPATCH_WRAPPER_SPEC_BY_NAME = new Map(

531531

DISPATCH_WRAPPER_SPECS.map((spec) => [spec.name, spec] as const),

532532

);

533533
534-

export type DispatchWrapperUnwrapResult =

534+

type DispatchWrapperUnwrapResult =

535535

| { kind: "not-wrapper" }

536536

| { kind: "blocked"; wrapper: string }

537537

| { kind: "unwrapped"; wrapper: string; argv: string[] };

538538
539-

export type DispatchWrapperTrustPlan = {

539+

type DispatchWrapperTrustPlan = {

540540

argv: string[];

541541

wrappers: string[];

542542

policyBlocked: boolean;

Original file line numberDiff line numberDiff line change

@@ -40,8 +40,6 @@ import {

4040

} from "./plugin-approvals.js";

4141
4242

const log = createSubsystemLogger("gateway/exec-approvals");

43-

export type { ExecApprovalRequest, ExecApprovalResolved };

44-
4543

type DeliverOutboundPayloads = typeof import("./outbound/deliver.js").deliverOutboundPayloads;

4644

type MaybePromise<T> = T | Promise<T>;

4745

type ResolveSessionTargetFn = (params: {

@@ -126,7 +124,7 @@ export type ExecApprovalForwarder = {

126124

stop: () => void;

127125

};

128126
129-

export type ExecApprovalForwarderDeps = {

127+

type ExecApprovalForwarderDeps = {

130128

getConfig?: () => OpenClawConfig;

131129

deliver?: DeliverOutboundPayloads;

132130

nowMs?: () => number;

Original file line numberDiff line numberDiff line change

@@ -26,12 +26,12 @@ type ExecPolicyConfig = {

2626

ask?: ExecAsk;

2727

};

2828
29-

export type ExecPolicyHostSummary = {

29+

type ExecPolicyHostSummary = {

3030

requested: ExecTarget;

3131

requestedSource: string;

3232

};

3333
34-

export type ExecPolicyFieldSummary<TValue extends ExecSecurity | ExecAsk> = {

34+

type ExecPolicyFieldSummary<TValue extends ExecSecurity | ExecAsk> = {

3535

requested: TValue;

3636

requestedSource: string;

3737

host: TValue;

@@ -54,7 +54,7 @@ export type ExecPolicyScopeSnapshot = {

5454

allowedDecisions: readonly ExecApprovalDecision[];

5555

};

5656
57-

export type ExecPolicyScopeSummary = Omit<ExecPolicyScopeSnapshot, "allowedDecisions">;

57+

type ExecPolicyScopeSummary = Omit<ExecPolicyScopeSnapshot, "allowedDecisions">;

5858
5959

type ExecPolicyRequestedField = "security" | "ask";

6060
Original file line numberDiff line numberDiff line change

@@ -64,7 +64,7 @@ export function makeMockCommandResolution(params: {

6464

});

6565

}

6666
67-

export type ShellParserParityFixtureCase = {

67+

type ShellParserParityFixtureCase = {

6868

id: string;

6969

command: string;

7070

ok: boolean;

@@ -75,7 +75,7 @@ type ShellParserParityFixture = {

7575

cases: ShellParserParityFixtureCase[];

7676

};

7777
78-

export type WrapperResolutionParityFixtureCase = {

78+

type WrapperResolutionParityFixtureCase = {

7979

id: string;

8080

argv: string[];

8181

expectedRawExecutable: string | null;

Original file line numberDiff line numberDiff line change

@@ -22,7 +22,7 @@ export type ExecHostRunResult = {

2222

error?: string | null;

2323

};

2424
25-

export type ExecHostError = {

25+

type ExecHostError = {

2626

code: string;

2727

message: string;

2828

reason?: string;

Original file line numberDiff line numberDiff line change

@@ -1,7 +1,7 @@

11

import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";

22

import { normalizeExecutableToken } from "./exec-wrapper-resolution.js";

33
4-

export type InterpreterInlineEvalHit = {

4+

type InterpreterInlineEvalHit = {

55

executable: string;

66

normalizedExecutable: string;

77

flag: string;

Original file line numberDiff line numberDiff line change

@@ -14,7 +14,7 @@ import {

1414

type WritableTrustedSafeBinDir,

1515

} from "./exec-safe-bin-trust.js";

1616
17-

export type ExecSafeBinConfigScope = {

17+

type ExecSafeBinConfigScope = {

1818

safeBins?: string[] | null;

1919

safeBinProfiles?: SafeBinProfileFixtures | null;

2020

safeBinTrustedDirs?: string[] | null;

Original file line numberDiff line numberDiff line change

@@ -1,6 +1,6 @@

11

import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";

22
3-

export type SafeBinSemanticValidationParams = {

3+

type SafeBinSemanticValidationParams = {

44

binName?: string;

55

positional: readonly string[];

66

};

@@ -64,7 +64,7 @@ export function normalizeSafeBinName(raw: string): string {

6464

return normalized.replace(/\.(?:exe|cmd|bat|com)$/i, "");

6565

}

6666
67-

export function getSafeBinSemanticRule(binName?: string): SafeBinSemanticRule | undefined {

67+

function getSafeBinSemanticRule(binName?: string): SafeBinSemanticRule | undefined {

6868

const normalized = typeof binName === "string" ? normalizeSafeBinName(binName) : "";

6969

return normalized ? SAFE_BIN_SEMANTIC_RULES[normalized] : undefined;

7070

}

Original file line numberDiff line numberDiff line change

@@ -9,7 +9,7 @@ import {

99

unwrapKnownShellMultiplexerInvocation,

1010

} from "./shell-wrapper-resolution.js";

1111
12-

export type ExecWrapperTrustPlan = {

12+

type ExecWrapperTrustPlan = {

1313

argv: string[];

1414

policyArgv: string[];

1515

wrapperChain: string[];

Original file line numberDiff line numberDiff line change

@@ -3,7 +3,7 @@ import path from "node:path";

33

import { normalizeLowercaseStringOrEmpty } from "../shared/string-coerce.js";

44

import { expandHomePrefix } from "./home-dir.js";

55
6-

export function isDriveLessWindowsRootedPath(value: string): boolean {

6+

function isDriveLessWindowsRootedPath(value: string): boolean {

77

return process.platform === "win32" && /^:[\\/]/.test(value);

88

}

99