Module: Ace::Review::CLI::Commands::FeedbackSubcommands::SessionDiscovery
- Defined in:
- lib/ace/review/cli/commands/feedback/session_discovery.rb
Overview
Shared session discovery logic for feedback CLI commands
This module provides common methods for resolving review sessions from options or finding the latest session in the cache.
Instance Method Summary collapse
-
#find_all_sessions ⇒ Array<String>
Find all session directories.
-
#find_latest_session ⇒ String?
Find the most recent session directory.
-
#resolve_feedback_path(options) ⇒ String?
Resolve feedback path from session context.
-
#resolve_session_dir(options) ⇒ String?
Resolve session directory from options.
Instance Method Details
#find_all_sessions ⇒ Array<String>
Find all session directories
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/ace/review/cli/commands/feedback/session_discovery.rb', line 55 def find_all_sessions root = Ace::Support::Fs::Molecules::ProjectRootFinder.find_or_current cache_dir = File.join(root, ".ace-local", "review", "sessions") cache_dir = File.join(root, ".cache", "ace-review", "sessions") unless Dir.exist?(cache_dir) return [] unless Dir.exist?(cache_dir) Dir.glob(File.join(cache_dir, "review-*")) .select { |p| File.directory?(p) } .sort_by { |p| -File.mtime(p).to_i } end |
#find_latest_session ⇒ String?
Find the most recent session directory
47 48 49 50 |
# File 'lib/ace/review/cli/commands/feedback/session_discovery.rb', line 47 def find_latest_session sessions = find_all_sessions sessions.first end |
#resolve_feedback_path(options) ⇒ String?
Resolve feedback path from session context
Priority:
-
–session flag (explicit session directory)
-
Most recent session in cache directory (default)
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/ace/review/cli/commands/feedback/session_discovery.rb', line 23 def resolve_feedback_path() # Check explicit session flag first if [:session] session_path = File.([:session]) return session_path if Dir.exist?(session_path) raise Ace::Support::Cli::Error.new("Session not found: #{session_path}") end # Default: use most recent session find_latest_session end |
#resolve_session_dir(options) ⇒ String?
Resolve session directory from options
40 41 42 |
# File 'lib/ace/review/cli/commands/feedback/session_discovery.rb', line 40 def resolve_session_dir() resolve_feedback_path() end |