Commit Graph

7400 Commits

Author SHA1 Message Date
Pleasurecruise
f57e91c8d0 test(file): stabilize watcher maxDepth event wait
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-07 12:10:03 +08:00
Gu JiaMing
75fac923df Merge branch 'main' into feat/binary-latest-versions 2026-07-07 11:20:55 +08:00
Pleasurecruise
dd4587e1eb test(binary-manager): isolate latest version badge mock
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-07 10:45:21 +08:00
Pleasurecruise
80af2b0651 fix(binary-manager): address latest version review feedback
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-07 10:30:46 +08:00
亢奋猫
ab9fde0ad1 fix(agent-session): mark stopped pending messages as paused (#16720)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-07-07 10:30:42 +08:00
Pleasurecruise
0f1f844ad7 Merge remote-tracking branch 'origin/main' into feat/binary-latest-versions 2026-07-07 10:24:22 +08:00
fullex
10b233489f docs(claude-md): note barrel rule in Code Organization 2026-07-06 19:12:30 -07:00
github-actions[bot]
d0fe081ebe 🤖 Daily Auto I18N Sync: Jul 07, 2026 (#16792)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-07-07 09:45:01 +08:00
Gu JiaMing
d9a5789d4a feat(agent-file-preview): show previews in files overlay (#16713)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-06 23:56:25 +08:00
Gu JiaMing
e08e21569e fix(model-list): show sync preview rows by id (#16765)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-06 23:56:12 +08:00
jd
ecb9f37713 feat(resource-catalog): add skill marketplace search (#16700)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 23:55:58 +08:00
jd
006c15c0f0 fix(chat-messages): clear multi-select state on unmount (#16770)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 23:55:23 +08:00
Pleasure1234
4679620470 fix(chat-messages): restore drag box multi-select (#16763)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-06 23:55:11 +08:00
jd
640d4fcb68 feat(message-branch): align branch draft actions (#16777)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 23:54:58 +08:00
槑囿脑袋
8eadc91a2e fix(mcp-migration): normalize legacy MCP server type before insert (#16778)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: eeee0717 <ct761050293@gmail.com>
Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
2026-07-06 23:54:43 +08:00
Asurada
f237ad77f3 fix(chat): stabilize responsive sidebar restore (#16744)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-07-06 23:54:30 +08:00
jd
0fb5f14aa0 feat(skill-import): support batch ZIP imports (#16766)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 23:54:16 +08:00
亢奋猫
47e41e41fc fix(tabs): allow closing first tab (#16771)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-07-06 23:53:55 +08:00
Asurada
8c51eec21d feat(composer): improve quick panel search aliases (#16730)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: ousugo <dkzyxh@gmail.com>
2026-07-06 23:53:44 +08:00
fullex
ea382e80c0 test(job): await job settlement instead of racing a wall-clock timeout
Racing handle.finished against a self-managed setTimeout deadline is flaky
under CI event-loop starvation: when the worker thread resumes, the job's
promotion timer and the deadline expire in the same libuv batch and the
deadline's synchronous resolve('timeout') beats the job's multi-hop async
completion chain, so the race settles 'timeout' even though the job finished
moments later. Await handle.finished directly and assert the terminal
snapshot status; vitest's per-test timeout bounds a genuine hang with a
clearer error. Applied to all five occurrences that shared the pattern.
2026-07-06 07:19:46 -07:00
fullex
1c1278aefc docs(window-manager): document the empty-htmlPath consumer-loaded contract
`htmlPath: ''` already makes WindowManager skip content loading so a domain
service can load the window itself, but the behavior was implicit — undocumented
at the type level and untested as a contract.

- types.ts: document that `htmlPath: ''` is a consumer-loaded window and how the
  consumer loads content afterward (getWindow(id) -> webContents.loadURL/loadFile,
  plus show/close ownership); fix the preload cross-reference that wrongly claimed
  htmlPath is three-state.
- WindowManager.test.ts: lock the contract — empty htmlPath skips loadFile/loadURL,
  non-empty htmlPath loads on create.
- usage guide: add a "Consumer-loaded windows" section (recipe + getWindow caveat).
2026-07-06 06:40:47 -07:00
Pleasurecruise
79a78e6a42 fix(dependencies): narrow semver update comparison
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-06 19:39:56 +08:00
Pleasurecruise
06546b0822 fix(dependencies): allow non-semver binary updates
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-06 19:29:36 +08:00
槑囿脑袋
15ac2fdae3 fix(knowledge-migration): avoid OOM in vector migrator on many-base migrations (#16759)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
2026-07-06 19:13:30 +08:00
Gu JiaMing
58da667342 fix(tooltip): prevent trigger width overflow (#16768)
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-06 19:12:50 +08:00
亢奋猫
ca757d5b7b refactor(settings): reorganize settings groups (#16698)
Co-authored-by: suyao <sy20010504@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-07-06 18:29:29 +08:00
Asurada
9b3e4ab314 fix(composer): restore focus after dialog close (#16733)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
2026-07-06 17:54:21 +08:00
jd
3a346a6b72 feat(artifact-preview): preview images in the right panel (#16760)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 17:54:09 +08:00
jd
68b5eadfa7 fix(code-viewer): disable syntax highlighting while a code block is streaming (#16757)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 17:53:55 +08:00
Pleasure1234
6cbe2b4c00 Merge branch 'main' into feat/binary-latest-versions 2026-07-06 17:04:10 +08:00
Pleasurecruise
353f9f8dd3 Merge remote-tracking branch 'origin/main' into feat/binary-latest-versions
Signed-off-by: Pleasurecruise <3196812536@qq.com>

# Conflicts:
#	src/renderer/pages/settings/McpSettings/__tests__/EnvironmentDependencies.test.tsx
2026-07-06 17:02:39 +08:00
Asurada
f798966fa2 feat(tabs): close tabs with middle and double click (#15621)
Signed-off-by: ousugo <dkzyxh@gmail.com>
2026-07-06 17:00:42 +08:00
槑囿脑袋
12ea2b1d5d fix(knowledge-tools): scope kb_* tools to composer-selected bases too (#16743)
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
2026-07-06 16:59:26 +08:00
槑囿脑袋
ab61ca0d12 refactor(knowledge): derive retrieval mode and keep rerank threshold (#16699)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: eeee0717 <chentao020717Work@outlook.com>
2026-07-06 16:58:54 +08:00
亢奋猫
3a65255ce3 refactor(settings): remove standalone settings window (#16489)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-07-06 16:47:10 +08:00
亢奋猫
79d75bf954 feat(mcp): refine mcp server filters and sync providers (#16517)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-07-06 16:46:51 +08:00
SuYao
31d408ebc7 feat(agent-slash-commands): source session commands from SDK query object (#16536)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: suyao <sy20010504@gmail.com>
2026-07-06 16:34:13 +08:00
jd
1f741fef4b feat(composer): add resizable input height (#16707)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 16:23:25 +08:00
jd
cdf679eee0 fix(agent): sync provider filter with model support (#16710)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 16:22:56 +08:00
jd
66a79eddc5 fix(pdf): lazy-load main-process parser (#16721)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: jd <59188306+zhangjiadi225@users.noreply.github.com>
2026-07-06 16:22:21 +08:00
Konv Suu
d71ec198f9 fix(miniapp): restore external webview links (#16752)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: Konv Suu <hi@kovsu.com>
2026-07-06 16:20:49 +08:00
亢奋猫
f8f60a8a4b fix(message-rendering): hide duplicate attachment cards (#16676)
Co-authored-by: fullex <106392080+0xfullex@users.noreply.github.com>
Signed-off-by: kangfenmao <kangfenmao@qq.com>
2026-07-06 16:19:52 +08:00
Gu JiaMing
f750d50bdc refactor(paintings): use inline artboard loading bar (#16754)
Signed-off-by: gujiaming <52187003+AtomsH4@users.noreply.github.com>
2026-07-06 16:18:30 +08:00
fullex
13c8f0f254 chore(lint): enforce 7 barrel boundary rules as errors
The barrel/module-boundary rules (naming-conventions.md §6.4) were warn-only
while the codebase was being brought into compliance. The full tree is now
barrel-clean (lint reports 0 barrel findings), so promote all seven rules —
no-export-star, index-no-impl, no-index-tsx, named-only, closed, no-nesting,
no-bucket-root — from warn to error to lock the boundary against regressions.
2026-07-06 01:06:09 -07:00
fullex
8487bb18f7 refactor(knowledge): route v1→v2 migrators through the barrel via a shared index-store factory
Close the last 14 barrel/closed (§6.4) violations in the knowledge feature: both
v1→v2 migrators deep-imported knowledge internals to rebuild a base's index.sqlite.

Extract the shared open sequence into createKnowledgeIndexStoreAtPath (also adopted
by KnowledgeVectorStoreService, deduping the runtime) and the snapshot assembly into
build{Url,Note}SnapshotFile (adopted by capture*SnapshotFile); add index-count reads
to KnowledgeIndexStore; re-export a curated rebuild surface from the knowledge barrel.
The migrators now import only @main/features/knowledge — the engine internals
(driver/schema/meta/vector index) stay private behind the factory.
2026-07-06 01:00:31 -07:00
Pleasurecruise
7ee4f8a2a4 fix(binary-manager): refresh per-tool update checks
Signed-off-by: Pleasurecruise <3196812536@qq.com>
2026-07-06 15:29:02 +08:00
fullex
dc3815e8df refactor(barrels): close 6 main barrel boundaries per naming §6.4
Every §6.4 `barrel/closed` warning on these six main barrels came from
external code deep-importing internals. Route each consumer through the
barrel, widening a door only with symbols that keep it one cohesive unit,
and trim dead re-exports.

- filesystem: export resolveFilesystemBaseDir
- observability: export the 3 lifecycle services (ClaudeCode/Node/TraceStorage)
- fileProcessing: export the job-result contract (artifact helpers + payload type)
- webSearch: export isPermanentWebSearchConfigError
- knowledge: export KnowledgeVectorStoreService; drop internal-only Lock/Workflow re-exports
- migration/v2: export isSchemaOutOfSyncError; drop dead BaseMigrator/reader re-exports;
  fold the gate's redundant versionPolicy deep-imports back through the barrel

Relocate two misplaced concerns the deep imports surfaced:
- isAbortError (generic) -> @main/utils/error, out of webSearch
- legacyTypes (v1 @deprecated) -> data/migration/, out of the v2 barrel; delete dead MistralClientManager

Update v2MigrationGate's barrel mock to match the consolidated import, and
fix a stale migrator-registration path in the migration README.

The remaining knowledge migrator coupling (KnowledgeVectorMigrator /
KnowledgeMigrator) is deferred to a fix-upstream follow-up.
2026-07-05 23:28:44 -07:00
fullex
74cba77fcd refactor(barrels): route or drop 5 barrel doors per naming §6.4
Clear all 8 `closed` deep-import warnings on five directories, applying the
topic-subdir-vs-type-bucket distinction (naming §6.4 / renderer §5):

- hooks/translate, hooks/command, components/ActionTools — cohesive topic
  subdirs / component framework: keep the curated door, route the stray deep
  imports through it.
- pages/knowledge/hooks — a page-internal type bucket (named `hooks`, not a
  topic): drop the barrel per rule 3/§4.8; four consumers deep-import the leaf
  hooks (matching the no-door home/notes/paintings siblings).
- components/composer/tokenView — heavy component + light vocab aggregator:
  keep the component door, move the token vocabulary out
  (tokenView.ts -> composer/chatTokenView.ts) so light consumers no longer
  pull the ComposerToken graph through the door.

Retarget the knowledge tests' barrel mocks to the leaf modules.
2026-07-05 23:10:42 -07:00
fullex
13b119e66f refactor(barrels): route command CommandId imports through barrel
Fix two barrel/closed violations where Shell and ResourceList deep-imported
CommandId from shared/utils/command/definitions instead of the barrel. The
command/ barrel is a cohesive subsystem (command/keybinding/menu/context-
expression); it stays as-is — only the two stray deep-import paths are corrected.
2026-07-05 23:08:28 -07:00
Pleasure1234
951263f151 Merge branch 'main' into feat/binary-latest-versions 2026-07-06 13:39:54 +08:00