feat: release v0.89.0 and rename Proxycast to Lime

This commit is contained in:
coso
2026-03-17 07:16:33 +08:00
parent f617fc4bb7
commit d15d9aa65d
731 changed files with 13559 additions and 10612 deletions
+1 -1
View File
@@ -61,7 +61,7 @@ if (entryFilePath && currentFilePath === entryFilePath) {
const repoRoot = path.resolve(path.dirname(currentFilePath), "..");
const version = readWorkspaceAppVersion(repoRoot);
if (!version) {
console.error("[proxycast] 无法从 src-tauri/Cargo.toml 读取 workspace 版本");
console.error("[lime] 无法从 src-tauri/Cargo.toml 读取 workspace 版本");
process.exit(1);
}
process.stdout.write(version);
+1 -1
View File
@@ -142,6 +142,6 @@ echo "文件大小: $(du -h "$OUTPUT_FILE" | cut -f1)"
echo "SHA256: $CHECKSUM"
echo ""
echo "安装方式:"
echo " 1. 在 ProxyCast 中打开插件管理器"
echo " 1. 在 Lime 中打开插件管理器"
echo " 2. 点击「从文件安装」"
echo " 3. 选择 $OUTPUT_FILE"
+2 -2
View File
@@ -57,11 +57,11 @@ if ((tauriHeadlessConfig.version ?? null) !== sourceVersion) {
}
if (issues.length > 0) {
console.error("[proxycast] 应用版本一致性检查失败:");
console.error("[lime] 应用版本一致性检查失败:");
for (const issue of issues) {
console.error(`- ${issue}`);
}
process.exit(1);
}
console.log(`[proxycast] 版本一致性检查通过: ${sourceVersion}`);
console.log(`[lime] 版本一致性检查通过: ${sourceVersion}`);
+2 -2
View File
@@ -7,10 +7,10 @@
import WebSocket from 'ws';
const SERVER_URL = 'ws://127.0.0.1:8999';
const BRIDGE_KEY = 'Proxycast-key11';
const BRIDGE_KEY = 'Lime-key11';
// 连接 Observer 通道查看状态
const observerUrl = `${SERVER_URL}/proxycast-chrome-observer/${BRIDGE_KEY}?profileKey=test`;
const observerUrl = `${SERVER_URL}/lime-chrome-observer/${BRIDGE_KEY}?profileKey=test`;
console.log(`[检查] 连接 Observer 通道: ${observerUrl}`);
const ws = new WebSocket(observerUrl);
+1 -1
View File
@@ -10,7 +10,7 @@ const DEFAULTS = {
function printHelp() {
console.log(`
ProxyCast DevBridge 健康检查
Lime DevBridge 健康检查
用法:
node scripts/check-dev-bridge-health.mjs [选项]
+5 -5
View File
@@ -44,14 +44,14 @@ function parseArgs(argv) {
function printHelp() {
console.log(`
Proxycast Chrome Bridge E2E 联调脚本
Lime Chrome Bridge E2E 联调脚本
用法:
node scripts/chrome-bridge-e2e.mjs --key <proxycast_api_key> [选项]
node scripts/chrome-bridge-e2e.mjs --key <lime_api_key> [选项]
选项:
--server <ws_url> 服务地址,默认 ws://127.0.0.1:8787
--key <api_key> Proxycast API Key(必填)
--key <api_key> Lime API Key(必填)
--profile <profile_key> profileKey,默认 default
--timeout-ms <ms> 单步超时毫秒,默认 15000
-h, --help 显示帮助
@@ -200,8 +200,8 @@ async function main() {
const server = normalizeServer(args.server);
const key = encodeURIComponent(args.key);
const profile = encodeURIComponent(args.profile || "default");
const observerUrl = `${server}/proxycast-chrome-observer/Proxycast_Key=${key}?profileKey=${profile}`;
const controlUrl = `${server}/proxycast-chrome-control/Proxycast_Key=${key}`;
const observerUrl = `${server}/lime-chrome-observer/Lime_Key=${key}?profileKey=${profile}`;
const controlUrl = `${server}/lime-chrome-control/Lime_Key=${key}`;
console.log("[E2E] observer:", observerUrl);
console.log("[E2E] control :", controlUrl);
+10 -10
View File
@@ -5,7 +5,7 @@ import fs from "node:fs";
import path from "node:path";
import process from "node:process";
const devPort = process.env.PROXYCAST_DEV_PORT ?? "1420";
const devPort = process.env.LIME_DEV_PORT ?? process.env.PROXYCAST_DEV_PORT ?? "1420";
const projectRoot = path.resolve(process.cwd());
const repoRootMarker = path.join(projectRoot, "package.json");
const nestedRepoRootMarker = path.join(projectRoot, "..", "package.json");
@@ -15,17 +15,17 @@ const runningInsideSrcTauri =
fs.existsSync(nestedRepoRootMarker);
if (runningInsideSrcTauri) {
console.error("[proxycast] 检测到在 src-tauri 子目录启动开发脚本。");
console.error("[proxycast] 请回到仓库根目录执行:npm run tauri:dev");
console.error("[lime] 检测到在 src-tauri 子目录启动开发脚本。");
console.error("[lime] 请回到仓库根目录执行:npm run tauri:dev");
console.error(
"[proxycast] 这样可以避免生成 src-tauri/src-tauri/target 目录。",
"[lime] 这样可以避免生成 src-tauri/src-tauri/target 目录。",
);
process.exit(1);
}
if (!fs.existsSync(repoRootMarker)) {
console.error(`[proxycast] 当前目录缺少 package.json: ${projectRoot}`);
console.error("[proxycast] 请在 proxycast 仓库根目录执行开发命令。");
console.error(`[lime] 当前目录缺少 package.json: ${projectRoot}`);
console.error("[lime] 请在 lime 仓库根目录执行开发命令。");
process.exit(1);
}
@@ -92,11 +92,11 @@ for (const pid of occupiedPids) {
}
if (blockedProcesses.length > 0) {
console.error(`[proxycast] 端口 ${devPort} 被其他进程占用,无法自动清理:`);
console.error(`[lime] 端口 ${devPort} 被其他进程占用,无法自动清理:`);
for (const item of blockedProcesses) {
console.error(`- PID ${item.pid}: ${item.command}`);
}
console.error("[proxycast] 请先结束占用进程后再重试启动。");
console.error("[lime] 请先结束占用进程后再重试启动。");
process.exit(1);
}
@@ -113,12 +113,12 @@ for (const pid of stillOccupied) {
const unresolved = listListenPids(devPort);
if (unresolved.length > 0) {
console.error(`[proxycast] 端口 ${devPort} 仍被占用,请手动清理后重试。`);
console.error(`[lime] 端口 ${devPort} 仍被占用,请手动清理后重试。`);
process.exit(1);
}
if (targetPids.length > 0) {
console.log(
`[proxycast] 已清理 ${targetPids.length} 个残留 vite 进程(端口 ${devPort})。`,
`[lime] 已清理 ${targetPids.length} 个残留 vite 进程(端口 ${devPort})。`,
);
}
+1 -1
View File
@@ -1,6 +1,6 @@
# Playwright Login Sidecar
ProxyCast 的 Playwright 指纹浏览器登录 Sidecar 脚本。
Lime 的 Playwright 指纹浏览器登录 Sidecar 脚本。
## 文件索引
+1 -1
View File
@@ -162,7 +162,7 @@ export function getAvailableBrowserPath() {
* @returns {string} 用户数据目录的绝对路径
*/
export function getUserDataDir() {
return join(homedir(), '.proxycast', 'playwright-data');
return join(homedir(), '.lime', 'playwright-data');
}
/**
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "playwright-login",
"version": "1.0.0",
"description": "Playwright sidecar script for ProxyCast fingerprint browser login",
"description": "Playwright sidecar script for Lime fingerprint browser login",
"main": "index.js",
"type": "module",
"scripts": {
@@ -18,6 +18,6 @@
"engines": {
"node": ">=22.0.0"
},
"author": "ProxyCast",
"author": "Lime",
"license": "MIT"
}
@@ -40,11 +40,11 @@ describe('Property 2: 浏览器配置完整性', () => {
assert.strictEqual(typeof config.userDataDir, 'string');
assert.ok(config.userDataDir.length > 0, 'userDataDir 不能为空');
// 应该包含 .proxycast 目录
// 应该包含 .lime 目录
assert.ok(
config.userDataDir.includes('.proxycast') ||
config.userDataDir.includes('proxycast'),
'userDataDir 应该在 proxycast 相关目录下'
config.userDataDir.includes('.lime') ||
config.userDataDir.includes('lime'),
'userDataDir 应该在 lime 相关目录下'
);
}
),
+2 -2
View File
@@ -1,7 +1,7 @@
{
"name": "proxycast-playwright-tools",
"name": "lime-playwright-tools",
"version": "1.0.0",
"description": "Playwright browser automation tools for ProxyCast AI Agent",
"description": "Playwright browser automation tools for Lime AI Agent",
"type": "module",
"scripts": {
"test": "node browser-tool.mjs --action '{\"open\":{\"url\":\"https://example.com\"}}' --no-headless",
+21 -21
View File
@@ -232,9 +232,9 @@ const rustTextSurfaceMonitors = [
description: "Rust 外部模块直接引用 pending/legacy general 子模块",
patterns: [
"crate::database::legacy_general_chat::",
"proxycast_core::database::legacy_general_chat::",
"lime_core::database::legacy_general_chat::",
"crate::database::pending_general_chat::",
"proxycast_core::database::pending_general_chat::",
"lime_core::database::pending_general_chat::",
],
allowedPaths: [],
},
@@ -267,8 +267,8 @@ const rustTextSurfaceMonitors = [
{
id: "rust-cross-crate-general-chat-compat",
classification: "deprecated",
description: "跨 crate 引回 proxycast_services::general_chat 兼容壳",
patterns: ["proxycast_services::general_chat::"],
description: "跨 crate 引回 lime_services::general_chat 兼容壳",
patterns: ["lime_services::general_chat::"],
allowedPaths: [],
},
{
@@ -297,7 +297,7 @@ const rustTextSurfaceMonitors = [
description: "request_tool_policy 旧服务壳回流",
patterns: [
"crate::services::request_tool_policy_prompt_service::",
"proxycast_lib::services::request_tool_policy_prompt_service::",
"lime_lib::services::request_tool_policy_prompt_service::",
"services::request_tool_policy_prompt_service::",
],
allowedPaths: [],
@@ -311,7 +311,7 @@ const rustTextSurfaceMonitors = [
"services::heartbeat_service::",
"HeartbeatServiceState",
"heartbeat_service_adapter",
"proxycast_core::database::dao::heartbeat",
"lime_core::database::dao::heartbeat",
"heartbeat_tool",
"RunSource::Heartbeat",
"source = 'heartbeat'",
@@ -342,7 +342,7 @@ const rustTextSurfaceMonitors = [
"\"migrated_api_keys_to_pool\"",
"\"migrated_provider_ids_v1\"",
"\"cleaned_legacy_api_key_credentials\"",
"\"migrated_mcp_proxycast_enabled\"",
"\"migrated_mcp_lime_enabled\"",
"\"migrated_mcp_created_at_to_integer\"",
"\"model_registry_refresh_needed\"",
"\"model_registry_version\"",
@@ -365,7 +365,7 @@ const rustTextSurfaceMonitors = [
"migration::check_model_registry_version(",
"migration::migrate_api_keys_to_pool(",
"migration::cleanup_legacy_api_key_credentials(",
"migration::migrate_mcp_proxycast_enabled(",
"migration::migrate_mcp_lime_enabled(",
"migration::migrate_mcp_created_at_to_integer(",
"migration::check_general_chat_migration_status(",
"migration::migrate_general_chat_to_unified(",
@@ -383,7 +383,7 @@ const rustTextSurfaceMonitors = [
"match migration::migrate_provider_ids(",
"match migration::migrate_api_keys_to_pool(",
"match migration::cleanup_legacy_api_key_credentials(",
"match migration::migrate_mcp_proxycast_enabled(",
"match migration::migrate_mcp_lime_enabled(",
"match migration::migrate_mcp_created_at_to_integer(",
"match migration::migrate_general_chat_to_unified(",
"match migration_v2::migrate_unified_content_system(",
@@ -419,7 +419,7 @@ const rustTextSurfaceMonitors = [
id: "rust-hardcoded-projects-path-leak",
classification: "deprecated",
description: "数据库迁移硬编码 legacy projects 路径",
patterns: ["\".proxycast/projects\"", "join(\".proxycast\").join(\"projects\")"],
patterns: ["\".lime/projects\"", "join(\".lime\").join(\"projects\")"],
includePathPrefixes: ["src-tauri/crates/core/src/database"],
allowedPaths: [],
},
@@ -427,7 +427,7 @@ const rustTextSurfaceMonitors = [
id: "rust-hardcoded-session-files-path-leak",
classification: "deprecated",
description: "session files 硬编码 legacy sessions 路径",
patterns: ["~/.proxycast/sessions", "join(\".proxycast\").join(\"sessions\")"],
patterns: ["~/.lime/sessions", "join(\".lime\").join(\"sessions\")"],
includePathPrefixes: ["src-tauri/crates/core/src/session_files"],
allowedPaths: [],
},
@@ -435,7 +435,7 @@ const rustTextSurfaceMonitors = [
id: "rust-hardcoded-legacy-config-path-leak",
classification: "deprecated",
description: "数据库迁移硬编码 legacy config 路径",
patterns: ["~/.proxycast/config.json", "join(\".proxycast\").join(\"config.json\")"],
patterns: ["~/.lime/config.json", "join(\".lime\").join(\"config.json\")"],
includePathPrefixes: ["src-tauri/crates/core/src/database"],
allowedPaths: [],
},
@@ -443,7 +443,7 @@ const rustTextSurfaceMonitors = [
id: "rust-hardcoded-workspace-projects-path-leak",
classification: "deprecated",
description: "上层命令或桥接层硬编码 workspace projects 路径",
patterns: ["~/.proxycast/projects", "join(\".proxycast\").join(\"projects\")"],
patterns: ["~/.lime/projects", "join(\".lime\").join(\"projects\")"],
includePathPrefixes: ["src-tauri/src"],
allowedPaths: [],
},
@@ -451,7 +451,7 @@ const rustTextSurfaceMonitors = [
id: "rust-hardcoded-logger-path-leak",
classification: "deprecated",
description: "logger fallback 硬编码 legacy logs 路径",
patterns: ["~/.proxycast/logs", "join(\".proxycast\").join(\"logs\")"],
patterns: ["~/.lime/logs", "join(\".lime\").join(\"logs\")"],
includePathPrefixes: ["src-tauri/crates/core/src/logger.rs"],
allowedPaths: [],
},
@@ -459,7 +459,7 @@ const rustTextSurfaceMonitors = [
id: "rust-hardcoded-skills-path-leak",
classification: "deprecated",
description: "skills 相关模块硬编码 legacy skills 路径",
patterns: ["~/.proxycast/skills", "join(\".proxycast\").join(\"skills\")"],
patterns: ["~/.lime/skills", "join(\".lime\").join(\"skills\")"],
includePathPrefixes: ["src-tauri/src"],
allowedPaths: [],
},
@@ -468,10 +468,10 @@ const rustTextSurfaceMonitors = [
classification: "deprecated",
description: "memory 相关模块硬编码 legacy memory 或 AGENTS 路径",
patterns: [
"~/.proxycast/AGENTS.md",
"join(\".proxycast\").join(\"AGENTS.md\")",
"join(\".proxycast\").join(\"memory\")",
".proxycast/memory",
"~/.lime/AGENTS.md",
"join(\".lime\").join(\"AGENTS.md\")",
"join(\".lime\").join(\"memory\")",
".lime/memory",
],
includePathPrefixes: ["src-tauri/src"],
allowedPaths: [],
@@ -1076,7 +1076,7 @@ const violations = [
),
];
console.log("[proxycast] legacy surface report");
console.log("[lime] legacy surface report");
console.log("");
console.log("## 入口引用");
for (const result of importResults) {
@@ -1122,7 +1122,7 @@ for (const violation of violations) {
if (violations.length > 0) {
console.error("");
console.error(
"[proxycast] legacy surface report 检测到边界违规,请先治理再继续扩展。",
"[lime] legacy surface report 检测到边界违规,请先治理再继续扩展。",
);
process.exit(1);
}
+8 -8
View File
@@ -8,8 +8,8 @@ const repoRoot = path.resolve(process.cwd());
const cargoConfigDir = path.join(repoRoot, ".cargo");
const cargoConfigPath = path.join(cargoConfigDir, "config.toml");
const defaultAsterRepo = path.resolve(repoRoot, "..", "..", "astercloud", "aster-rust");
const blockStart = "# >>> proxycast local aster override >>>";
const blockEnd = "# <<< proxycast local aster override <<<";
const blockStart = "# >>> lime local aster override >>>";
const blockEnd = "# <<< lime local aster override <<<";
function normalizePath(filePath) {
return filePath.split(path.sep).join("/");
@@ -47,7 +47,7 @@ function validateAsterRepo(asterRepoPath) {
for (const cratePath of crates) {
if (!fs.existsSync(cratePath)) {
console.error(`[proxycast] 未找到 Aster crate: ${cratePath}`);
console.error(`[lime] 未找到 Aster crate: ${cratePath}`);
process.exit(1);
}
}
@@ -121,17 +121,17 @@ if (process.argv.includes("--help") || process.argv.includes("-h")) {
if (process.argv.includes("--clear")) {
const existingContent = readExistingConfig();
if (!existingContent) {
console.log("[proxycast] 本地 Aster 覆盖配置不存在,无需删除。");
console.log("[lime] 本地 Aster 覆盖配置不存在,无需删除。");
process.exit(0);
}
const nextContent = removeManagedBlock(existingContent);
if (nextContent) {
fs.writeFileSync(cargoConfigPath, `${nextContent}\n`, "utf8");
console.log(`[proxycast] 已移除本地 Aster 覆盖区块: ${cargoConfigPath}`);
console.log(`[lime] 已移除本地 Aster 覆盖区块: ${cargoConfigPath}`);
} else {
fs.rmSync(cargoConfigPath);
console.log(`[proxycast] 已删除本地 Aster 覆盖配置: ${cargoConfigPath}`);
console.log(`[lime] 已删除本地 Aster 覆盖配置: ${cargoConfigPath}`);
}
process.exit(0);
}
@@ -146,5 +146,5 @@ const nextContent = upsertManagedBlock(
);
fs.writeFileSync(cargoConfigPath, nextContent, "utf8");
console.log(`[proxycast] 已生成本地 Aster 覆盖配置: ${cargoConfigPath}`);
console.log(`[proxycast] Aster 仓库: ${asterRepoPath}`);
console.log(`[lime] 已生成本地 Aster 覆盖配置: ${cargoConfigPath}`);
console.log(`[lime] Aster 仓库: ${asterRepoPath}`);
+1 -1
View File
@@ -8,7 +8,7 @@
* node scripts/social-workbench-e2e-smoke.mjs --session-id <session_id> --content-id <content_id>
*
* 前置条件:
* 1. ProxyCast 已运行(Dev Bridge: http://127.0.0.1:3030/invoke)
* 1. Lime 已运行(Dev Bridge: http://127.0.0.1:3030/invoke)
* 2. 该 session 已在 UI 中实际触发过社媒生成
*/
+1 -1
View File
@@ -5,7 +5,7 @@ import { spawn } from 'node:child_process';
const env = { ...process.env };
delete env.TAURI_ENV_PLATFORM;
env.PROXYCAST_BROWSER_BRIDGE = '1';
env.LIME_BROWSER_BRIDGE = '1';
const child = spawn('npx', ['vite'], {
stdio: 'inherit',
+3 -3
View File
@@ -4,7 +4,7 @@
* Chrome Bridge 测试脚本
*
* 使用方式:
* 1. 确保 ProxyCast 服务器正在运行
* 1. 确保 Lime 服务器正在运行
* 2. 确保 Chrome Profile 已打开并连接
* 3. 运行: node scripts/test-chrome-bridge.mjs
*/
@@ -12,11 +12,11 @@
import WebSocket from 'ws';
const SERVER_URL = 'ws://127.0.0.1:8999';
const BRIDGE_KEY = 'Proxycast-key11';
const BRIDGE_KEY = 'Lime-key11';
const PROFILE_KEY = 'search_google';
// 连接 Control 通道
const controlUrl = `${SERVER_URL}/proxycast-chrome-control/${BRIDGE_KEY}`;
const controlUrl = `${SERVER_URL}/lime-chrome-control/${BRIDGE_KEY}`;
console.log(`[测试] 连接 Control 通道: ${controlUrl}`);
const ws = new WebSocket(controlUrl);
+2 -2
View File
@@ -3,10 +3,10 @@
import WebSocket from 'ws';
const serverUrl = 'ws://127.0.0.1:8999';
const bridgeKey = 'Proxycast-key11';
const bridgeKey = 'Lime-key11';
const profileKey = 'search_google';
const url = `${serverUrl}/proxycast-chrome-observer/${encodeURIComponent(bridgeKey)}?profileKey=${encodeURIComponent(profileKey)}`;
const url = `${serverUrl}/lime-chrome-observer/${encodeURIComponent(bridgeKey)}?profileKey=${encodeURIComponent(profileKey)}`;
console.log(`[测试] 连接 URL: ${url}`);
+6 -4
View File
@@ -15,8 +15,8 @@ OpenAI 兼容图像生成 API 测试脚本
python scripts/test_image_api.py --base-url http://localhost:8999 --api-key your-key
环境变量:
PROXYCAST_BASE_URL: API 服务器地址(默认: http://localhost:8999)
PROXYCAST_API_KEY: API 密钥(默认: pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ)
LIME_BASE_URL: API 服务器地址(默认: http://localhost:8999)
LIME_API_KEY: API 密钥(默认: pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ)
"""
import argparse
@@ -292,12 +292,14 @@ def main():
)
parser.add_argument(
"--base-url",
default=os.environ.get("PROXYCAST_BASE_URL", "http://localhost:8999"),
default=os.environ.get("LIME_BASE_URL")
or os.environ.get("PROXYCAST_BASE_URL", "http://localhost:8999"),
help="API 服务器地址"
)
parser.add_argument(
"--api-key",
default=os.environ.get("PROXYCAST_API_KEY", "pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ"),
default=os.environ.get("LIME_API_KEY")
or os.environ.get("PROXYCAST_API_KEY", "pc_LXZbIv3o78WpHuQwqgmwC0U4G0cY5UtQ"),
help="API 密钥"
)
parser.add_argument(
+8 -8
View File
@@ -7,7 +7,7 @@ $ErrorActionPreference = "Stop"
function Write-Step {
param([string]$Message)
Write-Host "[ProxyCast Support] $Message"
Write-Host "[Lime Support] $Message"
}
function Ensure-Directory {
@@ -111,14 +111,14 @@ if ([string]::IsNullOrWhiteSpace($OutputRoot)) {
$OutputRoot = if ([string]::IsNullOrWhiteSpace($desktop)) { $env:TEMP } else { $desktop }
}
$bundleName = "ProxyCast-Support-$timestamp"
$bundleName = "Lime-Support-$timestamp"
$bundleDir = Join-Path $OutputRoot $bundleName
$zipPath = "$bundleDir.zip"
$appDataDir = Join-Path $env:APPDATA "proxycast"
$legacyDir = Join-Path $env:USERPROFILE ".proxycast"
$appDataDir = Join-Path $env:APPDATA "lime"
$legacyDir = Join-Path $env:USERPROFILE ".lime"
$configPath = Join-Path $appDataDir "config.yaml"
$dbPath = Join-Path $legacyDir "proxycast.db"
$dbPath = Join-Path $legacyDir "lime.db"
$logsDir = Join-Path $legacyDir "logs"
$requestLogsDir = Join-Path $legacyDir "request_logs"
@@ -135,7 +135,7 @@ $systemInfo = [ordered]@{
powershell_version = $PSVersionTable.PSVersion.ToString()
webview2_version = Get-WebView2Version
appdata_dir = $appDataDir
legacy_proxycast_dir = $legacyDir
legacy_lime_dir = $legacyDir
config_path = $configPath
database_path = $dbPath
shell_paths = @{
@@ -162,7 +162,7 @@ $copiedLogs = Copy-DirectoryIfExists -SourcePath $logsDir -DestinationPath (Join
$copiedRequestLogs = Copy-DirectoryIfExists -SourcePath $requestLogsDir -DestinationPath (Join-Path $bundleDir "logs/request_logs")
@(
"ProxyCast 支持包已生成。",
"Lime 支持包已生成。",
"",
"已收集内容:",
"- system-info.json(系统与路径元数据)",
@@ -172,7 +172,7 @@ $copiedRequestLogs = Copy-DirectoryIfExists -SourcePath $requestLogsDir -Destina
"",
"默认未收集内容:",
"- config.yaml 正文(避免泄露 API Key / 凭证)",
"- proxycast.db 正文(避免泄露会话与敏感数据)",
"- lime.db 正文(避免泄露会话与敏感数据)",
"- credentials/ 目录内容",
"",
"是否复制 logs: $copiedLogs",