1.9 KiB
Decision Record: Temporal Package Stub Test Harness
Problem
GOWORK=off go test ./pkg/slurp/temporal failed in the default build because the temporal tests exercised DHT/libp2p-dependent flows (graph compaction, influence analytics, navigator timelines). Without those providers, the suite crashed or asserted behaviour that the SEC-SLURP 1.1 stubs intentionally skip, blocking roadmap validation.
Options Considered
- Re-implement the full temporal feature set against the new storage stubs now. Pros: keeps existing high-value tests running. Cons: large scope, would delay the roadmap while the storage/index backlog is still unresolved.
- Disable or gate the expensive temporal suites and add a minimal stub-focused harness. Pros: restores green builds quickly, isolates
slurp_fullcoverage for when the heavy providers return, keeps feedback loop alive. Cons: reduces regression coverage in the default build until the full stack is back.
Decision
Pursue option 2. Gate the original temporal integration/analytics tests behind the slurp_full build tag, introduce pkg/slurp/temporal/temporal_stub_test.go to exercise the stubbed lifecycle, and share helper scaffolding so both modes stay consistent. Align persistence helpers (ContextStoreItem, conflict resolution fields) and storage error contracts (storage.ErrNotFound) to keep the temporal package compiling in the stub build.
Impact
GOWORK=off go test ./pkg/slurp/temporalnow passes in the default build, keeping SEC-SLURP 1.1 progress unblocked.- The full temporal regression suite still runs when
-tags slurp_fullis supplied, preserving coverage for the production stack. - Storage/persistence code now shares a sentinel error, reducing divergence between test doubles and future implementations.
Evidence
- Code updates under
pkg/slurp/temporal/andpkg/slurp/storage/errors.go. - Progress log:
docs/progress/report-SEC-SLURP-1.1.md.