- Remove invalid type attribute from iframe elements
- Add dedicated download endpoint with attachment disposition
- Update download links to use new endpoint instead of preview
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Auto-refresh files table after successful uploads using custom event
- Add inline preview support for PDFs, images, and text files
- Set Content-Disposition header to inline for preview endpoint
- Add download button as secondary action in file details view
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Use Optional[int] type hint for timeout parameter in oauth_helper
- Replace bare Exception with specific ValueError and JSONDecodeError
- Strengthen rclone remote name validation (must start with alphanumeric)
- Fix path traversal validation to check against workdir for absolute paths
- Add comprehensive comments for security validations
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Remove unused imports from all modified files
- Fix flake8 violations (unused variables, f-strings without placeholders)
- Apply Black formatting consistently
- Shorten long line in google_drive.py
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add Redis and RabbitMQ services to CI workflow
- Fix Jinja2 template error by passing file=None in error cases
- Fix test expecting dict response format for list_files endpoint
- Fix NOT NULL constraint by providing valid local_filename
- Fix retry-subtask to validate subtask name before checking processed file
- Add mock for process_document in reprocess test
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Remove version_variables from pyproject.toml (not needed with version_source="tag")
- Clean up CHANGELOG.md comparison links to avoid duplicate/incorrect references
- Keep only [Unreleased] link since v0.5.0 tag doesn't exist yet
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add note about automated CHANGELOG management starting v0.6.0
- Document unreleased features from v0.5.0, v0.3.3, v0.3.2, v0.3.1
- Update comparison links to point to actual existing tags
- Add note explaining missing tags (will be automated going forward)
- Include semantic-release and documentation overhaul in Unreleased section
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Update TODO.md with completed semantic-release tasks
- Add versioning note to TODO.md warning about automated VERSION management
- Update MILESTONES.md with automated release process section
- Update ROADMAP.md to mark release automation as completed
- Sync documentation status across all planning docs
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Update CONTRIBUTING.md with full conventional commits specification
- Add versioning and release automation section
- Update AGENTIC_CODING.md with detailed commit format guide
- Update .github/copilot-instructions.md with commit rules for AI agents
- Add examples and version bump explanations
- Document semantic-release automation process
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Change Docker Hub image name to christianlouis/docuelevate
- Update GHCR references to use docuelevate
- Ensure consistency across all Docker build tags
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Update test_root_endpoint to accept 303 status for setup wizard
- Add test_root_redirects_to_setup_wizard_when_setup_required
- Add test_root_returns_200_when_setup_complete
- Add test_setup_wizard_page_accessible
- Verify these tests now catch the missing RedirectResponse import issue
- All new tests pass successfully
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Break long line in lifespan function to multiple lines
- Remove test_startup.py (not needed, existing tests validate startup)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Convert sync and async startup handlers to single lifespan function
- Remove deprecated @app.on_event("startup") and @app.on_event("shutdown")
- Add asynccontextmanager import for lifespan pattern
- Consolidate all startup/shutdown logic into one place
- Fixes Python 3.14 compatibility issue causing startup failure
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Settings management represents a significant new feature warranting a minor version bump:
- Database-backed configuration with 102 settings
- Fernet encryption for sensitive values
- Setup wizard for first-time installations
- Complete admin UI and REST API
- OAuth admin group support
Version updated: 0.3.3 → 0.5.0
Keep 0.3.3 release notes intact (drag-and-drop feature from main branch).
Add 0.5.0 as new current release with settings features.
Updated files:
- VERSION: 0.5.0
- CHANGELOG.md: Added 0.5.0 release, kept 0.3.3 intact
- MILESTONES.md: Added v0.5.0 section, adjusted future versions
- TODO.md: Updated current version
- ROADMAP.md: Updated current status
- app/config.py: Default version 0.5.0-dev
- docs/BuildMetadata.md: Updated reference
- ANALYSIS_SUMMARY.md: Updated version
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
VERSION:
- Update from 0.1.0-test to 0.3.3
CHANGELOG.md:
- Create comprehensive changelog for all releases
- Document v0.3.3 features: settings management, encryption, setup wizard
- List all new files, changes, fixes, and security improvements
TODO.md:
- Update version reference to v0.3.3
- Mark settings management features as complete
- Add completed items for 2026-02-08
- Update last review date
MILESTONES.md:
- Update last updated date
- Mark v0.3.3 as Released (2026-02-08)
- Add comprehensive release notes with all features
- Update version history table
- Update current release to v0.3.3 with new features listed
ROADMAP.md:
- Update to reflect v0.3.3 current status
- Add settings management features to current status
- Update last updated date
Other files:
- app/config.py: Update default version to 0.3.3-dev
- docs/BuildMetadata.md: Update default version reference
- ANALYSIS_SUMMARY.md: Update current version
All documentation now reflects v0.3.3 release with complete feature list.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Mark all critical items as complete:
✅ Database-backed settings
✅ Encryption for sensitive values
✅ Setup wizard for fresh installs
✅ Source indicators (DB/ENV/DEFAULT)
✅ Form pre-filling and optional fields
✅ Show/hide toggles for sensitive data
✅ Admin-only access with OAuth support
✅ Comprehensive testing and documentation
Code implementation: 100% COMPLETE
Manual testing and documentation polish recommended but not blocking.
All original issue requirements and additional user requests implemented.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>