Skip to content

chore(modules): expose wrapped budget timeout ✅ - #47

Merged
kp2pml30 merged 2 commits into
feat/message-fee-allocationsfrom
handoff/llm-budget-callback-timeout-1692
Sep 29, 2026
Merged

kp2pml30 merged 2 commits into
feat/message-fee-allocationsfrom
handoff/llm-budget-callback-timeout-1692

Conversation

@MuncleUscles

Copy link
Copy Markdown
Member

Problem

The pinned manager at 89c20400f77b647b0e7649f58be0212a4bd6f004 catches a direct BudgetExhausted error but misses the CallbackError wrapper that a real Lua llm.exhaust() callback produces. The LLM handler then returns a module failure instead of the timeout sentinel consumed by the executor.

This draft adds a focused expected-red unit test. It leaves the production matcher unchanged for the manager owner to repair.

Evidence and validation

  • The test invokes an actual async Lua callback, verifies the nested CallbackError { cause: ExternalError(BudgetExhausted) } shape, and checks that both direct and wrapped errors become consumed_gen = U256::MAX. The direct control passes; the wrapped assertion currently fails with INSUFFICIENT_EXECUTION_BUDGET.
  • A temporary local matcher branch for that exact wrapper made the test pass 1/1. It was removed, and the unchanged pinned manager reran expected-red 0/1. Rust formatting and diff checks pass. The focused Cargo test was run with the project's Lua and lsqlite build inputs; the Darwin Nix shell cannot evaluate its Linux-only glibc dependency.
  • Related node conformance #2085 reproduced the same raw InternalError with a working provider and genuine low user allocation against exact consensus #1692. The node fallback still sent a semantically correct Timeout vote and the chain stored LeaderTimeout; no chain revert or idleness sanction is claimed.

The manager v0.6-dev branch was exactly at the pinned revision when this branch was cut. Open manager #45 changes fee input structures but not this handler; no open manager PR changes implementation/src/llm/handler.rs or this test. No executor gitlink, dependency pin, production code, full E2E, or merge is changed here.

@coderabbitai

coderabbitai Bot commented Sep 27, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

GenVM PR actions

Tick a box to run it (the box unticks itself when handled). Actions only run while the PR has the ci-safe label.

  • Force run full tests
  • Provision executor PRs
Commands
  • /genvm-run-tests — run full tests once for the current manager snapshot
  • /merge — queue the exact manager snapshot through the App-owned E2E merge train

MuncleUscles and others added 2 commits September 29, 2026 13:54
- Walk the whole error chain for `BudgetExhausted`, including `CallbackError`, `BadArgument`, `WithContext` and the `Arc`s `scripting::call_fn` unwraps to
- Cover a `pcall` rethrow, both `call_fn` shapes and an unrelated callback error
@kp2pml30
kp2pml30 changed the base branch from v0.6-dev to feat/message-fee-allocations September 29, 2026 04:55
@kp2pml30
kp2pml30 force-pushed the handoff/llm-budget-callback-timeout-1692 branch from 3201b08 to cc35474 Compare September 29, 2026 04:55
@kp2pml30
kp2pml30 merged commit cc35474 into feat/message-fee-allocations Sep 29, 2026
2 of 3 checks passed
@kp2pml30
kp2pml30 deleted the handoff/llm-budget-callback-timeout-1692 branch September 29, 2026 04:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants