Repository navigation
sequence_hdc: replace the three map-typed fields with key/value slices (typecheck refuses the spec) #6095
Description
Original file list
specs/vsa/sequence_hdc.t27.trinity/seals/SequenceHdc.json.trinity/seals/vsa_SequenceHdc.json
Defect
t27c typecheck specs/vsa/sequence_hdc.t27 refuses the spec: struct LanguageDetector declares language_vectors : map[:]const u8, PackedBigInt>, a map type, and t27 has no map type. The parser recovers PackedBigInt as a field with no type (#3225), and gen-rust writes the field as pub a: Xb:Y,. tri misread --list lists the spec under "bare colon inside a type" and under "typecheck refuses". ItemMemory.cache and SequenceMemory.sequences (map<u32, PackedBigInt>, map<u64, PackedBigInt>) are the same shape.
Original scenarios
- Given the fixed spec, When
t27c typecheck specs/vsa/sequence_hdc.t27runs, Then it reports no error that names a struct field. - Given the fixed spec, When
tri misread --listruns, Thenspecs/vsa/sequence_hdc.t27is not listed under "bare colon inside a type".
Original requirements
- FR-001: Each map-typed field MUST become a slice of a key/value struct, as
git/schemadid forenvin fix(t27c): refuse a colon inside a field type and @as to a slice type; fix the six silent specs #5971 (env: []EnvVarwithstruct EnvVar { name: str, value: str }). - FR-002: The indexed write
detector.language_vectors[language] = encoded.vector;MUST become a write the new type supports (append an entry), with atestthat asserts the entry is found after it. - FR-003: The spec MUST stay ASCII-only (L3), and both seals MUST be refreshed with
t27c seal specs/vsa/sequence_hdc.t27 --save.
Original checks (kept for history; the Queen does not run these)
t27c typecheck specs/vsa/sequence_hdc.t27prints nofielderror.python3 tools/check_seal_currency.pyexits 0.python3 tools/ci/check_specs_still_parse.py --base origin/masterprintsok.
Refs #6092
Queen-runnable restatement (2026-10-05)
This block restates the issue so the Queen's runner reads one boundary and one list of checks; the text above is kept for history and its own file list and checks are superseded by the sections below.
The bee branch queen-6095 had no diff against master. Since c8f4e5b the spec typechecks, but it still declares 3 map< fields (lines 40, 66, 91), assigns into one with detector.language_vectors[language] = ... (line 188), and t27c test-report is BLOCKED, so none of its 17 tests runs. The pattern to follow is specs/git/schema.t27, which replaced a map with env: []EnvVar.
Boundary
specs/vsa/sequence_hdc.t27.trinity/seals/SequenceHdc.json.trinity/seals/vsa_SequenceHdc.json
User Scenarios & Testing
- Given
sequence_hdc.t27BLOCKED on itsmap<fields, when each map becomes a fixed-capacity array of key/value structs with a lookup function, then the spec compiles and its 17 tests run and pass.
Requirements
- FR-001: Every
map<field inspecs/vsa/sequence_hdc.t27MUST become an array of key/value structs (plus a count), with lookup and insert written as t27 functions. - FR-002: The 17 existing tests MUST be kept (adapted to the new shape, not deleted) and pass.
- FR-003: Both seals MUST be refreshed with
t27c seal specs/vsa/sequence_hdc.t27 --save. - FR-004: The change MUST NOT add or modify non-t27 hand-written code (specs/policy/own_language.t27).
Success Criteria
grep -c 'map<' specs/vsa/sequence_hdc.t27prints0(today3)t27c test-report specs/vsa/sequence_hdc.t27 2>&1 | grep -c BLOCKEDprints0- a BLOCKED spec never ran a testt27c test-report specs/vsa/sequence_hdc.t27 2>&1 | grep -cE '^ FAIL +0$'prints1- the generated code compiles and every test passest27c test-report specs/vsa/sequence_hdc.t27 2>&1 | grep -E '^ tests ' | tr -dc 0-9prints at least17- the count of tests that rant27c typecheck specs/vsa/sequence_hdc.t27printsTypecheck OK (0 errors, 0 warnings)
Activity
github-actions commentedon Oct 8, 2026
Re-filed as #7779.
An attempt claimed this issue on 2026-10-04 and left an empty branch. A dispatch row that has spent its retry ceiling is released once and then keeps its issue for good, which is the right rule for a third identical failure and the wrong outcome for an issue nobody ever attempted twice. The new issue carries the same work, the same boundary, and today's brief.
Closing this one so the swarm can take the work again.