feat: 1.2.8-max — 原生 UI 重写、Skill Hub、执行权限与提示词优化 - #24
Merged
Merged
Conversation
新增 Skill Hub 登录、浏览、详情与发布流程,并扩展技能仓库和 HTTP 客户端以支持远程技能管理。
让 URI、GitHub 和 Skill Hub 安装共用临时文件清理与既有 Skill 安装逻辑,并将二进制文件写入收口到 SkillFileManager。
feat: 集成 Skill Hub 技能商店
- Skill Hub 相关 UI 组件中全部硬编码中文字符串替换为 R.string 资源 (SkillHubCenterScreenView / LoginScreenView / PublishScreenView / WebScreenView / SkillStoreScreenView / SkillStoreDetailScreenView / SkillIconLoader 等) - Skill Hub Service 层(SkillHubClient / SkillHubSessionClient)注入 ResourceProvider,通过资源文件读取异常消息,不再硬编码中文 - 新增 ContextResourceProvider 作为 Context→ResourceProvider 的桥接, UI 层构造后注入给数据层,避免数据层直接持有 Context(DIP) - 同步修复其他 UI 组件中的遗漏硬编码: ComposerView / SshSettingsScreenView / ExtensionDetailScreenView / ModelListScreenView - 补齐 values/strings.xml 与 values-zh/strings.xml 中 258 条 Skill Hub 相关字符串资源 - 修复 ExtensionManagementControllerTest 因构造函数与 Host 接口 变更导致的编译错误 验证: - ./gradlew :app:compileDebugJavaWithJavac BUILD SUCCESSFUL - ./gradlew :app:testDebugUnitTest (含 SkillHubClientTest、 SkillHubSessionClientTest、ExtensionManagementControllerTest) BUILD SUCCESSFUL
- 添加 258 条 Skill Hub 相关字符串的俄语翻译 - 覆盖错误消息、UI 标签、表单字段等所有用户可见文本 - 完成完整的国际化支持(英文、中文、俄语)
fix: 修复上下文压缩循环问题 1. 调整压缩逻辑,仅标记baseIds消息为excludeFromContext,保留retained消息 2. 压缩成功后重置tokenUsageTracker,避免使用全量transcript的usage作为基线 3. 新增测试用例验证压缩后不会误触发压缩循环
Rework conversation, tool approval, reasoning and retry displays; restore workspace selection and refine native screen layouts, card spacing and header actions. Keep request rules and tool schemas deterministic, append runtime context after history, and retain attachments with their user turns. Ignore temporary UI previews and add native layout and prompt regression coverage.
There was a problem hiding this comment.
Sorry @LangLang03, your pull request is larger than the review limit of 150,000 diff characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
将 LineCode Pro 更新到
1.2.8-max(versionCode = 32),重写聊天与设置界面,完整接入 Skill Hub,并修复自动权限重复确认、错误重试重复生成处理块、处理计时不停止和上下文反复压缩的问题。聊天中的工具过程改为按回合组织、连续调用默认折叠,最终答复独立展示;提示词将固定规则与动态状态分开,避免待办、记忆和附件变化反复改写请求前缀。
本 PR 为
dev→master。仓库默认主分支名称为master。已整合主分支现有的思考摘要与工作状态功能,并解决AssistantMessageView的冲突,保留新版紧凑布局和长按消息操作。Type of change
Scope
1.2.8-max、update.mdChanges
1. 聊天导航、输入与原生布局
ScreenHeaderView统一返回与图标操作的 48dp 点击区域、22dp 图标,修复错误日志和模型页面右上角按钮过大、保存按钮贴边的问题。ScreenSurfaceView、InsetSheetLayout、AdaptiveActionsView等共享布局,限制宽屏内容宽度、底部弹窗高度,并适配窄屏按钮排列。WorkingStatusView和思考摘要强调样式:等待正文时仍有工作状态,完成后隐藏;消息操作栏维持默认隐藏、长按展开,不因刷新重新展开。2. 按回合组织处理、思考、工具与重试
ConversationTimeline/AssistantTurnView将一轮助手的过程文字、思考和工具调用组织到同一个「处理中 / 已处理」区域,最终答复显示在外部。<LEOF "完成了任务重写">标记负责结束处理阶段;隐藏未完整标记,完整解析后冻结处理计时并展示后续正式答复。ProcessingDuration支持秒、分钟、小时;起止时间随消息保存,完成、停止生成或重新打开已结束会话后不继续累加。3. 工具卡片、文件差异与授权
DiffLines,修正列表缩进、代码对齐和增删底色。ToolApprovalView将执行说明、命令和拒绝 / 允许一次 / 永久允许集中到输入区附近,支持窄屏排列。CommandPermissionRepository按执行范围、工具名、完整 Shell 命令、工作目录生成 SHA-256 授权键;复用授权要求精确匹配,不保存明文命令作为授权记录。4. 设置、主题、模型与抽屉细节
TerminalTheme,统一服务操作、日志区与浅色 / 深色显示。5. Skill Hub 完整接入
SKILL.md、文本文件预览,以及可选 0.5~1.6 倍双指文字缩放。bodyBytes,按原始字节写入上传请求,支持二进制文件。ContextResourceProvider注入资源访问。6. 提示词稳定前缀与上下文修复
StableJson递归排序对象键,保留数组顺序和内容语义。StringTemplate单次扫描替换占位符,插入文本中的模板片段保持字面内容,结果不再取决于 Map 遍历顺序。7. 版本、日志与构建配置
releaseVersionName:1.2.8-max;versionCode:31→32。LineCode Pro 1.2.8-max.APK。update.md按现有格式补充自v1.2.6以来的详细更新,包含此前两个1.2.7RC 阶段,并补充主分支兼容结果。4.16与原生资源测试配置,.gitignore排除/temp/;本地预览和构建产物不作为 PR 附件提交。Testing
./gradlew :app:testDebugUnitTestpasses./gradlew :app:lintDebugpasses(无错误,仍有警告)./gradlew :app:assembleDebugbuilds./gradlew :app:assembleDebugUserCertbuilds在包含主分支兼容改动的代码上,528 项单元测试通过,0 失败、0 错误、0 跳过:
appfeature-modelfeature-tooltool-uiui-theme执行命令:
终端提供者此前还通过了
:terminal-provider:assembleDebug与:terminal-provider:lintDebug。使用aapt dump badging核对过 APK 的versionName=1.2.8-max、versionCode=32。关键覆盖包括:
已查看 Robolectric Native Graphics 生成的工作区选中背景、模型长按菜单、存储管理、扩展间距、执行设置和 Skills 商店截图。该验证不等同于真机键盘、WebView 登录或在线服务联调,也未测量真实模型服务端的缓存命中率。
Compliance checklist
app/src/main/java,未新增 Kotlin 源文件ErrorLogRedactor脱敏,未新增明文凭据导出字段ChatUiStateAssembler→ChatUiState→MainContract.View.render(...)渲染,授权状态使用不可变 UI 状态传递update.md已记录用户可见变更和版本信息Risk / rollback
master后,版本号增加会满足仓库既有Release APK工作流的发布条件;签名构建、tag 和 Release 由该工作流处理。本 PR 本身不执行合并或发布。versionCode发布修正版,不降低已发布应用的版本号。已有配置和会话数据无需删除。