Skip to content

feat(challenges): add term-challenge WASM module - #19

Merged
echobt merged 7 commits into
mainfrom
feat/add-term-challenge-wasm-module
Feb 17, 2026
Merged

feat(challenges): add term-challenge WASM module#19
echobt merged 7 commits into
mainfrom
feat/add-term-challenge-wasm-module

Conversation

@echobt

@echobt echobt commented Feb 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Introduces a new term-challenge-wasm crate that compiles the terminal benchmark challenge as a WASM module targeting wasm32-unknown-unknown.

Changes

  • New crate challenges/term-challenge-wasm/: cdylib crate implementing the Challenge trait from platform-challenge-sdk-wasm, with evaluate() (scores agent task pass-rate) and validate() methods, registered via register_challenge! macro under #![no_std]
  • SDK macro update (crates/challenge-sdk-wasm): register_challenge! now uses <$ty>::new() instead of <$ty as Default>::default() for static initialization, requiring a const fn new() constructor
  • Workspace: added challenges/term-challenge-wasm to workspace members
  • Submodule: added challenges/term-challenge (v2 branch) as a reference submodule
  • Cargo.lock: updated with the new crate dependency graph

Notes

  • The SDK doc comments were updated to reflect the new const fn new() requirement for challenge types

Add a new WASM challenge crate for the terminal benchmark challenge (v2),
along with the cloned term-challenge v2 reference repository and SDK
improvements to support the new pattern.

Core changes:
- New crate challenges/term-challenge-wasm/ targeting wasm32-unknown-unknown
  (cdylib) that implements the Challenge trait with evaluate() and validate()
  methods. The evaluate() method deserializes agent task results via bincode,
  computes a pass-rate score (0-100), and returns structured output. The
  validate() method checks for non-empty agent data and challenge ID.
- Updated register_challenge!() macro in challenge-sdk-wasm to use a const
  fn new() constructor instead of Default::default(), enabling static
  initialization required by no_std WASM modules.
- Added challenges/term-challenge/ as a reference clone of the
  PlatformNetwork/term-challenge v2 branch.
- Added term-challenge-wasm to workspace members in root Cargo.toml.
- Updated Cargo.lock with the new crate and its dependencies.
@coderabbitai

coderabbitai Bot commented Feb 17, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@echobt has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 13 minutes and 25 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/add-term-challenge-wasm-module

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 and usage tips.

@echobt echobt closed this Feb 17, 2026
@echobt echobt reopened this Feb 17, 2026
…ge-wasm-module

# Conflicts:
#	challenges/term-challenge-wasm/Cargo.toml
#	challenges/term-challenge-wasm/src/lib.rs
@echobt
echobt merged commit 6d598c5 into main Feb 17, 2026
20 of 21 checks passed
@echobt
echobt deleted the feat/add-term-challenge-wasm-module branch February 17, 2026 09:19
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