Skip to content

orleans agent context adapter#22

Closed
louis4li wants to merge 3 commits intodevfrom
codex/orleans-agent-context-adapter
Closed

orleans agent context adapter#22
louis4li wants to merge 3 commits intodevfrom
codex/orleans-agent-context-adapter

Conversation

@louis4li
Copy link
Copy Markdown
Contributor

@louis4li louis4li commented Mar 3, 2026

No description provided.

louis4li added 3 commits March 2, 2026 19:17
Align Orleans RequestContext and EventEnvelope metadata propagation through a unified AgentContext accessor, and add runtime/tests/docs to verify context isolation and restoration across grain and event paths.

Made-with: Cursor
- Use dedicated RequestContext prefix (aevatarac_) to avoid Orleans internal __ prefix filtering
- Change OutgoingFilter to upsert-only to prevent clearing propagated context
- Extract UpsertFromContext for reuse; Remove redundant Entries iteration
- Add OrleansAgentContextCrossSiloIntegrationTests

Made-with: Cursor
@louis4li louis4li closed this Mar 3, 2026
eanzhao added a commit that referenced this pull request May 8, 2026
Address review batch on PR #562 (10 inline comments). All in files I have
recent ownership of and require no architectural shifts:

- #16 (blocker, security): ssh_exec is now opt-in via NyxIdToolOptions.
  EnableSshExecTool. Hosts that haven't wired the approval middleware no
  longer see the tool by default. Mainnet host opts in (Lark bot needs it).
- #21 (major, bug): code_execute keeps the modern /execute + {language,
  script} contract, but on a NyxID-proxy upstream 404 it retries the legacy
  /run + {language, code} contract so deployments still pinned to old
  chrono-sandbox-service builds keep working.
- #22 (major, bug): SkillRegistry.IsFresh now exempts SkillSource != Remote
  from TTL — local skills are baked in at registration and don't need
  expiring; prior behavior dropped them from use_skill after the first 5min.
- #18 (major, bug): TurnRunner.TryResolveSenderBindingAsync narrows the
  catch to transient infra errors (Http/Timeout/IO/JSON) and surfaces
  non-transient (logic, NRE, serialization) at Error level so ops can
  distinguish "sender unbound" from "binding store broken".
- #19 (major, bug): ConversationReplyGenerator narrows the
  sender-route-fallback catch to transient errors via
  IsRetryableSenderRouteFailure. Programmer errors no longer cost an LLM
  round on retry.
- #29 + #30 (minor): inbox runtime gives metadata enrichment its own 15s
  budget separate from the LLM run, surfacing
  errorCode=llm_reply_metadata_timeout when scope/UserConfig lookup is
  slow. ResolveFallbackTimeout treats ResponseTimeoutSeconds<=0 as "no
  timeout" rather than silently snapping back to 120s.
- #12 (minor): ConversationGAgent's stream-chunk and final-stream-chunk
  edits run under a 10s CTS now; the failure path already uses one. A hung
  relay can no longer pin the actor turn forever.
- #27 (minor, security): ConstantTimeEquals docstring tightened — removed
  the "for future callers" line and added a SCOPE comment that this helper
  is rebuild-admin-only and shouldn't be promoted to internal/public
  without replacing its length-leak with a length-padding scheme.
- #23 (major, bug): CLI ornn skills slug default → ornn-api (matches the
  registered slug; bare "ornn" is the SPA frontend that returns HTML).

Build clean (NyxId / Skills / NyxidChat / Mainnet hosts), 30 AI tests +
15 inbox runtime tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
eanzhao added a commit that referenced this pull request May 8, 2026
- #7 (major, arch): wrap MEAILLMProvider's Patch.Set("$.reasoning_content")
  in try/catch so a future OpenAI SDK contract break (Patch surface change,
  serializer rewrite, field rename) degrades to "no reasoning replay"
  instead of crashing the chat call. The OpenAI package is already pinned
  to 2.9.1 in Directory.Packages.props, and the existing
  AIComponentCoverageTests already pin the serialized JSON shape so any
  drift fails the build the moment Patch stops landing in the payload.
- Test fix for #22 (skill registry TTL): the old
  TryGet_BeyondTtl_ReturnsFalseSoCallerCanRefetch test relied on TTL
  expiring SkillSource.Local entries — that's the bug #22 flagged. Updated
  the stale-entry tests to use SkillSource.Remote (via remoteId) which is
  the realistic stale scenario. Added a new
  TryGet_LocalSkillBeyondTtl_StillFresh test pinning the new behaviour.

538 AI tests + 897 ChannelRuntime tests + 16 Ornn tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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