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.
Files changed (26) hide show
  1. package/package.json +1 -1
  2. package/src/ui/public/assets/{AppVersionBadge-D9w7Usgz.js → AppVersionBadge-CS59-kD5.js} +1 -1
  3. package/src/ui/public/assets/{BranchSelector-BJpA20eU.js → BranchSelector-DulCErgN.js} +1 -1
  4. package/src/ui/public/assets/{CommandConsole-DUyDJSaq.js → CommandConsole-H1j4BsHx.js} +2 -2
  5. package/src/ui/public/assets/{CommitForm-BCWCchcJ.js → CommitForm-DIdLEAZ_.js} +1 -1
  6. package/src/ui/public/assets/{CustomCommandManager-DRzAgnp3.js → CustomCommandManager-Cm5yU0TM.js} +1 -1
  7. package/src/ui/public/assets/{EditorView-DuB3Btcp.js → EditorView-CTvDExIi.js} +0 -0
  8. package/src/ui/public/assets/{FileDiffViewer-DldATw5k.js → FileDiffViewer-C7Cosx8a.js} +1 -1
  9. package/src/ui/public/assets/{FlowExecutionViewer-BNuIB5Bi.js → FlowExecutionViewer-BeGTXBVV.js} +1 -1
  10. package/src/ui/public/assets/{FlowOrchestrationWorkspace-BcA7LT02.js → FlowOrchestrationWorkspace-CuqAZCaM.js} +1 -1
  11. package/src/ui/public/assets/{GitStatus-BFpSu8gV.js → GitStatus-DBDjyLJD.js} +1 -1
  12. package/src/ui/public/assets/{LogList-C4mS0mZ4.js → LogList-YCJ_gVWr.js} +1 -1
  13. package/src/ui/public/assets/{ProjectStartupButton-BBRjQvH3.js → ProjectStartupButton-gWSO3HCJ.js} +1 -1
  14. package/src/ui/public/assets/{RemoteRepoCard-OUVJTKSC.js → RemoteRepoCard-9iWOAx2g.js} +1 -1
  15. package/src/ui/public/assets/ResetToRemoteButton-BTIEz5PB.css +1 -0
  16. package/src/ui/public/assets/{ResetToRemoteButton-Bpqx8Rhc.js → ResetToRemoteButton-BckRJ_lM.js} +1 -1
  17. package/src/ui/public/assets/{SourceMapView-CDETiU3C.js → SourceMapView-DWBowIx1.js} +1 -1
  18. package/src/ui/public/assets/{TemplateManager-idRwh__b.js → TemplateManager-DiKpGMhi.js} +1 -1
  19. package/src/ui/public/assets/{UserInputNode-pnY8iicS.js → UserInputNode-CU11vBBn.js} +1 -1
  20. package/src/ui/public/assets/{WorkbenchView-B83HdnYr.js → WorkbenchView-BsVMwobR.js} +1 -1
  21. package/src/ui/public/assets/{index-Bi1D0fFa.js → index-BxxqloTb.js} +2 -2
  22. package/src/ui/public/assets/index-CDa9xf0V.css +1 -0
  23. package/src/ui/public/index.html +2 -2
  24. package/src/ui/server/routes/workbench.js +12 -9
  25. package/src/ui/public/assets/ResetToRemoteButton-DQuq2KfL.css +0 -1
  26. 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. 给出一段 400-800 字的中文「项目架构说明」,覆盖:项目整体定位、技术栈、模块划分、核心流程、关键设计决策。
69
+ 1. 给出一段中文「项目架构说明」,长度不限,模型自行决定篇幅与详尽程度,能写多详细就多详细。覆盖:项目整体定位、技术栈、模块划分、核心流程、关键设计决策。
70
70
  2. 必须引用子项目里实际存在的文件路径、目录名、依赖名,不要编造。
71
71
  3. 多个子项目时:先逐个说明,最后输出一段「整体架构」总结它们之间的关系。
72
72
  4. 语气专业、具体、面向接手这个项目的开发者。
73
- 5. 只返回 JSON:{ "name": "项目名(10-20字)", "summary": "架构说明正文" }。`;
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: 4000, timeoutMs: 1200000 };
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": "项目名(10-20字)",
1522
- "template": "可复用的提示词模板(300-600字),应明确使用 {{task.title}} / {{task.desc}} / {{sub.title}} / {{sub.desc}} / {{repo.path}} / {{branch}} 这 6 个变量"
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": "该子项目的架构说明(300-600字)"
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 个子项目的架构说明,请合并输出**单一**的「项目架构说明」(800-1500字),覆盖:项目整体定位、技术栈、模块划分、子项目间关系、核心流程、关键设计决策。
1569
+ const mergePrompt = `你是项目架构师。下列是同一仓库下 N 个子项目的架构说明,请合并输出**单一**的「项目架构说明」,长度不限,模型自行决定篇幅与详尽程度。覆盖:项目整体定位、技术栈、模块划分、子项目间关系、核心流程、关键设计决策。
1570
1570
  子项目之间用清晰的小标题或编号分隔。最后输出一段「整体架构」总结它们如何协同。
1571
1571
  只引用实际出现的子项目名 / 文件路径 / 依赖名,不要编造。只返回 JSON:
1572
1572
 
1573
1573
  {
1574
- "name": "项目名(10-20字)",
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}