Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 63 additions & 22 deletions .beads/.gitignore
Original file line number Diff line number Diff line change
@@ -1,29 +1,70 @@
# SQLite databases
# Dolt database (managed by Dolt, not git)
dolt/
embeddeddolt/

# Runtime files
bd.sock
bd.sock.startlock
sync-state.json
last-touched
.exclusive-lock

# Daemon runtime (lock, log, pid)
daemon.*

# Push state (runtime, per-machine)
push-state.json

# Lock files (various runtime locks)
*.lock

# Credential key (encryption key for federation peer auth — never commit)
.beads-credential-key

# Local version tracking (prevents upgrade notification spam after git ops)
.local_version

# Worktree redirect file (contains relative path to main repo's .beads/)
# Must not be committed as paths would be wrong in other clones
redirect

# Sync state (local-only, per-machine)
# These files are machine-specific and should not be shared across clones
.sync.lock
export-state/
export-state.json

# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned)
ephemeral.sqlite3
ephemeral.sqlite3-journal
ephemeral.sqlite3-wal
ephemeral.sqlite3-shm

# Dolt server management (auto-started by bd)
dolt-server.pid
dolt-server.log
dolt-server.lock
dolt-server.port
dolt-server.activity

# Corrupt backup directories (created by bd doctor --fix recovery)
*.corrupt.backup/

# Backup data (auto-exported JSONL, local-only)
backup/

# Per-project environment file (Dolt connection config, GH#2520)
.env

# Legacy files (from pre-Dolt versions)
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm

# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
bd.sock

# Legacy database files
db.sqlite
bd.db

# Merge artifacts (temporary files from 3-way merge)
beads.base.jsonl
beads.base.meta.json
beads.left.jsonl
beads.left.meta.json
beads.right.jsonl
beads.right.meta.json

# Keep JSONL exports and config (source of truth for git)
!issues.jsonl
!metadata.json
!config.json
# NOTE: Do NOT add negation patterns here.
# They would override fork protection in .git/info/exclude.
# Config files (metadata.json, config.yaml) are tracked by git by default
# since no pattern above ignores them.
2 changes: 1 addition & 1 deletion .beads/.local_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.30.0
1.0.4
Empty file added .beads/beads.left.jsonl
Empty file.
1 change: 1 addition & 0 deletions .beads/beads.left.meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":"0.29.0","timestamp":"2025-12-16T10:52:56.250828+01:00","commit":"6d2808a"}
Empty file added .beads/interactions.jsonl
Empty file.
1 change: 1 addition & 0 deletions .beads/issues.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
{"id":"speechall-python-sdk-416.2","title":"Create test CI workflow for pull requests","description":"## Overview\nCreate a GitHub Actions workflow that runs tests on pull requests and pushes to the main branch.\n\n## Context\n- The project uses pytest for testing\n- Python versions 3.8-3.12 are supported (per pyproject.toml classifiers)\n- Dev dependencies include pytest, pytest-asyncio, and mypy\n\n## File to Create\n`.github/workflows/test.yml`\n\n## Implementation\n\n```yaml\nname: Test\n\non:\n push:\n branches: [main]\n pull_request:\n branches: [main]\n\njobs:\n test:\n runs-on: ubuntu-latest\n strategy:\n matrix:\n python-version: [\"3.8\", \"3.9\", \"3.10\", \"3.11\", \"3.12\"]\n\n steps:\n - uses: actions/checkout@v4\n \n - name: Set up Python ${{ matrix.python-version }}\n uses: actions/setup-python@v5\n with:\n python-version: ${{ matrix.python-version }}\n \n - name: Install dependencies\n run: |\n python -m pip install --upgrade pip\n pip install -e \".[dev]\"\n \n - name: Run tests\n run: pytest tests/ -v || echo \"No tests found\"\n```\n\n## Key Points\n- Uses matrix strategy to test against all supported Python versions\n- Installs package in editable mode with dev dependencies\n- Gracefully handles case where no tests exist yet\n- Triggers on both PRs (for review) and pushes (for verification)\n\n## Acceptance Criteria\n- [ ] Workflow file created at `.github/workflows/test.yml`\n- [ ] Tests run on pull requests to main\n- [ ] Tests run on pushes to main\n- [ ] All Python versions 3.8-3.12 are tested","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-16T11:37:12.989765+01:00","updated_at":"2025-12-16T11:41:33.013357+01:00","closed_at":"2025-12-16T11:41:33.013357+01:00","dependencies":[{"issue_id":"speechall-python-sdk-416.2","depends_on_id":"speechall-python-sdk-416","type":"parent-child","created_at":"2025-12-16T11:37:12.99021+01:00","created_by":"daemon"}]}
{"id":"speechall-python-sdk-416.3","title":"Create PR and merge to main to trigger PyPI release","description":"## Overview\nCreate a pull request from the `prepare-fern-release` branch to `main` and merge it to trigger the automated PyPI release.\n\n## Prerequisites\n- speechall-python-sdk-416.1: Version updated to 0.3.0\n- speechall-python-sdk-416.2: Test CI workflow created\n\n## Steps\n\n### 1. Commit all changes\nEnsure all changes are committed to the `prepare-fern-release` branch:\n- Updated `pyproject.toml` with version 0.3.0\n- New `.github/workflows/test.yml` file\n\n### 2. Push the branch\n```bash\ngit push origin prepare-fern-release\n```\n\n### 3. Create the Pull Request\n```bash\ngh pr create --title \"Release v0.3.0: Fern-generated SDK\" --body \"$(cat \u003c\u003c'PRBODY'\n## Summary\n- Migrates SDK to Fern code generation\n- Updates version to 0.3.0 (breaking change from 0.2.0)\n- Adds test CI workflow for pull requests\n\n## Changes\n- Updated `pyproject.toml` version to 0.3.0\n- Added `.github/workflows/test.yml` for CI testing\n\n## Release Process\nOn merge, the `publish-to-pypi.yml` workflow will automatically:\n1. Build the package\n2. Publish `speechall==0.3.0` to PyPI\nPRBODY\n)\"\n```\n\n### 4. Review and Merge\n- Wait for CI checks to pass\n- Review the PR\n- Merge to main\n\n### 5. Verify Release\nAfter merge:\n1. Check GitHub Actions for successful workflow runs\n2. Verify package on PyPI: https://pypi.org/project/speechall/0.3.0/\n3. Test installation: `pip install speechall==0.3.0`\n\n## Acceptance Criteria\n- [ ] PR created from prepare-fern-release to main\n- [ ] CI tests pass\n- [ ] PR merged to main\n- [ ] PyPI publish workflow completes successfully\n- [ ] speechall==0.3.0 available on PyPI","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-16T11:38:42.904536+01:00","updated_at":"2025-12-16T11:53:15.969948+01:00","closed_at":"2025-12-16T11:53:15.969948+01:00","dependencies":[{"issue_id":"speechall-python-sdk-416.3","depends_on_id":"speechall-python-sdk-416","type":"parent-child","created_at":"2025-12-16T11:38:42.904884+01:00","created_by":"daemon"},{"issue_id":"speechall-python-sdk-416.3","depends_on_id":"speechall-python-sdk-416.1","type":"blocks","created_at":"2025-12-16T11:38:42.905287+01:00","created_by":"daemon"},{"issue_id":"speechall-python-sdk-416.3","depends_on_id":"speechall-python-sdk-416.2","type":"blocks","created_at":"2025-12-16T11:38:42.905609+01:00","created_by":"daemon"}]}
{"id":"speechall-python-sdk-u8e","title":"Fix pyproject.toml license field format for PEP 621 compliance","description":"## Issue\nCI tests are failing due to invalid `project.license` configuration in pyproject.toml.\n\n## Error\n```\nconfiguration error: `project.license` must be valid exactly by one definition (2 matches found):\n - keys: 'file': {type: string} required: ['file']\n - keys: 'text': {type: string} required: ['text']\n\nGIVEN VALUE: \"MIT\"\n```\n\n## Root Cause\nThe current format `license = \"MIT\"` is invalid per PEP 621. The license field must be either:\n1. `license = {text = \"MIT\"}` for SPDX identifier, or\n2. `license = {file = \"LICENSE\"}` for file reference\n\n## Solution\nChange line 11 in pyproject.toml from:\n```toml\nlicense = \"MIT\"\n```\nto:\n```toml\nlicense = {text = \"MIT\"}\n```\n\n## References\n- Test failure log: history/test_fail.log\n- PEP 621: https://peps.python.org/pep-0621/#license\n- Error occurred in CI on PR #3","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-16T11:58:50.171495+01:00","updated_at":"2025-12-16T11:59:19.438107+01:00","closed_at":"2025-12-16T11:59:19.438107+01:00","dependencies":[{"issue_id":"speechall-python-sdk-u8e","depends_on_id":"speechall-python-sdk-416.3","type":"blocks","created_at":"2025-12-16T11:58:50.172361+01:00","created_by":"daemon"}]}
{"id":"speechall-python-sdk-5nq","title":"Regenerate Python SDK from updated OpenAPI","status":"closed","priority":1,"issue_type":"task","created_at":"2026-06-20T13:01:58Z","created_by":"atacan","updated_at":"2026-06-20T13:13:30Z","started_at":"2026-06-20T13:02:01Z","closed_at":"2026-06-20T13:13:30Z","close_reason":"Completed Python SDK regeneration and PR preparation","owner":"atacandur@icloud.com"}
7 changes: 5 additions & 2 deletions .beads/metadata.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{
"database": "beads.db",
"jsonl_export": "issues.jsonl"
"database": "dolt",
"backend": "dolt",
"dolt_mode": "embedded",
"dolt_database": "speechall_python_sdk",
"project_id": "c364bbd0-810b-4e5b-9e73-a31e7ac1d645"
}
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -147,3 +147,8 @@ uv.lock

# AI planning documents (optional)
history/

# Beads / Dolt files (added by bd init)
.dolt/
*.db
.beads-credential-key
2 changes: 1 addition & 1 deletion fern/generators.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# yaml-language-server: $schema=https://schema.buildwithfern.dev/generators-yml.json
api:
specs:
- openapi: ../../speechall-openapi/openapi.yaml
- openapi: ../../../Speechall-Repositories/speechall-openapi/openapi.yaml
default-group: local
groups:
local:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "speechall"
version = "0.3.0"
version = "0.4.0"
description = "Python SDK for Speechall API - Speech-to-text transcription service"
readme = "README.md"
requires-python = ">=3.8"
Expand Down
4 changes: 2 additions & 2 deletions regenerate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ set -e

echo "🔍 Validating OpenAPI spec..."
# Check if OpenAPI file exists
if [ ! -f "../speechall-openapi/openapi.yaml" ]; then
echo "❌ Error: OpenAPI spec not found at ../speechall-openapi/openapi.yaml"
if [ ! -f "../../Speechall-Repositories/speechall-openapi/openapi.yaml" ]; then
echo "❌ Error: OpenAPI spec not found at ../../Speechall-Repositories/speechall-openapi/openapi.yaml"
exit 1
fi

Expand Down
71 changes: 31 additions & 40 deletions src/types/transcription_model_identifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,54 +5,45 @@
TranscriptionModelIdentifier = typing.Union[
typing.Literal[
"amazon.transcribe",
"assemblyai.best",
"assemblyai.nano",
"assemblyai.slam-1",
"assemblyai.universal",
"assemblyai.universal-2",
"assemblyai.universal-3-pro",
"azure.standard",
"cloudflare.whisper",
"cloudflare.whisper-large-v3-turbo",
"cloudflare.whisper-tiny-en",
"deepgram.base",
"deepgram.base-conversationalai",
"deepgram.base-finance",
"deepgram.base-general",
"deepgram.base-meeting",
"deepgram.base-phonecall",
"deepgram.base-video",
"deepgram.base-voicemail",
"deepgram.enhanced",
"deepgram.enhanced-finance",
"deepgram.enhanced-general",
"deepgram.enhanced-meeting",
"deepgram.enhanced-phonecall",
"deepgram.nova",
"deepgram.nova-general",
"deepgram.nova-phonecall",
"deepgram.nova-3",
"deepgram.nova-3-general",
"deepgram.nova-3-medical",
"deepgram.nova-2",
"deepgram.nova-2-atc",
"deepgram.nova-2-automotive",
"deepgram.nova-2-conversationalai",
"deepgram.nova-2-drivethru",
"deepgram.nova-2-finance",
"deepgram.nova-2-general",
"deepgram.nova-2-medical",
"deepgram.nova-2-meeting",
"deepgram.nova-2-phonecall",
"deepgram.nova-2-video",
"deepgram.nova-2-finance",
"deepgram.nova-2-conversationalai",
"deepgram.nova-2-voicemail",
"deepgram.nova-3",
"deepgram.nova-3-general",
"deepgram.nova-3-medical",
"deepgram.whisper",
"deepgram.whisper-base",
"deepgram.whisper-large",
"deepgram.whisper-medium",
"deepgram.whisper-small",
"deepgram.whisper-tiny",
"deepgram.nova-2-video",
"deepgram.nova-2-medical",
"deepgram.nova-2-drivethru",
"deepgram.nova-2-automotive",
"deepgram.nova",
"deepgram.nova-general",
"deepgram.nova-phonecall",
"deepgram.nova-medical",
"deepgram.enhanced",
"deepgram.enhanced-general",
"deepgram.enhanced-meeting",
"deepgram.enhanced-phonecall",
"deepgram.enhanced-finance",
"deepgram.base",
"deepgram.meeting",
"deepgram.phonecall",
"deepgram.finance",
"deepgram.conversationalai",
"deepgram.voicemail",
"deepgram.video",
"elevenlabs.scribe-v1",
"falai.elevenlabs-speech-to-text",
"falai.speech-to-text",
"falai.cohere-transcribe",
"falai.nvidia-nemotron-asr-multilingual",
"falai.whisper",
"falai.wizper",
"fireworksai.whisper-v3",
Expand All @@ -63,15 +54,15 @@
"gemini.gemini-2.5-pro",
"gemini.gemini-2.5-flash",
"gemini.gemini-2.5-flash-lite",
"gemini.gemini-2.0-flash",
"gemini.gemini-2.0-flash-lite",
"groq.whisper-large-v3",
"groq.whisper-large-v3-turbo",
"ibm.standard",
"mistral.voxtral-mini",
"mistral.voxtral-mini-v2",
"openai.whisper-1",
"openai.gpt-4o-transcribe",
"openai.gpt-4o-mini-transcribe",
"openai.gpt-4o-transcribe-diarize",
"revai.machine",
"revai.fusion",
"speechmatics.enhanced",
Expand Down
Loading