[Goal] Fix missing-value parity in real Wasm rolling kernels
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- rust, typescript, wasm
- Domain
- data, testing-qa
Research direction
Start by reproducing rollingMedianF64Accelerated before and after loadWasm(), then inspect the relevant Rust rolling kernels and tests under rust/ and tests/wasm/. Build with wasm-pack from rust/ and run the focused accelerated-wrapper tests plus the listed cargo, typecheck, and lint commands. Done means loaded Wasm matches fallback semantics, regression coverage passes, and candidate-head evidence is recorded.
Written by the indexing model from the issue text.
Description
Goal
Make all-missing rolling-window results agree between the existing TypeScript fallback and the real Rust/Wasm acceleration path, without a Wasm trap. This is a focused follow-up to #349, not a claim that the whole pandas or Wasm port is complete.
Completion Contract
- Reproduce
rollingMedianF64Accelerated(new Float64Array([NaN, 1, NaN, 3]), 1, 0)before and afterloadWasm(). The loaded implementation must return[null, 1, null, 3], not throwRuntimeError: unreachable. - Check rolling min/max for empty/all-missing windows at
minPeriods = 0, preserving current TypeScript fallback semantics including infinities. Cover positive minPeriods, mixed finite/NaN input, empty input, and representative window sizes so the fix does not only special-case the reproduction. - Add Rust regression tests and TypeScript integration tests that execute the actual accelerated wrappers with the Wasm module successfully loaded. Test the fallback in an isolated process before loading, so previous tests cannot secretly choose the backend. A missing module or early return is a failure, not passing evidence.
- Build Wasm from the candidate's Rust source; do not validate only the old checked-in binary. Keep the required generated bindings/binary consistent with source if this repository tracks them.
- Confirm candidate-head CI and the focused source-built Wasm verification pass, then reconcile published evidence in a subsequent run. Do not close the issue on a queued push, stale branch, syntax-only test, or fallback-only result.
Evidence / Verification
Record the candidate SHA and actual commands, outcomes, and assertion counts. Run cargo test --locked --manifest-path rust/Cargo.toml, wasm-pack build --target nodejs rust/ --out-dir pkg, the relevant bun test tests/wasm/ tests, affected core/window tests, bun run typecheck, and bun run lint. Report missing tooling or failing checks honestly. Link the published PR and current-head runs. A standalone Wasm Verification workflow is being installed; use it when available and do not claim its result until it completes.
Scope and Constraints
Only change the relevant Rust rolling kernels, focused tests under tests/wasm/ and Rust tests, and corresponding generated rust/pkg/ artifacts when necessary. Do not modify README, AGENTS, .autoloop/programs/, workflow policies, benchmarks, general Series/DataFrame behavior, or issue #1. Preserve existing fallback semantics; do not weaken assertions or mark cases ineligible to get a green result. One small coherent fix per commit.
Iteration Policy
First reproduce the crash and semantic mismatch, add a focused regression, fix the smallest coherent defect, and publish one canonical PR. A later run checks the real published candidate and CI evidence before accepting or completing it. If verification exposes another in-scope defect, fix it in a separate small checkpoint. Do not repeat an unchanged diagnosis or create duplicate PRs.
Blocked Stop Condition
Stop and report one actionable blocker if required tooling cannot run, the permitted scope cannot repair the behavior, branch publication fails, or evidence contradicts the claimed result. Leave the issue open and record the next required action. Never infer successful verification from unavailable results.
- Dominant language
- TypeScript
- Stars
- 9
- Forks
- 4
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 15
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from githubnext/tsb
-
automation ci
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
githubnext/tsb#411 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
githubnext/tsb#208 ·
-
[aw] Autoloop failed Openagentic-workflows
Difficulty 4/5 3-5 days Newbie friendliness 40/100
githubnext/tsb#517 · 3 comments ·
-
[aw] Autoloop failed Openagentic-workflows
Difficulty 4/5 3-5 days Newbie friendliness 25/100
githubnext/tsb#516 · 4 comments ·
-
[aw] Autoloop failed Openagentic-workflows
Difficulty 4/5 3-5 days Newbie friendliness 35/100
githubnext/tsb#515 · 3 comments ·
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
safetrustcr/dApp-SafeTrust#426 ·
-
area:workflow bug ready-for-agent
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
fil-donadoni/tolaria#4409 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Fission-AI/OpenSpec#1960 ·
-
Add dependabot Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
corsairdev/corsair#1764 ·