8000 feat(voice): add audio workspace and podcast output modes by adeelahmad · Pull Request #727 · adeelahmad/lense · GitHub
[go: up one dir, main page]

Skip to content

feat(voice): add audio workspace and podcast output modes - #727

Merged
adeelahmad merged 9 commits into
mainfrom
feat/voice-workspace
Nov 6, 2026
Merged

adeelahmad merged 9 commits into
mainfrom
feat/voice-workspace

Conversation

@adeelahmad
@adeelahmad adeelahmad commented Nov 6, 2026 •
Copy link
Copy Markdown
Owner

Summary

Adds a Voice workspace to the existing Lens app, reusing its speech providers, permissions, API and podcast pipeline.

  • Exact text to playable/downloadable audio, and bounded audio/video clips to copyable/downloadable text.
  • Provider readiness, actual voice selection, cancellation, late-result protection and audio URL cleanup.
  • Original narration, summary, explanation and two-host dialogue podcast modes through the existing source-import flow.
  • Raw voice endpoints with authentication by default, an administrator-only opt-in public setting, bounded decoding, sanitized failures and per-process admission/rate limits.
  • Worker-owned provider permits stay occupied when HTTP waiters are cancelled.
  • Regression tests, source/podcast documentation and threat-model entries.

No live configuration, model installation, deployment, private brief sources or generated historical episodes are included.

Validation status

  • Main through 0e135b6 is integrated, including ontology, settings, queue, installer and dependency fixes.
  • Canonical OpenAPI schema and all three generated client files were recovered exactly from the existing CI generation output and committed at d51353e. No generated contracts were hand-edited.
  • Full Next.js lint, TypeScript, Jest and build passed on cc05513 and c3a2ac6. All four backend test shards passed on cc05513; backend lint, mypy and schema check passed on c3a2ac6.
  • Merged as 164e13e from head 6589ca5. On that head pre-commit, Upgrade, threat model, full Next.js, embedded shard 2 and both server shards passed. Embedded shard 1 and Clicks remained pending at merge. Full final-head/main CI is not claimed green.
  • Live provider synthesis and deployment smoke tests remain unperformed; this PR does not claim generated audio or a working deployed instance.

Verification

  • Passed Python compilation for changed backend modules/tests.
  • Passed five focused backend regressions against actual source with ingest/speech import doubles: bounded decoding, timeout/error handling, failed admission cleanup and cancelled waiters retaining running worker slots.
  • Passed eight direct assertions against actual TypeScript voice input/filename functions.
  • Additional API/UI/podcast pytest/Jest regressions included; complete suites not run locally.
  • Canonical generation was blocked in the fallback workspace: locked distlib 0.4.3 and PyYAML 6.0.3 absent offline, system FastAPI 0.141.1 differs from required >=0.143.3,<0.144, and frontend dependencies absent. A fresh official PyPI attempt returned 403; no alternate download route was used. Snapshot has no Git checkout for ci/local-ci.sh.
  • No real provider synthesis, live browser acceptance, release or playable historical episode is claimed.

Done questions

  1. Goal: Implementation and generated contracts merged; final main CI, release and deployment validation remain separate.
  2. Agents: Existing Voice and Podcasts HTTP APIs reused.
  3. Zero setup: No new required dependency; a working configured speech provider is necessary.
  4. Fewest clicks: Dedicated workspace, saved defaults, copy/download, existing source import.
  5. Configurable: Existing provider settings reused; public voice defaults off and is administrator-controlled.
  6. Light: No new default model or service.
  7. Private and secure: Authentication by default, bounded raw operations and updated threat model.
  8. Cost: Existing provider/activity ledger reused; remote calls may charge, and HTTP cancellation does not promise billing cancellation.
  9. User decides: No live setting, provider, deployment or release changed here.
  10. Upgrades: No new database schema; existing podcast request metadata remains compatible.
  11. Honest: Live-provider and deployment limits, including unsupported Alexa/Piper deployment, are documented.
  12. Tested/documented: Focused checks and earlier full suites passed; canonical contracts regenerated. Final embedded-shard/Clicks and main CI remain to verify.
  13. Open: Existing APIs/dependencies reused, no new license burden.
  14. Reported: PR and limitations returned to requester.
  15. Reuse: Lens speech, import, podcast, authorization and UI components.

@adeelahmad
adeelahmad marked this pull request as ready for review November 6, 2026 21:07
@adeelahmad
adeelahmad merged commit 164e13e into main Nov 6, 2026
10 of 11 checks passed
@adeelahmad
adeelahmad deleted the feat/voice-workspace branch November 6, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0