From cb72759b568baf34281bd15f821ac9834c17bbb9 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Thu, 03 Sep 2026 14:24:29 +0800
Subject: [PATCH] merge: 合并 origin/master schema v2 重构(RWR/增量对账/explore),保留 tag/entity 实验于 experiment 分支 + 本地 expandPath 修复与 draft list 过滤
---
cmd/draft.go | 34 ++++++++++++++++++++++++++++++----
1 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/cmd/draft.go b/cmd/draft.go
index 4341371..7de4840 100644
--- a/cmd/draft.go
+++ b/cmd/draft.go
@@ -28,10 +28,11 @@
}
var draftListCmd = &cobra.Command{
- Use: "list",
+ Use: "list [一级目录名]",
Short: "列出所有活跃草稿",
Long: `# draft list - 列出所有活跃草稿
-kb-cli draft list [--json] # 列出待审阅区的所有草稿(目录结构 + 老格式单文件)`,
+kb-cli draft list [--json] # 列出待审阅区的所有草稿(目录结构 + 老格式单文件)
+kb-cli draft list TAPD提取 # 只列出指定一级目录下的草稿`,
RunE: runDraftList,
}
@@ -150,6 +151,12 @@
// runDraftList 列出所有活跃草稿
func runDraftList(cmd *cobra.Command, args []string) error {
+ // 可选参数:指定一级目录过滤
+ filterType := ""
+ if len(args) > 0 {
+ filterType = args[0]
+ }
+
// 创建草稿录入器
intake := draft.NewIntake(vaultPath, nil)
@@ -159,6 +166,17 @@
return fmt.Errorf("列出草稿失败: %w", err)
}
+ // 按一级目录过滤
+ if filterType != "" {
+ var filtered []draft.DraftInfo
+ for _, d := range drafts {
+ if d.Type == filterType {
+ filtered = append(filtered, d)
+ }
+ }
+ drafts = filtered
+ }
+
if draftJSON {
// JSON 输出
output := struct {
@@ -175,11 +193,19 @@
// 表格输出
if len(drafts) == 0 {
- fmt.Println("没有活跃草稿")
+ if filterType != "" {
+ fmt.Printf("没有找到类型为 '%s' 的活跃草稿\n", filterType)
+ } else {
+ fmt.Println("没有活跃草稿")
+ }
return nil
}
- fmt.Printf("找到 %d 个活跃草稿:\n\n", len(drafts))
+ if filterType != "" {
+ fmt.Printf("找到 %d 个类型为 '%s' 的活跃草稿:\n\n", len(drafts), filterType)
+ } else {
+ fmt.Printf("找到 %d 个活跃草稿:\n\n", len(drafts))
+ }
for _, d := range drafts {
mergeStatus := "❌"
if d.HasMergeHint {
--
Gitblit v1.10.0