Files
Scriberr/devnotes/engine-worker-sprint-tracker.md
2026-04-26 14:53:10 -07:00

203 lines
6.0 KiB
Markdown

# Sprint Run Tracker: Engine Worker Integration
Run ID: `EWI`
Status: planning only. No implementation has started.
This tracker belongs to `devnotes/engine-worker-sprints.md` and the implementation spec in `devnotes/engine-worker-integration-spec.md`.
## EWI-Sprint 0: Integration Inventory and Commit Plan
Status: completed
Completed tasks:
- Inventoried server startup, config, schema, repository, queue, transcription stack, API placeholders, docs, Docker, and test fixtures.
- Documented the legacy adapter deletion targets.
- Documented API/service seams for create, submit, retry, cancel, transcript, events, logs, executions, models, and queue stats.
- Added structured logging requirements for config, provider, worker, queue, orchestration, and terminal states.
- Added a sprint-by-sprint commit plan for EWI-Sprints 1-10.
Artifacts:
- `devnotes/engine-worker-sprint-0-inventory.md`
Verification:
- Inventory-only sprint. No runtime code changed.
- Focused repository inspection completed with `rg`, `find`, and targeted source reads.
## EWI-Sprint 1: Config and Engine Module Wiring
Status: completed
Completed tasks:
- Added local engine module wiring with `require scriberr-engine v0.0.0` and `replace scriberr-engine => ./references/engine`.
- Added `config.EngineConfig` and `config.WorkerConfig`.
- Added `config.LoadWithError()` for startup-failing validation while retaining `config.Load()` for compatibility.
- Parsed and validated all `SPEECH_ENGINE_*` and `TRANSCRIPTION_*` env vars from the spec.
- Updated server startup to fail clearly on invalid config.
- Added structured startup logging for engine and worker configuration.
- Added focused config tests before implementation.
Artifacts:
- `go.mod`
- `cmd/server/main.go`
- `internal/config/config.go`
- `internal/config/config_test.go`
Verification:
- `GOCACHE=/tmp/scriberr-go-cache go test ./internal/config` passed.
- `GOCACHE=/tmp/scriberr-go-cache go test ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middleware` passed.
- `GOCACHE=/tmp/scriberr-go-cache go vet ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middleware` passed.
- `git diff --check` passed.
## EWI-Sprint 2: Engine Provider Abstraction
Status: completed
Completed tasks:
- Added `internal/transcription/engineprovider` provider and registry interfaces.
- Added internal provider request/result/capability types so `scriberr-engine` types do not leak outside the provider boundary.
- Added static provider registry with deterministic capability aggregation.
- Added local provider wrapper for `scriberr-engine/speech/engine`.
- Mapped Scriberr transcription and diarization requests to local engine requests.
- Forced token timestamps for local transcription requests.
- Mapped engine words and diarization segments to public-safe internal result structs.
- Added model capability discovery from the engine model specs with install state through `IsModelInstalled`.
- Added provider error sanitization for paths and token-like values.
- Added focused fake-engine tests for mapping, empty words, capabilities, diarization speakers, close behavior, and sanitized errors.
- Updated the main module to `go 1.26` because the local `scriberr-engine` module declares `go 1.26`.
Artifacts:
- `internal/transcription/engineprovider/types.go`
- `internal/transcription/engineprovider/registry.go`
- `internal/transcription/engineprovider/local_provider.go`
- `internal/transcription/engineprovider/sanitize.go`
- `internal/transcription/engineprovider/*_test.go`
- `go.mod`
- `go.sum`
Verification:
- `GOCACHE=/tmp/scriberr-go-cache go test ./internal/transcription/engineprovider` passed.
- `GOCACHE=/tmp/scriberr-go-cache go vet ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middleware` passed.
- `GOCACHE=/tmp/scriberr-go-cache go test ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middleware` passed with escalation because an existing webhook integration test opens a local `httptest` listener.
- `git diff --check` passed.
- Verified no non-provider Go package imports `scriberr-engine`.
## EWI-Sprint 3: Queue Schema and Repository Methods
Status: not started
Planned artifacts:
- `internal/models/transcription.go`
- `internal/database/schema.go`
- `internal/repository/*`
- focused repository/database tests
Verification:
- Pending
## EWI-Sprint 4: Durable Worker Service
Status: not started
Planned artifacts:
- `internal/transcription/worker`
Verification:
- Pending
## EWI-Sprint 5: Orchestrator, Transcript Mapping, and Speaker Merge
Status: not started
Planned artifacts:
- `internal/transcription/orchestrator`
- transcript mapper and speaker merge tests
Verification:
- Pending
## EWI-Sprint 6: API Wiring for Real Queue Execution
Status: not started
Planned artifacts:
- `internal/api/transcription_handlers.go`
- `internal/api/events_handlers.go`
- `internal/api/response_models.go`
- API tests for queue-backed behavior
Verification:
- Pending
## EWI-Sprint 7: Server Startup, Shutdown, and Legacy Adapter Removal
Status: not started
Planned artifacts:
- `cmd/server/main.go`
- deleted or disabled legacy Python adapter stack
- lifecycle tests where practical
Verification:
- Pending
## EWI-Sprint 8: Real Engine Integration Tests and Performance Smoke
Status: not started
Planned artifacts:
- gated real engine integration tests
- `test-audio/jfk.wav` smoke notes
Verification:
- Pending
## EWI-Sprint 9: Docs, Docker, and Setup UX
Status: not started
Planned artifacts:
- `README.md`
- Docker compose files
- docs/troubleshooting updates
Verification:
- Pending
## EWI-Sprint 10: Hardening, Cleanup, and Release Candidate
Status: not started
Planned artifacts:
- final tracker updates
- hardening fixes
- cleanup commits
Verification:
- Pending