feat: 知识治理平台(含已验证发布/回滚契约)
全栈知识治理平台首次入库(P1-P10 + 发布链路模拟验证闭环): - 治理核心:源目录/变更集/人工审核/发布批次/发布执行(fail-closed 闸口) - 测试通道:WeKnora 测试 KB 上传/轮询/验收;poll 完成时写入 parser_generation/index_generation,修复 manual/seed 路径发布闸口永久拦截 - 发布适配器 v071(本地 source=测试角色 / 云端 target=生产角色 模拟验证通过): * ES 导出/导入 mapping 自适应(.keyword 子字段、可选 tenant_id) * OSS locator 支持嵌套 scheme;chunks.seq_id 由目标序列分配 * bundle 归档同身份重试原子替换;verifier 按 bundle chunk_type 计数 * 回滚 job payload 支持 prior_execution_id(strict 解码) - 三通道发布+回滚演练实测:publish 4/4 verified,检索命中, rollback 4/4 rolled_back,目标端 PG is_enabled=false、ES is_enabled=false - 前端 A·Data-console 风格全站统一,120 用例通过 - 门禁:go vet / go test 全包通过,gofmt 干净
This commit is contained in:
@@ -0,0 +1 @@
|
||||
.source-link-manager{max-width:1500px}.source-link-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px}.source-link-list,.source-link-editor{min-width:0;border:1px solid var(--border-base);border-radius:14px;background:var(--bg-panel)}.source-link-list{max-height:calc(100vh - 260px);overflow:auto;padding:12px}.source-link-list h2{margin:5px 8px 12px;color:var(--ink-base);font-size:13px}.source-link-list button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;border:1px solid transparent;border-radius:9px;padding:11px;background:transparent;box-shadow:none;color:var(--ink-base);text-align:left}.source-link-list button.active{border-color:var(--c-run-border);background:var(--c-run-bg);color:var(--c-run)}.source-link-list button>span{display:grid;gap:4px}.source-link-list small{color:var(--ink-mute);font-size:10px}.source-link-list strong{font-size:10px}.source-link-editor{padding-bottom:18px}.source-link-title{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border-base);padding:15px 18px}.source-link-title>div{display:grid;gap:4px}.source-link-title h2{margin:0;color:var(--ink-base);font-size:16px}.source-link-title span{color:var(--ink-mute);font-size:10px}.connection-unverified{border-radius:6px;padding:5px 7px;background:var(--c-warn-bg)!important;color:var(--c-warn)!important;font-weight:700}.source-link-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px}.source-link-fields label{display:grid;gap:6px;color:var(--ink-base);font-size:11px}.source-link-fields input{min-width:0;border:1px solid var(--border-strong);border-radius:8px;padding:10px;background:var(--bg-panel);color:var(--ink-base)}.source-link-fields input:read-only,.source-link-fields input:disabled{background:var(--bg-soft);color:var(--ink-mute)}.source-link-boundary{display:flex;flex-wrap:wrap;gap:8px;margin:0 18px 14px}.source-link-boundary>*{border-radius:6px;padding:6px 8px;background:var(--border-soft);color:var(--ink-mute);font-size:10px}.validate-source-link{margin:0 18px}.validation-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:16px 18px;border:1px solid var(--c-done-border);border-radius:10px;padding:12px;background:var(--c-done-bg)}.validation-results div{display:grid;gap:3px}.validation-results span{color:var(--ink-mute);font-size:9px}.validation-results b{color:var(--c-done);font-size:10px}.validation-results small{grid-column:1/-1;color:var(--c-warn);font-size:9px}.credential-note{margin:15px 18px 0;border-top:1px solid var(--border-base);padding-top:13px;color:var(--ink-mute);font-size:10px;line-height:1.6}@media(max-width:900px){.source-link-layout{grid-template-columns:1fr}.source-link-list{max-height:260px}}@media(max-width:650px){.source-link-fields{grid-template-columns:1fr}.validation-results{grid-template-columns:1fr 1fr}}
|
||||
Reference in New Issue
Block a user