540 Commits

Author SHA1 Message Date
程序员阿江(Relakkes)
4c3b08c0a4 fix(security): harden desktop request isolation 2026-07-14 02:12:03 +08:00
程序员阿江-Relakkes
d3bf146c46
Merge pull request #1015 from toBerlinWay/feat/security-hardening
feat: harden local server access policy and isolate remote preview permissions
2026-07-14 01:54:02 +08:00
程序员阿江(Relakkes)
5178d7ceec feat(provider): add Grok official OAuth support 2026-07-13 21:24:55 +08:00
toBerlinWay
703e8d066c feat: harden local server access policy and isolate remote preview permissions 2026-07-13 16:55:54 +08:00
程序员阿江(Relakkes)
f44442033e fix(permission): fix bypass switching and Auto confirmation #978 2026-07-13 14:59:53 +08:00
程序员阿江(Relakkes)
c550dbc07a fix(desktop): refine and restore effort selection #1007 2026-07-13 14:53:58 +08:00
程序员阿江(Relakkes)
fb4c4f7684 fix(permission): speed up Auto mode switching #978 2026-07-13 12:54:31 +08:00
程序员阿江(Relakkes)
5871188084 fix(diagnostics): harden diagnostics and recovery flows
Make diagnostics evidence bounded, share-safe, and resilient to concurrent
writers and corrupt segments. Improve Doctor repair safeguards, Electron
runtime recovery, Settings visibility, accessibility, and issue reporting.
2026-07-12 00:26:04 +08:00
程序员阿江(Relakkes)
ad2a504bba feat(permission): add Auto mode #978 2026-07-11 20:06:36 +08:00
程序员阿江(Relakkes)
c80b943e34 fix(desktop): avoid browser-blocked server ports #961 2026-07-11 17:45:32 +08:00
程序员阿江(Relakkes)
20bb86ab63 fix(server): keep Explorer windows visible #983
Do not pass windowsHide to detached GUI open targets, which forwards SW_HIDE to Explorer and IDE windows on Windows. Preserve detached process lifetime and ignored stdio.

Tests: open-target 33/33; server 1624/1624; coverage 5/5 with changed lines 6/6; real macOS Finder reveal passed for a temporary CJK and ampersand path.

Remaining validation: packaged Windows 11 Explorer and IDE window smoke.

Confidence: high

Scope-risk: narrow
2026-07-11 04:37:30 +08:00
程序员阿江(Relakkes)
936d970751 fix(server): expose desktop sessions to Claude resume #988
Stamp desktop-owned transcripts with the claude-desktop entrypoint while preserving the SDK runtime entrypoint used for provider authentication.

Tests: focused regression 41/41; chat contract 240/240; server 1622/1622; coverage 5/5 with changed lines 4/4.

Live-path proof: hermetic loopback transcript was visible in Claude Code 2.1.206 /resume; no real user credentials or config were used.

Constraint: check:impact remains policy-blocked until a PR has the allow-cli-core-change label.

Confidence: high

Scope-risk: narrow
2026-07-11 04:08:43 +08:00
程序员阿江(Relakkes)
d6cd0f1fc7 Merge branch 'main' into HEAD 2026-07-11 03:25:58 +08:00
程序员阿江(Relakkes)
caa6e4ca00 merge: GPT-5.6 OpenAI support (#997) 2026-07-11 02:56:38 +08:00
程序员阿江(Relakkes)
0fa6452cf2 fix(openai): support GPT-5.6 models (#997)
Load the authenticated Codex model catalog with a bundled fallback and carry model-native reasoning effort through the OpenAI OAuth transport. Keep desktop effort choices aligned with each model's advertised capabilities.

Constraint: Ultra remains a composite Codex delegation mode and is not exposed as a wire-level effort.
Confidence: high
Scope-risk: moderate
Tested: bun run check:server; bun run check:desktop; bun run check:persistence-upgrade; focused OAuth, WebSocket, and browser smoke checks
Not-tested: bun run verify
2026-07-11 02:55:41 +08:00
程序员阿江(Relakkes)
d6c156af17 fix(desktop): control background task lifecycle #990
Keep AutoDream visible without marking the foreground session busy, add a task-scoped stop control, and preserve the authoritative stopped bookend emitted by the CLI runtime.

Tested: bun run check:desktop

Tested: bun run check:server

Tested: bun run check:chat-contract

Tested: bun run check:coverage

Tested: real MiniMax-M3 browser smoke for background stop and AutoDream busy-state isolation

Confidence: high

Scope-risk: moderate
2026-07-11 01:50:33 +08:00
程序员阿江(Relakkes)
060a134ca1 fix(provider): require thinking for Kimi K2.7 #986
Model Kimi K2.7 as required-thinking so a global disabled preference cannot generate an unsupported request. Keep K2.6 and other providers free to disable thinking.

Tested: request-shape loopback through the query pipeline
Tested: bun run check:provider-contract
Tested: bun run check:server (1608 tests)
Tested: bun run check:coverage
Not-tested: live Kimi completion blocked by insufficient provider balance
Constraint: CLI core changes require allow-cli-core-change approval for PR
Confidence: high
Scope-risk: moderate
2026-07-11 01:07:22 +08:00
程序员阿江(Relakkes)
43d6776270 fix(server): deduplicate scheduled task output #989
Avoid appending the final result when it repeats the assistant text while preserving distinct result summaries.

Tested: bun test src/server/__tests__/cron-scheduler.test.ts
Tested: bun run check:server
Tested: live MiniMax stream-json duplicate comparison
Tested: changed-line coverage 100% (9/9)
Confidence: high
Scope-risk: narrow
2026-07-11 00:35:11 +08:00
程序员阿江(Relakkes)
46dca4e961 test(desktop): cover permission guard transitions
Exercise controlled changes, repeated trigger closure, tab switches, and both bypass dialog close paths so the changed-line coverage gate proves the full active-turn guard.\n\nTested: desktop PermissionModeSelector 14/14; adapters and H5 auth 51/51\nConfidence: high\nScope-risk: narrow
2026-07-10 23:05:57 +08:00
程序员阿江(Relakkes)
173d6a84fc fix(ci): isolate deterministic PR test evidence
Run required server and contract suites in credential-free sandboxes, fail closed on incomplete coverage or test output, and preserve the desktop active-turn permission guard across stale tab interactions.\n\nTested: bun run check:policy (115 pass); bun run check:server (1605 pass before final runner evidence check); bun run check:desktop; bun run check:provider-contract; bun run check:chat-contract\nConfidence: high\nScope-risk: broad
2026-07-10 22:59:02 +08:00
程序员阿江(Relakkes)
435e4ccc9f ci: harden deterministic PR quality gates
Route required checks by changed surface, add offline provider and chat contracts, and keep fork PRs independent of live credentials. Layer agent guidance by subtree and enforce a compact instruction budget.

Tested: bun run check:policy
Confidence: high
Scope-risk: broad
2026-07-10 20:29:01 +08:00
程序员阿江(Relakkes)
bbb862a41a fix(runtime): recover stalled long-running turns
Retry idle provider streams only before tool side effects, and reconcile desktop turn state after WebSocket gaps so completed or still-running work cannot leave a stale spinner.

Tested: 108 runtime/server focused tests, 128 desktop focused tests
Tested: disconnected-turn WebSocket integration test
Tested: bun run check:server (1489 pass)
Tested: desktop typecheck and production build
Not-tested: full desktop gate has one unrelated TraceSession polling assertion failure
Scope-risk: broad
2026-07-10 04:05:33 +08:00
程序员阿江(Relakkes)
16d06a4f82 fix(desktop): prevent overlapping API polls #993
Coalesce concurrent session-list scans and keep desktop pollers from stacking requests while the local server is slow.

Tested: bun run check:server (1489 pass)
Tested: desktop focused tests, typecheck, and production build
Scope-risk: moderate
2026-07-10 04:05:26 +08:00
程序员阿江(Relakkes)
25f19fad69 fix(desktop): preserve concurrent permission prompts
Track tool and Computer Use approvals by request ID so parallel prompts remain independently actionable.
Reconcile resolution state across clients and reconnects, including stopped and completed turns.

Refs: #975, #980
Tested: bun run check:desktop (1778 tests)
Tested: bun run check:server (1482 tests)
Tested: agent-browser concurrent permission smoke
Not-tested: Windows packaged app manual smoke
Confidence: high
Scope-risk: moderate
2026-07-10 03:11:22 +08:00
程序员阿江(Relakkes)
3d13364c3d feat(provider): 新增 TeamoRouter 供应商并加入 README 赞助商
- provider presets 新增 teamorouter(Anthropic 兼容,auth_token 鉴权)
- 默认模型 claude-opus-4-8 / claude-sonnet-5 / claude-haiku-4-5
- README 中英文赞助商表格新增 TeamoRouter 第三行及 logo
2026-07-09 15:56:07 +08:00
程序员阿江(Relakkes)
25ebc05a42 Merge skills market rewrite (worktree-refactor-skills-market-20260708)
Resolves conflicts with the independently developed skill-market/SkillCenter
feature that landed on main after this branch diverged. Keeps the market
rewrite as the sole implementation:

- Removes the parallel skill-market stack (server api/skill-market.ts,
  services/skillMarket/, SkillCenter.tsx, skillMarketStore.ts, related tests
  and i18n keys) in favor of the market implementation from this branch.
- Restores the Settings > Skills tab (and its redirect-free behavior) that
  the removed implementation had folded into a top-level Skill Center tab,
  keeping local skill browsing on SkillDetailView alongside the online market.
- Adapts tests and callers (TabBar, ContentRouter, PluginDetail,
  LocalSlashCommandPanel, persistence migrations) from skill-center/
  SKILL_CENTER_TAB_ID naming to market/MARKET_TAB_ID.
2026-07-08 22:19:51 +08:00
程序员阿江(Relakkes)
536b4584d3 feat(desktop): 新增技能市场功能,聚合 ClawHub 与 SkillHub
- server 层新增 market 服务:聚合两个上游、跨来源去重、TTL 缓存与降级、原子安装/卸载
- 桌面端新增市场页面(搜索/筛选/分页/详情/文件预览/安装确认),挂载为侧边栏顶层 Tab
- 本地已装技能详情页改造为与市场详情共用同一套展示组件,并支持卸载
- 5 语言 i18n 补齐,新增 server/desktop 测试覆盖
2026-07-08 20:43:50 +08:00
程序员阿江(Relakkes)
e4e7026cde fix(provider): diagnose stalled streams
Classify stream watchdog timeouts by stream phase and include non-sensitive diagnostics for stalled provider streams.
Map known watchdog failures to stable desktop WebSocket error codes, and only retry watchdog aborts before content or tool activity starts.

Tested: bun test src/services/api/streamWatchdog.test.ts
Tested: bun test src/server/__tests__/ws-memory-events.test.ts --test-name-pattern "maps watchdog API errors to stable desktop error codes"
Tested: cd desktop && bun test src/stores/chatStore.test.ts --test-name-pattern "persists partial assistant text before an error"
Tested: bun run check:server
Tested: cd desktop && bun run check:desktop
Tested: 5x direct CLI replay, 5x desktop-chain replay, 5x desktop-chain no-entrypoint replay with session 446f8776-538d-46e6-96d6-67080b455b07
2026-07-08 14:13:37 +08:00
程序员阿江(Relakkes)
c68d42f6a1 fix: speed up skill marketplace detail previews
Add server-side detail caching and in-flight request coalescing for marketplace details, reuse a long-lived service across API requests, and parallelize ClawHub detail preview fetches.

Add desktop detail cache/prefetch behavior and render marketplace Markdown/code previews through the existing MarkdownRenderer and CodeViewer components.

Stabilize the H5 diagnostics test on machines where the first non-internal IPv4 address is not a plain LAN address.

Tested: bun test src/server/__tests__/skill-market.test.ts src/server/__tests__/skill-market-install.test.ts

Tested: cd desktop && bun run test -- SkillCenter.test.tsx skillMarketStore.test.ts --run

Tested: bun test src/server/__tests__/h5-access-service.test.ts -t 'getDiagnostics reports stale'

Tested: git diff --check

Tested: bun run check:desktop

Tested: bun run check:server

Not-tested: bun run verify and coverage gates; this is a local handoff, not PR-ready validation.

Confidence: high

Scope-risk: moderate
2026-07-06 20:51:51 +08:00
程序员阿江(Relakkes)
790b0925ec fix: make skill marketplace search functional 2026-07-05 00:23:53 +08:00
程序员阿江(Relakkes)
b6aeaf0109 feat: add skill marketplace preview flow
Tested: bun test src/server/__tests__/skill-market.test.ts
Tested: cd desktop && bun run test -- SkillCenter.test.tsx skillMarketStore.test.ts generalSettings.test.ts ComputerUseSettings.test.ts --run
Tested: cd desktop && bun run test -- persistenceMigrations.test.ts --run
Tested: bun run check:desktop
Tested: real browser smoke for Skill Vetter across white, light, and dark themes
Not-tested: live install of an uninstalled marketplace skill to disk
Confidence: medium
Scope-risk: moderate
2026-07-03 23:34:19 +08:00
程序员阿江(Relakkes)
b305e798e7 feat: wire skill market install api
Route marketplace install requests through server-side detail lookup, eligibility checks, trusted package URL validation, bounded zip downloads, and the local user skill installer.

Reject client-supplied targets and arbitrary package URLs so the desktop cannot direct writes outside the computed user skill directory.

Tested: bun test src/server/__tests__/skill-market.test.ts src/server/__tests__/skill-market-install.test.ts

Tested: cd desktop && bun run test -- SkillCenter.test.tsx skillMarketStore.test.ts

Tested: cd desktop && bun run lint

Tested: cd desktop && bun run build

Not-tested: bun run check:server is blocked by missing @whiskeysockets/baileys in adapters/whatsapp/session.ts in this checkout.

Scope-risk: moderate

Confidence: high
2026-07-03 23:34:19 +08:00
程序员阿江(Relakkes)
6ae97c020f fix: harden skill marketplace details 2026-07-03 23:34:19 +08:00
程序员阿江(Relakkes)
4f6508f495 feat: render skill marketplace detail view 2026-07-03 23:34:19 +08:00
程序员阿江(Relakkes)
f5f4ff9858 fix: collect only user skills for market state
Tested: bun test src/server/__tests__/skill-market.test.ts
Tested: bun test src/server/__tests__/skill-market-install.test.ts
Tested: git diff --check
Confidence: high
Scope-risk: narrow
2026-07-03 23:32:01 +08:00
程序员阿江(Relakkes)
da37f4b1ed feat: add skill market api route 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
cc3d16a3a5 feat: install marketplace skills safely 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
d24f0f4bda fix: tighten skill risk key detection 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
000738442d feat: detect skill market risk labels 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
41d88accd8 fix: clean up skillhub source call 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
055854f8ec fix: constrain skill market fallback caching
Tested: bun test src/server/__tests__/skill-market.test.ts
Tested: git diff --check
Confidence: high
Scope-risk: narrow
2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
1ca470240c fix: limit skill market sources to v1 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
296f5c82e2 feat: add skill market source fallback 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
7a35116ee5 fix: prioritize risky clawhub scanner results
Tested: bun test src/server/__tests__/skill-market.test.ts
Tested: git diff --check
Confidence: high
Scope-risk: narrow
2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
b6bdc00877 fix: keep inconclusive skill reports conservative
Tested: bun test src/server/__tests__/skill-market.test.ts
Tested: git diff --check
Confidence: high
Scope-risk: narrow
2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
05ec549e3d fix: avoid misleading clawhub scan summaries
Tested: bun test src/server/__tests__/skill-market.test.ts
Tested: git diff --check
Confidence: high
Scope-risk: narrow
2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
3b1f190938 fix: block inconclusive skillhub installs 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
c744213aae fix: align skill market security summaries 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
26b3322fb7 fix: harden skill market normalization 2026-07-03 23:32:00 +08:00
程序员阿江(Relakkes)
5aeab5c206 feat: normalize skill market sources 2026-07-03 23:32:00 +08:00