ArkKB 是一个遵循“绝对轻量”、“极速克制”和“原生无阻”哲学的本地项目。
作为项目的核心基石,我们在所有的开发、重构和迭代中,必须严格贯彻极其纯净与高效的架构标准。
👉 请务必在开始任何开发前阅读最高指导原则:**📜 ArkKB 项目架构规范与 AI 执行蓝图**
src/utils/lock/)~/.arkkb/.lock 的进程锁。isProcessAlive 探测 PID 是否真实存活。Lock() 和 Unlock(),支持 Windows 和 Unix。src/core/storage/)kv.go (bbolt)**:< 4KB 的环境配置,强制检查 4KB 长度限制。json 存储文件的 Charset, Size, Modified 等元数据,确保字符集信息可持久化。NormalizePath 处理,确保跨平台路径一致性。index.go (bluge)**:作为系统唯一的“Source of Truth”,实现基于 bluge.NewBatch() 的原子更新逻辑。manager.go**:统一管理生命周期,路径统一指向 ~/.arkkb/。src/core/file/ & src/utils/charset/ & src/utils/pathutil/)sniffer.go**:集成 chardet 实现轻量级编码嗅探(UTF-8 vs GBK),仅在索引构建期调用以降低开销。normalize.go**:实现路径去异化处理,统一 Windows/Unix 路径分隔符,确保索引 Key 的唯一性。atomic.go**:实现 SafeSave 三段式原子落地(.tmp 写入 -> Sync 落盘 -> Rename 替换),并集成路径去异化。rescue.go**:增强救援逻辑,支持自动从残留的 .tmp 文件中恢复数据或清理冗余,确保崩溃自愈。tombstone.go**:实现 SoftDelete 软删除机制,将物理文件移入 ~/.arkkb/trash/ 节点,并为后续索引标记 __DELETED__ 提供状态支撑。frontend/).md, .rs, .py 等)由 CodeMirror 6 接管,支持高亮与大文件加载。<iframe> 零开销渲染。textDocument/publishDiagnostics,在编辑器中以波浪线实时标注错误与警告。textDocument/completion,提供丝滑的代码补全体验。src/bridge/)bridge.go**:作为核心枢纽,封装 LSPManager 与 StorageManager,为前端提供统一的 RPC 接口。ReadFile 与 SaveFile 接口,配合 wails://file/ 实现大文件的高效存取。scripts/dev.go)doctor (环境测谎机)**:检查 CGO_ENABLED 是否为 0,并检测 Windows (WebView2) 或 Linux (WebKit2GTK) 的运行时依赖。bench (海量压测器)**:自动生成 10,000+ 随机文件,压测 Bluge 索引构建速度与 WindowFocus 触发下的 mtime 比对性能。build (极限出包)**:整合前端构建与后端编译,强制执行无 CGO 链接并自动调用 upx 压缩产物。遵循此蓝图,我们将确保在此项目中: