Files
CHORUS/docs/decisions/2025-02-17-temporal-stub-test-harness.md

21 lines
1.9 KiB
Markdown

# 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
1. **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.
2. **Disable or gate the expensive temporal suites and add a minimal stub-focused harness.** Pros: restores green builds quickly, isolates `slurp_full` coverage 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/temporal` now passes in the default build, keeping SEC-SLURP 1.1 progress unblocked.
- The full temporal regression suite still runs when `-tags slurp_full` is 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/` and `pkg/slurp/storage/errors.go`.
- Progress log: `docs/progress/report-SEC-SLURP-1.1.md`.