Repository navigation
feat(values): set values #{...} (#316, PR 1 of 3) - #741
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF
Value::Set(ValueSet), #{...} literals in the parser and the pest grammar,
v8 key tag 0x08 (inline up to 64 bytes, else a value page), pending
encoding, WAL size check, engine cells and joins, REPL and JSON output.
API-021, PRS-119, PRS-120, PRS-121.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF
Set constants with a zero element probe both zero signs, committed or pending, and in value joins. Kani: a set_elements harness used 100 GB and did not finish, so the keys unit tests cover set encodings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF
…r kinds (#316) Found by review: the checkpoint's staged long values were deduplicated by bytes with one kind per record, so the second of the two got the first's key form. The record is still shared; each reference keeps its kind. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF
Resolve error codes (API-021 beside #181's API-022–024) and test counts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF
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.
PR 1 of 3 for #316 (spec
docs/superpowers/specs/2026-10-24-set-values-design.md, merged as #732; plandocs/superpowers/plans/2026-10-24-316-set-values.md, in this PR).Set values end to end; the predicates (PR 2) and
collect-set(PR 3) follow.Value::Set(ValueSet);Valueis now#[non_exhaustive].ValueSetdedups byValue'sOrd:-0.0=0.0with-0.0kept, one NaN, keyword ≠ ref. A nested set isAPI-021.#{...}literals in the parser and intests/grammar/grammar.pest(set_lit, inedn_valueandexpr_arg; elements are scalar literals only),docs/GRAMMAR.mdregenerated, grammar corpus fixtures, verifier token#{(filler counts updated).PRS-119(nested),PRS-120(non-scalar element),PRS-121(unclosed).0x08after Ref. The element encoding (each element's key encoding, sorted) is inline up to 64 bytes, else a value page through the long-value path. DICT long values are now read and deduplicated as bytes, so a set record under a string's hash is skipped, not an error.verifyknows set keys and records.set_bytes_bound, id-free upper bound;WAL-003), engine cells/join keys, planner constants, REPL#{...}andBrowserDbJSON arrays.Found and fixed while testing:
#{0.0}and#{-0.0}are equal sets but different key bytes. A committed set constant or value join now probes both zero signs (KeyTest::AnyOf,zero_signs).Deviations from the plan / spec:
PRS-121is the unclosed set.collect-set's codes move to the next free ones in PR 3.PRS-119/PRS-120inputs are grammar syntax errors and need noSEMANTICverifier entries.set_elementsover two integers used 100 GB and failed at the 10-minute timeout (noted inkeys/verification.rs). The existing 12 harnesses pass (1.1 GB). Thekeysunit tests cover set encodings.Tests: 1,734 passing / 13 ignored (1,752 / 14 with
test-hooks), all green on both. New:tests/set_values_test.rs, unit tests intypes,keys,dict,index,parser,aggregate,repl,browser. The model-based test now generates sets. Clippy is clean natively (all features) and on both wasm targets.Refs #316
🤖 Generated with Claude Code
https://claude.ai/code/session_01TcpoiFyFeQQQELL872LfQF