forked from Gitlink/gitlink-cli
338 lines
15 KiB
HTML
338 lines
15 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>release-notes-v0.1.0</title>
|
||
<style>
|
||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||
body {
|
||
font-family: 'Segoe UI', -apple-system, BlinkMacSystemFont, sans-serif;
|
||
background: #f1f5f9;
|
||
color: #1e293b;
|
||
line-height: 1.7;
|
||
}
|
||
.page {
|
||
max-width: 900px;
|
||
margin: 0 auto;
|
||
padding: 0 20px 60px;
|
||
}
|
||
.header-card {
|
||
background: linear-gradient(135deg, #1e293b, #334155);
|
||
color: white;
|
||
border-radius: 16px;
|
||
padding: 32px 40px;
|
||
margin: 24px 0 20px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
flex-wrap: wrap;
|
||
gap: 20px;
|
||
box-shadow: 0 4px 20px rgba(0,0,0,0.1);
|
||
}
|
||
.header-card h1 {
|
||
font-size: 22px;
|
||
font-weight: 600;
|
||
line-height: 1.3;
|
||
}
|
||
.header-card .meta {
|
||
font-size: 13px;
|
||
color: #94a3b8;
|
||
margin-top: 6px;
|
||
}
|
||
.card {
|
||
background: white;
|
||
border-radius: 12px;
|
||
padding: 24px 28px;
|
||
margin-bottom: 16px;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.04);
|
||
border: 1px solid #e2e8f0;
|
||
}
|
||
.card h2 {
|
||
font-size: 16px;
|
||
font-weight: 600;
|
||
color: #0f172a;
|
||
margin-bottom: 14px;
|
||
padding-bottom: 8px;
|
||
border-bottom: 2px solid #f1f5f9;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
.card h3 {
|
||
font-size: 14px;
|
||
font-weight: 600;
|
||
color: #334155;
|
||
margin: 16px 0 8px;
|
||
}
|
||
.card h4 {
|
||
font-size: 13px;
|
||
font-weight: 600;
|
||
color: #475569;
|
||
margin: 12px 0 6px;
|
||
}
|
||
.card p {
|
||
font-size: 14px;
|
||
color: #475569;
|
||
margin-bottom: 8px;
|
||
}
|
||
.card p:last-child { margin-bottom: 0; }
|
||
.card code {
|
||
background: #f1f5f9;
|
||
padding: 1px 6px;
|
||
border-radius: 4px;
|
||
font-size: 13px;
|
||
font-family: 'Cascadia Code', 'Fira Code', monospace;
|
||
color: #0f172a;
|
||
}
|
||
.card strong {
|
||
color: #0f172a;
|
||
}
|
||
.score-section {
|
||
text-align: center;
|
||
padding: 8px 0;
|
||
}
|
||
.score-ring {
|
||
display: inline-block;
|
||
}
|
||
.score-label {
|
||
font-size: 18px;
|
||
font-weight: 600;
|
||
margin-top: 4px;
|
||
}
|
||
.table-wrap {
|
||
overflow-x: auto;
|
||
margin: 10px 0;
|
||
}
|
||
table {
|
||
width: 100%;
|
||
border-collapse: collapse;
|
||
font-size: 13px;
|
||
}
|
||
th {
|
||
background: #f8fafc;
|
||
font-weight: 600;
|
||
text-align: left;
|
||
padding: 10px 12px;
|
||
border-bottom: 2px solid #e2e8f0;
|
||
color: #475569;
|
||
white-space: nowrap;
|
||
}
|
||
td {
|
||
padding: 9px 12px;
|
||
border-bottom: 1px solid #f1f5f9;
|
||
color: #334155;
|
||
}
|
||
tr:last-child td { border-bottom: none; }
|
||
tr:hover td { background: #f8fafc; }
|
||
.cell-ok { color: #16a34a; font-weight: 500; }
|
||
.cell-fail { color: #dc2626; }
|
||
.cell-green { color: #16a34a; }
|
||
.cell-yellow { color: #ca8a04; }
|
||
.cell-red { color: #dc2626; }
|
||
.cell-warn { color: #ea580c; }
|
||
ol {
|
||
padding-left: 20px;
|
||
margin: 8px 0;
|
||
}
|
||
ol li {
|
||
font-size: 14px;
|
||
color: #475569;
|
||
padding: 4px 0;
|
||
list-style-position: outside;
|
||
}
|
||
li::marker {
|
||
font-weight: 600;
|
||
color: #3b82f6;
|
||
}
|
||
.code-block {
|
||
background: #0f172a;
|
||
color: #e2e8f0;
|
||
padding: 16px 20px;
|
||
border-radius: 8px;
|
||
font-size: 13px;
|
||
overflow-x: auto;
|
||
margin: 12px 0;
|
||
line-height: 1.5;
|
||
font-family: 'Cascadia Code', 'Fira Code', monospace;
|
||
}
|
||
.footer {
|
||
text-align: center;
|
||
padding: 24px;
|
||
color: #94a3b8;
|
||
font-size: 12px;
|
||
}
|
||
@media (max-width: 640px) {
|
||
.page { padding: 0 12px 40px; }
|
||
.header-card { padding: 20px; flex-direction: column; text-align: center; }
|
||
.header-card h1 { font-size: 18px; }
|
||
.card { padding: 16px; }
|
||
}
|
||
@media print {
|
||
body { background: white; }
|
||
.header-card { break-inside: avoid; }
|
||
.card { break-inside: avoid; box-shadow: none; border: 1px solid #e2e8f0; }
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="page">
|
||
<div class="header-card">
|
||
<div>
|
||
<h1>release-notes-v0.1.0</h1>
|
||
<div class="meta">生成时间:2026/6/30 10:49:09</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="card report-content">
|
||
<h2>v0.1.0 (2026-06-30)</h2>
|
||
|
||
<h3>📊 版本概览</h3>
|
||
<ol><li>基于上一版本:v0.0.0</li>
|
||
<li>包含 <strong>100</strong> 次提交</li>
|
||
<li>涉及 <strong>252</strong> 个文件</li>
|
||
<li>新增 <strong>22410</strong> 行 / 删除 <strong>5510</strong> 行</li>
|
||
<li>贡献者:<strong>7</strong> 人</li>
|
||
<p></ol></p>
|
||
<h3>✨ 新功能(22)</h3>
|
||
|
||
<ol><li>feat: PPT 添加 HTML 报告超链接跳转(@赵昌)</li>
|
||
<li>feat: 整合 Demo 终端输出到 PPT(@赵昌)</li>
|
||
<li>feat: PPT 添加备注稿和演示跳转按钮(@赵昌)</li>
|
||
<li>feat: 综合演示网页 + 增强 PPT(17页)(@赵昌)</li>
|
||
<li>feat: 汇报 PPT 和演示脚本(@赵昌)</li>
|
||
<li>feat: 子任务三 & 子任务四 — 端到端工作流与科研辅助模块(@赵昌)</li>
|
||
<li>feat(skills): 完善 issue-triage 与 code-review Skill,补充 gitlink-shared 已知坑(@s2_cc)</li>
|
||
<li>feat(skills): 新增 gitlink-pr-deep-review PR 深度审查 Skill(@z2_cc)</li>
|
||
<li>feat(skills): 新增 gitlink-duplicate-detector 重复 Issue 检测 Skill(@kaka)</li>
|
||
<li>feat(compliance-skill): 新增敏感信息扫描工作流与报告整合(@刘焱)</li>
|
||
<li>feat(output): 单对象详情渲染为可读的层级表格,不再回退 JSON(@刘焱)</li>
|
||
<li>feat(interactive): 默认使用 table 格式输出,提升可读性(@刘焱)</li>
|
||
<li>feat(interactive): add scrollable viewport for long command output(@刘焱)</li>
|
||
<li>feat(output): improve table readability — truncate values, limit columns, summarize nested maps(@刘焱)</li>
|
||
<li>feat(output): render nested list data as table instead of falling back to JSON(@刘焱)</li>
|
||
<li>feat(interactive): add REPL with command palette, form, and cobra entry(@刘焱)</li>
|
||
<li>feat(interactive): add command executor with stdout capture and flag parsing(@刘焱)</li>
|
||
<li>feat(shortcuts): export GetAllShortcuts and GetDescriptions for interactive mode(@刘焱)</li>
|
||
<li>feat: add three new skills - issue triage, project health, newcomer guide(@赵昌)</li>
|
||
<li>feat: add wiki and snippet skills, update webhook skill with new commands(@赵昌)</li>
|
||
<li>feat: task-view supports both numeric ID and UUID lookup(@赵昌)</li>
|
||
<li>feat: add webhook +failed and +task-view commands(@赵昌)</li>
|
||
<p></ol></p>
|
||
<p><strong>占比:</strong> 22%</p>
|
||
|
||
<h3>🐛 Bug 修复(15)</h3>
|
||
|
||
<ol><li>fix: 修正成员信息并去除学校水印(@赵昌)</li>
|
||
<li>fix: 优化技术债务(@赵昌)</li>
|
||
<li>fix(newcomer-skill): 修复 label 命令 Bug,加入状态过滤与幂等去重(@刘焱)</li>
|
||
<li>fix(compliance-skill): 修复 DB 连接串正则与跨文件一致性(C1/I1/I2/I3/I4/M2)(@刘焱)</li>
|
||
<li>fix(collaborator): 修复 change-role/batch-role 请求体(@刘焱)</li>
|
||
<li>fix(branch): 修复保护分支接口路径与列表输出(@刘焱)</li>
|
||
<li>fix(output): 表头取所有行字段并集并固定核心列顺序(@刘焱)</li>
|
||
<li>fix(interactive): 命令面板选中带可选参数的命令也弹出表单(@刘焱)</li>
|
||
<li>fix(file): 移除 +tree 无效的 --recursive flag(@刘焱)</li>
|
||
<li>fix(file): 修复文件管理命令的端点和参数问题(@刘焱)</li>
|
||
<li>fix(output): 本地构造的 map slice 也渲染为表格,不再显示 [N items](@刘焱)</li>
|
||
<li>fix(tag): tag +view 改用列表过滤,GitLink 无单标签 API 端点(@刘焱)</li>
|
||
<li>fix(interactive): initialize RuntimeContext via NewRuntimeContext to prevent nil-Client panic(@刘焱)</li>
|
||
<li>fix(interactive): trigger command palette immediately on '/' keypress(@刘焱)</li>
|
||
<li>fix(interactive): correct Esc behavior and direct-exec for optional flags(@刘焱)</li>
|
||
<p></ol></p>
|
||
<p><strong>占比:</strong> 15%</p>
|
||
|
||
<h3>📝 文档(51)</h3>
|
||
|
||
<ol><li>docs: 三份报告统一转为 Word 格式(@赵昌)</li>
|
||
<li>docs: 更新报告覆盖全部成员贡献(@赵昌)</li>
|
||
<li>docs: 更新工作日志(文档清理 & 技术债务优化)(@赵昌)</li>
|
||
<li>docs: 更新工作日志技术债务状态(@赵昌)</li>
|
||
<li>docs: 统一新需求构思报告和变更影响分析及测试报告(@赵昌)</li>
|
||
<li>docs: 添加子任务三/四工作日志(@赵昌)</li>
|
||
<li>docs: 添加子任务三/四交接文档(@赵昌)</li>
|
||
<li>docs: enrich demo page with detailed AI analysis and scoring(@赵昌)</li>
|
||
<li>docs: update demo page with AI analysis outputs and scoring(@赵昌)</li>
|
||
<li>docs(demo): 演示页新增许可证合规检查与新人引导交互流程(@刘焱)</li>
|
||
<li>docs: add interactive demo page for skills showcase(@赵昌)</li>
|
||
<li>docs: add release notes workflow example(@赵昌)</li>
|
||
<li>docs(plans): 项目级 Skill 集成实现计划(@刘焱)</li>
|
||
<li>docs(specs): 项目级 Skill 集成设计(Claude Code 兼容)(@刘焱)</li>
|
||
<li>docs(skills): 真实验证回填(@刘焱)</li>
|
||
<li>docs(skills-readme): 概览表补 compliance 与 newcomer-guide(@刘焱)</li>
|
||
<li>docs(newcomer-skill): 示例加入去重检查与批量场景(@刘焱)</li>
|
||
<li>docs(newcomer-skill): 新增 REFERENCE(命令/字段/标签变体/幂等规则)(@刘焱)</li>
|
||
<li>docs(compliance-skill): 新增端到端合规检查示例(@刘焱)</li>
|
||
<li>docs(compliance-skill): REFERENCE 增补敏感信息扫描章节(@刘焱)</li>
|
||
<li>docs(plans): GitLink Skills 丰富与完善实现计划(@刘焱)</li>
|
||
<li>docs(specs): GitLink Skills 丰富与完善设计规格(@刘焱)</li>
|
||
<li>docs: add comprehensive Chinese comments and mark bug fixes (P1-P4)(@s2_cc)</li>
|
||
<li>docs(repo): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(pr): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(issue): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(attachment): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(dataset): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(template): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(ci): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(search): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(org): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(util): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(sshkey): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(label): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(commit): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(file): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(milestone): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(release): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(collaborator): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(tag): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(branch): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(wiki): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(user): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(snippet): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(webhook): 子命令描述和注释中文化(@刘焱)</li>
|
||
<li>docs(shortcuts): 给每个命令组添加中文注释和中文描述(@刘焱)</li>
|
||
<li>docs: add interactive REPL implementation plan(@刘焱)</li>
|
||
<li>docs: add interactive REPL command palette design spec(@刘焱)</li>
|
||
<li>docs: add workflow examples for issue-triage, project-health, newcomer-guide(@赵昌)</li>
|
||
<li>docs: update report - remove hook-runner, update webhook section(@赵昌)</li>
|
||
<p></ol></p>
|
||
<p><strong>占比:</strong> 51%</p>
|
||
|
||
<h3>✅ 测试(1)</h3>
|
||
|
||
<ol><li>test(interactive): smoke-test all registered commands execute without panic(@刘焱)</li>
|
||
<p></ol></p>
|
||
<p><strong>占比:</strong> 1%</p>
|
||
|
||
<h3>🔧 工程配置(3)</h3>
|
||
|
||
<ol><li>chore: 删除多余的 demo 文件(@赵昌)</li>
|
||
<li>chore: 清理多余的场景文档目录(@赵昌)</li>
|
||
<li>chore: add bubbletea, bubbles, huh dependencies(@刘焱)</li>
|
||
<p></ol></p>
|
||
<p><strong>占比:</strong> 3%</p>
|
||
|
||
<h3>📦 其他变更(8)</h3>
|
||
|
||
<ol><li>refine: 优化演示页面布局和结果展示(@赵昌)</li>
|
||
<li>Merge remote-tracking branch 'origin/master'(@s2_cc)</li>
|
||
<li>Merge branch 'z2cc'(@s2_cc)</li>
|
||
<li>enhance: enrich skill outputs with data analysis and scoring logic(@赵昌)</li>
|
||
<li>remove probe(@刘焱)</li>
|
||
<li>probe(@liuyan688)</li>
|
||
<li>添加Python示例(@wqer)</li>
|
||
<li>merge: integrate hook-runner into webhook commands(@赵昌)</li>
|
||
<p></ol></p>
|
||
<p><strong>占比:</strong> 8%</p>
|
||
|
||
<h3>📈 统计汇总</h3>
|
||
<div class="table-wrap"><table><thead><tr><th>类别</th><th>数量</th><th>占比</th></tr></thead><tbody><tr><td>✨ 新功能</td><td>22</td><td>22%</td></tr><tr><td>🐛 Bug 修复</td><td>15</td><td>15%</td></tr><tr><td>📝 文档</td><td>51</td><td>51%</td></tr><tr><td>♻️ 代码重构</td><td>0</td><td>0%</td></tr><tr><td>⚡ 性能优化</td><td>0</td><td>0%</td></tr><tr><td class="cell-ok">✅ 测试</td><td>1</td><td>1%</td></tr><tr><td>🔧 工程配置</td><td>3</td><td>3%</td></tr><tr><td>⏪ 回退</td><td>0</td><td>0%</td></tr><tr><td>📦 其他变更</td><td>8</td><td>8%</td></tr></tbody></table></div>
|
||
<p>---</p>
|
||
<p>*自动生成时间:2026-06-30 02:49:09*</p>
|
||
|
||
</div>
|
||
<div class="footer">
|
||
Powered by gitlink-cli · 数据来源于 GitLink 平台
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html> |