Files
2026-05-27 23:29:53 +01:00

79 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tasks: enterprise-streams-chunk-queue
- **Change ID**: enterprise-streams-chunk-queue
- **Package**: `@suaveplan/streams-chunk-queue`
- **Date**: 2026-05-23
## 0. Pre-flight (non-negotiable)
- [x] 0.1 `git status` clean in worktree; branch renamed to `feat/streams-chunk-queue`.
- [x] 0.2 Worktree under `.claude/worktrees/agent-a42db4238ae08d309` accounted for (this change).
- [x] 0.3 `STATUS.md` lists `@suaveplan/streams-chunk-queue` as `–` (pending) → confirms genesis-side absence.
- [x] 0.4 Upstream source read end-to-end: `src/core/streaming-chunk-queue.ts`, `src/types/types.ts`, `README.md`.
- [x] 0.5 Genesis dependency APIs audited: `AbstractStorage`, `TokenBucket.consume()`, `ChunkVerifier.verify()` shapes confirmed before authoring adapters.
## 1. Errors
- [x] 1.1 `errors/streams-chunk-queue-error.ts` — `STREAMS_CHUNK_QUEUE_CODES` via `defineCodes`, `StreamsChunkQueueError`.
- [x] 1.2 Tests cover construction, code preservation, cause chaining.
## 2. Shared types
- [x] 2.1 `types/types.ts` — `ChunkMetadata`, `StoredChunk`, `ChunkRequest`, `StreamEvent`, `StreamingQueueStatus`, `StreamingChunkQueueHooks`. All chunk IDs `bigint`.
## 3. Validator subsystem
- [x] 3.1 `validator/validator.ts` — `ChunkValidator` strategy + `NoopChunkValidator`.
- [x] 3.2 `validator/chunk-verifier-validator.ts` — adapter wrapping `@suaveplan/packer` `ChunkVerifier`.
## 4. Decryptor subsystem
- [x] 4.1 `decryptor/decryptor.ts` — `ChunkDecryptor` strategy + `NoopChunkDecryptor`.
## 5. Rate-limiter adapter
- [x] 5.1 `rate-limiter/adapter.ts` — `TokenBucketRateLimiterAdapter` adapting genesis `TokenBucket.consume()`.
## 6. Storage adapter
- [x] 6.1 `storage-adapter/persister.ts` — `StorageChunkPersister` over `AbstractStorage`.
## 7. Binary protocol
- [x] 7.1 `binary-protocol/encoder.ts` — `encodeChunkRequest` u64+u32+bitmap layout.
## 8. Hooks + events
- [x] 8.1 `hooks/hooks.ts` — `invokeHook` safe-invocation helper.
- [x] 8.2 `events/events.ts` — `StreamEventEmitter` with wildcard support.
## 9. Telemetry
- [x] 9.1 `telemetry/telemetry.ts` — OTel meter with counters and histogram.
## 10. Core `StreamingChunkQueue`
- [x] 10.1 `queue/streaming-chunk-queue.ts` — composes validator, decryptor, rate limiter, persister, telemetry, hooks, events.
- [x] 10.2 Tests cover construction validation, out-of-range chunkId, duplicate ignore, out-of-order assembly, autostart, rate-limit retry, validation/decryption failure, persist/load round-trip, timeout, status, wildcard listener, hook invocation, cancel + clear.
## 11. Docs
- [x] 11.1 Every implementation `.ts` has a sibling `.md` (≥200 words).
- [x] 11.2 Root `README.md` with Modules section.
## 12. Pre-publish gate
- [x] 12.1 `bunx turbo lint typecheck test --filter=@suaveplan/streams-chunk-queue` green.
- [x] 12.2 `bunx turbo test:coverage --filter=@suaveplan/streams-chunk-queue` at 100/100/100/100.
- [x] 12.3 `docs:check` 100%.
## 13. Spec fold + archive
- [x] 13.1 Fold spec delta into `openspec/specs/streams-chunk-queue/spec.md`.
- [x] 13.2 Move folder to `openspec/archive/2026-05-23-enterprise-streams-chunk-queue/`.
- [x] 13.3 Run `bun scripts/folder-reorg/generate-manifest.ts`.
## 14. Commit
- [x] 14.1 Commit on `feat/streams-chunk-queue`. No push, no main, no `--no-verify`.