Skip to content

Fix/OpenAI realtime transcription ga api#222

Open
antigenius0910 wants to merge 17 commits into
pickle-com:mainfrom
glass-taiwan-community:fix/openai-realtime-transcription-ga-api
Open

Fix/OpenAI realtime transcription ga api#222
antigenius0910 wants to merge 17 commits into
pickle-com:mainfrom
glass-taiwan-community:fix/openai-realtime-transcription-ga-api

Conversation

@antigenius0910

Copy link
Copy Markdown

name: Pull Request
about: Propose a change to the codebase

Summary of Changes

Please provide a brief, high-level summary of the changes in this pull request.

Related Issue

  • Closes #XXX

Please replace XXX with the issue number that this pull request resolves. If it does not resolve a specific issue, please explain why this change is needed.

Contributor's Self-Review Checklist

Please check the boxes that apply. This is a reminder of what we look for in a good pull request.

  • I have read the CONTRIBUTING.md document.
  • My code follows the project's coding style and architectural patterns as described in DESIGN_PATTERNS.md.
  • I have added or updated relevant tests for my changes.
  • I have updated the documentation to reflect my changes (if applicable).
  • My changes have been tested locally and are working as expected.

Additional Context (Optional)

Add any other context or screenshots about the pull request here.

antigenius0910 and others added 17 commits November 12, 2025 13:34
- Updated model ID in factory.js from 'claude-3-5-sonnet-20241022' to 'claude-sonnet-4-5'
- Updated default model in anthropic.js createLLM function
- Updated default model in anthropic.js createStreamingLLM function
- Updated model name display to 'Claude Sonnet 4.5'

Fixes 404 not_found_error when using Anthropic provider for communication analysis.
fix: Update Claude model ID from deprecated version to claude-sonnet-4-5
- Add language instruction to request Traditional Chinese output
- Keep technical terms, code, and proper nouns in English
- Affects summary generation in summaryService.js only
- Action items (Ask feature) not yet translated

Phase 1 of translation feature implementation.
- Explicitly instruct LLM to NOT translate section headers
- Parser expects English headers: **Summary Overview**, **Key Topic:**, etc.
- Only content should be translated to Traditional Chinese
- Fixes issue where LLM-generated Chinese wasn't showing in UI
- Action items (What should I say next?, Suggest follow-up questions) now use conversation context instead of just screen
- Get conversation history from listenService and pass to askService.sendMessage()
- Fixes issue where clicking action items would ignore conversation and only analyze screen

Before: askService.sendMessage(userPrompt) - no context, defaults to empty array
After: askService.sendMessage(userPrompt, conversationHistory) - full conversation context
- Remove resetConversationHistory() call when stopping recording
- Allow users to interact with action items and follow-ups after session ends
- Conversation history still resets when starting NEW session (initializeNewSession)

UX improvement: Users can now click 'Generate action items', 'What should I say next?', etc.
after stopping recording and still have full conversation context.
- Add language instruction to Ask feature (action items responses)
- Apply to both main path (with screenshot) and text-only fallback path
- Technical terms and code remain in English
- Action button labels stay in English (UI), only responses are translated

Phase 2 of translation feature implementation.

Now supports Traditional Chinese for:
- Live Insights summary ✅ (Phase 1)
- Action items responses ✅ (Phase 2)
- Follow-ups responses ✅ (Phase 2)
…lation

Feature/live insights translation
- Added Taiwan Community fork notice after the original fork attribution
- Links to glass-taiwan-community organization

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
…st-org-transfer

chore: Add Taiwan Community fork notice to README
- Added "Why this fork exists" section explaining the purpose and goals
- Clarifies this fork's relationship with upstream project
- Emphasizes openness to contributors from all regions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added MAINTAINERS.md file documenting community-first maintenance approach
- Listed current maintainer: Yen Chuang (@antigenius0910)
- Documented maintenance philosophy, responsibilities, and decision-making process
- Established lazy consensus model for community coordination

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
docs: Add MAINTAINERS.md to document community maintenance model
- Add pre_context_settings SQLite table and repository adapter
- Add /api/precontext Express routes (GET, POST, POST /preload-and-start)
- Add IPC handlers for get/save/preload-and-start-session in src/index.js
- Extend promptBuilder.buildSystemPrompt() with optional preContext param
- Add setPreContext() and generateInitialSummary() to SummaryService
- Add setPreContext() to ListenService, cleared on session close
- Add /precontext Next.js page with title/content editor and action buttons
- Add PreContext type + 3 API functions to api.ts
- Add Pre-Context nav entry to Sidebar
- Add expandable summary items to SummaryView with inline AI expansion
- Add listen:expandSummaryItem IPC handler in featureBridge
- Expose expandSummaryItem and onAnalysisResult via preload.js

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Phase 6 revision of the preloaded pre-context feature. The inline
expandable items in the listen window were hard to read in the compact
UI, so summary item clicks now route to the Ask window instead.

Changes:
- SummaryView: remove expandedItems/expandingItems state, handleItemExpand(),
  and _renderExpandableItem(). Add _renderClickableItem() that delegates
  to existing handleRequestClick() → Ask service flow
- featureBridge: remove listen:expandSummaryItem IPC handler (~36 lines)
- preload: remove expandSummaryItem from summaryView namespace
  (onAnalysisResult kept for initial pre-context summary display)
- listenService: add generateInitialSummary() wrapper to fix encapsulation
  (index.js no longer reaches through to summaryService directly)
- index.js: revert unrelated test-mode error handling change

Data flow: click summary item → handleRequestClick(text) →
sendQuestionFromSummary → ask:sendQuestionFromSummary IPC →
askService.sendMessage() → Ask window opens with streaming AI response

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…re-context

feat: add preloaded pre-context feature for session initialization
The OpenAI Realtime Beta API has been disabled. Migrate to the GA API:
- Remove deprecated 'OpenAI-Beta: realtime=v1' header
- Change session event type from 'transcription_session.update' to 'session.update'
- Add required 'type: transcription' field to session object
- Restructure session config to use GA API nested audio.input schema
  (format, transcription, noise_reduction, turn_detection are now nested
  under audio.input instead of flat top-level fields)
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