sequenceDiagram
participant F as SpectorMemoryFactory
participant C as Codecs.ensureCurrent
participant D as FormatDetector
participant CH as CodecChain
participant S as CodecStep(s)
participant M as AbstractMemory (mmap)
F->>C: ensureCurrent(registry, id, layout, path, enc, sidecars)
C->>D: detect(path)
D-->>C: FormatId (e.g. TPCH v1 / SMKM v2)
alt needs migration
C->>CH: run(ctx)
loop until current
CH->>S: apply(ctx) [RewriteFileStep / InPlaceHeaderStep]
end
CH-->>C: MigrationResult
end
F->>M: new XxxMemory(path, ...)
Problem Statement
Phase 3 of the Spector Memory Kernel (SMK) roadmap formalizes the
Codecmigration pipeline perspector-memory-codec-design.md, eliminates 5 ad-hoc inline migrators scattered across memory subsystems, and implements mandatory per-record CRC32C validation (Kernel Invariant #3).Target Architecture & Codec Chain Flow
sequenceDiagram participant F as SpectorMemoryFactory participant C as Codecs.ensureCurrent participant D as FormatDetector participant CH as CodecChain participant S as CodecStep(s) participant M as AbstractMemory (mmap) F->>C: ensureCurrent(registry, id, layout, path, enc, sidecars) C->>D: detect(path) D-->>C: FormatId (e.g. TPCH v1 / SMKM v2) alt needs migration C->>CH: run(ctx) loop until current CH->>S: apply(ctx) [RewriteFileStep / InPlaceHeaderStep] end CH-->>C: MigrationResult end F->>M: new XxxMemory(path, ...)Scope & Technical Tasks
Kernel Codec Engine (
kernel/codec/):FormatId: Models magic + version (FormatId.smkm(version)or legacy magic).FormatDetector: Detects file magic & schema version.CodecStep: Sealed interface (InPlaceHeaderStep,RewriteFileStep,IdentityStep).MigrationContext&MigrationResult: Encapsulates path, layout, encryptor, sidecars, and backup retention.CodecChain: Eager validation of migration steps, cycle detection, and DAG execution.CodecRegistry: Registration map for codecs by layoutId and legacy magic.Codecs.ensureCurrent: Single static entry point before mapping.Per-Record CRC32C Validation (Invariant build(deps): bump actions/setup-java from 4 to 5 #3):
AbstractRecordMemory.crcEnabled() = truein layout implementations.Migrator Step Extractions:
TpchToSmkmStep(TemporalChainMemory)LegacyTextToSmkmStep(TextAppendMemory)TregToSmkmStep(TypeRegistryMemory)MidxToSmkmStep(IndexRecordMemory +.idplsidecar)HgphToCsrStep(HebbianGraphMemory)Acceptance Criteria
kernel/codec/engine passes eager chain validation and crash-safety tests.CodecStepclasses.AbstractRecordMemoryverifies per-record CRC32C checksums.CodecChainTestandRecordCrcVerificationTestpass with 100% success rate.mvn clean install -DskipTestspasses across all 26 reactor modules.mvn test -pl nucleus/spector-test-support,memory/spector-memorypasses with 0 failures and 0 errors.Priority & RICE-C Score