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

推薦訂閱源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
量子位
M
Microsoft Research Blog - Microsoft Research
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
罗磊的独立博客
V
Visual Studio Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
IT之家
IT之家
aimingoo的专栏
aimingoo的专栏
雷峰网
雷峰网
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | 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

Recent Commits to openclaw:main

fix(image): hint safe provider timeout (#85812) · openclaw/openclaw@8ede81a docs(skills): require autoreview before bug sweep URLs test: bound Codex app-server cleanup waits · openclaw/openclaw@6fc9d7b fix(web-ui): improve light theme visibility for select arrows and bub… · openclaw/openclaw@ae79e6e test: align full release dispatch assertion fix(scripts): route check stages through managed runner · openclaw/openclaw@353d132 test: clean up Codex app-server run failures · openclaw/openclaw@9cef99f ci: retry release child workflow dispatch · openclaw/openclaw@ee61f79 test: isolate Codex report snapshot tests perf(gateway): reduce startup filesystem probes · openclaw/openclaw@edbd833 ci: retry GHCR docker login · openclaw/openclaw@fcb9c46 ci: harden manual checkout auth · openclaw/openclaw@d42bc0b fix(scripts): avoid Windows shell argv warnings · openclaw/openclaw@208a067 ci: fix release reachability auth · openclaw/openclaw@02b1c8c docs: note docs publishing routing · openclaw/openclaw@388b24a ci: harden release package validation · openclaw/openclaw@41f4605 ci(testbox): expose stable pnpm through corepack · openclaw/openclaw@3e14f54 ci(testbox): avoid ready raw runners after hydration failure perf(gateway): defer startup-idle runtime work · openclaw/openclaw@f1226ae ci: harden beta release validation flakes · openclaw/openclaw@391f29b test: type codex thread request mocks · openclaw/openclaw@86a0502 test: avoid codex heartbeat lifecycle timeout · openclaw/openclaw@85664f8 fix(scripts): run Windows check commands through shims · openclaw/openclaw@8a94e82 fix: aggressively prune retired model catalogs fix: harden package URL downloads (#85578) ci: retry npm Telegram release dispatch test: isolate Telegram spooled timeout from stall watchdog · openclaw/openclaw@a04566d fix(exec-approvals): add .catch() to expiry delivery fire-and-forget … fix(memory-core): avoid double bulleting promoted snippets (#85724) · openclaw/openclaw@983a3b9 fix(doctor): skip empty entries and memoize routes in plugin session … ci: avoid duplicate release-check auth headers · openclaw/openclaw@6191750 fix: prune retired model catalog entries ci: authenticate release-check reachability fetches · openclaw/openclaw@0c192e2 refactor(telegram): simplify action media sends · openclaw/openclaw@0540025 fix(telegram): send attachment paths as media · openclaw/openclaw@fdf01db docs(changelog): note Telegram attachment action fix · openclaw/openclaw@c5f1344 fix(doctor): canonicalize git checkout detection (#85735) test(ci): update plugin prerelease checkout expectation ci: persist checkout credentials for release validation test(codex): avoid searchable-tool registration flake · openclaw/openclaw@5e8c71b refactor: simplify doctor repair checks (#83753) docs(changelog): credit landed bug sweep PRs · openclaw/openclaw@24de304 perf(utils): preserve message identity in stripInlineDirectiveTagsFro… · openclaw/openclaw@bf84b30 fix(agents): add openai-responses family to non-visible turn retry gu… · openclaw/openclaw@49e9c3e fix(status): show configured cost for aws-sdk models (#85619) · openclaw/openclaw@6e289b4 fix(microsoft-foundry): DeepSeek V4 models incorrectly use openai-com… · openclaw/openclaw@ec43acb fix(skills): show empty state notice in config wizard (#85032) · openclaw/openclaw@74e65f4 test(codex): avoid forced-tool allowlist flake · openclaw/openclaw@ef7e652 fix: avoid gateway startup event-loop stalls test(codex): type forced-tool request mock · openclaw/openclaw@f6ab188
修整控制界面:恢复亮色选择箭头 · openclaw/openclaw@266f38b
sallyom · 2026-05-24 · via Recent Commits to openclaw:main
原本行数差异行数差异变改

@@ -79,6 +79,7 @@ Docs: https://docs.openclaw.ai

7979

- Providers/Anthropic: migrate 1M context handling to GA-capable Claude 4.x models by sizing eligible models at 1M without the retired `context-1m-2025-08-07` beta, ignoring that retired beta in older configs, and preserving OAuth-required Anthropic beta headers. (#45613) Thanks @haoyu-haoyu.

8080

- Cron/Telegram: parse forum-topic delivery targets through the Telegram plugin instead of cron core, including `:topic:` and `:topicId` forms for announce delivery. Thanks @etticat.

8181

- Twitch: keep stale message-handler cleanup callbacks from removing newer handler registrations for the same account, preserving inbound message delivery after reconnects. Fixes #83888. (#85425) Thanks @alkor2000.

82+

- Control UI/chat: keep light-mode model, thinking, config, and agents select arrows visible without tiling background icons. Fixes #85713. Thanks @Linux2010.

8283

- Memory/LanceDB: expose public memory artifacts through the active memory provider bridge so memory-wiki imports durable memory files, daily notes, dream reports, and event logs without depending on memory-core internals. Fixes #83604. (#85060) Thanks @brokemac79.

8384

- Crabbox: keep AWS hydration compatible with local Actions replay by inlining the hydrate workflow's Node/pnpm setup instead of invoking repo-local composite actions.

8485

- Agents/subagents: simplify native sub-agent completion handoff so children report their latest visible assistant result to the requester without using `message`, while keeping parent-owned message-tool delivery policy intact. Fixes #85070. (#85089) Thanks @brokemac79.

原本行数差异行数差异变改

@@ -369,7 +369,7 @@ img.chat-avatar {

369369

border-color: color-mix(in srgb, var(--accent) 28%, var(--border));

370370

}

371371
372-

:root[data-theme-mode="light"] .chat-bubble:hover {

372+

:root[data-theme-mode="light"] .chat-bubble:not(:where(.chat-bubble--tool-shell)):hover {

373373

border-color: color-mix(in srgb, var(--accent) 48%, var(--border));

374374

box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent);

375375

}

原本行数差异行数差异变改

@@ -1670,10 +1670,14 @@

16701670

:root[data-theme-mode="light"] .field input,

16711671

:root[data-theme-mode="light"] .field textarea,

16721672

:root[data-theme-mode="light"] .field select {

1673-

background: var(--card);

1673+

background-color: var(--card);

16741674

border-color: var(--input);

16751675

}

16761676
1677+

:root[data-theme-mode="light"] .field select {

1678+

background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23444' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");

1679+

}

1680+
16771681

:root[data-theme-mode="light"] .btn {

16781682

background: var(--bg);

16791683

border-color: var(--input);

@@ -4486,6 +4490,7 @@ td.data-table-key-col {

44864490
44874491

:root[data-theme-mode="light"] .agents-select {

44884492

background-color: white;

4493+

background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23444' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");

44894494

}

44904495
44914496

.agents-select:focus {

原本行数差异行数异行改易

@@ -39,6 +39,22 @@ describe("agent fallback chip styles", () => {

3939

});

4040

});

4141
42+

describe("field select styles", () => {

43+

it("keeps light-mode native select arrows visible without tiling", () => {

44+

const css = readComponentsCss();

45+
46+

expect(css).toMatch(

47+

/\.field select \{[\s\S]*background-image: url\("data:image\/svg\+xml,[^"]*stroke='%23a1a1aa'[^"]*"\);[\s\S]*background-repeat: no-repeat;[\s\S]*background-position: right 10px center;/,

48+

);

49+

expect(css).toMatch(

50+

/:root\[data-theme-mode="light"\] \.field input,[\s\S]*:root\[data-theme-mode="light"\] \.field textarea,[\s\S]*:root\[data-theme-mode="light"\] \.field select \{[\s\S]*background-color: var\(--card\);[\s\S]*border-color: var\(--input\);[\s\S]*\}\n\n:root\[data-theme-mode="light"\] \.field select \{[\s\S]*background-image: url\("data:image\/svg\+xml,[^"]*stroke='%23444'[^"]*"\);/,

51+

);

52+

expect(css).not.toContain(

53+

':root[data-theme-mode="light"] .field select {\n background: var(--card);',

54+

);

55+

});

56+

});

57+
4258

describe("sessions filter styles", () => {

4359

it("keeps the expanded sessions filters on one row until the mobile breakpoint", () => {

4460

const css = readComponentsCss();

原本文件行数异行数异行改易

@@ -24,4 +24,15 @@ describe("config styles", () => {

2424

expect(css).not.toContain("margin: 0 -16px -32px");

2525

expect(css).not.toContain("margin: 0 -8px -16px");

2626

});

27+
28+

it("keeps light-mode config select arrows visible", () => {

29+

const css = readConfigCss();

30+
31+

expect(css).toMatch(

32+

/\.cfg-select \{[\s\S]*background-image: url\("data:image\/svg\+xml,[^"]*stroke='%23888'[^"]*"\);[\s\S]*background-repeat: no-repeat;[\s\S]*background-position: right 10px center;/,

33+

);

34+

expect(css).toMatch(

35+

/:root\[data-theme-mode="light"\] \.cfg-select \{[\s\S]*background-color: white;[\s\S]*border-color: var\(--border\);[\s\S]*background-image: url\("data:image\/svg\+xml,[^"]*stroke='%23444'[^"]*"\);/,

36+

);

37+

});

2738

});

原本文件行数异行数异行改易

@@ -146,4 +146,15 @@ describe("grouped chat width styles", () => {

146146
147147

expect(css).toContain("max-width: var(--chat-message-max-width, min(900px, 68%));");

148148

});

149+
150+

it("excludes tool shells from light hover without overriding user bubble hover", () => {

151+

const css = readGroupedChatCss();

152+
153+

expect(css).toContain(

154+

':root[data-theme-mode="light"] .chat-bubble:not(:where(.chat-bubble--tool-shell)):hover',

155+

);

156+

expect(css).not.toContain(

157+

':root[data-theme-mode="light"] .chat-bubble:not(.chat-bubble--tool-shell):hover',

158+

);

159+

});

149160

});