diff --git a/lib/roast/workflow/base_workflow.rb b/lib/roast/workflow/base_workflow.rb index 5c69818..eeb48c8 100644 --- a/lib/roast/workflow/base_workflow.rb +++ b/lib/roast/workflow/base_workflow.rb @@ -34,7 +34,11 @@ def initialize(file = nil, name: nil, context_path: nil, resource: nil, session_ @session_name = session_name || @name @session_timestamp = nil @configuration = configuration - transcript << { system: read_sidecar_prompt } + read_sidecar_prompt.then do |prompt| + next unless prompt + + transcript << { system: prompt } + end Roast::Tools.setup_interrupt_handler(transcript) Roast::Tools.setup_exit_handler(self) end diff --git a/lib/roast/workflow/session_manager.rb b/lib/roast/workflow/session_manager.rb index 9978045..8ab8b8c 100644 --- a/lib/roast/workflow/session_manager.rb +++ b/lib/roast/workflow/session_manager.rb @@ -7,6 +7,8 @@ module Roast module Workflow # Manages session creation, timestamping, and directory management class SessionManager + TARGETLESS_FILE_PATH = "notarget" + def initialize @session_mutex = Mutex.new @session_timestamps = {} @@ -66,6 +68,7 @@ def create_new_session(workflow_id) private def workflow_directory(session_name, file_path) + file_path ||= TARGETLESS_FILE_PATH workflow_dir_name = session_name.parameterize.underscore file_id = Digest::MD5.hexdigest(file_path) file_basename = File.basename(file_path).parameterize.underscore