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

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.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