diff --git a/docs/guides/browse_sh_crawler_playbook.md b/docs/guides/browse_sh_crawler_playbook.md index 6ca468e..632e00e 100644 --- a/docs/guides/browse_sh_crawler_playbook.md +++ b/docs/guides/browse_sh_crawler_playbook.md @@ -101,17 +101,17 @@ python3 scripts/ops/report_pixelrag_crawler_integration.py \ node scripts/ops/capture_pixelrag_visual_evidence.js \ --manifest-file /tmp/pixelrag_manifest.json \ - --output-dir data/ai_automation/pixelrag_visual_evidence \ + --output-dir runtime_artifacts/pixelrag_visual_evidence \ --dry-run node scripts/ops/capture_pixelrag_visual_evidence.js \ --manifest-file /tmp/pixelrag_manifest.json \ - --output-dir data/ai_automation/pixelrag_visual_evidence + --output-dir runtime_artifacts/pixelrag_visual_evidence # Production host can use the Python Playwright worker when Node modules are not installed. python3 scripts/ops/capture_pixelrag_visual_evidence.py \ --manifest-file /tmp/pixelrag_manifest.json \ - --output-dir data/ai_automation/pixelrag_visual_evidence \ + --output-dir runtime_artifacts/pixelrag_visual_evidence \ --max-tiles 12 ``` diff --git a/scripts/ops/capture_pixelrag_visual_evidence.js b/scripts/ops/capture_pixelrag_visual_evidence.js index 3ff6fca..8973a57 100644 --- a/scripts/ops/capture_pixelrag_visual_evidence.js +++ b/scripts/ops/capture_pixelrag_visual_evidence.js @@ -13,7 +13,7 @@ const Module = require('module'); const CAPTURE_POLICY = 'read_only_pixelrag_visual_capture_artifact_v1'; const MANIFEST_POLICY = 'read_only_pixelrag_visual_evidence_manifest_v1'; -const DEFAULT_OUTPUT_DIR = 'data/ai_automation/pixelrag_visual_evidence'; +const DEFAULT_OUTPUT_DIR = 'runtime_artifacts/pixelrag_visual_evidence'; const DEFAULT_TIMEOUT_MS = 30000; const DEFAULT_SETTLE_MS = 500; const DEFAULT_MAX_TILES = 80; diff --git a/scripts/ops/capture_pixelrag_visual_evidence.py b/scripts/ops/capture_pixelrag_visual_evidence.py index 100e55a..6263cd2 100644 --- a/scripts/ops/capture_pixelrag_visual_evidence.py +++ b/scripts/ops/capture_pixelrag_visual_evidence.py @@ -19,7 +19,7 @@ from urllib.parse import urlparse CAPTURE_POLICY = "read_only_pixelrag_visual_capture_artifact_v1" MANIFEST_POLICY = "read_only_pixelrag_visual_evidence_manifest_v1" -DEFAULT_OUTPUT_DIR = "data/ai_automation/pixelrag_visual_evidence" +DEFAULT_OUTPUT_DIR = "runtime_artifacts/pixelrag_visual_evidence" DEFAULT_TIMEOUT_MS = 30000 DEFAULT_SETTLE_MS = 500 DEFAULT_MAX_TILES = 80 diff --git a/services/pixelrag_crawler_integration_service.py b/services/pixelrag_crawler_integration_service.py index ff0b9ec..5b6c75b 100644 --- a/services/pixelrag_crawler_integration_service.py +++ b/services/pixelrag_crawler_integration_service.py @@ -378,7 +378,7 @@ def build_pixelrag_visual_evidence_manifest( "artifact": { "kind": "pixelrag_visual_evidence_manifest", "suggested_path": ( - f"data/ai_automation/pixelrag_visual_evidence/" + f"runtime_artifacts/pixelrag_visual_evidence/" f"{platform_code}/{manifest_id}.json" ), "writes": ["artifact_file_only"], diff --git a/tests/test_pixelrag_crawler_integration_service.py b/tests/test_pixelrag_crawler_integration_service.py index 72a75e7..f11195a 100644 --- a/tests/test_pixelrag_crawler_integration_service.py +++ b/tests/test_pixelrag_crawler_integration_service.py @@ -149,6 +149,9 @@ def test_visual_evidence_manifest_builds_tile_plan_without_runtime_writes(): "overlap_px": 0, } assert payload["artifact"]["writes"] == ["artifact_file_only"] + assert payload["artifact"]["suggested_path"].startswith( + "runtime_artifacts/pixelrag_visual_evidence/momo/" + ) assert payload["controlled_apply"]["db_write"] is False assert payload["controlled_apply"]["network_call"] is False assert payload["controlled_apply"]["production_price_write"] is False