From 15bb76f7bf43491f9a343da29add1104e263b098 Mon Sep 17 00:00:00 2001 From: Oversear13 Date: Wed, 27 May 2026 21:45:13 +0200 Subject: [PATCH] Pull Request prevent Moving of Datasets --- treesearch/search.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/treesearch/search.py b/treesearch/search.py index 69b9bc8..147b21c 100644 --- a/treesearch/search.py +++ b/treesearch/search.py @@ -193,16 +193,34 @@ async def exec_node(self, node: Node) -> Node: # Move all generated files from the workspace to checkpoint for this node workspace_dir = Path(self._workspace) working_dir = workspace_dir / "working" - + """ + Old: Leads to issues where agent generates files, then in next iteration tries to read from workspace + but files are gone since we moved them to checkpoint. We want to keep files in workspace until the end of the iteration, + then move them all at once at the end of exec_node. + # Collect files from workspace (excluding runfile.py and working dir) - generated_files = [ + /*generated_files = [ item for item in workspace_dir.iterdir() if item.name not in ("runfile.py", "working") and not item.name.startswith(".") ] + """ + # PR Group 01: Definierte Dateiformate, die nicht gemoved werden sollen. + ignored_extensions = (".csv", ".data", ".tsv", ".zip", ".gz") + + # 1. Dateien aus dem Haupt-Workspace sammeln (gefiltert) + generated_files = [ + item for item in workspace_dir.iterdir() + if item.name not in ("runfile.py", "working") + and not item.name.startswith(".") + and item.suffix.lower() not in ignored_extensions + ] - # Also collect files from working subdirectory if it exists + # 2. Dateien aus dem working-Unterordner sammeln if working_dir.exists(): - generated_files.extend(list(working_dir.iterdir())) + generated_files.extend([ + item for item in working_dir.iterdir() + if item.suffix.lower() not in ignored_extensions + ]) # Keep only relevant files via whitelist if self._config.exec.keep_only_relevant_files: @@ -220,11 +238,10 @@ async def exec_node(self, node: Node) -> Node: os.remove(str(item)) generated_files = keep - else: logger.info("Keeping all files.") - + # Das eigentliche Verschieben in den Checkpoint if generated_files: generated_dir = mkdir(node_dir / "generated") for item in generated_files: