Skip to content

Issue/29 openrouter setup#30

Open
suung wants to merge 25 commits intomainfrom
issue/29-openrouter-setup
Open

Issue/29 openrouter setup#30
suung wants to merge 25 commits intomainfrom
issue/29-openrouter-setup

Conversation

@suung
Copy link
Collaborator

@suung suung commented Feb 20, 2026

  • User can install to render and get a connection to llms via open router

suung added 23 commits December 13, 2025 03:30
- Create DatabaseManager using SQLAlchemy Core API for unified database interface
- Add database schema definitions using SQLAlchemy Table/Column
- Refactor CacheManager to use SQLAlchemy instead of direct sqlite3
- Add pgvector support in enterprise module for PostgreSQL vector search
- Update tests to support both SQLite and PostgreSQL adapters
- Maintain backward compatibility with existing SQLite deployments
- Remove duplicate CSS rules that added icons to stAlert elements
- Keep single icon by adding to markdown container only, not paragraphs
- Prevents double icons in Database Configuration and other info messages
- Set up Alembic for database migrations
- Create initial migration with all tables and indexes
- Add hybrid approach: auto-creation for dev, Alembic for production
- Update CacheManager and FileStorage to check USE_ALEMBIC_MIGRATIONS
- Add migration utilities for status checking and migration execution
- Add Heroku support with Procfile release phase for auto-migrations
- Create migration script for manual execution
- Add comprehensive documentation in DATABASE_MIGRATIONS.md
…rage

- Update DocumentAnalyzer to accept database_url from environment or Streamlit session state
- Add APIKeyManager service for managing API keys in session state without persistence
- Add PostgreSQLFileStorage for storing files in PostgreSQL (Heroku deployments)
- Add checkbox styling fixes in backend config
- Add comprehensive tests for API key manager, file storage, and settings
- Add CSS fix for stIconMaterial components to use Material Icons font
- Add @font-face fallback for Material Icons
- Fixes keyboard_arrow_right and other icon names rendering as text
- Add trailing newlines to all files (POSIX standard)
- Fix black formatting across 52 files
- Fix isort import sorting across 18 files
- Update pyproject.toml line-length to 127 to match CI
- All critical linting checks now pass
…qlalchemy-adapter

Brings in critical CI fixes and UI improvements while preserving PostgreSQL functionality:

From sidebar branch:
- Add nats-py dependency (fixes CI ModuleNotFoundError)
- Add boto3 and streamlit-card dependencies
- Update requirements.txt with proper versions
- Redesign All Results page layout
- Fix Material Icons rendering
- Apply consistent formatting (black, isort)

From PostgreSQL branch (preserved):
- Complete PostgreSQL/SQLAlchemy adapter implementation
- Database manager and schema definitions
- File storage system with PostgreSQL support
- API key management system
- Alembic migration framework
- Enterprise pgvector support
- All PostgreSQL-specific tests
- Settings as separate navigation page

Conflicts resolved:
- analyzer.py: Merged formatting improvements with PostgreSQL logic
- streamlit_app.py: Combined UI changes from both branches
- requirements.txt: Combined all dependencies from both branches
- Test files: Applied consistent formatting across all tests
- test_analyzer.py: Fixed database isolation for parallel tests
- Add missing test dependencies (aioresponses, psycopg2-binary, pytest-postgresql)
- Remove fallback logic in tests - fail if dependencies missing
- Fix PostgreSQL test database setup with transaction rollback pattern
- Fix S3 override persistence across tab navigation
- Add API key source visibility (session vs environment)
- Fix PostgreSQL file storage checkbox persistence across pages
- Add find_by_filename method to retrieve existing files from PostgreSQL
- Add tests for find_by_filename and retrieve existing file flows
- Add render.yaml for one-click Render deploy
- Add deploy badges to README
- Add .githooks to strip Co-authored-by from commits
- Document git hooks setup in INSTALL.md

Closes #25
- Exclude venv, node_modules, etc. from black and isort
- Add .flake8 to skip venv recursion
- Fix pgvector_support formatting
- Add app.json for Heroku one-click deploy
- Add Heroku and Vercel badges to README
- Add Vercel caveat (Streamlit not supported)
- Group deploy by core (RPL) vs API/other modules in README
- Add Aptfile and buildpacks to app.json for Heroku
- Use module wording only in app.json description
- Move deploy into table above Quick Start with one row per platform
- Add intro: one-click install, no card on Streamlit/Render, secrets in Quick Start
- Add report-analyst-db (free) and DATABASE_URL fromDatabase
- Set USE_ALEMBIC_MIGRATIONS and USE_POSTGRES_FILE_STORAGE
- Add preDeployCommand for alembic upgrade head
- Render: remove preDeployCommand, run migrations in startCommand for free tier
- README: Streamlit badge links to deploy, add Deploy on Streamlit Cloud steps
- 1.10.0 no longer available on PyPI for Render's Python
- Avoid Python 3.14 so jiter and other deps use pre-built wheels
- Allow app startup without API keys when USE_OPENROUTER_OAUTH=true
- Add OpenRouter OAuth PKCE flow (connect, callback, key exchange)
- Add Connect OpenRouter button in Settings
- Support OpenRouter models (openai/gpt-4o-mini, anthropic/claude-3-haiku)
- Update render.yaml for deploy with optional keys
- Update README with one-click deploy instructions
@suung suung force-pushed the issue/29-openrouter-setup branch from 4342df5 to d524dba Compare February 20, 2026 22:20
@suung suung force-pushed the issue/25-deploy-buttons branch from 897a01f to e07061c Compare February 27, 2026 10:21
@suung suung changed the base branch from issue/25-deploy-buttons to main March 13, 2026 23:43
- Keep OpenRouter OAuth in render.yaml, analyzer, llm_providers, streamlit_app
- Use get_question_sets_for_api from service layer in report_analyst_api
- Use Optional HealthResponse fields from main in schemas
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