lanrtop
|
fe0458fe97
|
fix(mcp/parity): P9 审查修复——受限子代理不挂载、条目 id 带版本、插件缺失守卫、规范路径键
Push & PR Check / check (push) Successful in 1m6s
Push & PR Check / check (pull_request) Successful in 1m4s
对抗审查(11 个 agent,6 条成立,均 low):
- 受限子代理(toolFilter)会绕过限制:挂在子代理自己作用域的工具不受过滤。改为经 tools.view 判断,
受限或无法判断即不挂;根会话与未受限子代理照常挂载
- 版本号只编进文件名时,运行中的 DSH 不会重载新插件(同 id 只改 name 不重载):条目 id 改为
lianjing-session-mcp-v1,与文件名同一版本;新增内容哈希测试,改插件漏升版本即失败;块外手写按前缀拒绝
- 插件文件缺失时 DSH 0.1.x 启动失败:条目加 `disabled: !!js` 文件存在性守卫
- GUI 会话工作目录是 realpath:白名单同时写入登记路径的规范形态(junction、8.3 短名)
- 补测试:分层停止哨兵、取认证失败与超时(.cmd 夹具)、受限/未受限/无法判断的子代理
- 蓝图如实更正首轮端到端只有插件一行;补测完整托管块
验证:cargo test 247 passed;vitest 16 passed(插件 8 条)、typecheck 通过;完整托管块端到端在
DSH 0.2.0-rc.2 与 0.1.5-rc.2 上项目会话带认证连上项目地址、其他会话无请求;插件文件缺失时两版都正常启动。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 15:04:54 +09:00 |
|
lanrtop
|
f21345bf1a
|
feat(mcp/parity): DSH 桌面 GUI 按工作区连项目地址(会话级插件,P9)
DSH 桌面版只有一个 Host 进程、启动目录固定,托管块的 !!js 只在启动时求值,拿不到会话信息;
web/acp 同样一个进程服务多个工作区。改由炼境分发一个会话级插件:会话创建(agent/created)时
按会话工作目录匹配炼境登记的项目白名单,命中才在该会话作用域挂连项目专用地址的 mcp-client,
同名工具覆盖全局 lian-jing,其他会话不受影响。
- 插件随二进制打包(resources/dsh/lianjing-session-mcp.v1.mjs),刷新 DSH 托管块时写到
%USERPROFILE%\.lian-jing\dsh\;文件名带版本号(Node 按 URL 缓存 ESM)
- 托管块在全局行之后追加插件条目(port、shim、roots 以 JSON 写入);插件文件写失败时只保留全局行
- 插件防御:headless 交给全局行;特性探测不符即降级为全局;取认证 ≤3 秒、整次挂载 ≤5 秒;
所有回调吞掉异常(Host 对未处理异常会崩溃,agent/created 串行失败会让会话创建失败)
- 块外手写的 lianjing-session-mcp 条目同样拒绝覆盖
验证:cargo test 246 passed;vitest 插件用例 6 条通过、typecheck 通过;端到端在 DSH 0.2.0-rc.2
与 0.1.5-rc.2 上,项目会话经真实稳定入口带认证连上项目地址,其他会话无请求。
Feature-Confirmed: true
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 13:33:45 +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
|
47ff656083
|
fix(resource/credentials): 保留删除失败引用并纠正迁移前状态
删除受保护凭证失败时回滚数据库删除,并恢复已删引用。旧凭证明确标为 pending_migration,避免误报 configured。
|
2026-09-23 21:16:11 +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
|
806205b8b0
|
feat(cicd): add safe agent workflow projection
Push & PR Check / check (push) Successful in 1m0s
Push & PR Check / check (pull_request) Successful in 58s
Add preview-and-apply workflow commands with digest confirmation, project boundary checks, and MCP/Tauri projections. Sync onboarding capability packs and Codex skill guidance.
Feature-Confirmed: true
Rules-Applied: R01,R02,R06,R07,R12,R13
|
2026-09-22 23:27:34 +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
|
a9805f70f9
|
fix(gitea): giteaUpdateInstance 参数命名不匹配——更新静默失效
前端展开 snake_case 字段(access_token),Tauri 命令层按 camelCase
(accessToken)匹配,参数被静默丢弃,后端视为未提供而跳过更新且返回
成功——UI 显示"已更新"但 DB 未变(改 Token 实测 401 暴露)。
显式映射为 camelCase 修复。
Rules-Applied: R08, R10
|
2026-07-03 09:45:01 +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
|
f4ff83d94e
|
feat(governance): 规则分发跨工具化——AGENTS.md 成为蓝图工作流单一来源
sync_blueprint_rules 改为双文件写入:
- AGENTS.md:完整蓝图工作流 MANAGED 块(开放标准,Qwen/Cursor/Copilot 均读),
措辞去 Claude 专属化("Claude 应做的"→"AI 应做的",技能引用改为通用流程描述)
- CLAUDE.md:MANAGED 块瘦身为 @AGENTS.md 薄引用(保留 version marker,
版本检测不受影响),内容永不分叉
- 抽 upsert_managed_block 公共 helper(created/updated/appended 三态),
附 tempdir 单元测试;SyncResult 新增 agents_md_action
背景:批量同步后发现所有项目只落 CLAUDE.md,跨工具内容被锁进单一工具
私有文件,违反宪章「跨工具单一来源 = AGENTS.md」。
下次批量同步时全部项目自动迁移到新结构(marker 机制天然幂等)。
Rules-Applied: R01, R07
|
2026-07-02 19:49:22 +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
|
dcbf1f9355
|
feat(gitea): G1 DB schema + 实例 CRUD + 连接测试
新增 gitea_instances / gitea_repos 两张表(db.rs migrate);
实现 save/list/delete/update/test_connection 命令(ureq 调 GET /api/v1/user 验证 token);
gitea_list_linked_repos / gitea_get_repo_link 查询绑定状态;
前端 commands.ts 完整类型封装;4 个单元测试全绿。
|
2026-06-30 17:44:39 +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
|
9c2064e3d0
|
feat(flywheel-L0): F1 全量历史导入 + 跨项目 Git 健康度聚合
- ingest_full_git_history: 最多 500 条历史,INSERT OR IGNORE 幂等,事务批量写入
- get_project_commit_health: 直接聚合 commit_metrics,返回规范化率/返工率/top_scopes
- 前端 commands.ts 补 IngestResult/ProjectCommitHealth/ScopeActivity 封装
- 新增 4 个单元测试(空项目排除、聚合正确性、scope 排序、写入幂等)
|
2026-06-29 20:55:11 +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
|
0c5730381d
|
feat(agent-infra): 卡C——文档腐化评分 + doc_freshness_cache 表
scan_doc_freshness():git log 读取契约路径 vs project-context.yaml
时间戳差值,project-context.yaml 不存在直接 RED;结果写入 DB 缓存。
get_doc_freshness_cache():看板读缓存不触发扫描。
10 条单元测试全过。
|
2026-06-29 18:26:47 +09:00 |
|
lanrtop
|
5e824027e5
|
feat(agent-infra): 卡B——三件套文件生成
generate_agent_infra_files():
- 生成 docs/ai-context/project-context.yaml(含确认后的契约路径)
- 注入 AGENTS.md 元规则段落(已有则跳过,幂等)
- 生成 .claude/rules/doc-freshness.md(含项目特定 globs)
7 条单元测试全过(含生成+幂等验证)
|
2026-06-29 18:11:30 +09:00 |
|
lanrtop
|
2246df8e2a
|
feat(agent-infra): 卡A——框架层扫描 + 契约路径推断
新增 agent_infra.rs:从 package.json(serde_json)和 Cargo.toml
识别 Drizzle/Prisma/Hono/Axum/tRPC/pnpm-monorepo 等框架,
返回带 confidence 的 DetectedContract 列表;6 条单元测试全过。
前端封装:scanAgentInfraStack(projectPath)
|
2026-06-29 18:07:40 +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 |
|