Skip to content

feat(style-pack): 清晰结构 v3.0 Beta 提示词 + 内置包版本对账(推向所有用户) - #885

Merged
appergb merged 3 commits into
betafrom
feat/style-pack-structured-v3
Aug 3, 2026
Merged

feat(style-pack): 清晰结构 v3.0 Beta 提示词 + 内置包版本对账(推向所有用户)#885
appergb merged 3 commits into
betafrom
feat/style-pack-structured-v3

Conversation

@appergb

@appergb appergb commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

User description

目标(一个 PR,两个按职责拆分的 commit)

  1. feat(style-pack) 清晰结构 v3.0 Beta 提示词上线:
    • STRUCTURED_BUILTIN_PROMPT 替换为 Beta 版——人格化「语修」角色(性格/身体/习惯/梦想/职责/能力/规则)+ 场景优先级分型(操作指引 / 编程任务 / 模型资讯)+ ASR 术语纠错词表 + 反 AI 自述式表达约束
    • 内置包版本 2.0.0 → 3.0.0;默认风格包由 light 改为 structured(与 UI 层 tray 菜单默认一致)
    • 同步 TS mock 的 structured prompt;polish 契约测试更新为新 Beta 锚点
  2. feat(style-pack) 内置包版本对账机制(推向所有用户):
    • load 时对内置包做版本对账:代码内置包 version 更高 → 官方副本覆盖本地(保留 enabled),缺失自动补入
    • 老用户的「清晰结构」包升级后自动拿到 v3.0 Beta 提示词,无需手动重置

兼容性影响

  • 无破坏性变更:内置包覆盖保留用户 enabled 状态;用户自定义的非内置包不受影响
  • 新 prompt 保留 {{HOTWORDS}} 占位符,与既有 compose_system_prompt 热词注入机制兼容

测试命令与结果

  • cargo test --manifest-path src-tauri/Cargo.toml --lib ✅ 846 passed / 0 failed(含更新后的 polish 契约测试 + style_pack 测试)
  • npx tsc --noEmit

证据

  • 本地全量 Rust 测试通过;契约测试锚点已按 v3.0 Beta 结构更新(# 场景优先级 / # 输出格式 / # AI 编程术语纠错)
  • 对账机制:reconcile_builtin_packs 版本比较 + 覆盖(保留 enabled)

链接

  • 语音转写任务:将风格包提示词更新为「清晰结构 Beta」,默认风格包为「清晰结构」,并推向所有用户

PR Type

Enhancement, Tests


Description

  • 上线「清晰结构」v3.0 Beta 提示词:人格化「语修」角色 + 场景优先级分型

  • 新增内置包版本对账:官方高版本仅推进 prompt/version,保留用户自定义

  • 默认风格包由 light 改为 structured,TS mock 与契约测试同步

  • 补充版本比较与对账单元测试,更新 polish 契约锚点


Diagram Walkthrough

flowchart LR
  A["v3.0 Beta 提示词"] --> B["types.rs 版本 3.0.0 / 默认 structured"]
  A --> C["mock-data.ts 同步"]
  A --> D["polish.rs 契约测试更新"]
  B --> E["style_pack.rs 对账机制"]
  E --> F["老用户自动升级 / 保留 enabled"]
Loading

File Walkthrough

Relevant files
Enhancement
style_pack.rs
内置包版本对账与默认包回退                                                                                       

openless-all/app/src-tauri/src/persistence/style_pack.rs

  • 新增 reconcile_builtin_packs,load 时对内置包做版本对账
  • 官方版本更高时仅推进 promptversion,保留用户字段与 enabled
  • 新增 pack_version_newer,按数值分段比较并忽略 pre-release 后缀
  • 默认包回退逻辑改用 default_active_style_pack_id()
+59/-1   
types.rs
上线清晰结构 v3.0 Beta 内置提示词                                                                     

openless-all/app/src-tauri/src/types.rs

  • 默认风格包由 light 改为 structured(清晰结构)
  • 内置清晰结构包版本 2.0.0 → 3.0.0,描述同步更新
  • STRUCTURED_BUILTIN_PROMPT 整体替换为 v3.0 Beta:语修人格、场景优先级、ASR 词表、反 AI
    自述约束、新示例
+103/-186
mock-data.ts
同步前端 mock structured 提示词                                                                 

openless-all/app/src/lib/ipc/mock-data.ts

  • TS mock 的 structured prompt 同步为 v3.0 Beta 内容
  • 与 Rust 内置提示词保持一致,便于前端联调
+108/-5 
Tests
style_pack_tests.rs
补充版本对账相关单元测试                                                                                         

openless-all/app/src-tauri/src/persistence/style_pack_tests.rs

  • 新增 pack_version_newer 数值比较单测,覆盖 pre-release 场景
  • 新增对账测试:prompt-only 推进且保留用户改名与 enabled
  • 补测等版本跳过与缺失内置包自动补入
+52/-0   
polish.rs
更新结构化提示词契约测试锚点                                                                                     

openless-all/app/src-tauri/src/polish.rs

  • 更新 structured prompt 契约测试锚点为 v3.0 Beta 的「场景优先级/输出格式」
  • Structured 模式移出共享 ASR 纠错测试,改为单独断言新分级规则
  • 同步模型名、版本号、示例锚点等防回归断言
+45/-31 

sim added 2 commits August 3, 2026 11:54
- STRUCTURED_BUILTIN_PROMPT 替换为 Beta 版:语修人格(性格/身体/习惯/梦想/职责/能力/规则)
  + 场景优先级分型(操作指引/编程任务/模型资讯)+ ASR 术语纠错词表 + 反 AI 自述式表达约束
- 内置包版本 2.0.0 → 3.0.0;默认风格包由 light 改为 structured(与 UI 层一致)
- 同步 TS mock 的 structured prompt;polish 契约测试更新为新 Beta 锚点
- load 时对内置包做版本对账:代码内置包 version 更高则用官方副本覆盖本地
  (保留用户 enabled 设置),本地缺失的内置包自动补入
- 老用户的「清晰结构」包在升级后自动拿到 v3.0 Beta 提示词,无需手动重置
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

PR Reviewer Guide 🔍

(Review updated until commit 3318eb2)

Here are some key observations to aid the review process:

⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Possible Issue

pack_version_newer strips pre-release suffixes before comparison, so a local
builtin pack version such as 3.0.0-beta.1 compares equal to an official stable
3.0.0. If a user installs a beta build and later upgrades to the stable release
with the same numeric version, reconcile_builtin_packs will not overwrite the
stale beta prompt/version, and the user will keep the beta prompt until a later
version bump. Consider treating a release version as newer than the same numeric
pre-release version (e.g., 3.0.0 > 3.0.0-beta.1) or explicitly bumping the
version when a stable release follows a beta.

fn pack_version_newer(a: &str, b: &str) -> bool {
    fn numeric_parts(v: &str) -> Vec<u64> {
        v.split('-')
            .next()
            .unwrap_or(v)
            .split('.')
            .filter_map(|s| s.parse::<u64>().ok())
            .collect()
    }
    let (pa, pb) = (numeric_parts(a), numeric_parts(b));
    for i in 0..pa.len().max(pb.len()) {
        let x = pa.get(i).copied().unwrap_or(0);
        let y = pb.get(i).copied().unwrap_or(0);
        if x == y {
            continue;
        }
        return x > y;
    }
    false
}

- reconcile 不再整包替换:只推进官方 prompt 与 version,用户的名称/描述/示例/
  tags/enabled 全部保留(审核意见)
- pack_version_newer 正确处理 pre-release 后缀(-beta 视为与正式版同级)
- 补 3 个单测:版本比较 / prompt-only 推进保留用户字段 / 等版本跳过 + 缺失补入
- 默认包 fallback(get_or_default_active)改为优先清晰结构;更新过期注释
@appergb
appergb merged commit e6d3779 into beta Aug 3, 2026
5 checks passed
@appergb
appergb deleted the feat/style-pack-structured-v3 branch August 3, 2026 04:06
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Persistent review updated to latest commit 3318eb2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant