Skip to content

refactor(omnio): use Omnio paths for worker artifacts - #113

Merged
ppazosp merged 1 commit into
mainfrom
ppp/omnio-worker-artifact-path
Sep 18, 2026
Merged

ppazosp merged 1 commit into
mainfrom
ppp/omnio-worker-artifact-path

Conversation

@ppazosp

@ppazosp ppazosp commented Sep 18, 2026 •

Copy link
Copy Markdown

Worker summaries and transcript paths exposed to Toolbox should belong to Omnio regardless of the agent harness. New worker artifacts now use /tmp/.omnio-session/cache/delegation/ through the existing file synchronization mechanism. The harness keeps its own private profile storage; no new Toolbox API or transport is introduced.

This follow-up to #112 changes only the worker artifact namespace. General Hermes execution scratch paths and non-Sprites backends retain their current behavior. Existing Toolbox copies are not moved or removed.

Backward compatibility

Backward compatible. New Hermes uses the same authenticated /files operations against existing Toolbox versions, which accept the new path. Old Hermes works with new Toolbox assets, including the retained .hermes-session generation-transfer exclusion. No Omnia client, database, event, or capability contract changes. Existing copied files keep their original paths for their current lifetime; these caches remain ephemeral across generation transfer. Older transfer helpers may copy the new cache until the companion Omnia PR #4693 is present, without affecting file access. No coordinated rollout is required.

Verification

All eight Python CI slices passed at d0e737e5d4, along with the other code checks: run 35328573361.

Canonical scripts/run_tests.sh, with file retries disabled: 143 passed, 0 failed across delegation artifact delivery, live transcripts, credential mapping, file synchronization, and Sprites environment suites. Ruff and git diff --check pass. The artifact suite uses real local HTTP requests and separate harness/Toolbox directories; the summary and log assertions independently require the Omnio path. This namespace-only follow-up has not been rerun against a live Sprite; #112 retains the prior real-Sprite evidence for the unchanged transport.

# Behaviour (it name) Category Precondition / input Observable outcome asserted Type Status
1 summary path can be read completely from Toolbox Happy spilled worker summary Omnio path returns every byte through HTTP Integration ✅ test_delegation_artifact_delivery.py › test_summary_path_can_be_read_completely_from_toolbox
2 live log refreshes before each parent read Happy appended worker transcript Omnio log path exposes the appended text Integration ✅ test_delegation_artifact_delivery.py › test_live_log_refreshes_before_each_parent_read
3 large artifact uses raw upload without truncation Edge artifact larger than JSON write cap remote bytes match complete input Integration ✅ test_delegation_artifact_delivery.py › test_large_artifact_uses_raw_upload_without_truncation
4 invalid artifact destination is rejected Error path escapes artifact root error and no file request Unit ✅ test_delegation_artifact_delivery.py › test_invalid_artifact_destination_is_rejected
5 failed transfer is reported and retried Error write failure then recovery failed attempt is reported; later remote file is complete Unit ✅ test_delegation_artifact_delivery.py › test_failed_transfer_is_reported_and_retried

@ppazosp
ppazosp marked this pull request as ready for review September 18, 2026 09:36
@ppazosp
ppazosp merged commit 06a671d into main Sep 18, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant