# SpeakTrue Codebase Map

Status: regenerated from tracked `main` on 2026-09-09.
Repo: `/Users/haddadios/Documents/Programming/SpeakTrue`
Base commit: `13dfb226ea6631619acb44f144c0818d67fbed41`
Commit date: `2026-09-09T00:06:56-07:00`
Tracked working-tree changes included: 12

This linked Obsidian note set maps every tracked SpeakTrue file. The repository README, AGENTS instructions, docs index, source, and tests were used as the snapshot. Untracked files are intentionally excluded.

## Platform Notes

- [[SpeakTrue Codebase Map - Agent Tooling]] — 1 tracked files
- [[SpeakTrue Codebase Map - Android]] — 205 tracked files
- [[SpeakTrue Codebase Map - Backend Supabase]] — 224 tracked files
- [[SpeakTrue Codebase Map - CI And CD]] — 3 tracked files
- [[SpeakTrue Codebase Map - Docs And Ops]] — 130 tracked files
- [[SpeakTrue Codebase Map - Legacy Python Web]] — 395 tracked files
- [[SpeakTrue Codebase Map - Marketing Web]] — 63 tracked files
- [[SpeakTrue Codebase Map - Product Demo Artifacts]] — 32 tracked files
- [[SpeakTrue Codebase Map - Repository Root]] — 9 tracked files
- [[SpeakTrue Codebase Map - Scripts And Verification]] — 39 tracked files
- [[SpeakTrue Codebase Map - iOS]] — 141 tracked files

## Current Architecture Summary

- iOS and Android keep UI/state orchestration local and call shared Supabase Edge contracts for privileged speech, settings, billing, storage, and entitlement work.
- Turn-Based STS (`live_interpreter`) remains the account-synced default; batch and realtime compatibility paths are supported and now preserve structured failure metadata.
- Speech generation persists canonical artifact metadata, applies pronunciation dictionaries across supported mobile speech paths, and normalizes provider voice settings at the server boundary.
- The retired web long-form pilot no longer provides generation: the browser and Flask enforce the direct-TTS 10,000-character ceiling and `tts-longform` is a provider-free `410 Gone` tombstone.
- The active web app is the Flask WSGI runtime at `web/python-web-app/wsgi.py`; Soundboard supports category ZIP export with progress feedback.
- Native playback controls use the current simplified primary-action behavior while preserving workflow-specific state and error recovery.
- Marketing remains a static Cloudflare Pages surface under `web/marketing/`.

## File Counts

| Platform | Files |
| --- | ---: |
| Agent Tooling | 1 |
| Android | 205 |
| Backend Supabase | 224 |
| CI And CD | 3 |
| Docs And Ops | 130 |
| Legacy Python Web | 395 |
| Marketing Web | 63 |
| Product Demo Artifacts | 32 |
| Repository Root | 9 |
| Scripts And Verification | 39 |
| iOS | 141 |
| **Total** | **1242** |

## File Kind Counts

| Kind | Files |
| --- | ---: |
| Python source | 232 |
| Kotlin source | 162 |
| Deno/TypeScript source | 142 |
| Image/document asset | 140 |
| Media asset | 119 |
| Markdown documentation | 110 |
| Swift source | 89 |
| Postgres SQL migration/script | 81 |
| Configuration/metadata | 48 |
| Repository file | 39 |
| JavaScript source | 33 |
| HTML template/page | 20 |
| Shell script | 14 |
| YAML workflow/configuration | 8 |
| CSS stylesheet | 4 |
| Font asset | 1 |

## Planning Snapshot

- Active: Android Play release evidence, legacy runtime compatibility retirement, and deployed native generate-to-Soundboard proof.
- Proposed: Conversation Workspace, Unified Speech Library, and Quick Speak Accessibility Mode.
- Future/decision-gated: LA/Canada failover, Supabase-to-GCS backups, iOS subscriptions, and server-side strict-mode drafts.
- Historical/retired: web long-form TTS pilot, realtime STS default checkpoint, generate-to-Soundboard implementation target, monorepo migration, and Android visual refresh.

## Related

- [[SpeakTrue]]
- [[SpeakTrue Planning Status]]
- [[SpeakTrue Work Log]]

## Maintenance Rules

- Treat these notes as a navigation layer; repo source and tracked docs remain authoritative.
- Do not store secrets, provider payloads, transcripts, audio content, or raw production logs here.
- Regenerate after broad file moves, platform refactors, or documentation rewrites.
