Skip to content

Commit a845ade

Browse files
committed
release: prepare v1.20.8
1 parent 9b7c6cf commit a845ade

15 files changed

Lines changed: 400 additions & 180 deletions

CHANGELOG-zh.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@
55
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)
66
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)
77

8+
## [1.20.8] - 2026-05-23
9+
10+
### 发布概览
11+
- **插件安装反馈与工作区布局修复** — 为插件市场安装补充实时 clone 进度,并收紧 Skill 详情中的项目工作区布局。
12+
13+
### 用户可见更新
14+
- **插件 Clone 进度** — 插件市场安装现在会在安装 toast 中显示仓库 clone 和安装进度,不再只是静态加载状态。
15+
- **项目工作区适配** — Skill 详情的项目工作区行改为全宽展示,Agent 操作紧跟项目名,并在空间不足时自动换行。
16+
17+
### 开发者与治理更新
18+
- **Git 拉取进度钩子** — 为 git 安装链路新增可复用的 clone progress 回调,支持 system git stderr 转发和 git2 fallback 进度。
819
## [1.20.7] - 2026-05-23
920

1021
### 发布概览

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.20.8] - 2026-05-23
9+
10+
### Release Overview
11+
- **Plugin Install Feedback and Workspace Layout Fixes** — Added live clone progress for Plugin Marketplace installs and tightened the Skill Detail project workspace layout.
12+
13+
### User-facing
14+
- **Plugin Clone Progress** — Plugin Marketplace installs now surface repository clone and install progress in the install toast instead of showing a static loading state.
15+
- **Project Workspace Fit** — Skill Detail project workspace rows are now full-width, keep Agent actions near the project name, and wrap action buttons onto additional lines when needed.
16+
17+
### Developer & Governance
18+
- **Git Fetcher Progress Hook** — Added a reusable clone progress callback path for git-based installs, including system git stderr forwarding and git2 fallback progress.
819
## [1.20.7] - 2026-05-23
920

1021
### Release Overview

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "skills-manager-plus",
33
"private": true,
4-
"version": "1.20.7",
4+
"version": "1.20.8",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",

src-tauri/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src-tauri/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "skills-manager-plus"
3-
version = "1.20.7"
3+
version = "1.20.8"
44
description = "Skills-Manager-Plus - AI Agent Skills Central Manager"
55
authors = ["tianliang"]
66
license = "MIT"

src-tauri/src/commands/marketplace.rs

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use std::sync::Arc;
2-
use tauri::State;
2+
use tauri::{Emitter, State};
33

44
use crate::commands::skills::{store_installed_skill, InstallSourceMetadata};
55
use crate::core::{
@@ -291,6 +291,15 @@ pub fn install_plugin_skills_for_cli(
291291
store: &SkillStore,
292292
market_id: &str,
293293
plugin_name: &str,
294+
) -> Result<BatchPluginInstallResult, AppError> {
295+
install_plugin_skills_with_progress(store, market_id, plugin_name, None)
296+
}
297+
298+
fn install_plugin_skills_with_progress(
299+
store: &SkillStore,
300+
market_id: &str,
301+
plugin_name: &str,
302+
progress: Option<Arc<dyn Fn(&str, &str) + Send + Sync + 'static>>,
294303
) -> Result<BatchPluginInstallResult, AppError> {
295304
let market = store
296305
.get_plugin_market_by_id(market_id)?
@@ -315,13 +324,26 @@ pub fn install_plugin_skills_for_cli(
315324
let active = store.get_active_scenario_id().ok().flatten();
316325

317326
let proxy_url = store.proxy_url();
318-
let temp_dir = git_fetcher::clone_repo_ref(
327+
if let Some(callback) = progress.as_ref() {
328+
callback("cloning", "Preparing plugin repository...");
329+
}
330+
let clone_progress = progress.as_ref().map(|callback| {
331+
let callback = Arc::clone(callback);
332+
Box::new(move |message: &str| {
333+
callback("cloning", message);
334+
}) as git_fetcher::ProgressCallback
335+
});
336+
let temp_dir = git_fetcher::clone_repo_ref_with_progress(
319337
&market.url,
320338
market.source_branch.as_deref(),
321339
None,
322340
proxy_url.as_deref(),
341+
clone_progress,
323342
)
324343
.map_err(|e| AppError::network(e.to_string()))?;
344+
if let Some(callback) = progress.as_ref() {
345+
callback("installing", "Installing plugin skills...");
346+
}
325347

326348
let result = (|| -> Result<BatchPluginInstallResult, AppError> {
327349
let central_repo = crate::core::central_repo::skills_dir();
@@ -420,11 +442,27 @@ pub async fn install_plugin_skills(
420442
market_id: String,
421443
plugin_name: String,
422444
store: State<'_, Arc<SkillStore>>,
445+
app_handle: tauri::AppHandle,
423446
) -> Result<BatchPluginInstallResult, AppError> {
424447
let store_clone = store.inner().clone();
448+
let progress_market_id = market_id.clone();
449+
let progress_plugin_name = plugin_name.clone();
450+
let progress_app_handle = app_handle.clone();
451+
let progress: Arc<dyn Fn(&str, &str) + Send + Sync + 'static> =
452+
Arc::new(move |phase, message| {
453+
let _ = progress_app_handle.emit(
454+
"plugin-install-progress",
455+
serde_json::json!({
456+
"market_id": progress_market_id.clone(),
457+
"plugin_name": progress_plugin_name.clone(),
458+
"phase": phase,
459+
"message": message,
460+
}),
461+
);
462+
});
425463

426464
let result = tauri::async_runtime::spawn_blocking(move || {
427-
install_plugin_skills_for_cli(&store_clone, &market_id, &plugin_name)
465+
install_plugin_skills_with_progress(&store_clone, &market_id, &plugin_name, Some(progress))
428466
})
429467
.await??;
430468

0 commit comments

Comments
 (0)