Repository navigation
Rc0.3 - #7
Merged
Merged
Rc0.3#7
Conversation
- AppMenuDrawer: 替换纵向 ListTile 为横向 _QuickActionButton 快捷入口组 - 将反馈入口移入设置页(意见反馈列表项),设置入口移入档案页 AppBar - 精简历史记录条目样式、调整最近搜索面板内边距与图标约束 - 同步更新三处 widget 测试用例覆盖新导航逻辑
- 新增 forkProfessorUnavailableLabel 常量,区分教授信息缺失场景 - ForkRef.avatarLabel 在信息不可用时返回 '?' - _resolveForkAnchor 实现分级回退链:传入推荐→导师仓储→聚合推荐→已有状态→不可用兜底 - _applyAggregate 剥离教授解析逻辑,由外部传入已解析的 forkAnchor - retryRecommendation 增加严格校验(role/kind/route/status),支持 recommendation 重生成 - _regenerateLatest 通过 allowRecommendation 参数绕过 canRegenerate 检查 - 抽取 _matchingRecommendation / _turnIdForMessageIndex / _isUsableProfessorName 等辅助方法 - 教授锚点栏在信息不可用时不再拼接头衔,欢迎页显示通用文案
- ConversationRepository 接口新增 clearSessions 方法 - HttpConversationRepository 实现 DELETE /api/v1/chat/sessions - ConversationStore 接口新增 clearSessions - MemoryConversationStore / LocalConversationRepository 实现 - 补充 openapi.yaml 和 api-contract.md 文档 - 数据层单元测试覆盖 HTTP 与 Local 路径 - 各测试辅助类同步新增 clearSessions 桩方法
- 将 conversationHistoryProvider 从 history_page.dart 迁移到 core/di/providers.dart,供 chat provider 等模块共享 - 清空历史操作从逐条 deleteSession 改为批量 clearSessions - 移除 app_menu_drawer 中已废弃的 history_page 导入
- completed turn 不可重试,改为创建新 turn(新消息) - failed/interrupted turn 仍走原有 attempts 重试 - 409 Conflict(completed turn cannot be retried) 时静默刷新 - 每次会话变更后刷新 conversationHistoryProvider
completed turn 的 regenerate 不再通过新建 turn + submitTurn 实现,改为直接调用 regenerateTurn 创建新 attempt。fork 在创建时拍摄 snapshot 永久绑定到 active attempt,后续源 turn 重新生成不影响已有 fork 的上下文。
ProfessorPage 新增 forkId 参数。锚点条点击携带 msid、fid、stid 查询参数跳转。从 fork 进入导师详情时 FAB 直接回到 fork 会话而非创建新 session。
submit 时先生成本地 c_ sessionId 传给 repo;历史保存时若服务端返回空/空白 sessionId,则用本地 sessionId 兜底,确保历史记录始终可溯源。
竞赛详情页 reason 和 AI 提示块的备赛建议/注意事项改用 GptMarkdown 组件渲染,支持粗体、列表等富文本格式。
备赛表单的参赛经历/领域熟悉度选项改用中文展示(beginner→从没参加等),提交诊断时仍用原始 code。表单和目标日期调整页均增加逻辑:当目标日期提前到报名截止之后时自动清空报名截止。
覆盖 load 发送查询参数、缓存行为、错误处理和 timeout 场景的隔离测试。
补充 attempts 请求/完成语义和 fork 上下文 snapshot 行为的详细描述。
新增 CompetitionQueryUnderstandingNormalizer 统一在 DTO→Entity、 AI 仓库解析和 UI 渲染三层入口处调用,将 LLM 返回的技术字段名 (major/grade/portfolio 等)规则化转换为中文展示文案。 - 方向/类别/时间偏好/组队偏好:白名单映射 + 中文缩写保留 - uncertainties:schema 字段 key → '未明确……' 中文短语 - 无中文内容的纯英文字段自动过滤,不暴露给用户 - AI 仓库 prompt 增加第 9/10 条约束,引导 LLM 直接输出中文
reason、tips、limitations、signup_time、contest_time、format 等字段 使用 GptMarkdown 替代纯 Text,支持 LLM 输出中的 Markdown 标记。 暂无信息空状态兜底保留。(cherry-picked from 187ce44)
系统提示词更新: - 禁止 source_refs/rejected 字段输出 - status 只允许 pending - target_task_id/phase_key 必须对应 plan_snapshot 客户端: - PlanChangeCardView: 英文 rejection_reason 不直接暴露,转为 中文兜底文案;英文 backend 拒因映射为中文可读提示 - AssistantDrawer: 全部卡被拒时显示警示提示条
新增 build_android_apk.dart,支持 universal/arm64-v8a 目标、 --dry-run、自定义 --config 路径。 API_BASE_URL 从 JSON 配置文件注入 Flutter dart-define。 config/android_apk_build.example.json 使用部署后端地址作为默认值。 README.md 写入完整构建步骤说明。 .gitignore 排除 android_apk_build.local.json
…onResult - Add getBySessionId method to HistoryRepository interface with type filter - Implement in HttpHistoryRepository with snapshot caching - Implement in LocalHistoryRepository with local store lookup - Implement in MockHistoryRepository - Add competitionResult field to SearchHistoryItem entity - Add fromEntity/toEntity serialization in DTOs (competition recommendation + history) - Persist full CompetitionRecommendationResult in addFromCompetitionResult - Update DTO roundtrip tests, HTTP repo tests, local repo tests - Add getBySessionId to test fake repositories
- Add CompetitionHomeHistorySummary state to CompetitionHomeNotifier - Add restoreResult and showHistorySummary methods - Build history summary UI in CompetitionHomeResultView with retry button - Wire historySid query parameter through app router to HomePage - Add _restoreCompetitionHistory in HomePage to fetch + restore result - Make competition history tiles tappable, navigating to /home?tab=competition&historySid=xxx - Update drawer recent entries to pass historySid for competition items - Add integration tests for history restore and summary fallback
Change display name from 'SchoNavi' to '蓝星竞航' and update subtitle. Add test verifying Chinese product name is rendered.
…onavi.app Migrate all Android Kotlin source and test files, AndroidManifest.xml, and shortcuts.xml from com.example.scho_navi to top.schonavi.app.
- Configure release signing with keystore for top.schonavi.app - Add .gitignore rules for key.properties and keystore files - Add key.properties.example as a template - Update minSdk and namespace in build.gradle.kts
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.
No description provided.