@@ -15,7 +15,13 @@ import (
1515// @requires deps.Syncer와 deps.Walkers가 초기화되어 있어야 한다.
1616// @sideEffect 파일 시스템을 읽고 증분 동기화 결과를 저장소에 반영한다.
1717func newUpdateCmd (deps * Deps ) * cobra.Command {
18+ var excludePatterns []string
19+ var noRecursive bool
20+ var includePaths []string
1821 var fallbackCalls bool
22+ var maxFileBytes int64
23+ var maxTotalParsedBytes int64
24+
1925 cmd := & cobra.Command {
2026 Use : "update [directory]" ,
2127 Short : "Incrementally sync changed files into the code graph" ,
@@ -26,6 +32,11 @@ func newUpdateCmd(deps *Deps) *cobra.Command {
2632 dir = args [0 ]
2733 }
2834
35+ patterns := resolveExcludes (excludePatterns )
36+ paths := resolveIncludePaths (includePaths )
37+ fileLimit := resolveMaxFileBytes (maxFileBytes )
38+ totalLimit := resolveMaxTotalParsedBytes (maxTotalParsedBytes )
39+
2940 ctx := cmd .Context ()
3041 ns , _ := cmd .Flags ().GetString ("namespace" )
3142 ctx = ctxns .WithNamespace (ctx , ns )
@@ -39,8 +50,13 @@ func newUpdateCmd(deps *Deps) *cobra.Command {
3950 }
4051 stats , err := svc .Update (ctx , service.UpdateOptions {
4152 BuildOptions : service.BuildOptions {
42- Dir : dir ,
43- FallbackCalls : fallbackCalls ,
53+ Dir : dir ,
54+ NoRecursive : noRecursive ,
55+ ExcludePatterns : patterns ,
56+ IncludePaths : paths ,
57+ MaxFileBytes : fileLimit ,
58+ MaxTotalParsedBytes : totalLimit ,
59+ FallbackCalls : fallbackCalls ,
4460 },
4561 Syncer : deps .Syncer ,
4662 Replace : true ,
@@ -56,6 +72,11 @@ func newUpdateCmd(deps *Deps) *cobra.Command {
5672 },
5773 }
5874
75+ cmd .Flags ().BoolVar (& noRecursive , "no-recursive" , false , "Only parse files in the top-level directory, skip subdirectories" )
76+ cmd .Flags ().StringArrayVar (& excludePatterns , "exclude" , nil , "Exclude files/directories matching pattern (repeatable, e.g. --exclude vendor --exclude *.pb.go)" )
77+ cmd .Flags ().StringArrayVar (& includePaths , "path" , nil , "Only include specific paths (repeatable, e.g. --path src/api --path src/auth)" )
78+ cmd .Flags ().Int64Var (& maxFileBytes , "max-file-bytes" , 0 , "Maximum bytes allowed per parsed source file (0 disables limit; config: parse.max_file_bytes)" )
79+ cmd .Flags ().Int64Var (& maxTotalParsedBytes , "max-total-parsed-bytes" , 0 , "Maximum total bytes allowed across parsed source files (0 disables limit; config: parse.max_total_parsed_bytes)" )
5980 cmd .Flags ().BoolVar (& fallbackCalls , "fallback-calls" , false , "Fallback to deterministic call resolution when strict matching is ambiguous" )
6081
6182 return cmd
0 commit comments