Skip to content

Commit 3f0cec9

Browse files
committed
chore: 打包更新前端资源,升级gorag依赖并修复索引逻辑
1. 更新前端静态资源,包括新增/替换图表组件、更新入口引用 2. 升级github.com/DotNetAge/gorag/v2依赖至v2.0.3版本 3. 修复GraphIndexer空指针判断,添加nil检查 4. 优化文件索引逻辑,增加忽略规则过滤、仅在文件变更时重建区域索引 5. 新增kb.index命令与RPC接口,支持增量索引指定路径 6. 完善文件监听状态上报,返回index_state数据修复前端进度显示 7. 优化日志输出格式与事件通知逻辑 8. 更新README文档,补充截图展示
1 parent b360411 commit 3f0cec9

94 files changed

Lines changed: 1472 additions & 1070 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,26 @@ run-daemon: build
208208
@echo ""
209209
./$(BUILD_DIR)/$(BINARY_NAME) daemon
210210

211-
## restart: 编译并重启 daemon(委托给 mindx restart,非阻塞)
212-
restart: build
213-
@echo "$(YELLOW)🔄 Restarting mindx daemon...$(NC)"
214-
@echo "$(CYAN)➡ Building → ~/.mindx/bin/$(BINARY_NAME)...$(NC)"
211+
## restart: 编译并重启 daemon(生成与运行的始终是同一份 binary)
212+
restart: fmt lint pre-build
213+
@# ── Step 1: 停掉当前运行的任意 mindx daemon ──
214+
@echo "$(YELLOW)🛑 Stopping running mindx daemon...$(NC)"
215+
@if pids=$$(pgrep -f "$(BINARY_NAME) daemon" 2>/dev/null); then \
216+
echo " Found PIDs: $$pids"; \
217+
kill $$pids 2>/dev/null; sleep 1; \
218+
if pids=$$(pgrep -f "$(BINARY_NAME) daemon" 2>/dev/null); then \
219+
kill -9 $$pids 2>/dev/null || true; \
220+
fi; \
221+
echo "$(GREEN) ✅ Daemon stopped.$(NC)"; \
222+
else \
223+
echo "$(YELLOW) ⚠ No running daemon found.$(NC)"; \
224+
fi
225+
@# ── Step 2: 编译生成到 ~/.mindx/bin(和运行时是同一份文件)──
226+
@echo "$(GREEN)➡ Building $(BINARY_NAME) for $(shell go env GOOS)/$(shell go env GOARCH)...$(NC)"
215227
@mkdir -p ~/.mindx/bin
216-
@cp -f $(BUILD_DIR)/$(BINARY_NAME) ~/.mindx/bin/$(BINARY_NAME) && \
217-
echo "$(GREEN) ✅ Binary updated.$(NC)"
228+
@CGO_ENABLED=1 $(GO) build $(GOFLAGS) -o "$$HOME/.mindx/bin/$(BINARY_NAME)" .
229+
@echo "$(GREEN)✅ Build complete! (~/.mindx/bin/$(BINARY_NAME))$(NC)"
230+
@ls -lh "$$HOME/.mindx/bin/$(BINARY_NAME)"
218231
@echo "$(CYAN)➡ Deploying frontend → ~/.mindx/web/...$(NC)"
219232
@if [ -d "../mindx-chat/dist" ]; then \
220233
rm -rf $$HOME/.mindx/web 2>/dev/null; \
@@ -224,12 +237,13 @@ restart: build
224237
else \
225238
echo "$(YELLOW) ⚠ ../mindx-chat/dist not found, skipping frontend deploy.$(NC)"; \
226239
fi
227-
@# ── 委托给 mindx restart(统一入口)──
228-
@echo "$(GREEN)Delegating daemon restart to 'mindx restart'...$(NC)"
229-
@"$$HOME/.mindx/bin/$(BINARY_NAME)" restart || { \
230-
echo "$(RED)❌ 'mindx restart' failed.$(NC)"; \
231-
echo "$(YELLOW) Try manually: $$HOME/.mindx/bin/$(BINARY_NAME) restart$(NC)"; \
240+
@# ── Step 3: 启动 daemon ──
241+
@echo "$(GREEN)Starting daemon...$(NC)"
242+
@"$$HOME/.mindx/bin/$(BINARY_NAME)" start || { \
243+
echo "$(RED)❌ 'mindx start' failed.$(NC)"; \
244+
echo "$(YELLOW) Try manually: $$HOME/.mindx/bin/$(BINARY_NAME) start$(NC)"; \
232245
}
246+
@echo "$(GREEN)✅ Daemon restarted.$(NC)"
233247

234248
## stop: 停止 mindx daemon(委托给 mindx stop)
235249
stop:

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,9 @@ MindX AgenticRAG adopts a **4-dimensional fusion engine: semantic vector recall
119119

120120
- **Tree-Sharded Progressive Retrieval**: On-demand loading for massive knowledge bases, avoiding timeout and congestion while balancing accuracy and performance.
121121

122-
<!-- TODO: 插入图片 - Search tree panel screenshot (Region→Doc→Chapter hierarchy, Level badges, confidence markers, entity chips) -->
122+
![GraphRAG Search Tree](./assets/images/graph-rag-screen-shot.png)
123+
124+
![Schema Panel](./assets/images/schema-screen-shot.png)
123125

124126
- **Adaptive Context Compression**: Long conversations and texts are intelligently summarized via LLM, preserving core decisions and key information, breaking model window limits.
125127

@@ -188,8 +190,9 @@ ___
188190

189191
- **JSON-RPC**: Standard interface for third-party integration and secondary development
190192

191-
<!-- TODO: 插入图片 - WebUI screenshot (conversation workspace + force-directed graph visualization) -->
192-
<!-- TODO: 插入图片 - TUI screenshot (conversation list + input area + status bar) -->
193+
![WebUI](./assets/images/webui.png)
194+
195+
![TUI](./assets/images/tui.png)
193196

194197
---
195198

README_zh.md

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,8 @@ MindX 自研 AgenticRAG **四维融合引擎:语义向量首发召回,图谱
102102
### 四维统一认知体系
103103

104104
- **语义向量层**:捕捉模糊意图、自然语言语义,适配非结构化场景理解
105-
106105
- **BM25 精准词条层**:锁定专业术语、关键词条,抑制语义泛化误召
107-
108106
- **图谱拓扑层**:挖掘实体关联、业务链路、隐性逻辑,实现超越文本匹配的业务理解
109-
110107
- **结构化 Schema 层**:原生解析文档结构、数据表、字段范式、业务约束,支持结构化数据精准筛选与规则检索
111108

112109
### 核心增强能力
@@ -125,7 +122,10 @@ MindX 自研 AgenticRAG **四维融合引擎:语义向量首发召回,图谱
125122

126123
- **树状分片渐进式检索**:海量知识库场景按需加载、渐进解析,避免全量检索卡顿与超时,兼顾精度与性能。
127124

128-
<!-- TODO: 插入图片 - 搜索结果树状面板截图(Region→Doc→Chapter 层级展开,Level 徽标、置信度标记、实体 chip) -->
125+
![GraphRAG Search Tree](./assets/images/graph-rag-screen-shot.png)
126+
127+
![Schema Panel](./assets/images/schema-screen-shot.png)
128+
129129

130130
- **自适应上下文压缩**:超长对话与文本通过 LLM 智能摘要压缩,保留核心决策与关键信息,突破模型窗口物理限制。
131131

@@ -150,15 +150,10 @@ MindX 独创 **OPC(目标与职责中心制)架构**,完全复刻现代企
150150
系统自动完成全流程自主闭环:
151151

152152
1. **秘书统筹Agent**接收目标,自主识别任务维度,发起多专家专题会议,召集市场、运营、策略等岗位Agent协同研讨,输出完整落地方案;
153-
154153
2. 方案成型后仅向你同步结论与规划,等待目标确认,无需你参与细节打磨;
155-
156154
3. 确认目标后,统筹Agent自动划分权责,移交**项目经理Agent**全权负责落地推进;
157-
158155
4. 项目经理自主拆解子任务、匹配对应专家Agent、划分工作边界,通过**智能体日历**排布全周期执行计划,建立定时推进与汇报机制;
159-
160156
5. 执行阶段,各岗位Agent通过**Agent Talk自主对话**实时交接工作、同步进度、解决协同分歧,全程无人工干预;
161-
162157
6. 项目周期内,项目经理定期汇总进度、风险与成果,由秘书Agent整理极简简报,向你同步全局状态。
163158

164159
全程用户只负责定目标、控结果,所有拆解、调度、协同、跟进、复盘均由智能体团队自主完成。这即是 MindX 的核心差异:**让AI负责事务执行,让用户专注价值决策**
@@ -196,8 +191,9 @@ ___
196191

197192
- **JSON-RPC**:标准化开放接口,支持第三方系统对接与深度二次开发
198193

199-
<!-- TODO: 插入图片 - WebUI 界面截图(对话工作台 + 力导图可视化) -->
200-
<!-- TODO: 插入图片 - TUI 终端界面截图(对话列表 + 输入框 + 状态栏) -->
194+
![WebUI](./assets/images/webui.png)
195+
196+
![TUI](./assets/images/tui.png)
201197

202198
---
203199

@@ -274,6 +270,7 @@ brew install DotNetAge/homebrew-mindx/mindx
274270
mindx
275271
```
276272

273+
277274
Homebrew 安装后会自动注册 daemon 服务,支持 `mindx start/stop/restart` 系统服务管理。
278275

279276
> 也支持 Docker 方式运行,参考上方 Docker 章节。
1.2 MB
Loading
480 KB
Loading

cmd/kb.go

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,48 @@ var kbFileStatesCmd = &cobra.Command{
205205
},
206206
}
207207

208+
// ── kb index ──────────────────────────────────────────────────
209+
210+
var kbIndexCmd = &cobra.Command{
211+
Use: "index <path>",
212+
Short: "Index a single file or directory into the knowledge base",
213+
Long: `Index a file or directory without re-indexing the entire project.
214+
215+
Without --force, skips files that are already indexed (cache hit).
216+
With --force, clears the cache entry and re-indexes from scratch.
217+
218+
Examples:
219+
mindx kb index path/to/file.md
220+
mindx kb index path/to/dir
221+
mindx kb index --force path/to/file.md`,
222+
Args: cobra.ExactArgs(1),
223+
RunE: func(cmd *cobra.Command, args []string) error {
224+
force, _ := cmd.Flags().GetBool("force")
225+
cl, err := rpc.Dial(daemonAddr)
226+
if err != nil {
227+
return err
228+
}
229+
defer func() { _ = cl.Close() }()
230+
result, err := cl.KBIndex(args[0], force)
231+
if err != nil {
232+
return err
233+
}
234+
235+
var resp struct {
236+
Status string `json:"status"`
237+
Path string `json:"path"`
238+
Type string `json:"type"`
239+
}
240+
if err := json.Unmarshal(result, &resp); err != nil {
241+
fmt.Println(string(result))
242+
return nil
243+
}
244+
245+
fmt.Printf("[%s] %s (%s)\n", resp.Status, resp.Path, resp.Type)
246+
return nil
247+
},
248+
}
249+
208250
// ── init subcommands ──────────────────────────────────────────
209251

210252
func init() {
@@ -213,9 +255,11 @@ func init() {
213255
kbStatsCmd.Flags().String("project-dir", "", "Project directory path (required)")
214256
kbSyncCmd.Flags().String("project-dir", "", "Project directory path (required)")
215257
kbFileStatesCmd.Flags().String("project-dir", "", "Project directory path (required)")
258+
kbIndexCmd.Flags().Bool("force", false, "Force re-index even if already cached")
216259

217260
kbCmd.AddCommand(kbSearchCmd)
218261
kbCmd.AddCommand(kbStatsCmd)
219262
kbCmd.AddCommand(kbSyncCmd)
220263
kbCmd.AddCommand(kbFileStatesCmd)
264+
kbCmd.AddCommand(kbIndexCmd)
221265
}

go.mod

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ require (
2626
github.com/DotNetAge/gochat v0.2.7
2727
github.com/DotNetAge/gograph v0.2.6
2828
github.com/DotNetAge/goharness v0.2.4
29-
github.com/DotNetAge/gorag/v2 v2.0.2
29+
github.com/DotNetAge/gorag/v2 v2.0.3
3030
github.com/creack/pty v1.1.24
3131
go.etcd.io/bbolt v1.4.3
3232
golang.org/x/text v0.37.0
@@ -139,4 +139,3 @@ require (
139139
)
140140

141141
replace github.com/coder/hnsw => ./third_party/hnsw
142-
replace github.com/DotNetAge/gorag/v2 => ../gorag

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ github.com/DotNetAge/gograph v0.2.6 h1:LhYERtYTPaWXvbBy9bO/6XGmYTW/OZGXQ+zyfycse
1717
github.com/DotNetAge/gograph v0.2.6/go.mod h1:Ia2wvbkpdJvFJEZ1vw+IklbhNbWjPli2dnU21jbmy7I=
1818
github.com/DotNetAge/goharness v0.2.4 h1:vFbNKFRplaSGO84YdVwZkv+6D4LWEh8jPAiJRzfFz7w=
1919
github.com/DotNetAge/goharness v0.2.4/go.mod h1:+kx9N2I5nkKquSD8xcN1JR9U1mHOpVtMTcGQbV1NGQ4=
20-
github.com/DotNetAge/gorag/v2 v2.0.2 h1:ujK4l+0WCNizSJEinBlcI433+4Vpr/ESeNebMzBQ4bc=
21-
github.com/DotNetAge/gorag/v2 v2.0.2/go.mod h1:K8YAydeJR41JMY59xrzgMNDKRHVg3cwB2pYwJSwVjbE=
20+
github.com/DotNetAge/gorag/v2 v2.0.3 h1:utCl5dKBoMQPkqUYDS1xS5S46gW4tR/L58thEhYNuzg=
21+
github.com/DotNetAge/gorag/v2 v2.0.3/go.mod h1:K8YAydeJR41JMY59xrzgMNDKRHVg3cwB2pYwJSwVjbE=
2222
github.com/DotNetAge/gort v0.1.4 h1:nUZdy3cN3Kif21GWIYkxlIS/iFr62eN5boBmCzmI3xw=
2323
github.com/DotNetAge/gort v0.1.4/go.mod h1:m6mjzyaP/Ufx+Uv7uh51BSK7N4LVR/viWEHV9ZQ3OM8=
2424
github.com/DotNetAge/govector v0.1.8 h1:LwNJecCbLgj0ISXBRUCQziPYBbYxtr+3jVEKvXzK7wo=

0 commit comments

Comments
 (0)