fix: Correct HttpRequestBox method_id mapping in nyash.toml

Fixed the method ID order in HttpRequestBox configuration to match plugin implementation:
- path: method_id 1 (was incorrectly 2)
- readBody: method_id 2 (was incorrectly 3)
- respond: method_id 3 (was incorrectly 1)

This resolves the 45-day debugging issue where req.respond(resp) was calling
the wrong plugin method, causing HTTP responses to have empty bodies.

All E2E tests now pass:
- e2e_http_stub_end_to_end 
- e2e_http_multiple_requests_order 
- e2e_http_post_and_headers 
- e2e_http_server_restart 
- e2e_http_server_shutdown_and_restart 

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-08-22 12:09:06 +09:00
parent 0915815340
commit 080458d4d4
24 changed files with 694 additions and 255 deletions

View File

@ -535,7 +535,7 @@ impl VM {
// Prepare VMValue args: me + evaluated arguments
let mut vm_args: Vec<VMValue> = Vec::new();
vm_args.push(VMValue::from_nyash_box(box_nyash.clone_box()));
vm_args.push(VMValue::from_nyash_box(box_nyash.clone_or_share()));
for arg_id in args {
let arg_vm_value = self.get_value(*arg_id)?;
vm_args.push(arg_vm_value);
@ -589,7 +589,7 @@ impl VM {
let func_name = format!("{}.{}{}", class_name, method, format!("/{}", args.len()));
// Prepare VMValue args: me + evaluated arguments (use original VM args for value-level fidelity)
let mut vm_args: Vec<VMValue> = Vec::new();
vm_args.push(VMValue::from_nyash_box(box_nyash.clone_box()));
vm_args.push(VMValue::from_nyash_box(box_nyash.clone_or_share()));
for arg_id in args {
let arg_vm_value = self.get_value(*arg_id)?;
vm_args.push(arg_vm_value);