Skip to content

Releases: int2t05/Cognik

v1.8: 后端依赖热更新 + 文章发布事务化 + 纯净审计

Choose a tag to compare

@int2t05 int2t05 released this 06 Sep 13:16

配置热加载真重建

  • Embedder.client 改 atomic.Pointer — 修复配置热替换时的数据竞争
  • ConfigReloader(onReload 闭包) — 写 .env 后原子重建 LLM/Embedding 客户端,无需重启
  • database.Init 指数退避重试(5 次),DB 未就绪不再立即退出

文章发布事务化(修复"索引已写但状态 failed")

根因:ReplaceVectors 自管 *sql.Tx 提交,process_status 经回调在独立 GORM 连接单独写——四个非原子窗口。

  • ReplaceVectorsWithTx 加入调用方 GORM 事务 → 向量写入与 process_status='completed' 同一提交(Window A)
  • ProcessTask.Finalize 回调:post-commit 副作用 panic 不再改写为 failed(Window B)
  • UpdateArticleProcessStatusCAS:重试路径 CAS 声明,避免并发双写(Window C)
  • ListArticlesForRetry 扩展 stuck-processing 恢复:10min 阈值拾取崩溃残留(Window D)

配置映射修复

  • GetEnvConfigs key 改真实 .env 变量名(COGNIK_*),写回即生效,消除 friendly-key 漂移
  • 前端 SECTIONS/defaults/AppShell 同步 COGNIK_* 键空间

系统配置页 Tab 栏

  • 顶端 segmented Tab 栏(通用/LLM/Embedding/RAG/搜索/上传/重排序)
  • 字段友好标签 + 三种渲染:文本/密钥脱敏/布尔即时切换
  • 清理 ~30 个死 i18n key

纯净审计(421c951 后全部 diff)

  • 删 2 死文档(llm-config.md/llm-config-hot-reload-flow.md),新增 config.md
  • 修 TECH/ROADMAP/FLOW/API/knowledge 共 ~20 处死引用(LLMConfigManager/system_configs/llm_config_id)
  • 修 COGNOS_→COGNIK_ 改名残留(重试配置 env)
  • 删死配置键(RAG_QUERY_REWRITE/MULTI_ROUTE/HYBRID/RERANK/DEFAULT_TOP_K),.env.example 对齐 config.go
  • benchmark 死代码清理(ResultArticleIDs/maskKey/var_)+ Phase 编号修复

验证

  • go build/go vet/tsc --noEmit 全通过
  • 后端健康 HTTP 200;retry scanner 无报错
  • 热重建运行时验证:改 model → 日志确认重建;配置写回 roundtrip 生效

Full Changelog: v1.7...v1.8

v1.7 — i18n + Rename Cognik + Purity Audit

Choose a tag to compare

@int2t05 int2t05 released this 05 Sep 13:53

Highlights

🌐 Internationalization (i18n)

  • Frontend zh/en switch via next-intl (cookie-based, no [locale] URL prefix) — locale: cookie → Accept-Language → fallback Chinese; SSR renders correct locale with no hydration flash
  • GitHub display surface English-first: bilingual README & CONTRIBUTING with cross-links, bilingual Issue templates
  • Full string extraction across all portal/admin pages and shared components → messages/{zh,en}.json
  • CONTRIBUTING accepts Chinese or English commit messages; code comments stay Chinese

🏷️ Rename: Cognos → Cognik

  • Eliminated naming conflict with IBM Cognos Analytics (search visibility was severely diluted)
  • Cognik = Cognition + -ik (tech suffix) — GitHub has no same-name project, low trademark risk
  • Full rename: Go module path, env prefix (COGNOS_ → COGNIK_), brand name across 277 files
  • GitHub repo renamed (old URL auto-redirects), SEO-optimized description & README

📚 Purity Audit (16-point checklist)

  • Dead link fix: docs/design/DESIGN.md (directory removed, link not synced)
  • Embedding dimension unified across README/PRD/TECH (Qwen3@1024 / DashScope@1536, configurable)
  • admin-ops-flow.md: 5 doc/impl gaps fixed (field names, trend structure, config keys, message types)
  • knowledge-publish-flow.md: removed Review audit-log hallucination, added Disable audit+BM25 steps, fixed stale line numbers
  • 4 cross-directory dead links fixed (knowledge/ ↔ chat/)
  • Dead config field removed (COGNOS_AI_CONFIDENCE_THRESHOLD → _LOW/_HIGH)

🧹 Cleanup

  • Removed orphan shared/handler/common.go (functions inlined per-domain; domain-first layering)
  • .gitignore covers rerank model artifacts
  • Test signature fix for AutoMigrate vector-dimension parameter

Full Changelog

v1.6-release...v1.7

v1.6 — 检索优化 + 自迭代知识闭环

Choose a tag to compare

@int2t05 int2t05 released this 05 Sep 10:06

核心特性

Agent 自迭代闭环

  • CreateAndPublish — Agent 写回即发布进 RAG,绕过人工审核,下一轮 kb(search) 可召回
  • UpdateAndRepublish — 更新已发布文章 + 增量 reindex(复用 SHA256 跳过未变 chunk)
  • 语义去重 — embed 标题+首段,CosineSearch > 0.92 拒绝重复,提示用 update
  • system_prompt — Search→Fetch→Write→Auto-publish 循环 + Update existing 指令

检索优化

  • Frontmatter schema — ArticleMeta(type/tags/status/source_type/created/updated),type 留空时 LLM 补全
  • Embedding 1536 — DashScope text-embedding-v2,DB 列 halfvec(dim) 可配
  • 5-worker 并行池 — Processor poolSize 2→5
  • INDEX.md 锁 — per-kbID mutex + dirty-flag 循环,并发发布不损坏
  • Contextual Retrieval / Sandwich Reorder / BM25 Enriched / RRF k=30 / Context Packing

工单闭环

  • 上传文件 / LLM 元数据补全自动创建复核工单(source=3 KnowledgeReview)
  • Ticket 加 related_article_id / related_kb_id 关联文章

架构

  • 自建 agent/llm.ChatModel — net/http 直连 OpenAI 兼容 API,替代 eino-ext
  • 六级上下文压缩 — Tool Result Budget → Snip → Microcompact → HeadAndTail → 去重 → Autocompact
  • 记忆系统 — 会话记忆 + 全局记忆 + ExtractMemories + AutoDream 复盘
  • COGNOS_DATA_ROOT — 统一数据根目录(storage/memory/logs/agent.db 派生)

技术栈

Go + Gin + GORM | PostgreSQL + pgvector (halfvec + HNSW) | Next.js + React + TypeScript + shadcn/ui | 自建 RAG 引擎 | DashScope text-embedding-v2 @ 1536

部署

docker compose -f deploy/docker-compose.yml up -d postgres
cd server && go run ./cmd/main.go
cd web && npm run dev

默认账号:admin / Admin@123

V1.4 — 深度搜索 + Agent 基座重构

Choose a tag to compare

@int2t05 int2t05 released this 04 Sep 11:31

V1.4 — 深度搜索 + Agent 基座重构

Agent 基座重构(自建 Loop)

彻底重构 Agent 基座,完全吸收 Claude Code 架构:

  • 自建 ReAct Loop(替代 Eino react.Agent)—— 真异步恢复(fire-and-forget + completion-notification)
  • 统一工具接口(SyncTool/AsyncTool)—— 消除 StreamableTool 中间态,Loop 用 type assertion 派发
  • SubAgent 真异步派发(dispatch_subagent AsyncTool)—— 主 Agent 给任务描述 → 子 Agent 后台跑 → 事件透传 → 完成恢复注入结果
  • EventSink 替代 PipelineEmitter 跨层 ctx 注入 hack
  • TaskID 事件隔离 —— 子 Agent 事件归入 dispatch_subagent 卡片,不混入主 Agent 文本

深度搜索工具链

  • web_search —— Exa→Tavily→DuckDuckGo 搜索降级链
  • web_fetch —— Firecrawl→本地 http.Get 提取降级链(含 SSRF 防护)
  • generate_article —— 结构化 Markdown + frontmatter 写入知识库 Draft
  • deep_research SubAgent —— 提示词驱动(8 条研究原则),替代代码 pipeline

流式渲染优化

  • 背压消除事件丢弃(runner 阻塞发送 + buffer 1024)
  • 结构事件即时 flush + 文本 rAF 单帧平滑
  • 卡片默认折叠(reasoning/tool_call),纯净执行
  • 流式滚动跟随(100ms ticker)

SQLite 增量写入

  • 每次事件增量写入 parts(status=generating),中断可恢复
  • 所有退出路径落库:generating/completed/cancelled/failed

删除(纯净重构)

  • Eino agent 层依赖(react/adk/compose/tool)
  • research/ 代码 pipeline(deep_research 改提示词驱动)
  • task/ 死代码 TaskManager + 4 个死端点
  • async_bash + ToolFactory + PipelineEmitter hack

内置 SubAgent

SubAgent 工具集
research read_file / glob / grep / list_dir(只读)
coder bash / read_file / write_file / edit_file / mkdir(读写)
deep_research web_search / web_fetch / generate_article(网络调研)

完整变更: see commits on v1.4 branch.

OpsMind v1.3 — Agent 基座

Choose a tag to compare

@int2t05 int2t05 released this 04 Sep 03:26

V1.3 — Agent 基座

新增

  • Agent Loop — 基于 Eino 的 ReAct 循环(ReactAgent + ToolCallingModel + StreamToolCallChecker),替代 V1.2 的手写 OpenAIClient + 线性 RAG 管道
  • 订阅渠道网关 — runtime.Gateway[E] 通用网关(ring buffer 1024 + seq 游标重放 + 30s grace + 非阻塞 fan-out),替代 GenerationHub。对齐 LangGraph Server / Mastra Durable / OpenAI background
  • 9 内置工具 — bash / async_bash(StreamableTool) / read_file / write_file / edit_file / list_dir / glob / grep / mkdir
  • SubAgent — research(只读探查)+ coder(读写操作),通过 adk.NewAgentTool 包装为工具,父 Agent 委托子 Agent
  • 异步任务 — Task model + TaskManager 后台执行 + SQLite 持久化
  • Agent 数据隔离 — SQLite(glebarez/sqlite 纯 Go),与业务 PostgreSQL 分离
  • threads API — 12 端点(线程 CRUD + 流式对话 + 异步任务),替代 chat-sessions
  • 前端 parts 数组模型 — 对标 AI SDK UIMessage.parts,流式渲染解耦,tool_call/tool_result/reasoning 全事件渲染

架构

生产者(AgentRunner)与交付渠道(Gateway)解耦:runner 只产出事件,chat 层订阅并 Publish 到网关。

纯净审计

16 点 checklist 全量清理(溯源残留 / 装饰冗余 / 死内容 / doc-impl 裂隙 / 语言平台残留)。

升级注意

  • Agent 对话数据迁移到 SQLite(./data/agent.db),与业务库隔离
  • API 路径 chat-sessions → threads
  • V1.2 的 RAG 管道代码保留,作 V2.0 search_knowledge_base 工具后端
  • 配置项精简:移除 7 个零读取的 AIConfig 字段(DefaultTopK / ConfidenceThreshold / MaxHistoryMessages / RAG*)

Full Changelog: v1.2...v1.3

V1.2 业务完善

Choose a tag to compare

@int2t05 int2t05 released this 03 Sep 08:53

V1.2 业务完善

5.1 知识库上传增强

  • 上传上限配置化(kb.max_upload_size)+ GET /api/v1/config/upload 接口
  • 批量并发上传(WaitGroup + 信号量,部分失败逐项返回)
  • react-dropzone 拖拽 + 每文件 XHR 进度条 + AbortController
  • 文件类型校验(前端白名单 + 后端 MIME,放行图片 jpg/png/webp/gif/bmp)
  • xlsx/pptx 误判为 docx 修复

5.2 申告管理增强

  • 批量关闭(POST /tickets/batch-close,复用单条 close 状态机)
  • 处理时限(deadline_at 字段)+ 调度器每小时扫描超时 + 站内消息通知
  • 申告列表关键词搜索(管理端+用户端)

5.3 看板增强

  • 趋势 CSV 导出(GET /dashboard/trends/export,BOM 头防 Excel 乱码)
  • 自定义日期范围 + granularity day/week 生效

5.4 前端体验优化

  • 代码分割(TrendChart/ChatPipeline/Markdown 懒加载)
  • 表单 required 标记
  • 列表搜索全覆盖(知识库/审计/用户/角色 + 申告用户端补齐)
  • EmptyState 清除筛选入口
  • SWR keepPreviousData 无感切换

5.5 Markdown 富文本

  • @uiw/react-md-editor 分屏编辑(预览复用 remarkMath/rehypeKatex/rehypeHighlight)
  • 图片粘贴上传(通用文件上传接口 POST /files/upload + 下载代理)
  • 未保存确认(isDirty + ConfirmDialog + beforeunload)
  • Mermaid 图表 + 代码高亮 + LaTeX 公式

其他

  • 列表筛选交互优化(TableFilterHeader 不跳动 + 多维度组合筛选)
  • 登录锁定窗口 15 分钟 → 3 分钟
  • 纯净审计修复(escapeLike/extractErrMsg 提取共享 + xlsx 类型修复)
  • 通用文件上传接口替代文章上传(职责分离:文档入库 vs 图片存储)

Full Changelog: v1.1...v1.2

v0.1.0: OpsMind 运维数字员工系统

Choose a tag to compare

@int2t05 int2t05 released this 26 Jun 16:18

功能基本实现
Full Changelog: v0.1.0...v0.1.0