zen-gitsync 2.13.21 → 2.13.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/ui/public/assets/{AppVersionBadge-D9w7Usgz.js → AppVersionBadge-CS59-kD5.js} +1 -1
- package/src/ui/public/assets/{BranchSelector-BJpA20eU.js → BranchSelector-DulCErgN.js} +1 -1
- package/src/ui/public/assets/{CommandConsole-DUyDJSaq.js → CommandConsole-H1j4BsHx.js} +2 -2
- package/src/ui/public/assets/{CommitForm-BCWCchcJ.js → CommitForm-DIdLEAZ_.js} +1 -1
- package/src/ui/public/assets/{CustomCommandManager-DRzAgnp3.js → CustomCommandManager-Cm5yU0TM.js} +1 -1
- package/src/ui/public/assets/{EditorView-DuB3Btcp.js → EditorView-CTvDExIi.js} +0 -0
- package/src/ui/public/assets/{FileDiffViewer-DldATw5k.js → FileDiffViewer-C7Cosx8a.js} +1 -1
- package/src/ui/public/assets/{FlowExecutionViewer-BNuIB5Bi.js → FlowExecutionViewer-BeGTXBVV.js} +1 -1
- package/src/ui/public/assets/{FlowOrchestrationWorkspace-BcA7LT02.js → FlowOrchestrationWorkspace-CuqAZCaM.js} +1 -1
- package/src/ui/public/assets/{GitStatus-BFpSu8gV.js → GitStatus-DBDjyLJD.js} +1 -1
- package/src/ui/public/assets/{LogList-C4mS0mZ4.js → LogList-YCJ_gVWr.js} +1 -1
- package/src/ui/public/assets/{ProjectStartupButton-BBRjQvH3.js → ProjectStartupButton-gWSO3HCJ.js} +1 -1
- package/src/ui/public/assets/{RemoteRepoCard-OUVJTKSC.js → RemoteRepoCard-9iWOAx2g.js} +1 -1
- package/src/ui/public/assets/ResetToRemoteButton-BTIEz5PB.css +1 -0
- package/src/ui/public/assets/{ResetToRemoteButton-Bpqx8Rhc.js → ResetToRemoteButton-BckRJ_lM.js} +1 -1
- package/src/ui/public/assets/{SourceMapView-CDETiU3C.js → SourceMapView-DWBowIx1.js} +1 -1
- package/src/ui/public/assets/{TemplateManager-idRwh__b.js → TemplateManager-DiKpGMhi.js} +1 -1
- package/src/ui/public/assets/{UserInputNode-pnY8iicS.js → UserInputNode-CU11vBBn.js} +1 -1
- package/src/ui/public/assets/{WorkbenchView-B83HdnYr.js → WorkbenchView-BsVMwobR.js} +1 -1
- package/src/ui/public/assets/{index-Bi1D0fFa.js → index-BxxqloTb.js} +2 -2
- package/src/ui/public/assets/index-CDa9xf0V.css +1 -0
- package/src/ui/public/index.html +2 -2
- package/src/ui/server/routes/workbench.js +12 -9
- package/src/ui/public/assets/ResetToRemoteButton-DQuq2KfL.css +0 -1
- package/src/ui/public/assets/index-DYjISu_4.css +0 -1
|
@@ -66,11 +66,11 @@ const DEFAULT_INSTRUCTION = `你是一名资深软件架构师。
|
|
|
66
66
|
- 2 层目录树(最多 200 行)
|
|
67
67
|
|
|
68
68
|
【输出要求】
|
|
69
|
-
1.
|
|
69
|
+
1. 给出一段中文「项目架构说明」,长度不限,模型自行决定篇幅与详尽程度,能写多详细就多详细。覆盖:项目整体定位、技术栈、模块划分、核心流程、关键设计决策。
|
|
70
70
|
2. 必须引用子项目里实际存在的文件路径、目录名、依赖名,不要编造。
|
|
71
71
|
3. 多个子项目时:先逐个说明,最后输出一段「整体架构」总结它们之间的关系。
|
|
72
72
|
4. 语气专业、具体、面向接手这个项目的开发者。
|
|
73
|
-
5. 只返回 JSON:{ "name": "
|
|
73
|
+
5. 只返回 JSON:{ "name": "项目名(建议:项目名+架构说明)", "summary": "架构说明正文" }。`;
|
|
74
74
|
|
|
75
75
|
// 单个附件最大 5MB;与 Anthropic Messages API 文档约束一致
|
|
76
76
|
const MAX_IMAGE_BYTES = 5 * 1024 * 1024;
|
|
@@ -1488,7 +1488,7 @@ export function registerWorkbenchRoutes({ app, getCurrentProjectPath, getProject
|
|
|
1488
1488
|
}
|
|
1489
1489
|
|
|
1490
1490
|
const projectName = path.basename(projectPath);
|
|
1491
|
-
const LLM_OPTS = { maxTokens:
|
|
1491
|
+
const LLM_OPTS = { maxTokens: 16000, timeoutMs: 1200000 };
|
|
1492
1492
|
|
|
1493
1493
|
// ── 第一阶段:基于可编辑指令 + 根目录概览,生成「可复用的提示词模板」 ──
|
|
1494
1494
|
const overviewBlock = subProjects.map(sp =>
|
|
@@ -1518,12 +1518,12 @@ ${subProjects.map(sp => {
|
|
|
1518
1518
|
|
|
1519
1519
|
只返回 JSON:
|
|
1520
1520
|
{
|
|
1521
|
-
"name": "
|
|
1522
|
-
"template": "
|
|
1521
|
+
"name": "项目名(建议:项目名+架构说明,可根据实际项目特征调整)",
|
|
1522
|
+
"template": "可复用的提示词模板,长度不限,请充分覆盖 {{task.title}} / {{task.desc}} / {{sub.title}} / {{sub.desc}} / {{repo.path}} / {{branch}} 这 6 个变量的用法与上下文"
|
|
1523
1523
|
}`;
|
|
1524
1524
|
|
|
1525
1525
|
const first = await callLlmJson(model, firstPrompt, LLM_OPTS);
|
|
1526
|
-
const templateName = String(first.name || '').trim() || projectName
|
|
1526
|
+
const templateName = String(first.name || '').trim() || `${projectName}架构说明`;
|
|
1527
1527
|
const template = String(first.template || '').trim();
|
|
1528
1528
|
|
|
1529
1529
|
// ── 第二阶段:为每个子项目分别生成总结(单子项目 = 现在的行为) ──
|
|
@@ -1551,7 +1551,7 @@ ${sp.readme || '(无)'}
|
|
|
1551
1551
|
|
|
1552
1552
|
只返回 JSON:
|
|
1553
1553
|
{
|
|
1554
|
-
"summary": "
|
|
1554
|
+
"summary": "该子项目的架构说明,长度不限,模型自行决定篇幅与详尽程度,能写多详细就多详细"
|
|
1555
1555
|
}`;
|
|
1556
1556
|
const r = await callLlmJson(model, subPrompt, LLM_OPTS);
|
|
1557
1557
|
return { name: sp.name, root: sp.root, summary: String(r.summary || '').trim() };
|
|
@@ -1566,12 +1566,12 @@ ${sp.readme || '(无)'}
|
|
|
1566
1566
|
if (subSummaries.length === 1) {
|
|
1567
1567
|
finalSummary = subSummaries[0].summary;
|
|
1568
1568
|
} else {
|
|
1569
|
-
const mergePrompt = `你是项目架构师。下列是同一仓库下 N
|
|
1569
|
+
const mergePrompt = `你是项目架构师。下列是同一仓库下 N 个子项目的架构说明,请合并输出**单一**的「项目架构说明」,长度不限,模型自行决定篇幅与详尽程度。覆盖:项目整体定位、技术栈、模块划分、子项目间关系、核心流程、关键设计决策。
|
|
1570
1570
|
子项目之间用清晰的小标题或编号分隔。最后输出一段「整体架构」总结它们如何协同。
|
|
1571
1571
|
只引用实际出现的子项目名 / 文件路径 / 依赖名,不要编造。只返回 JSON:
|
|
1572
1572
|
|
|
1573
1573
|
{
|
|
1574
|
-
"name": "
|
|
1574
|
+
"name": "项目名(建议:项目名+架构说明)",
|
|
1575
1575
|
"summary": "合并后的架构说明"
|
|
1576
1576
|
}
|
|
1577
1577
|
|
|
@@ -1584,6 +1584,9 @@ ${subSummaries.map((s, i) => `\n### [${i + 1}] ${s.name} (${s.root})\n${s.summar
|
|
|
1584
1584
|
finalName = String(merged.name || '').trim() || templateName;
|
|
1585
1585
|
}
|
|
1586
1586
|
|
|
1587
|
+
// 名称始终固定为「<项目名>架构说明」,不信任模型返回的 name 字段
|
|
1588
|
+
finalName = `${projectName}架构说明`;
|
|
1589
|
+
|
|
1587
1590
|
if (!finalSummary) {
|
|
1588
1591
|
// 兜底:仅返回模板
|
|
1589
1592
|
return res.json({
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.unstage-all-button[data-v-6fd84bc7] .el-button.from-drawer{padding:6px var(--spacing-md);font-size:var(--font-size-sm);height:32px}.unstage-all-button[data-v-6fd84bc7] .el-button.from-form{padding:10px var(--spacing-lg);height:40px}.git-command-preview[data-v-8150488e]{margin-top:var(--spacing-base)}.preview-container[data-v-8150488e]{background:var(--bg-console);border:1px solid var(--border-console);border-radius:var(--radius-lg);align-items:center;gap:0;transition:border-color .2s;display:flex;overflow:hidden}.preview-container[data-v-8150488e]:hover{border-color:var(--border-console-hover)}.preview-title[data-v-8150488e]{font-size:var(--font-size-xs);font-family:var(--font-mono);color:var(--text-console-muted);white-space:nowrap;background:var(--bg-console-cmd);flex-shrink:0;align-items:center;gap:6px;padding:7px 10px 7px 14px;display:flex}.preview-title[data-v-8150488e]:before{content:"$";color:var(--text-console-prompt);font-size:13px;font-weight:700}.preview-content[data-v-8150488e]{padding:7px var(--spacing-base);font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-console);white-space:nowrap;background:0 0;flex:1;font-weight:500;line-height:1.4;overflow-x:auto}.preview-content[data-v-8150488e]::-webkit-scrollbar{height:3px}.preview-content[data-v-8150488e]::-webkit-scrollbar-track{background:0 0}.preview-content[data-v-8150488e]::-webkit-scrollbar-thumb{background:var(--console-scrollbar);border-radius:2px}[data-v-8150488e]::deep(.copy-command-btn){flex-shrink:0;margin-right:6px;color:var(--text-console-muted)!important}[data-v-8150488e]::deep(.copy-command-btn):hover{color:var(--text-console)!important;background:var(--bg-console-soft)!important}.merge-branch-button[data-v-9dd82c62]{display:inline-block}.merge-dialog-content[data-v-9dd82c62]{gap:var(--spacing-base);flex-direction:column;display:flex}.merge-info-card[data-v-9dd82c62]{align-items:flex-start;gap:var(--spacing-base);padding:var(--spacing-base);border-radius:var(--radius-xl);background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%);border:1px solid #93c5fd;display:flex;position:relative;overflow:hidden}.merge-info-card[data-v-9dd82c62]:before{content:"";background:linear-gradient(90deg,#3b82f6 0%,#2563eb 100%);height:3px;position:absolute;top:0;left:0;right:0}.merge-info-card .info-icon[data-v-9dd82c62]{color:#fff;width:40px;height:40px;font-size:var(--font-size-lg);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.merge-info-card .info-content[data-v-9dd82c62]{flex:1}.merge-info-card .info-content h4[data-v-9dd82c62]{font-size:var(--font-size-md);color:#1e3a8a;margin:0 0 6px;font-weight:600;line-height:1.2}.merge-info-card .info-content p[data-v-9dd82c62]{color:#1e40af;margin:0;line-height:1.4}.merge-info-card .info-content code[data-v-9dd82c62]{padding:var(--spacing-xs) 6px;border-radius:var(--radius-base);color:#1e40af;background:#3b82f61a;font-family:Consolas,Monaco,Courier New,monospace;font-weight:600}.merge-form[data-v-9dd82c62]{gap:var(--spacing-base);flex-direction:column;display:flex}.merge-form[data-v-9dd82c62] .el-form-item{margin-bottom:0}.merge-form[data-v-9dd82c62] .el-form-item__label{color:var(--color-text-title);margin-bottom:var(--spacing-base);font-weight:600}.merge-form[data-v-9dd82c62] .el-select .el-input__wrapper,.merge-form[data-v-9dd82c62] .el-select .el-textarea__inner,.merge-form[data-v-9dd82c62] .el-input .el-input__wrapper,.merge-form[data-v-9dd82c62] .el-input .el-textarea__inner,.merge-form[data-v-9dd82c62] .el-textarea .el-input__wrapper,.merge-form[data-v-9dd82c62] .el-textarea .el-textarea__inner{border-radius:var(--radius-lg);border:2px solid var(--color-gray-200);transition:all .3s}.merge-form[data-v-9dd82c62] .el-select .el-input__wrapper:hover,.merge-form[data-v-9dd82c62] .el-select .el-textarea__inner:hover,.merge-form[data-v-9dd82c62] .el-input .el-input__wrapper:hover,.merge-form[data-v-9dd82c62] .el-input .el-textarea__inner:hover,.merge-form[data-v-9dd82c62] .el-textarea .el-input__wrapper:hover,.merge-form[data-v-9dd82c62] .el-textarea .el-textarea__inner:hover{border-color:var(--color-gray-300)}.merge-form[data-v-9dd82c62] .el-select .el-input__wrapper.is-focus,.merge-form[data-v-9dd82c62] .el-select .el-textarea__inner:focus-visible,.merge-form[data-v-9dd82c62] .el-input .el-input__wrapper.is-focus,.merge-form[data-v-9dd82c62] .el-input .el-textarea__inner:focus-visible,.merge-form[data-v-9dd82c62] .el-textarea .el-input__wrapper.is-focus,.merge-form[data-v-9dd82c62] .el-textarea .el-textarea__inner:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.merge-form[data-v-9dd82c62] .el-radio-group{gap:var(--spacing-base);display:flex}.merge-form[data-v-9dd82c62] .el-radio-group .el-radio-button{flex:1}.merge-form[data-v-9dd82c62] .el-radio-group .el-radio-button__inner{border-radius:var(--radius-lg);width:100%;transition:all .3s}.merge-options[data-v-9dd82c62]{padding:var(--spacing-base);border-radius:var(--radius-xl)}.options-title[data-v-9dd82c62]{align-items:center;gap:var(--spacing-base);margin:0 0 var(--spacing-md) 0;color:var(--color-text-title);font-weight:600;display:flex}.options-title[data-v-9dd82c62] .el-icon{color:var(--color-gray-500);font-size:var(--font-size-md)}.options-horizontal[data-v-9dd82c62]{align-items:center;gap:var(--spacing-2xl);flex-wrap:wrap;display:flex}.options-horizontal[data-v-9dd82c62] .el-checkbox{white-space:nowrap;margin:0}.options-horizontal[data-v-9dd82c62] .el-checkbox .el-checkbox__label{color:var(--color-text-title);font-weight:500}.default-message-hint[data-v-9dd82c62]{justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--text-secondary);display:flex}.default-message-hint .hint-content[data-v-9dd82c62]{align-items:center;gap:var(--spacing-xs);flex:1;min-width:0;display:flex}.default-message-hint .hint-content span[data-v-9dd82c62]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.default-message-hint .el-icon[data-v-9dd82c62]{font-size:var(--font-size-md);color:var(--color-info);flex-shrink:0}.default-message-hint .copy-btn[data-v-9dd82c62]{flex-shrink:0;height:auto;padding:0}[data-v-9dd82c62] .merge-dialog .common-dialog__footer .el-button{border-radius:var(--radius-lg);font-weight:500;transition:all .3s}[data-v-9dd82c62] .merge-dialog .common-dialog__footer .el-button:hover{transform:scale(1.02)}[data-v-9dd82c62] .merge-dialog .common-dialog__footer .el-button:active{transform:scale(.98)}[data-v-9dd82c62] .merge-dialog .common-dialog__footer .el-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.stash-changes-button[data-v-bcdf10c3]{display:inline-block}.stash-dialog-content[data-v-bcdf10c3]{gap:var(--spacing-base);flex-direction:column;display:flex}.stash-info-card[data-v-bcdf10c3]{align-items:flex-start;gap:var(--spacing-base);padding:var(--spacing-base);border-radius:var(--radius-xl);background:linear-gradient(135deg,#f0f9ff 0%,#e0f2fe 100%);border:1px solid #bae6fd;display:flex;position:relative;overflow:hidden}.stash-info-card[data-v-bcdf10c3]:before{content:"";background:linear-gradient(90deg,#0ea5e9 0%,#0284c7 100%);height:3px;position:absolute;top:0;left:0;right:0}.stash-info-card .info-icon[data-v-bcdf10c3]{color:#fff;width:40px;height:40px;font-size:var(--font-size-lg);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.stash-info-card .info-content[data-v-bcdf10c3]{flex:1}.stash-info-card .info-content h4[data-v-bcdf10c3]{font-size:var(--font-size-md);color:#0c4a6e;margin:0 0 6px;font-weight:600;line-height:1.2}.stash-info-card .info-content p[data-v-bcdf10c3]{color:#075985;margin:0;line-height:1.4}.stash-form[data-v-bcdf10c3]{gap:var(--spacing-base);flex-direction:column;display:flex}.stash-form[data-v-bcdf10c3] .el-form-item{margin-bottom:0}.stash-form[data-v-bcdf10c3] .el-form-item__label{color:var(--color-text-title);margin-bottom:var(--spacing-base);font-weight:600}.stash-form[data-v-bcdf10c3] .el-textarea .el-textarea__inner{border-radius:var(--radius-lg);border:2px solid var(--color-gray-200);line-height:1.5;transition:all .3s}.stash-form[data-v-bcdf10c3] .el-textarea .el-textarea__inner:hover{border-color:var(--color-gray-300)}.stash-form[data-v-bcdf10c3] .el-textarea .el-textarea__inner:focus-visible{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.stash-options[data-v-bcdf10c3]{padding:var(--spacing-base);border-radius:var(--radius-xl)}.options-title[data-v-bcdf10c3]{align-items:center;gap:var(--spacing-base);margin:0 0 var(--spacing-base) 0;color:var(--color-text-title);font-weight:600;display:flex}.options-title[data-v-bcdf10c3] .el-icon{color:var(--color-gray-500);font-size:var(--font-size-md)}.option-item[data-v-bcdf10c3]{margin-bottom:var(--spacing-base)}.option-item[data-v-bcdf10c3]:last-child{margin-bottom:0}.option-item[data-v-bcdf10c3] .el-checkbox{margin-bottom:var(--spacing-base)}.option-label[data-v-bcdf10c3]{color:var(--color-text-title);font-weight:500}.option-desc[data-v-bcdf10c3]{font-size:var(--font-size-sm);color:var(--color-gray-500);padding-left:var(--spacing-2xl);margin:0;line-height:1.4}.option-desc.disabled[data-v-bcdf10c3]{color:var(--color-gray-400)}.stash-preview[data-v-bcdf10c3]{padding:var(--spacing-base);border-radius:var(--radius-xl);background:linear-gradient(135deg,#fefce8 0%,#fef3c7 100%);border:1px solid #fbbf24;position:relative}.stash-preview[data-v-bcdf10c3]:before{content:"";background:linear-gradient(90deg, var(--git-status-modified) 0%, #d97706 100%);border-radius:12px 12px 0 0;height:3px;position:absolute;top:0;left:0;right:0}.preview-title[data-v-bcdf10c3]{align-items:center;gap:var(--spacing-base);color:#92400e;font-weight:600;display:flex}.preview-title[data-v-bcdf10c3] .el-icon{color:#d97706;font-size:var(--font-size-md)}.file-count-info[data-v-bcdf10c3]{gap:var(--spacing-base);flex-wrap:wrap;display:flex}.file-count-info[data-v-bcdf10c3] .el-tag{border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-base)}[data-v-bcdf10c3] .stash-dialog .common-dialog__footer .el-button{border-radius:var(--radius-lg);font-weight:500;transition:all .3s}[data-v-bcdf10c3] .stash-dialog .common-dialog__footer .el-button:hover{transform:scale(1.02)}[data-v-bcdf10c3] .stash-dialog .common-dialog__footer .el-button:active{transform:scale(.98)}[data-v-bcdf10c3] .stash-dialog .common-dialog__footer .el-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.stash-list-button[data-v-392ff82b]{display:inline-block}.stash-list-content[data-v-392ff82b]{min-height:400px;padding:0}[data-v-392ff82b] .stash-list-dialog .common-dialog__header{background:var(--color-primary);color:#fff;padding:var(--spacing-xl) var(--spacing-2xl);border-radius:8px 8px 0 0;margin:0}[data-v-392ff82b] .stash-list-dialog .common-dialog__title{font-size:var(--font-size-lg);color:#fff;font-weight:600}[data-v-392ff82b] .stash-list-dialog .common-dialog__close{color:#fff;font-size:var(--font-size-lg)}[data-v-392ff82b] .stash-list-dialog .common-dialog__close:hover{color:var(--border-card)}.stash-header[data-v-392ff82b]{margin-bottom:var(--spacing-base);padding:var(--spacing-base);background:linear-gradient(135deg, var(--color-white) 0%, #f8f9fa 100%);border-radius:var(--radius-lg);border:1px solid var(--border-component);box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;display:flex}.stash-stats[data-v-392ff82b]{align-items:center;gap:var(--spacing-base);display:flex}.stat-item[data-v-392ff82b]{align-items:center;gap:var(--spacing-base);padding:var(--spacing-xs) var(--spacing-base);background:var(--color-primary);border-radius:var(--radius-lg);color:#fff;display:flex}.stat-icon[data-v-392ff82b]{font-size:var(--font-size-md)}.stat-number[data-v-392ff82b]{font-size:var(--font-size-lg);font-weight:600}.stat-label[data-v-392ff82b]{opacity:.9}.stash-actions-header[data-v-392ff82b]{gap:var(--spacing-base);display:flex}.clear-all-btn[data-v-392ff82b]{border-radius:var(--radius-lg);padding:var(--spacing-xs) var(--spacing-base);font-weight:500;transition:all .3s}.clear-all-btn[data-v-392ff82b]:hover{transform:scale(1.02)}.clear-all-btn[data-v-392ff82b]:active{transform:scale(.98)}.clear-all-btn[data-v-392ff82b]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.stash-list-container[data-v-392ff82b]{min-height:300px}.stash-cards[data-v-392ff82b]{gap:var(--spacing-base);flex-direction:column;display:flex}.stash-card[data-v-392ff82b]{background:var(--bg-container);border-radius:var(--radius-lg);border:1px solid var(--border-component);box-shadow:var(--shadow-md);transition:all .3s;overflow:hidden}.stash-card[data-v-392ff82b]:hover{border-color:var(--color-primary);transform:scale(1.02)}.stash-card[data-v-392ff82b]:active{transform:scale(.98)}.stash-card[data-v-392ff82b]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.stash-card-latest[data-v-392ff82b]{border:2px solid var(--color-success);box-shadow:var(--shadow-md)}.stash-card-latest[data-v-392ff82b]:hover{border-color:var(--color-success);box-shadow:var(--shadow-lg)}.stash-card-content[data-v-392ff82b]{padding:var(--spacing-base);align-items:center;gap:var(--spacing-base);display:flex}.stash-info[data-v-392ff82b]{gap:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex}.stash-main-info[data-v-392ff82b]{align-items:center;gap:var(--spacing-base);flex-wrap:wrap;display:flex}.stash-id-badge[data-v-392ff82b]{align-items:center;gap:var(--spacing-base);flex-shrink:0;display:flex}.badge-icon[data-v-392ff82b]{color:var(--text-tertiary)}.stash-id-text[data-v-392ff82b]{font-family:Consolas,Monaco,Courier New,monospace;font-size:var(--font-size-sm);background:var(--bg-panel);color:var(--text-secondary);padding:3px var(--spacing-base);border-radius:var(--radius-base);letter-spacing:.5px;border:1px solid var(--border-card);font-weight:500}.latest-tag[data-v-392ff82b]{margin-left:var(--spacing-sm)}.stash-description[data-v-392ff82b]{flex:1;min-width:0}.description-text[data-v-392ff82b]{word-break:break-word;text-overflow:ellipsis;white-space:nowrap;margin:0;font-weight:500;line-height:1.4;overflow:hidden}.stash-card-actions[data-v-392ff82b]{flex-shrink:0;align-items:center;gap:6px;display:none}.stash-card:hover .stash-card-actions[data-v-392ff82b]{display:flex}.action-btn[data-v-392ff82b]{border-radius:var(--radius-md);min-width:60px;padding:6px var(--spacing-md);font-weight:500;font-size:var(--font-size-sm);transition:all .3s}.action-btn[data-v-392ff82b]:hover{transform:scale(1.02)}.action-btn[data-v-392ff82b]:active{transform:scale(.98)}.action-btn[data-v-392ff82b]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.view-btn[data-v-392ff82b]:hover,.apply-btn[data-v-392ff82b]:hover,.apply-pop-btn[data-v-392ff82b]:hover,.delete-btn[data-v-392ff82b]:hover{box-shadow:var(--shadow-md)}.stash-content[data-v-392ff82b]{gap:var(--spacing-base);flex-direction:column;height:100%;display:flex}.stash-info-row[data-v-392ff82b]{align-items:center;gap:var(--spacing-base);padding:var(--spacing-base);border-radius:var(--radius-md);border:1px solid var(--border-component);flex-shrink:0;display:flex}.stash-id[data-v-392ff82b],.stash-description[data-v-392ff82b]{align-items:center;gap:var(--spacing-base);display:flex}.info-label[data-v-392ff82b]{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;font-weight:500}.stash-id-value[data-v-392ff82b]{font-family:ui-monospace,SFMono-Regular,SF Mono,Monaco,Inconsolata,Roboto Mono,Droid Sans Mono,Consolas,Courier New,monospace;font-size:var(--font-size-sm);background-color:var(--border-component);color:var(--color-text);padding:var(--spacing-xs) 6px;border-radius:var(--radius-sm);border:1px solid var(--border-component)}.stash-description[data-v-392ff82b]{flex:1}.stash-description-value[data-v-392ff82b]{word-break:break-all;font-weight:400}.stash-main-content[data-v-392ff82b]{flex-direction:column;flex:1;min-height:0;display:flex}[data-v-9a8027f9] .git-reset-icon{vertical-align:middle;width:1em;height:1em;margin-right:4px}
|