lanrtop
|
9d85609287
|
fix(onboard/parity): 处置 P8g 独立审查——新建入口按有效根目录弹出、Toast 置于面板之上、bypass 与错误阶段文案如实
Push & PR Check / check (push) Successful in 1m2s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-04 02:06:29 +09:00 |
|
lanrtop
|
5b6c197a74
|
feat(onboard/parity): UI 一键接入面板——先计划预览、人确认后接入,四个入口接线(P8g)
- onboardView.ts:计划 / 报告 → 视图模型的纯函数(阻断禁用确认、可跳过只看后端 skippable、
not_installed / not_applicable 灰色说明、bypassPermissions 与 Codex 信任单列、确认带 expected_digest
与生成计划时的选项),onboardView.test.ts 13 条 vitest
- OnboardPanel.tsx / OnboardSections.tsx:全局挂载的接入面板(plan → 预览 → onboard_project → 分步结果、
L1 矩阵、待你提交的 N 个文件、待你操作),refused 可回到新计划重新确认
- 入口:新建项目选了目录、模板新建成功后弹出预览;批量添加只给逐项入口;蓝图治理「施加 Buff」
改为同一面板(先 plan 再 apply)
- plan.rs:BlockedItem 序列化附派生字段 skippable(= BlockReason::skippable,不进 digest)
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-04 01:35:06 +09:00 |
|
lanrtop
|
0851aa9783
|
feat(projects/parity): register_project 控制面投影,登记本体拒绝同目录重复登记(P8f)
- projects:从 create_project 抽出登记本体 register_project_records(连接注入),
UI create_project 与 MCP register_project 共用;只写数据库,不建目录、不执行 git init、不接入。
拒绝空 ID、空路径、相对路径、不存在的目录、空名称、同一目录已登记、已存在的 ID;
重复检查与插入放进同一 IMMEDIATE 事务;workspace 插入去掉 OR IGNORE,ID 冲突不再静默成功
- 同目录判定 registration_path_key:去长路径前缀、斜杠统一、合并重复分隔符、去尾部分隔符、
不区分大小写;win_path 与 wsl_path 两列都比较,WSL Linux 路径按 wsl.localhost 换算;
错误信息给出已有 project_id(根治 PR #34 审查 L1/L2:同目录两条登记互相抢占 Codex 托管块)
- mcp_tools:新增 register_project(path 必填、name 可选,project_id 由炼境生成 UUID,归入当前空间,
structuredContent 返回);只开放在全局路由,is_project_scoped_tool 显式排除;描述写明须用户确认目标
- 批量添加对已登记目录计入 skipped,模板新建与挂载仓库复用同一重复目录检查
- project-context.yaml「MCP 工具接口」段同步(T1)
cargo test 335 passed / 0 failed / 5 ignored(新增 10 条),0 warning;pnpm typecheck 通过;
9 处变异全部被对应用例捕获。
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 12:29:26 +09:00 |
|
lanrtop
|
13aa3a1a8c
|
feat(onboarding/parity): 接入包改写托管块前检测块外未提交改动,给出混合文件预警(P10)
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 59s
2026-10-01 enterprise 的 git-workflow.md 在有项目未提交改写时被升级了托管块,
同一文件混有炼境与项目两种来源的改动,按「禁止字符串手术」无法拆分提交,只能交人定案。
管家应在制造混合文件时明确告知,而不是事后由人发现。
- TemplateResult 新增可选 warning(序列化时缺省省略,前端类型同步)
- apply_onboarding_pack 在模板分发与 buff 蓝图规则同步前后夹一层检测:写入前对
AGENTS.md、docs/ai-context/git-workflow.md、CLAUDE.md 跑 git status,有改动再取
HEAD:./<文件>(不在 HEAD 中按空内容算),两边去掉 ONBOARDING_MANAGED 与
BLUEPRINT_MANAGED 块后比较(忽略行尾与空行);写入后只对本次确被改写的文件预警,
文案含文件名与「块外有未提交改动,升级后将成为混合文件」
- 只提示不阻断,块外内容照旧不动;git 不可用、非仓库或命令失败一律静默;
git status 带 --no-optional-locks,不抢 index.lock
- CLAUDE.md 只由蓝图规则同步改写,不在模板结果里,预警时补一条结果
- BLUEPRINT_MANAGED 标记提为 blueprint.rs 的 pub(crate) 常量,检测与 upsert 共用
- MCP 单项目输出在该文件行下加预警行,批量输出追加混合文件清单;工具描述同步;
炼境 UI 接入包结果行下显示预警
- 契约文档 project-context.yaml 同步;蓝图 P10 标 ✅ 并记录验证与已知限制
验证:cargo test --locked lib 270 passed / 5 ignored;新增 3 个测试(纯函数、临时 git
仓库三种情形、非 git 目录),变异自检(探测强制返回 true 时两个场景测试均失败);
pnpm typecheck 与 pnpm test 通过。
Rules-Applied: R01,R06,R12
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-03 03:58:28 +09:00 |
|
lanrtop
|
663a723b3b
|
feat(dev-variables): 修改时显式查看原值,并提示 agent 先查炼境测试账户
Push & PR Check / check (push) Successful in 1m5s
Push & PR Check / check (pull_request) Successful in 1m9s
- V12:新增人用 Tauri command reveal_project_dev_variable(不进 MCP),
点「修改」预填原账号与密码,密码默认遮罩可切换显示
- V13:lian-jing skill 新增第 8 步——需要测试账号先 list/read,
没有则登记并请用户在 UI 填写;禁止对话索要明文;base-onboarding 升至 1.5.0
- 契约同步 project-context.yaml;materialize 提案顺延为 V14–V16
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-09-30 14:22:54 +09:00 |
|
lanrtop
|
f74fe11145
|
fix(ui): 确认框在 Tauri 下被绕过——改用 await plugin-dialog confirm
tauri-plugin-dialog 把 window.confirm 替换为 async 函数,同步判断拿到恒为真的
Promise,撤销测试账户、删除 Gitea 实例/解绑仓库、删除仓库、准备工具链 5 处
破坏性或改机器状态的操作均未弹框即执行(UI 终验发现)。统一 await
@tauri-apps/plugin-dialog 的 confirm,并加源码扫描回归测试防复发。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-09-30 13:48:54 +09:00 |
|
lanrtop
|
d926591ace
|
feat(dev-variables/ui): 一张卡填写测试账号和密码
项目面板一次提交两个字段到同一 Tauri 本体,列表与 React Query 仅保留非秘密状态。
Rules-Applied: R01,R08
Feature-Confirmed: true
|
2026-09-28 01:45:49 +09:00 |
|
lanrtop
|
b1c6eaebac
|
feat(resource/dev-variables): add per-project human filling panel
Expose status-only Tauri types and explicit save/revoke actions without caching entered values in React Query.
Feature-Confirmed: true
Rules-Applied: R01,R12,R13
|
2026-09-26 16:47:24 +09:00 |
|
lanrtop
|
6d512fb0ad
|
fix(resource/api-keys): 编辑后复制当前凭证并清空旧显示状态
|
2026-09-23 21:16:41 +09:00 |
|
lanrtop
|
3a560f149e
|
feat(resource/broker): 实现受保护凭证代办与项目 readiness
Gitea、webhook 与 API Key 以受保护引用替代常态明文输出;旧值先备份并校验后可恢复迁移,MCP 仅提供项目只读状态。
Rules-Applied: R01,R05,R06,R07,R10
Feature-Confirmed: true
|
2026-09-23 18:45:30 +09:00 |
|
lanrtop
|
327f3d78ab
|
feat(agent/access): 强化项目级运行态接入
MCP 改为 loopback 并绑定项目 scope,补齐越界拒绝、风险元数据和结构化状态。
新增分层 readiness、配置迁移与设置页投影;正式安装版可选择登录自启动,debug 与非安装路径明确拒绝。
Feature-Confirmed: true
Rules-Applied: R01,R06,R07,R08,R10,R12,R13
|
2026-09-23 03:21:38 +09:00 |
|
lanrtop
|
9bf2d579ea
|
feat(cicd): align templates with project toolchain
Push & PR Check / check (push) Successful in 57s
Push & PR Check / check (pull_request) Successful in 56s
Reuse the canonical Node/pnpm contract when generating workflows, preserve per-tool legacy fallbacks, and reject conflicting declarations with evidence.
Feature-Confirmed: true
Rules-Applied: R02,R12
|
2026-09-22 22:38:06 +09:00 |
|
lanrtop
|
ccbd2b0e23
|
style(env): 扩大环境工具模态框
Push & PR Check / check (push) Successful in 1m2s
Push & PR Check / check (pull_request) Successful in 59s
根据 human_verify 调整响应式宽高与内容间距,并将工具链 UI 任务标记完成。
Rules-Applied: R08,R13
|
2026-09-22 01:41:30 +09:00 |
|
lanrtop
|
ead35ad12a
|
feat(toolchain): 增加项目级运行时能力包
以 .nvmrc 与 packageManager 作为 Node/pnpm 版本事实,新增 Windows-only 的状态诊断、受控 mise 准备、MCP/Tauri/UI 双投影及 onboarding 自检。
Feature-Confirmed: true
Rules-Applied: R01,R04,R06,R07,R08,R10,R12
|
2026-09-22 01:08:31 +09:00 |
|
lanrtop
|
3d9336d908
|
feat(templates): 三端体系内置模板 + 技术栈分类标签渲染
上一会话遗留的完整功能补提交:
- 新增 4 个三端体系内置模板:React Web / React + Capacitor /
React + Tauri (Antd) / React Tri-Platform(同一架构按需起步)
- tech_stack 升级为分类 JSON 格式(客户端/语言/框架),
新增 techStackUtils.renderTechStack 兼容旧逗号格式,
ManagePage / NewProjectModal 接线,TemplateEditor 占位符同步
Feature-Confirmed: true
|
2026-07-18 10:48:27 +09:00 |
|
lanrtop
|
aaf3343133
|
feat(flywheel/rules-validation): Rules-Applied 规则 ID ingest 层真实性校验(U3)
Push & PR Check / check (push) Successful in 1m17s
校验单点放统计消费端(R12 边界单点):extract_rule_ids 从项目
CONVENTIONS.md 提取合法 ID 集合,filter_valid_rules 在入库前剔除
幻觉/typo ID(无 CONVENTIONS.md 时 fail-open 不校验)。接入全部
4 条写入链路(buff 增量/webhook/gitea 轮询/全量导入);
sanitize_rules_applied 提供回溯清洗,重跑全量导入即可清历史污染。
Rules-Applied: R01,R06,R07
|
2026-07-15 14:05:13 +09:00 |
|
lanrtop
|
a41161f7d1
|
feat(mcp): 单一全局 lian-jing 服务器——组级挂载收敛(T1-T3+T5)
Push & PR Check / check (push) Successful in 1m4s
T1 服务器层:新增全局 /mcp + /mcp/messages 路由,process_rpc 组上下文
Option 化;旧 /mcp/group/:gid 路由保留过渡,T6 移除。驻军测试 2 条。
T2 工具层:resolve_project_root 按 project_id 直查 project_workspaces,
删除 3 处组归属校验(实测无隔离价值);list_group_projects 改显式传参。
T3 注入层:settings.json 收敛为单 "lian-jing" key(URL /mcp),注入时
清理旧 lian-jing:group-* key;liangjing.json 主动删除 group_id;
启动时一次性迁移(重注入全量 + 清理旧全局注册两种命名格式,标记位防重)。
T5 同步:git-workflow 文档/模板、retro-catchup 技能 Python 兜底、
设置页 URL 展示、mcp-config-inject 模块取代注记。
收益:MCP 客户端配置成本 O(N组)→O(1),授权一次永久生效;
group_id 缺失/过期/移组同步一整类问题从根上消失。
|
2026-07-06 19:30:01 +09:00 |
|
lanrtop
|
a5cb30734d
|
feat(flywheel): 返工热区 UI + get_high_risk_scopes 命令,阶段三收官
Push & PR Check / check (push) Successful in 50s
Push & PR Check / check (pull_request) Successful in 50s
- risk.rs 新增 Tauri command get_high_risk_scopes(薄包装)+ lib.rs 注册
- commands.ts 封装 HighRiskScope 类型与调用(R01)
- FlywheelPanel 新增「返工热区」块:跨项目返工率降序,
分级配色与 classify_risk 阈值一致(≥35% 红 / ≥15% 琥珀)
- 蓝图:P3-A~E 五卡全部 done,附 L 级复盘笔记,模块 progress 98
Rules-Applied: R01,R13
|
2026-07-04 14:22:52 +09:00 |
|
lanrtop
|
85c79631b9
|
fix(dashboard): mappedIds 限定在当前空间项目,修复跨空间计数偏高
Push & PR Check / check (push) Successful in 50s
|
2026-07-04 11:25:16 +09:00 |
|
lanrtop
|
b9f77e75a2
|
fix(dashboard): 看板 Tab 命名自洽 — 已加入产品组 / 未加入产品组
Push & PR Check / check (push) Successful in 49s
|
2026-07-04 11:17:26 +09:00 |
|
lanrtop
|
16556e1dcc
|
fix(manage): 产品组概览项目 tag 补 × 移除入口,与 detail 视图自洽
Push & PR Check / check (push) Successful in 49s
|
2026-07-04 10:40:49 +09:00 |
|
lanrtop
|
aeacb9dcf9
|
feat(manage): 产品组概览「项目数量」改为罗列项目名称
Push & PR Check / check (push) Successful in 47s
|
2026-07-04 10:34:44 +09:00 |
|
lanrtop
|
9881b568b6
|
feat(manage): 项目/产品组多视图 — 全览/分组/概览/健康度四视图
Push Check / check (push) Successful in 46s
|
2026-07-04 09:26:17 +09:00 |
|
lanrtop
|
ccf87ae09a
|
feat(onboarding): V1 接入生效验收——lefthook 分发即激活 + verify_onboarding 六项检查链
Push Check / check (push) Successful in 45s
分发成功 ≠ 功能生效:接入包此前只写 lefthook.yml 从不激活,
文件在 hook 死 → conventional 不强制 → 飞轮数据脏。
- apply_onboarding_pack 分发后自动 lefthook install(本地 .bin 优先/
PATH 兜底/静默),OnboardingReport 新增 hook 三态
- 新 MCP 工具 verify_onboarding:管理块版本/hook 真挂/origin 命中
Gitea 实例/CI workflow 存在/近 30 天飞轮数据 六项检查链 JSON
- 判定纯函数化 5 条单测 + in-memory DB 全链集成测试
- commands.ts 补 TemplateResult 缺失的 updated/appended 态(T1 旧债)
- AGENTS.md 去掉写死的工具计数(防腐:以 tools_list_result 自省为准)
Rules-Applied: R01,R06,R07,R13
|
2026-07-04 08:27:39 +09:00 |
|
lanrtop
|
69183fb06c
|
fix(cicd): 将 GITEA_TOKEN/URL 重命名为 LJ_TOKEN/URL(GITEA_ 前缀被 Gitea 保留)
|
2026-07-03 17:54:12 +09:00 |
|
lanrtop
|
8432aa4f45
|
feat(cicd+mcp): PR 事件追踪 + create_pull_request MCP 工具 + CI/AI 审查模板 + bypassPermissions 注入
炼境子项目工作流全链路打通:
- mcp_server: 新增 create_pull_request MCP 工具(凭证代理,子项目无需持有 token)
- mcp_server: webhook 路由拆分 push/pull_request,PR 事件写入 pr_events 表
- mcp_inject: 注入 bypassPermissions + 写入 liangjing.json(project_id + mcp_port)
- db: 新增 pr_events 表 + idx_pr_events_project 索引
- gitea.rs: gitea_api_create_pull_request() pub 函数;webhook 订阅补 pull_request 事件
- onboarding/git-workflow: v1.2.0,新增 PR 创建通过炼境 MCP 的说明与禁止条款
- cicd: 新增 pr_ci(PR 质量检查)+ deepseek_review(AI 代码审查)模板 + 4 项测试
- CicdModal: 类型选择器扩展为 4 项,deepseek_review 加 Secrets 提示面板
|
2026-07-03 16:57:36 +09:00 |
|
lanrtop
|
c4a6600134
|
fix(onboarding): 模板分发报告识别 appended/updated 五态,不再误显 ✗
noteapp 实测追加管理块成功但 UI 渲染成红叉——前端映射只认旧三态,
新增 action 落入 failed 默认分支。改映射表覆盖五态,
updated/appended 展示后端 detail(含版本信息)。
Rules-Applied: R12
|
2026-07-03 13:37:22 +09:00 |
|
lanrtop
|
4cd941c975
|
feat(gitea): G7 一键接线——新建仓库后本地 init/origin/首推一键完成
绑定完成但本地未连通时(无 .git 或无 origin),Gitea 绑定区显示接线引导:
- 无 git → init + 首次提交 + 关联 origin + 推送
- 有 git 无 origin → 关联 origin + 推送当前分支
复用 publish.rs 存量命令(git_init_and_commit/git_remote_set/git_push),
补齐 GitHub 退役时遗落的"本地接线"半程(接线/放风筝边界裁决的落地)。
Rules-Applied: R01
|
2026-07-03 10:04:31 +09:00 |
|
lanrtop
|
b7008a132e
|
fix(gitea): 建仓需 write:user scope——实例支持改 Token + 权限提示补全
- Gitea 的 POST /user/repos 归 write:user scope(403 实测,R10:以实际
行为为准),此前权限指导只给了 read:user 导致新建仓库失败
- GiteaInstancesSection 新增「改 Token」内联编辑(此前无入口,删除实例
重建会级联丢失全部仓库绑定)
- 添加实例的 placeholder 补权限要求说明
Rules-Applied: R08, R10
|
2026-07-03 09:38:31 +09:00 |
|
lanrtop
|
1d068d188c
|
fix(agent-infra): 空契约项目点击生成三件套无反馈——移除静默 return
UI 承诺"未检测到框架特征,可直接生成空模板",但 handleGenerate 遇到
空契约列表直接静默 return,点击无任何反馈(autoforphone 项目实测)。
后端本就支持空 contracts 生成空模板骨架,删除前端多余 guard 即可。
Rules-Applied: R08
|
2026-07-03 09:31:57 +09:00 |
|
lanrtop
|
23de433ee4
|
fix(agent-infra): 生成结果补 commit 提示 + 合并 enterprise 双 project_id 数据
- AgentInfraPanel 生成结果区新增提示:文件需 git commit 后腐化评分才生效
(与诊断指引死循环修复同源,闭合最后一处引导缺口)
- 数据修复:enterprise-system 废弃工作区(无路径的重复注册)的 50 条
commit_metrics 迁移到真实 project_id,跨项目聚合不再把它算成两个项目
Rules-Applied: R11
|
2026-07-03 09:02:46 +09:00 |
|
lanrtop
|
64a114c221
|
refactor(ui): 「API 密钥」更名「密钥凭据」——名实一致,承载全部凭据类型
|
2026-07-02 18:41:17 +09:00 |
|
lanrtop
|
8a64b29445
|
feat(gitea): G6 远端轮询采集——公网 Gitea + 内网炼境拓扑的观测面方案
- poll_all_repos:后台线程每 10 分钟出站拉取所有绑定仓库最新 commit
(GET /repos/:owner/:repo/commits),record_commit 幂等写入,与本地
watcher / 全量导入三路径共存不重复计数
- gitea_poll_now 命令 + GiteaPanel「立即拉取」按钮与拓扑说明
- 决策记录:webhook 仅作同网补充,否决 frp 全端口映射(MCP 路由无鉴权,
27190 保持零公网暴露);飞轮为统计系统,10 分钟延迟无影响
验证:cargo test 67 passed(新增轮询解析 2 测试)、typecheck 全绿
Rules-Applied: R01, R07
|
2026-07-02 16:36:18 +09:00 |
|
lanrtop
|
de961d0e95
|
feat(flywheel): Gitea Actions 模板 + Rules-Applied trailer 自吸——规则有效性闭环接通
Gitea Actions workflow 生成(gitea-integration 收官卡):
- generate_workflow 输出 .gitea/workflows/;tauri_oss 模板去掉 GitHub Release
步骤(发布走 OSS),构建改 pnpm tauri build + 签名环境变量,runs-on 改
自建 windows runner 标签;CicdModal Secrets 文案改 Gitea 路径
- 单元测试断言模板无 github.com / GITHUB_TOKEN / gh-release 残留
R1 Rules-Applied trailer 被动自吸(flywheel-intelligence):
- smart-commit 技能:commit message 末尾附 Rules-Applied: R01,R06 trailer
(仅真实触发的规则,防数据污染)
- commit_metrics 新增 rules_applied 列(增量 migration)+ parse_rules_applied
解析(token 校验/去重/规范化)+ rule_hit_stats 跨项目"命中×返工"聚合
- 梦核 prompt 新增「规则命中×返工交叉」数据段 + 【规则置信度】分析任务
(升/降 confidence、按 R11 细化边界)——R01-R10 置信度首次有真实数据来源
验证:cargo test 65 passed(新增 7 测试,其中一个抓到 trailer 解析的
? 提前返回 bug)、typecheck 全绿
Rules-Applied: R01, R05, R06, R07
|
2026-07-02 15:10:26 +09:00 |
|
lanrtop
|
bf697b5e28
|
feat(ui): 功能区重构阶段二——洞察页 + 全局/项目层级归位(N3/N4/N5)
N3 洞察页三 tab(飞轮/健康中心/全局治理):
- FlywheelPanel(版本队列/阻塞/停转归档/Git质量/梦核)整体迁出 BlueprintModal
——跨项目内容不再寄生单项目弹窗,BlueprintModal 减重 414 行
- CONVENTIONS 规则来源 + 应用梦核建议迁至全局治理 tab(影响所有项目的操作归全局层)
- BlueprintModal 侧板只留单项目内容(模块详情/余票/可派发/项目治理)
N4 Gitea 层级归位:实例管理(全局配置)拆为 GiteaInstancesSection 挂设置页;
项目绑定+webhook 留治理面板,无实例时提示去设置页添加;共用 queryKey 缓存
N5 仓库注册表并入 项目→管理→仓库 tab(RegistryTab 复用),Sidebar 底部入口
与弹窗死壳移除;总览页更名对齐"跨项目行动项"定位
至此 ui-restructure N1-N5 全部完成:三条公理(名实一致/层级对齐/频率分层)落地。
零后端变更,typecheck 全绿。
|
2026-07-02 14:51:43 +09:00 |
|
lanrtop
|
bc07dd41bf
|
feat(ui): 功能区重构阶段一——六组导航 + 资源/工具一级页 + 卡片操作分层
信息架构按三公理重排(名实一致/层级对齐/频率分层,设计见 ui-restructure 模块):
- Sidebar 六组:总览/项目/资源/洞察/工具/设置
- 新增资源页(服务器/软件仓库/云产品/API密钥/源码库 5 tab),从"项目管理"
拆出寄生的资源类 tabs;新增工具页(开发环境/WSL代理 合并)
- Dashboard 看板只留产品组/独立项目;洞察页阶段一暂挂健康中心(N3 扩充)
- ProjectCard 底部 10 个平铺操作收敛为:🗺️蓝图/🎓导师/编辑/动态 + ⋯更多下拉
(带文字标签收纳 Claude配置/备忘/服务器/CICD/环境扫描/工具管理)
零后端变更:纯组件挂载点迁移,面板组件与 queryKey 原样复用。
阶段二(N3 洞察页扩充 / N4 Gitea 实例迁设置 / N5 仓库注册表归位)已拆卡待启动。
|
2026-07-02 14:33:55 +09:00 |
|
lanrtop
|
d14b348845
|
feat(gitea): G2-G5 全链路——建仓/迁移/绑定 + webhook 收发 + 治理面板
G2 控制面:gitea_create_repo / gitea_migrate_repo / gitea_link_repo,
upsert 绑定(换绑自动重置 webhook 字段),API 错误提取 Gitea message 可读返回
G3 观测面:MCP Server 新增 POST /webhook/gitea/:project_id——HMAC-SHA256 验签
(X-Gitea-Signature,兼容 X-Hub-Signature-256)→ 解析 commits → 批量
record_commit(sha 幂等,与本地 watcher 双路径不重复计数);验签失败记 log_event
G4 webhook 注册:gitea_setup_webhook 生成随机 secret 注册 push hook(重设先删旧)、
gitea_unlink_repo 解绑顺带清理 Gitea 侧 hook
G5 治理面板:GiteaPanel——实例管理(添加/测试/删除)、当前项目三种绑定方式、
webhook 注册与可复制回调地址、全部绑定概览
依赖:新增 hmac + sha2;project_id 与 commit_metrics 同源(Project.id),
避免双路径冲突复发;R10 修正设计文档错误签名头
验证:cargo test 58 passed(新增 upsert 换绑重置 + hmac 正反向 + payload 解析 5 测试)、
typecheck 全绿
|
2026-07-02 14:22:49 +09:00 |
|
lanrtop
|
29a066e7e3
|
chore(conventions): v1.9.0 自洽体检——规则边界结构 + R11 + 状态词汇统一
- CONVENTIONS 1.9.0:规则新增 boundaries/failure_cases 可选字段(失败定边界,
经验细化为变体而非推翻);新增 R11 自动执行规则失效时必须记录失败案例;
模块状态表补 abandoned 定义(何时更新蓝图章节早已引用但表中缺失)
- 状态词汇统一:github-auth/github-publish 的 deprecated(未定义状态)→ abandoned,
BlueprintModal 状态色表补 abandoned 渲染
- 文档防腐:CLAUDE.md 技术栈改为 Gitea(GitHub 已退役);cicd-workflow 模块
加改造中指针(单一事实来源指向 gitea-integration 的 Gitea Actions 卡)
- 蓝图:R2 卡完成解锁(分发随下次发版生效)
|
2026-07-02 14:09:09 +09:00 |
|
lanrtop
|
289b558278
|
refactor(github): GitHub 全面退役——免登录 + 发布/导入/同步链路移除 + 凭据去 GitHub 化
D1 免登录改造:App 启动直接进主界面,删 LoginPage/github.rs/OAuth 全套命令、
Sidebar 账户区与 GitHub OAuth 设置弹窗、健康检查 GitHub Token 项
D2 移除发布/导入/PR/CI 入口:删 PublishModal/ImportRepoModal、ProjectCard 的
PR compare 链接与 Actions 状态灯、RepoRegistryModal 同步 tab、CicdModal runs tab、
publish.rs 的 github_create_repo/git_push_to_github
D3 spacesSync 单机化:删 spacesSync/useSpacesSync/SpacesPage/DiscoveryPanel,
拆除 App→Dashboard→ProjectCard 的 spacesJson 链
D4 git_ops 凭据链重写:ssh agent → git credential helper → gitea_instances token
前缀匹配 → default,不再依赖 github_token
保留:server_software GitHub 镜像(Releases 下载加速)、gitea_migrate 迁移入口、
cicd.rs(待 Gitea Actions 改造卡);DB 表不删(R05 migration 兼容)
顺带:修复 servers.rs 两个存量测试的 schema 漂移(测试建表缺 deploy_type 列);
包含会话前未提交的 agent-infra F3(get_agent_health 健康诊断,与 lib.rs/
commands.ts 物理耦合无法拆分提交)
验证:cargo test 53 passed / typecheck 全绿 / vitest passWithNoTests
|
2026-07-02 13:15:56 +09:00 |
|
lanrtop
|
d41e0f1707
|
fix(flywheel): 修复 commit_metrics project_id 双路径冲突,表格能显示所有项目
blueprint_buffs 用 UUID 写 commit_metrics,全量导入用名称字符串写,
同一 sha 在 sha PRIMARY KEY 约束下只能存一条,导致全量导入被 INSERT OR IGNORE 全部跳过,
表格无法查到 UUID 格式的历史数据。
修复点:
- ingest_full_git_history 自动查 blueprint_buffs,若该路径已有 UUID project_id 则优先用 UUID
- 新增 get_all_commit_health 命令,SQL 关联 blueprint_buffs / projects 解析名称,不需要前端传 project_ids
- FlywheelPanel 切换到 getAllCommitHealth,表格直接用后端返回的 project_name,无需前端 lookup
|
2026-06-29 21:21:23 +09:00 |
|
lanrtop
|
532e28c421
|
feat(flywheel-L0): F2 飞轮面板 Git 健康度区块 + 全量导入按钮
- FlywheelPanel 新增「Git 执行质量」卡片:表格展示 commits/规范化率/返工率/TOP scope
- 「全量导入」按钮对所有接入项目触发 ingest_full_git_history,完成后刷新健康度数据
- 颜色编码:规范化率 ≥80% 绿/≥50% 黄/其余红,返工率 >20% 红/>10% 黄
|
2026-06-29 20:58:05 +09:00 |
|
lanrtop
|
1651b21743
|
feat(agent-infra): 卡D+E——栈确认UI + 看板腐化指示器
卡D:AgentInfraPanel——扫描→确认契约→生成三件套,嵌入 GovernancePanel
卡E:ProjectCard 加腐化评分小圆点(读缓存,不触发扫描)
agent-infrastructure 模块全部 5 张卡完成,status→done
|
2026-06-29 18:31:38 +09:00 |
|
lanrtop
|
58d2c79c74
|
feat(onboarding): 接入包数据可信度提示(commit 规范化比例)
get_commit_stats 暴露项目 commit 规范化统计(total/conventional/rework);治理面板常驻展示规范化比例 + 返工数,比例 <60% 提示种 lefthook。接入包 A/B/C1/C2/D 全部完成。
|
2026-06-19 13:52:09 +09:00 |
|
lanrtop
|
150535ffcf
|
feat(onboarding): 接入包前端 UI——治理面板升级为应用接入包
治理面板 buff 区改为应用接入包:调 apply_onboarding_pack(种 3 模板 + 挂 buff),新增模板分发结果展示(written/skipped/failed)。接入包 A/B/C1/C2 就绪,剩 D 可信度提示。
|
2026-06-19 13:07:09 +09:00 |
|
lanrtop
|
ee2a37876e
|
fix(dashboard): 移除 ProjectCard 未使用的 role 解构(typecheck)
|
2026-06-19 13:07:09 +09:00 |
|
lanrtop
|
9660bcbc48
|
feat: 服务器管理体系 + 云产品扩展 + 源码库 + API密钥管理
新增多个核心功能模块(后端 Rust 命令 + 前端 Panel 全部接线完成):
- 服务器注册表:servers.rs + ServerManagerPanel、ProjectServerPanel(项目关联服务器)
- SSH Config 自动同步:ssh_config.rs
- 服务器软件管理:server_software.rs + ServerSoftwareBlock
- 宿主机应用管理:host_apps.rs + HostAppsPanel
- 服务配置管理:service_config.rs + ServiceConfigBlock
- 项目部署信息:deploy_info.rs + DeployInfoPanel
- API密钥管理:api_keys.rs + ApiKeysPanel
- 云产品管理:cloud_products.rs + CloudProductsPanel(含 Docker应用、云数据库实例子模块)
- 源码库:source_library.rs + SourceLibraryPage(分类管理 + 项目详情)
导航栏新增「源码库」入口;蓝图 manifest 同步补录 7 个新模块
|
2026-04-17 22:25:06 +09:00 |
|
lanrtop
|
8c06aa5e44
|
feat: 飞轮智能阶段二完成——MCP SSE 传输 + 复盘覆盖率 + usage.json 扩展采集
- MCP Server 新增 GET/SSE 端点,Claude Code 原生 MCP 打通
- 项目导师面板显示复盘笔记覆盖率统计与缺口提醒
- usage.json 快照新增 complexity_dist、rework_count 等扩展字段
- 独立项目自动创建产品组并注入 MCP
- 新增 retro-catchup 技能用于批量补写历史复盘笔记
- 补全飞轮存量函数单元测试
- NewProjectModal 支持更灵活的模板参数配置
|
2026-04-13 01:49:56 +09:00 |
|
lanrtop
|
6162533c77
|
feat: 飞轮阶段一 + 项目个人备忘功能
飞轮智能成长阶段一:
- 梦核 prompt 注入跨项目复盘笔记,新增【高频陷阱】分析节
- 修复 collect_flywheel_notes 查错表 bug(projects → project_workspaces)
- MCP append_project_note 描述内嵌【复盘】结构化格式,引导 Claude 写标准笔记
- FlywheelStats 新增 project_notes 字段,支持 win_path/wsl_path 两种路径匹配
项目个人备忘(user_project_todos):
- 新表 + 4 个 Rust command,依赖注入写法,6 个单元测试全绿
- UserTodoPanel 组件,📝 按钮展开,支持新增/勾选/删除
CONVENTIONS v1.4.4:新增 Rust 可测试性规范(依赖注入强制要求)
|
2026-04-11 17:21:47 +09:00 |
|
lanrtop
|
d33baeb3f7
|
feat: 模板创建进度可视化——流式日志 + 步骤指示器 + 计时器
|
2026-04-11 15:22:38 +09:00 |
|
lanrtop
|
ee4b41f938
|
feat: 复盘笔记接入梦核飞轮 + 看板右侧栏 UI 重构
- FlywheelStats 聚合跨项目 project_notes(最近 50 条),梦核 prompt 新增【高频陷阱】分析节
- 新增 flywheel-intelligence 蓝图模块,阶段一标记 done
- ProjectCard 去重:role/recent_focus/部署链接移至 Dashboard 右侧栏统一展示
- 右侧栏改为卡片式布局,部署环境按钮全宽、带箭头图标
- settings.json 权限模式升级为 bypassPermissions;CLAUDE.md 重构蓝图工作流说明
|
2026-04-11 12:58:47 +09:00 |
|