Summary
The official SpiceQL 1.7.0 prebuilt WASM release does not contain a usable naifspice_sigs.json in the Emscripten .data filesystem image. This breaks the raw naifspice loader and also causes the high-level local getTargetStates path to fail in the browser.
Environment
- SpiceQL release: 1.7.0
- Release archive:
spiceql-wasm-1.7.0.zip
- Browser: Firefox Developer Edition, macOS arm64
- Static Vite server at
http://127.0.0.1:5173
- Kernels:
naif0012.tls, de432s.bsp, pck00011.tpc
Release archive SHA-256:
5517ed41ed9b512991642f0afd34634e7cfc0cbe4a6401d595484b35aede3859
Reproduction
- Keep the five release browser artifacts co-located.
- Load
spiceql.js and call loadSpiceQL().
- Mount and load the three kernels above.
- Use
searchKernels:false, useWeb:false, and explicit VFS kernelList paths.
- Call
getTargetStates([et], 399, 0, 'J2000', 'NONE', opts).
The browser reports:
Error: [json.exception.parse_error.101] parse error at line 1, column 1:
syntax error while parsing value - invalid literal; last read: '<'
Calling the optional raw wrapper independently fails at loadNaifspice():
SyntaxError: Unexpected end of JSON input
The wrapper reads the expected path:
/spiceql/SpiceQL/naifspice_sigs.json
Evidence against a transport or kernel-path problem
Browser instrumentation captured HTTP 200 for the WASM and all three kernel fetches, with no REST/query request. The VFS contained:
/kernels/naif0012.tls 5257 bytes
/kernels/de432s.bsp 10895360 bytes
/kernels/pck00011.tpc 131226 bytes
Source-build comparison
Building the exact official 1.7.0 tag from source with the documented toolchain succeeded without source edits:
- Emscripten 3.1.58
- Binaryen 117
- CSPICE 67
- official declared git submodules
The official bindings/wasm test suite passed 45/45. The generated build produced a valid 379,421-byte naifspice_sigs.json, and its .data build command explicitly preloaded it at /spiceql/SpiceQL/naifspice_sigs.json.
The source-built runtime then succeeded in the same browser proof:
- deterministic UTC to ET;
- finite Earth SPK state in km and km/s relative to SSB, J2000, NONE;
- finite
J2000 to IAU_EARTH matrices with determinant approximately +1;
- orientation changed after one day.
This suggests the release archive's .data file is stale, incomplete, or mismatched with the generated wrapper/WASM. The release workflow appears to package spiceql_wasm.js, spiceql_wasm.wasm, and spiceql_wasm.data from the build output, so the missing generated data may originate in the release artifact generation/upload step.
Could the release artifact be regenerated or the packaging workflow checked for the missing signature table? I have not modified SpiceQL internals or filed a PR.
Summary
The official SpiceQL 1.7.0 prebuilt WASM release does not contain a usable
naifspice_sigs.jsonin the Emscripten.datafilesystem image. This breaks the rawnaifspiceloader and also causes the high-level localgetTargetStatespath to fail in the browser.Environment
spiceql-wasm-1.7.0.ziphttp://127.0.0.1:5173naif0012.tls,de432s.bsp,pck00011.tpcRelease archive SHA-256:
Reproduction
spiceql.jsand callloadSpiceQL().searchKernels:false,useWeb:false, and explicit VFSkernelListpaths.getTargetStates([et], 399, 0, 'J2000', 'NONE', opts).The browser reports:
Calling the optional raw wrapper independently fails at
loadNaifspice():The wrapper reads the expected path:
Evidence against a transport or kernel-path problem
Browser instrumentation captured HTTP 200 for the WASM and all three kernel fetches, with no REST/query request. The VFS contained:
Source-build comparison
Building the exact official
1.7.0tag from source with the documented toolchain succeeded without source edits:The official
bindings/wasmtest suite passed 45/45. The generated build produced a valid 379,421-bytenaifspice_sigs.json, and its.databuild command explicitly preloaded it at/spiceql/SpiceQL/naifspice_sigs.json.The source-built runtime then succeeded in the same browser proof:
J2000toIAU_EARTHmatrices with determinant approximately +1;This suggests the release archive's
.datafile is stale, incomplete, or mismatched with the generated wrapper/WASM. The release workflow appears to packagespiceql_wasm.js,spiceql_wasm.wasm, andspiceql_wasm.datafrom the build output, so the missing generated data may originate in the release artifact generation/upload step.Could the release artifact be regenerated or the packaging workflow checked for the missing signature table? I have not modified SpiceQL internals or filed a PR.