6.0 KiB
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.0andreplace scriberr-engine => ./references/engine. - Added
config.EngineConfigandconfig.WorkerConfig. - Added
config.LoadWithError()for startup-failing validation while retainingconfig.Load()for compatibility. - Parsed and validated all
SPEECH_ENGINE_*andTRANSCRIPTION_*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.modcmd/server/main.gointernal/config/config.gointernal/config/config_test.go
Verification:
GOCACHE=/tmp/scriberr-go-cache go test ./internal/configpassed.GOCACHE=/tmp/scriberr-go-cache go test ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middlewarepassed.GOCACHE=/tmp/scriberr-go-cache go vet ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middlewarepassed.git diff --checkpassed.
EWI-Sprint 2: Engine Provider Abstraction
Status: completed
Completed tasks:
- Added
internal/transcription/engineproviderprovider and registry interfaces. - Added internal provider request/result/capability types so
scriberr-enginetypes 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.26because the localscriberr-enginemodule declaresgo 1.26.
Artifacts:
internal/transcription/engineprovider/types.gointernal/transcription/engineprovider/registry.gointernal/transcription/engineprovider/local_provider.gointernal/transcription/engineprovider/sanitize.gointernal/transcription/engineprovider/*_test.gogo.modgo.sum
Verification:
GOCACHE=/tmp/scriberr-go-cache go test ./internal/transcription/engineproviderpassed.GOCACHE=/tmp/scriberr-go-cache go vet ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middlewarepassed.GOCACHE=/tmp/scriberr-go-cache go test ./internal/api ./internal/config ./internal/database ./internal/repository ./internal/transcription/... ./cmd/server ./pkg/logger ./pkg/middlewarepassed with escalation because an existing webhook integration test opens a localhttptestlistener.git diff --checkpassed.- 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.gointernal/database/schema.gointernal/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.gointernal/api/events_handlers.gointernal/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.wavsmoke 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