Repository navigation
Fix audit findings: GPU pool, index integrity, worker/snapshot, API, CI - #39
Merged
Merged
Conversation
- GPU: in-flight device acquisition with correct refcounts; identity-checked release/lost handling; clamp buffers to maxStorageBufferBindingSize; capture generation before readback await; tear down on init failure; native baseline uses exact-scorer normalization; bun .wgsl text loader. - Index: batch mutations are atomic (filter getters run before mutation); posting-list storage for high-cardinality string filters; own-property field reads; __proto__-safe highlights; total-order id comparator; stricter number/boolean filter coercion. - Worker/snapshot: build-then-swap INIT/RESTORE; serialized message queue with DESTROY session reset; client commits after worker success; reject duplicate/non-scalar docIds and non-object docs; accept typed-array buffers; create custom IDB stores via version upgrade. - API: per-fingerprint capped submission list with per-IP dedup, whitelisted record, 413 size limit, null-safe validation, 502 on store errors, self-healing rate-limit expiry. - Site: clamp payload to server limits, validate stored history, sane corpus size param with chunked generation; gate benchmark test engine. - CI: SHA-pinned actions, least-privilege permissions, release only after green CI on main; new test:regressions suite; bundle budget 90->96 KB. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes 22 bugs and security issues from a repo audit. The silent benchmark auto-send is intentional and unchanged.
High
create()calls share one in-flight acquisition, so they no longer reset the refcount or destroy each other's device. Release and device-lost handling now check the device's identity.maxStorageBufferBindingSize. Before, an oversized binding made every query return 0 results while the engine still reported'webgpu'.DocumentIndexcorrupted.Library
AbortError, notTypeError. The engine is torn down if init fails, and callinginit()twice releases the previous device.__proto__field, and the ID comparator is a total order. Number and boolean filter values are coerced more strictly.docIdsand non-object docs, and accept typed-array buffers. Custom IndexedDB stores are now created on an existing database..wgslimports as text.API / site / CI
/api/submit-benchmarkkeeps a capped list of submissions per fingerprint, deduped per IP, so nobody can poison a slot by submitting first. It stores only validated fields and returns 413 for bodies over 8 KB, 400 for null entries, and 502 when the store is down. The rate-limit expiry now heals itself.sizeis missing and builds large corpora in chunks. The benchmark app's test engine is gated to dev mode.main.Behaviour changes
true/false(or"true"/"false"). Blank number bounds throwInvalidFilterError.Known follow-ups
check:shadersis still the only real check of the shaders.Test plan
check:shaders,typecheck,build,check:bundle-size,check:public-apitest:mock, contracts, records, highlight, mutations, worker, snapshot, observability, parity, filtering, faceting, diagnostics, search-modes, cpu-baseline, reliability, benchmarks, and normalization (including the Turkish locale run)test:regressions(38 tests, added to CI);bun test packages/webgpu-search/testpasses 260/260fetch🤖 Generated with Claude Code