Repository navigation
feat(OMN-19860): the delegate-skill terminal carries the lane and session that issued it (step 2) - #3161
Merged
Conversation
…sion that issued it (step 2) Step 1 (the consumer that decodes caller_lane and session_id before they are declared) is released since omnimarket 0.4.253 and deployed on the dev lane (0.4.270). onex delegate already writes metadata.caller_lane and the request session_id, but the handler never copied them onto the terminal: on the lab dev lane 4 of 4,732 delegation_events rows carry a caller_lane, none of them from the onex delegate path. - ModelDelegateSkillResponse declares caller_lane (the ledger lane pattern) and session_id (canonical UUID string; a non-UUID value is dropped, never refused, because it is attribution and must not dead-letter a terminal); both are omitted from the wire when None, so an anonymous caller's terminal is byte-identical to before - HandlerDelegateSkill stamps ticket, caller lane and session at its one stamping point, so every terminal (completed, refused, timed out, failed, runtime shutdown) carries them; a malformed lane is logged and dropped - the projection model keeps its UUID-typed session_id override Onex-Lane: delegation-fix-delegation-events-no-caller-lane-83 Onex-Session: 15501d1a-5cfc-422b-a688-0ace6bfe0f21
✅ Architectural Review — PASSEDErrors: 0 What this checks
No architectural violations found. Static architectural lint — no model inference (OMN-14176). |
✅ Hostile Reviewer — PASSEDBlocking findings (critical/error): 0 Gate semantics
Powered by omniintelligence.review_pairing.cli_review — node-based adversarial review via HandlerLlmCliSubprocess (OMN-8524) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket: OMN-19860 (delegation_events names the lane and session that issued each delegation), step 2 of the consumer-first order.
Cause
Step 1 (the response decodes
caller_laneandsession_idbefore declaring them, the projection storescaller_lane) is released since 0.4.253 and the dev lane runs 0.4.270.onex delegatealready writesmetadata.caller_laneand the requestsession_id. The delegate-skill handler never copied them onto the terminal, so the projection had nothing to store: on the lab dev lane 4 of 4,732delegation_eventsrows carry acaller_lane, none of them from theonex delegatepath (read-only psql, 2026-10-01T01:5xZ).Change
ModelDelegateSkillResponsedeclarescaller_lane(the ledger lane pattern) andsession_id(canonical UUID string). Both are omitted from the wire when None, so an anonymous caller's terminal is unchanged. A non-UUID session is dropped, never refused, because it is attribution and must not dead-letter a terminal; the projection model keeps its UUID-typed override.HandlerDelegateSkill._dispatch_and_build_terminal, the one stamping point OMN-19514 introduced forticket_id, now stamps ticket, caller lane and session together, so every terminal (completed, refused, timed out, failed, runtime shutdown) carries them. A malformed lane is logged and dropped.Verification
tests/unit/nodes/node_delegate_skill_orchestrator/test_delegate_skill_caller_identity_omn19860.pyfailed 18 of 23 before the change. Focused: it, the OMN-19514 ticket tests, the caller-lane projection tests and the OMN-15503/15469 seams, 69 passed./omni:lab-run --via ssh --lane deleg-disposition --repo omnimarket --ref <this branch>placed on a lab pool host at sha 438681d:uv run pytest tests/unit/nodes/node_delegate_skill_orchestrator tests/unit/delegationplus the two quota seams, 2462 passed, 6 skipped, exit 0.mypy --stricton the three changed sources pass; the commit ran the full pre-commit set.count(caller_lane)over rows written after the deploy byonex delegate --caller-lane <lane>must be non-zero, with the pre-deploy count (4) as the control.Evidence-Ticket: OMN-19860
Evidence-Source: OCC#12044