Add dual sync/async runtime primitives #55
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/prolog-rlm!55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "agent/dual-sync-async-runtime"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What changed
rlm_asyncfuture/task runtime with opaque futures;Architecture
The async layer does not duplicate model/tool/MCP/agent/graph business logic. It schedules the existing canonical operation and returns its ordinary result through a future. Sync callers keep the existing predicates; interactive callers can submit, poll, await, cancel, and compose futures.
The generic scheduler is deliberately domain-neutral. Capability checks, budgets, recursion policy, MCP negotiation, graph semantics, and future authority policy stay inside their owning libraries.
The scheduler owns a private finite message queue and bounded worker set. The queue is not exposed to callers; the registered runtime is therefore the authority for its lifetime rather than relying on version-specific queue-probing helpers.
Validation
Implements the primary runtime slice of #54.
Merged after all deterministic and live OpenRouter CI gates passed.
Issue #54 remains open intentionally: #55 lands the reusable bounded future runtime and async facades. Authority-specific async approval hooks depend on #53, MCP install/run lifecycle depends on #52, and process/network async variants depend on the external tool-pack work.
Implementation summary:
rlm_asyncnow provides opaque futures, bounded workers/backlog, status, await/timeout, cancellation and composition. Async facades exist for completion/query, chain/provider, tool invocation, MCP commands/server handling, supervised agent operations, and graph run/resume. All deterministic and live OpenRouter CI gates passed before squash mergeee9a28e.