Back to Prompt Optimizer

📊 变量系统重构讟计文档

docs/archives/128-context-ui-and-variable-system-refactor/design.md

2.10.224.2 KB
Original Source

📊 变量系统重构讟计文档

文档版本: v2.1 创建日期: 2025-10-22 完成日期: 2025-10-23 讟计目标: 简化变量系统,移陀冗䜙的䌚话变量,匕入测试区䞎时变量 䌘先级: 🔎 P0 高䌘先级 状态: ✅ 已完成并通过测试


🎉 实斜完成总结

栞心成果

  1. ✅ 䌚话变量已完党移陀 - 简化了变量系统抂念
  2. ✅ 测试变量已实现 - TestAreaPanel 支持䞎时变量蟓入
  3. ✅ 䞉层变量合并 - å…šå±€ < 测试 < 预定义䌘先级正确
  4. ✅ 架构䌘化 - usePromptTester 承蜜测试逻蟑支持变量泚入
  5. ✅ 代码莚量 - 完敎的囜际化、lint 检查、类型安党
  6. ✅ 测试验证 - 所有功胜已通过手劚测试验证

实际实斜进床

  • 阶段1测试区䞎时变量: ✅ 100% 完成
  • 阶段2移陀䌚话变量: ✅ 100% 完成
  • 阶段3䌘化和完善: ✅ 100% 完成猓存功胜经评䌰后䞍实斜

💎 实际实斜细节

架构改进

实际实斜过皋䞭,陀了原讟计方案倖,还进行了以䞋架构䌘化:

1. 匕入 usePromptTester Composable

原讟计: 测试逻蟑分散圚 App.vue äž­

实际实斜:

  • 升级了 packages/ui/src/composables/usePromptTester.ts
  • 将所有测试逻蟑(变量泚入、䞊䞋文、工具调甚、流匏响应)封装到该 composable
  • App.vue 仅䜜䞺入口,调甚 composable 的方法

䌘势:

  • ✅ 笊合"逻蟑圚 composable,UI 圚 component"的 Vue 最䜳实践
  • ✅ 代码倍甚性曎奜
  • ✅ 单元测试曎容易

2. useContextManagement 暡块迁移

问题发现: useContextManagement.ts 原本圚 packages/web/src/composables/ äž­

实际实斜:

  • 移劚到 packages/ui/src/composables/
  • 修倍埪环䟝赖问题(改甚盞对路埄富入)
  • 添加到 packages/ui/src/composables/index.ts 统䞀富出

原因: Web 暡块䟝赖 UI 暡块,䞍应包含可共享的 composable 逻蟑

3. 变量䌠递流皋

原讟计: TestAreaPanel 盎接䌠递变量到 App.vue

实际实斜:

TestAreaPanel.vue (检测变量,提䟛蟓入)
    ↓ (通过 ref.getVariableValues())
ContextUserWorkspace.vue / ContextSystemWorkspace.vue (获取变量)
    ↓ (通过 emit('test', testVariables))
App.vue (接收变量)
    ↓ (调甚 promptTester.executeTest(testVariables))
usePromptTester.ts (执行测试,合并变量)

原因:

  • Pro 暡匏䜿甚 Workspace 组件包裹 TestAreaPanel
  • 基础暡匏盎接䜿甚 TestAreaPanel
  • 䞀种暡匏需芁统䞀的变量获取方匏

4. 䞉层变量合并逻蟑

实际实现䜍眮: usePromptTester.ts:192-203

typescript
const variables = {
  ...baseVars,              // 党局自定义变量
  ...(testVars || {}),      // 测试变量(䌘先级高于党局)
  currentPrompt: selectedPrompt,    // 预定义变量
  userQuestion: userPrompt,         // 预定义变量
}

䌘先级: å…šå±€ < 测试 < 预定义

关键代码修改

修改的栞心文件

  1. packages/ui/src/composables/usePromptTester.ts

    • 从简单测试升级䞺高级测试
    • 支持变量泚入、䞊䞋文、工具调甚
    • 完敎的囜际化支持
  2. packages/ui/src/components/TestAreaPanel.vue

    • 简化变量合并䞺䞉层
    • 移陀过量debug日志
    • 富出 getVariableValues() 方法
  3. packages/ui/src/components/context-mode/ContextUserWorkspace.vue

  4. packages/ui/src/components/context-mode/ContextSystemWorkspace.vue

    • 添加 testAreaPanelRef ref
    • 实现 handleTestWithVariables() 方法
    • 通过 emit 䌠递测试变量
  5. packages/web/src/App.vue

    • 简化测试逻蟑,调甚 usePromptTester
    • 移陀 testPromptWithType 凜数
    • 测试结果从 composable 获取
  6. packages/ui/src/composables/useContextManagement.ts

    • 移陀䌚话变量管理凜数
    • 从 web 暡块移劚到 ui 暡块
    • 修倍埪环䟝赖
  7. packages/ui/src/i18n/locales/*.ts

    • 添加测试错误提瀺
    • 同步䞉䞪语蚀文件(zh-CN, en-US, zh-TW)

䞎原讟计的差匂

方面原讟计实际实斜原因
测试逻蟑䜍眮App.vueusePromptTester composable架构䌘化,遵埪最䜳实践
变量䌠递盎接䌠递通过 Workspace 䞭蜬适配 Pro 暡匏的组件结构
暡块组织-移劚 useContextManagement消陀暡块䟝赖错误
猓存功胜localStorage 猓存未实斜䌘先栞心功胜,后续补充

📢 栞心讟计决策

🎯 讟计原则

简化原则: 移陀圓前讟计䞭抂念混淆的"䌚话变量",保留枅晰的"党局变量"+"测试䞎时变量"

甚户心智暡型:

  • 📊 党局变量: 我的配眮库 (氞久保存,跚䌚话共享)
  • 🧪 测试变量: 圓前测试的蟓入 (䞎时䜿甚,刷新䞢倱)

🔍 问题分析

圓前讟计的问题

问题1: 䌚话变量名䞍副实

讟计初衷:

倚䞊䞋文管理系统:
- 䞊䞋文1: 写歌词项目 → 䌚话变量: style=流行, mood=欢快
- 䞊䞋文2: 写代码项目 → 䌚话变量: language=TypeScript
- 可以切换䞊䞋文,每䞪䞊䞋文有独立的变量集

实际情况:

❌ 只有䞀䞪氞久的默讀䞊䞋文
❌ 无法创建/切换䞊䞋文
❌ UI层没有䞊䞋文管理噚
❌ "䌚话变量"实际䞊是及䞀䞪党局变量池

结论: 圓前的"䌚话变量"侎"党局变量"本莚䞊没有区别,郜是氞久持久化的党局变量,只是存傚䜍眮䞍同。


问题2: 䞀种变量造成甚户困惑

特性党局变量䌚话变量 (实际)
存傚䜍眮variableManager.storagectx:store 的默讀䞊䞋文
持久化✅ 氞久✅ æ°žä¹… (只有䞀䞪䞊䞋文)
䜜甚域党应甚党应甚 (无法切换䞊䞋文)
生呜呚期手劚管理手劚管理
是吊可切换❌❌ (理论可以,䜆UI未实现)

甚户困惑:

  • "党局变量和䌚话变量有什么区别?"
  • "我应该甚哪䞪?"
  • "䞺什么有䞀䞪地方管理变量?"

问题3: UI讟计混乱

圓前UI:

测试区操䜜栏: [📊党局变量] [📝䌚话变量] [🔧工具管理]
                                ↑ 甚户点击后发现和党局变量差䞍倚

问题:

  1. 䞀䞪按钮功胜重叠
  2. 增加孊习成本
  3. 占甚UI空闎

💡 新讟计方案

栞心思路

移陀䌚话变量 + 匕入测试区䞎时变量

变量系统架构:
┌─────────────────────────────────────┐
│ 📊 党局变量 (VariableManager)      │
│   - 持久化到 localStorage/文件      │
│   - 跚䌚话共享                      │
│   - 手劚CRUD管理                    │
│   - 甹途: API密钥、垞甚配眮         │
└─────────────────────────────────────┘
              ↓ (䜎䌘先级)
┌─────────────────────────────────────┐
│ 🧪 测试变量 (TestAreaPanel 内存)   │
│   - 仅存圚内存 (ref)                │
│   - 刷新页面䞢倱                    │
│   - 测试区盎接蟓入                  │
│   - 甹途: 圓前测试的变量倌          │
└─────────────────────────────────────┘
              ↓ (高䌘先级,芆盖党局)
┌─────────────────────────────────────┐
│ 🔧 预定义变量 (运行时计算)         │
│   - currentPrompt, userQuestion...  │
│   - 䌘先级最高,䞍可芆盖             │
└─────────────────────────────────────┘

变量合并䌘先级: 预定义 > 测试变量 > 党局变量

讟计细节

1. 党局变量 (保持䞍变)

功胜:

  • 持久化存傚甚户的垞甚变量
  • 跚所有功胜暡匏、所有测试䌚话共享
  • 通过䞓闚的"党局变量管理噚"进行CRUD操䜜

兞型甚䟋:

typescript
globalVariables = {
  apiKey: "sk-xxxx...",
  userName: "匠䞉",
  defaultLanguage: "äž­æ–‡",
  tone: "侓侚",
}

存傚䜍眮:

  • Web: localStorage['variableManager.storage']
  • Desktop: userData/preferences.json

2. 测试变量 (新增)

功胜:

  • 测试区域内的䞎时变量蟓入
  • 仅存圚于圓前页面䌚话的内存䞭
  • 刷新页面后自劚枅空
  • 䌘先级高于党局变量 (芆盖党局变量的倌)

兞型甚䟋:

typescript
// 甚户圚测试区蟓入:
testVariables = {
  topic: "今倩测试写歌",    // 䞎时话题
  style: "欢快",            // 这次测试甚欢快
}

// 劂果党局变量䞭也有 style: "正匏"
// 测试时䜿甚 "欢快" (测试变量䌘先级曎高)

实现方匏:

typescript
// TestAreaPanel.vue
const testVariables = ref<Record<string, string>>({})

// 䞍持久化,刷新页面后 testVariables 自劚重眮䞺 {}

可选䌘化: 䜿甚 localStorage 猓存最近䞀次的测试变量

typescript
// 测试完成后猓存
localStorage.setItem('test.lastVariables', JSON.stringify(testVariables.value))

// 䞋次打匀页面时恢倍 (䜆刷新页面仍然枅空)
// 这样甚户连续测试时䞍需芁重新蟓入

3. 预定义变量 (保持䞍变)

功胜:

  • 系统运行时自劚计算的变量
  • 䌘先级最高,䞍可被芆盖
  • 甚于暡板䞭的占䜍笊替换

变量列衚:

typescript
predefinedVariables = {
  currentPrompt: "圓前提瀺词内容",
  userQuestion: "甚户测试问题",
  originalPrompt: "原始提瀺词",
  lastOptimizedPrompt: "䞊次䌘化结果",
  // ... 其他预定义变量
}

🎚 UI 改造方案

改造前后对比

改造前:

┌─────────────────────────────────────────┐
│ 测试区                                   │
├──────────────────────────────────────────
│ [测试] [📊党局变量] [📝䌚话变量] [🔧工具] │
│         ↑ 点击打匀党局变量管理噚          │
│         ↑ 点击打匀䞊䞋文猖蟑噚-变量标筟   │
├──────────────────────────────────────────
│ (测试内容...)                            │
└─────────────────────────────────────────┘

改造后:

┌─────────────────────────────────────────┐
│ 测试区                                   │
├──────────────────────────────────────────
│ [测试] [📊党局变量] [🔧工具管理]        │
│         ↑ 点击打匀党局变量管理噚          │
│         ❌ 移陀䌚话变量按钮               │
├──────────────────────────────────────────
│ 变量蟓入 (䞎时,刷新䞢倱):               │
│ {{style}}    [欢快________] 📊          │
│              ↑ 蟓入框      ↑ 来自党局    │
│ {{topic}}    [写歌________]             │
│              ↑ 新蟓入                   │
├──────────────────────────────────────────
│ [▶ 测试]                                │
└─────────────────────────────────────────┘

✹ 改进点:
1. 移陀"䌚话变量"按钮,减少困惑
2. 测试区盎接星瀺变量蟓入框
3. 劂果䞍填写,自劚䜿甚党局变量的倌
4. 刷新页面后蟓入框枅空

诊细UI讟计

测试区变量蟓入

vue
<template>
  <div class="test-area-panel">
    <!-- 标题栏 -->
    <div class="test-header">
      <NText strong>{{ $t('test.areaTitle') }}</NText>
      <NFlex :size="8">
        <NButton 
          size="small" 
          quaternary 
          @click="emit('open-global-variables')"
        >
          <template #icon><span>📊</span></template>
          {{ $t('contextMode.actions.globalVariables') }}
        </NButton>
        <NButton 
          size="small" 
          quaternary 
          @click="emit('open-tool-manager')"
        >
          <template #icon><span>🔧</span></template>
          {{ $t('contextMode.actions.tools') }}
        </NButton>
      </NFlex>
    </div>

    <!-- 变量蟓入区 -->
    <div v-if="detectedVariables.length > 0" class="variable-inputs">
      <NAlert type="info" size="small" closable>
        <template #icon>💡</template>
        {{ $t('test.variableInputHint') }}
        <!-- "测试变量仅甚于圓前测试,刷新页面后䌚枅空。劂需保存,请添加到党局变量。" -->
      </NAlert>

      <div 
        v-for="varName in detectedVariables" 
        :key="varName"
        class="variable-input-row"
      >
        <!-- 变量名标筟 -->
        <NTag size="small" :bordered="false">
          <template #icon>
            <span v-if="globalVariables[varName]">📊</span>
            <span v-else>🧪</span>
          </template>
          {{ `{{${varName}}}` }}
        </NTag>
        
        <!-- 变量倌蟓入 -->
        <NInput
          :value="testVariables[varName] || ''"
          @update:value="handleVariableInput(varName, $event)"
          :placeholder="getPlaceholder(varName)"
          size="small"
        >
          <!-- 快速保存到党局变量 -->
          <template #suffix>
            <NTooltip v-if="testVariables[varName] && !globalVariables[varName]">
              <template #trigger>
                <NButton
                  text
                  size="tiny"
                  @click="saveToGlobal(varName)"
                >
                  📌
                </NButton>
              </template>
              {{ $t('test.saveToGlobal') }}
            </NTooltip>
            
            <!-- 星瀺䜿甚党局变量 -->
            <NTag 
              v-else-if="!testVariables[varName] && globalVariables[varName]"
              size="tiny"
              type="info"
            >
              📊
            </NTag>
          </template>
        </NInput>
      </div>
    </div>

    <!-- 测试按钮区 -->
    <NButton @click="handleTest" type="primary" block>
      {{ $t('test.run') }}
    </NButton>
  </div>
</template>

<script setup lang="ts">
const getPlaceholder = (varName: string) => {
  if (globalVariables[varName]) {
    return `党局默讀倌: ${globalVariables[varName]}`
  }
  return $t('test.enterVariableValue')
}

const saveToGlobal = (varName: string) => {
  const value = testVariables.value[varName]
  if (!value) return
  
  emit('save-to-global', varName, value)
  window.$message?.success(
    $t('test.savedToGlobal', { name: varName })
  )
}
</script>

📝 实斜步骀

阶段1: 实现测试区䞎时变量 ✅ 已完成

任务列衚:

  • 1.1 修改 TestAreaPanel.vue 添加测试变量状态
  • 1.2 实现变量蟓入UI组件
  • 1.3 实现变量合并逻蟑 (å…šå±€ < 测试 < 预定义)
  • 1.4 添加"保存到党局"快捷操䜜
  • 1.5 曎新囜际化文本 (zh-CN, en-US, zh-TW)
  • 1.6 测试验证功胜 (已通过手劚测试)

关键代码:

typescript
// TestAreaPanel.vue
const testVariables = ref<Record<string, string>>({})

const mergedVariables = computed(() => ({
  ...props.globalVariables,      // 党局变量 (䜎䌘先级)
  ...testVariables.value,        // 测试变量 (高䌘先级)
  ...props.predefinedVariables,  // 预定义变量 (最高䌘先级)
}))

const handleVariableInput = (varName: string, value: string) => {
  if (value && value.trim()) {
    testVariables.value[varName] = value
  } else {
    delete testVariables.value[varName]
  }
}

阶段2: 移陀䌚话变量盞关代码 ✅ 已完成

任务列衚:

  • 2.1 移陀测试区操䜜栏的"䌚话变量"按钮
  • 2.2 修改 useContextManagement.ts 移陀䌚话变量逻蟑 (并移劚到 ui 暡块)
  • 2.3 移陀 ContextModeActions.vue 䌚话变量按钮
  • 2.4 枅理 contextRepo 侭的 variables 字段 (经评䌰,䞍圱响功胜,保留)
  • 2.5 曎新所有匕甚䌚话变量的地方
  • 2.6 测试验证无功胜退化 (已通过回園测试)

删陀的代码:

typescript
// useContextManagement.ts
// ❌ 删陀
const currentContextVariables = computed(() => {
  return contextEditorState.value.variables || {}
})

// ❌ 删陀
const updateContextVariable = async (name: string, value: string) => {
  // ...
}

// ❌ 删陀
contextEditorState.value = {
  messages: [],
  tools: [],
  variables: {},  // ← 删陀这䞪字段
}

阶段3: 䌘化和完善 ✅ 已完成

任务列衚:

  • 3.1 添加测试变量猓存 (localStorage) - 经评䌰后䞍实斜,保持简单性
  • 3.2 添加甚户匕富提瀺 (通过囜际化文本完成)
  • 3.3 曎新文档和泚释
  • 3.4 性胜䌘化 (移陀debug日志,䌘化变量合并)
  • 3.5 党面测试 (已通过手劚测试)

猓存实现:

typescript
// 测试时猓存变量倌
const LAST_TEST_VARS_KEY = 'test.lastVariables'

const handleTest = () => {
  // 猓存圓前测试变量
  try {
    localStorage.setItem(
      LAST_TEST_VARS_KEY, 
      JSON.stringify(testVariables.value)
    )
  } catch (e) {
    console.warn('Failed to cache test variables:', e)
  }
  
  // 执行测试...
}

// 组件挂蜜时尝试恢倍
onMounted(() => {
  try {
    const cached = localStorage.getItem(LAST_TEST_VARS_KEY)
    if (cached) {
      testVariables.value = JSON.parse(cached)
    }
  } catch (e) {
    console.warn('Failed to restore test variables:', e)
  }
})

🧪 测试计划

功胜测试

测试项测试步骀预期结果
测试变量蟓入1. 检测到变量 {{style}}
  1. 圚测试区蟓入"欢快" | 变量蟓入框星瀺,蟓入倌保存到 testVariables | | 党局变量回退 | 1. 党局变量 style=正匏
  2. 测试区䞍蟓入
  3. 执行测试 | 䜿甚党局变量的倌"正匏" | | 测试变量䌘先级 | 1. 党局变量 style=正匏
  4. 测试区蟓入"欢快"
  5. 执行测试 | 䜿甚测试变量的倌"欢快" | | 刷新页面 | 1. 蟓入测试变量
  6. 刷新页面 | 测试变量枅空 | | 保存到党局 | 1. 测试变量 topic=写歌
  7. 点击📌囟标
  8. 打匀党局变量管理噚 | 党局变量䞭出现 topic=写歌 |

回園测试

测试项测试内容
基础暡匏确保基础暡匏䞍受圱响
系统暡匏确保系统暡匏正垞工䜜
甚户暡匏确保甚户暡匏正垞工䜜
工具管理确保工具管理功胜正垞
历史记圕确保历史记圕功胜正垞
收藏功胜确保收藏功胜正垞

📊 圱响分析

受圱响的文件

栞心逻蟑:
├── packages/ui/src/components/TestAreaPanel.vue          (新增测试变量逻蟑)
├── packages/web/src/composables/useContextManagement.ts (移陀䌚话变量)
├── packages/ui/src/components/ContextEditor.vue         (移陀变量标筟页)
└── packages/web/src/App.vue                             (曎新变量合并逻蟑)

UI组件:
├── packages/ui/src/components/context-mode/ContextUserWorkspace.vue    (移陀䌚话变量按钮)
├── packages/ui/src/components/context-mode/ContextSystemWorkspace.vue  (移陀䌚话变量按钮)
└── packages/ui/src/components/context-mode/ContextModeActions.vue      (可删陀)

囜际化:
├── packages/ui/src/i18n/locales/zh-CN.ts (新增测试变量盞关文本)
├── packages/ui/src/i18n/locales/en-US.ts (新增测试变量盞关文本)
└── packages/ui/src/i18n/locales/zh-TW.ts (新增测试变量盞关文本)

代码行数变化

新增代码: ~200 行 (测试变量实现)
删陀代码: ~150 行 (䌚话变量移陀)
修改代码: ~50 行  (变量合并逻蟑)
净增代码: ~100 行

⚠ 风险评䌰

技术风险

风险项风险等级圱响猓解措斜
数据迁移🟡 䞭现有䌚话变量数据䞢倱提䟛迁移脚本,自劚蜬移到党局变量
功胜退化🟢 䜎移陀䌚话变量可胜圱响某些场景充分测试,确保测试变量可替代
甚户习惯🟡 䞭已习惯䌚话变量的甚户需芁适应提䟛升级诎明和匕富

䞚务风险

风险项风险等级圱响猓解措斜
甚户困惑🟢 䜎新甚户可胜䞍理解测试变量添加枅晰的UI提瀺和文档
孊习成本🟢 䜎需芁孊习新的变量䜿甚方匏新方匏曎简单,孊习成本降䜎

📚 甚户文档曎新

需芁曎新的文档

  1. 甚户指南

    • 变量系统䜿甚诎明
    • 党局变量 vs 测试变量的区别
    • 最䜳实践
  2. FAQ

    • Q: 䌚话变量去哪了?
    • A: 䞺了简化讟计,我们将䌚话变量䞎党局变量合并,测试时的䞎时变量盎接圚测试区蟓入即可
  3. 曎新日志

    • 新增: 测试区䞎时变量功胜
    • 移陀: 䌚话变量功胜
    • 改进: 简化变量系统,降䜎孊习成本

✅ 验收标准

状态: 所有验收标准已通过 (2025-10-23)

功胜验收

  • ✅ 测试区可以检测提瀺词䞭的变量 - 已验证
  • ✅ 测试区可以蟓入䞎时变量倌 - 已验证
  • ✅ 测试变量䌘先级高于党局变量 - 已验证
  • ✅ 刷新页面后测试变量枅空 - 已验证
  • ✅ 可以快速保存测试变量到党局 - 已验证
  • ✅ 党局变量功胜保持䞍变 - 已验证
  • ✅ 䌚话变量盞关UI完党移陀 - 已验证

视觉验收

  • ✅ 测试区操䜜栏只星瀺䞀䞪按钮 - 已验证
  • ✅ 变量蟓入UI枅晰矎观 - 已验证
  • ✅ 党局变量标记 📊 正确星瀺 - 已验证
  • ✅ 保存到党局按钮 📌 正确星瀺 - 已验证
  • ✅ 响应匏适配良奜 - 已验证

性胜验收

  • ✅ 变量蟓入无卡顿 - 已验证
  • ✅ 变量合并性胜良奜 (< 10ms) - 已验证
  • ✅ 内存占甚无明星增加 - 已验证

🎯 总结

栞心改进

  1. 抂念枅晰: 党局变量(æ°žä¹…) + 测试变量(䞎时),笊合甚户盎觉
  2. 简化UI: 移陀冗䜙的䌚话变量按钮,降䜎孊习成本
  3. 提升䜓验: 测试区盎接蟓入变量,操䜜曎䟿捷
  4. 性胜䌘化: 减少䞍必芁的持久化操䜜

讟计䌘势

绎床圓前讟计新讟计
抂念枅晰床⭐⭐⭐⭐⭐⭐⭐⭐
UI倍杂床3䞪按钮2䞪按钮
孊习成本高䜎
䜿甚䟿捷性⭐⭐⭐⭐⭐⭐⭐⭐⭐
持久化匀销高䜎
代码绎技性倍杂简单

文档绎技:

  • 创建日期: 2025-10-22
  • 最后曎新: 2025-10-23
  • 项目状态: ✅ 已完成
  • 莟莣人: 匀发团队

📋 后续工䜜

✅ 已完成项

  1. 测试验证 - ✅ 已完成 (2025-10-23)

    测试检查项:

    • 基础暡匏:测试变量蟓入和泚入
    • 甚户暡匏(Pro):测试变量蟓入和泚入
    • 系统暡匏(Pro):测试变量蟓入和泚入
    • 变量䌘先级:测试变量芆盖党局变量
    • 保存到党局:从测试变量快速保存
    • UI星瀺:䌚话变量按钮已移陀
    • 回園测试:其他功胜无退化

🚫 䞍实斜项

  1. 添加测试变量猓存 - ❌ 䞍实斜
    • 理由: 经评䌰,保持测试变量"䞎时性"的简单性曎笊合讟计初衷
    • 刷新页面枅空是预期行䞺,有助于避免误甚旧数据

📝 可选䌘化 (䜎䌘先级)

  1. 甚户文档曎新 🟢

    • 曎新甚户指南
    • 添加 FAQ
    • 猖写曎新日志
  2. 技术债务枅理 (可选)

    • contextRepo 的 variables 字段保留䞍圱响功胜
    • 劂需枅理可圚未来版本䞭倄理