Commit graph

5 commits

Author SHA1 Message Date
google-labs-jules[bot]
e878ea9db4 feat(wasm): Improve WASM error handling and loader
This commit introduces a comprehensive set of improvements to the error handling and loading mechanism of the WebAssembly (WASM) module.

The key changes include:

- **Structured Error Handling:** Replaced generic string-based errors with a structured `WasmError` type in the Go WASM wrapper. This provides standardized error codes (`bad_request`, `not_found`, `conflict`) and clear messages, allowing JavaScript clients to handle errors programmatically.

- **Isomorphic WASM Loader:** Refactored the JavaScript loader (`loader.js`) to be isomorphic, enabling it to run seamlessly in both browser and Node.js environments. The loader now detects the environment and uses the appropriate mechanism for loading the WASM binary and `wasm_exec.js`.

- **Type Conversion Fix:** Resolved a panic (`panic: ValueOf: invalid value`) that occurred when returning `[]float64` slices from Go to JavaScript. A new `pointToJS` helper function now correctly converts these slices to `[]any`, ensuring proper data marshalling.

- **Improved Smoke Test:** Enhanced the WASM smoke test (`smoke.mjs`) to verify the new structured error handling and to correctly handle the API's response format.

- **Configuration Updates:** Updated the `.golangci.yml` configuration to be compatible with the latest version of `golangci-lint`.

In addition to these changes, this commit also includes a new `AUDIT-ERROR-HANDLING.md` file, which documents the findings of a thorough audit of the project's error handling and logging practices.

Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2026-02-02 01:27:55 +00:00
Snider
5d1ee3f0ea Refactor CI configuration and documentation; improve error handling in KDTree functions 2025-11-04 00:38:18 +00:00
Snider
3a67ba031b Add maintainer Makefile for local CI parity and update .gitignore and CI configuration 2025-11-03 19:33:28 +00:00
Snider
ca6f89a99c Add examples for KDTree and enable errcheck linter in CI 2025-11-03 18:41:28 +00:00
Snider
dad508de31 Add lint configuration, benchmarks, and documentation for KDTree 2025-11-03 18:19:12 +00:00