abstractassistant 0.3.1__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- abstractassistant-0.3.3/ACKNOWLEDGMENTS.md +164 -0
- abstractassistant-0.3.3/CHANGELOG.md +210 -0
- abstractassistant-0.3.3/CONTRIBUTING.md +389 -0
- abstractassistant-0.3.3/MANIFEST.in +30 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/PKG-INFO +21 -21
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/README.md +20 -20
- abstractassistant-0.3.1/setup_macos_app.py → abstractassistant-0.3.3/abstractassistant/create_app_bundle.py +114 -42
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/chat_bubble.py +15 -2
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/history_dialog.py +18 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/qt_bubble.py +25 -12
- abstractassistant-0.3.3/abstractassistant.egg-info/SOURCES.txt +32 -0
- abstractassistant-0.3.3/docs/architecture.md +317 -0
- abstractassistant-0.3.3/docs/getting-started.md +394 -0
- abstractassistant-0.3.3/docs/installation.md +464 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/pyproject.toml +2 -4
- abstractassistant-0.3.1/abstractassistant/create_app_bundle.py +0 -53
- abstractassistant-0.3.1/abstractassistant.egg-info/PKG-INFO +0 -297
- abstractassistant-0.3.1/abstractassistant.egg-info/SOURCES.txt +0 -58
- abstractassistant-0.3.1/abstractassistant.egg-info/dependency_links.txt +0 -1
- abstractassistant-0.3.1/abstractassistant.egg-info/entry_points.txt +0 -3
- abstractassistant-0.3.1/abstractassistant.egg-info/requires.txt +0 -20
- abstractassistant-0.3.1/abstractassistant.egg-info/top_level.txt +0 -2
- abstractassistant-0.3.1/tests/test_abstractcore.py +0 -56
- abstractassistant-0.3.1/tests/test_app.py +0 -86
- abstractassistant-0.3.1/tests/test_bubble.py +0 -132
- abstractassistant-0.3.1/tests/test_bubble_manual.py +0 -79
- abstractassistant-0.3.1/tests/test_complete_voice_integration.py +0 -432
- abstractassistant-0.3.1/tests/test_complete_working.py +0 -171
- abstractassistant-0.3.1/tests/test_corrected_logic.py +0 -249
- abstractassistant-0.3.1/tests/test_double_click_fix.py +0 -206
- abstractassistant-0.3.1/tests/test_final_app_demo.py +0 -257
- abstractassistant-0.3.1/tests/test_final_verification.py +0 -216
- abstractassistant-0.3.1/tests/test_final_voice_mode.py +0 -304
- abstractassistant-0.3.1/tests/test_fixed_app.py +0 -261
- abstractassistant-0.3.1/tests/test_fixed_integration.py +0 -290
- abstractassistant-0.3.1/tests/test_full_voice_mode.py +0 -372
- abstractassistant-0.3.1/tests/test_integration.py +0 -266
- abstractassistant-0.3.1/tests/test_qt_bubble.py +0 -49
- abstractassistant-0.3.1/tests/test_qt_threading.py +0 -73
- abstractassistant-0.3.1/tests/test_real_application.py +0 -166
- abstractassistant-0.3.1/tests/test_reason_values.py +0 -208
- abstractassistant-0.3.1/tests/test_safe_startup.py +0 -119
- abstractassistant-0.3.1/tests/test_safe_voice_controls.py +0 -223
- abstractassistant-0.3.1/tests/test_simple.py +0 -105
- abstractassistant-0.3.1/tests/test_system_tray.py +0 -160
- abstractassistant-0.3.1/tests/test_timestamp_clicks.py +0 -53
- abstractassistant-0.3.1/tests/test_voice_double_click.py +0 -222
- abstractassistant-0.3.1/tests/test_voice_features.py +0 -271
- abstractassistant-0.3.1/tests/test_voice_timing.py +0 -199
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/LICENSE +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/__init__.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/app.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/cli.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/config.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/core/__init__.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/core/llm_manager.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/core/tts_manager.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/__init__.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/provider_manager.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/toast_manager.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/toast_window.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/tts_state_manager.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/ui/ui_styles.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/utils/__init__.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/utils/icon_generator.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/utils/markdown_renderer.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/abstractassistant/web_server.py +0 -0
- {abstractassistant-0.3.1 → abstractassistant-0.3.3}/setup.cfg +0 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Acknowledgments
|
|
2
|
+
|
|
3
|
+
AbstractAssistant would not be possible without the incredible work of the open-source community and the following libraries and projects:
|
|
4
|
+
|
|
5
|
+
## Core Foundation
|
|
6
|
+
|
|
7
|
+
### [AbstractCore](https://www.abstractcore.ai/)
|
|
8
|
+
**The heart of AbstractAssistant's multi-provider LLM support**
|
|
9
|
+
|
|
10
|
+
AbstractCore provides the universal interface that makes it possible to seamlessly switch between different AI providers. Without AbstractCore, this project would require implementing separate integrations for each LLM provider.
|
|
11
|
+
|
|
12
|
+
- **What it provides**: Universal LLM interface, provider discovery, model management, session handling
|
|
13
|
+
- **Why it's essential**: Enables support for 6+ LLM providers and 100+ models through a single, consistent API
|
|
14
|
+
- **License**: MIT License
|
|
15
|
+
- **Repository**: [AbstractCore on GitHub](https://github.com/lpalbou/abstractcore)
|
|
16
|
+
|
|
17
|
+
*Special thanks to the AbstractCore team for creating such a robust and extensible foundation for AI applications.*
|
|
18
|
+
|
|
19
|
+
## Voice and Audio
|
|
20
|
+
|
|
21
|
+
### [AbstractVoice](https://github.com/lpalbou/abstractvoice)
|
|
22
|
+
**High-quality Text-to-Speech integration**
|
|
23
|
+
|
|
24
|
+
AbstractVoice provides the conversational AI capabilities that make AbstractAssistant truly interactive. The VITS model integration delivers natural-sounding speech synthesis.
|
|
25
|
+
|
|
26
|
+
- **What it provides**: TTS engine, voice activity detection, speech-to-text capabilities
|
|
27
|
+
- **Features used**: Text-to-speech with speed control, model fallbacks, threading support
|
|
28
|
+
- **License**: MIT License
|
|
29
|
+
|
|
30
|
+
### [Coqui TTS](https://github.com/coqui-ai/TTS)
|
|
31
|
+
**Advanced Text-to-Speech engine**
|
|
32
|
+
|
|
33
|
+
The underlying TTS engine that powers AbstractVoice's high-quality speech synthesis.
|
|
34
|
+
|
|
35
|
+
- **What it provides**: Neural text-to-speech models, voice cloning, multilingual support
|
|
36
|
+
- **License**: MPL 2.0 License
|
|
37
|
+
|
|
38
|
+
### [OpenAI Whisper](https://github.com/openai/whisper)
|
|
39
|
+
**Robust automatic speech recognition**
|
|
40
|
+
|
|
41
|
+
Used by AbstractVoice for potential future speech-to-text features.
|
|
42
|
+
|
|
43
|
+
- **What it provides**: Multilingual speech recognition, robust audio processing
|
|
44
|
+
- **License**: MIT License
|
|
45
|
+
|
|
46
|
+
### [PyAudio](https://people.csail.mit.edu/hubert/pyaudio/)
|
|
47
|
+
**Cross-platform audio I/O**
|
|
48
|
+
|
|
49
|
+
Enables audio input/output for voice features.
|
|
50
|
+
|
|
51
|
+
- **What it provides**: Audio stream handling, cross-platform audio support
|
|
52
|
+
- **License**: MIT License
|
|
53
|
+
|
|
54
|
+
## User Interface
|
|
55
|
+
|
|
56
|
+
### [Qt Framework](https://www.qt.io/) (PyQt5/PySide2/PyQt6)
|
|
57
|
+
**Modern, native GUI framework**
|
|
58
|
+
|
|
59
|
+
Qt provides the foundation for AbstractAssistant's sleek, native-feeling interface. The automatic detection of PyQt5, PySide2, or PyQt6 ensures compatibility across different environments.
|
|
60
|
+
|
|
61
|
+
- **What it provides**: Native GUI widgets, cross-platform compatibility, modern styling
|
|
62
|
+
- **Features used**: Custom widgets, layouts, styling, threading, event handling
|
|
63
|
+
- **License**:
|
|
64
|
+
- PyQt5/PyQt6: GPL v3 / Commercial License
|
|
65
|
+
- PySide2/PySide6: LGPL v3 / Commercial License
|
|
66
|
+
|
|
67
|
+
### [pystray](https://github.com/moses-palmer/pystray)
|
|
68
|
+
**Cross-platform system tray support**
|
|
69
|
+
|
|
70
|
+
Enables AbstractAssistant to live in the macOS menu bar with native integration.
|
|
71
|
+
|
|
72
|
+
- **What it provides**: System tray icon management, context menus, click handling
|
|
73
|
+
- **License**: LGPL v3 License
|
|
74
|
+
|
|
75
|
+
## Image Processing
|
|
76
|
+
|
|
77
|
+
### [Pillow (PIL Fork)](https://python-pillow.org/)
|
|
78
|
+
**Powerful image processing library**
|
|
79
|
+
|
|
80
|
+
Used for dynamic system tray icon generation with animations and status indicators.
|
|
81
|
+
|
|
82
|
+
- **What it provides**: Image creation, manipulation, format support
|
|
83
|
+
- **Features used**: Dynamic icon generation, image compositing, color manipulation
|
|
84
|
+
- **License**: HPND License
|
|
85
|
+
|
|
86
|
+
## Utilities and Support
|
|
87
|
+
|
|
88
|
+
### [pyperclip](https://github.com/asweigart/pyperclip)
|
|
89
|
+
**Cross-platform clipboard operations**
|
|
90
|
+
|
|
91
|
+
Enables copy-to-clipboard functionality for AI responses.
|
|
92
|
+
|
|
93
|
+
- **What it provides**: Clipboard read/write operations
|
|
94
|
+
- **License**: BSD 3-Clause License
|
|
95
|
+
|
|
96
|
+
### [plyer](https://github.com/kivy/plyer)
|
|
97
|
+
**Cross-platform native features**
|
|
98
|
+
|
|
99
|
+
Provides access to platform-specific notification systems.
|
|
100
|
+
|
|
101
|
+
- **What it provides**: Native notifications, platform abstraction
|
|
102
|
+
- **License**: MIT License
|
|
103
|
+
|
|
104
|
+
### [markdown](https://python-markdown.github.io/)
|
|
105
|
+
**Markdown processing**
|
|
106
|
+
|
|
107
|
+
Enables rich text rendering in the history dialog and notifications.
|
|
108
|
+
|
|
109
|
+
- **What it provides**: Markdown to HTML conversion, extensions support
|
|
110
|
+
- **License**: BSD 3-Clause License
|
|
111
|
+
|
|
112
|
+
### [Pygments](https://pygments.org/)
|
|
113
|
+
**Syntax highlighting**
|
|
114
|
+
|
|
115
|
+
Provides code syntax highlighting in markdown-rendered content.
|
|
116
|
+
|
|
117
|
+
- **What it provides**: Code syntax highlighting, multiple language support
|
|
118
|
+
- **License**: BSD 2-Clause License
|
|
119
|
+
|
|
120
|
+
## Configuration and Data
|
|
121
|
+
|
|
122
|
+
### [tomli](https://github.com/hukkin/tomli) / [tomli-w](https://github.com/hukkin/tomli-w)
|
|
123
|
+
**TOML configuration file support**
|
|
124
|
+
|
|
125
|
+
Enables clean, human-readable configuration files.
|
|
126
|
+
|
|
127
|
+
- **What it provides**: TOML parsing and writing
|
|
128
|
+
- **License**: MIT License
|
|
129
|
+
|
|
130
|
+
## Development Tools
|
|
131
|
+
|
|
132
|
+
### [setuptools](https://setuptools.pypa.io/)
|
|
133
|
+
**Python packaging**
|
|
134
|
+
|
|
135
|
+
Modern Python packaging and distribution.
|
|
136
|
+
|
|
137
|
+
- **License**: MIT License
|
|
138
|
+
|
|
139
|
+
## Special Recognition
|
|
140
|
+
|
|
141
|
+
### The Python Community
|
|
142
|
+
The entire Python ecosystem that makes rapid development of sophisticated applications possible.
|
|
143
|
+
|
|
144
|
+
### macOS Integration
|
|
145
|
+
Apple's excellent developer documentation and APIs that enable seamless system integration.
|
|
146
|
+
|
|
147
|
+
### Open Source Contributors
|
|
148
|
+
All the maintainers, contributors, and users of the above projects who make open-source software development possible.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## License Compatibility
|
|
153
|
+
|
|
154
|
+
AbstractAssistant is released under the MIT License, which is compatible with all the dependencies listed above. Users should be aware of the specific licensing terms of each dependency, particularly:
|
|
155
|
+
|
|
156
|
+
- **Qt-based components** (PyQt5/PyQt6) are available under GPL v3 or commercial license
|
|
157
|
+
- **PySide2/PySide6** are available under LGPL v3 or commercial license
|
|
158
|
+
- All other dependencies use permissive licenses (MIT, BSD, etc.)
|
|
159
|
+
|
|
160
|
+
For commercial use, consider the licensing implications of Qt-based components.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
**Thank you to all the developers and maintainers who make projects like AbstractAssistant possible!** 🙏
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to AbstractAssistant will be documented in this file.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## [0.3.3] - 2025-10-24
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
- **Keyboard Behavior**: Reversed Enter/Shift+Enter behavior for more intuitive message sending
|
|
10
|
+
- `Enter`: Send message (previously required Shift+Enter)
|
|
11
|
+
- `Shift+Enter`: Add new line without sending (previously just Enter)
|
|
12
|
+
- Updated both Qt and Tkinter chat interfaces for consistency
|
|
13
|
+
- Improved user experience with standard chat application behavior
|
|
14
|
+
|
|
15
|
+
### Fixed
|
|
16
|
+
- **macOS App Bundle**: Consolidated and improved app bundle creation system
|
|
17
|
+
- Merged `setup_macos_app.py` functionality into `create_app_bundle.py` for cleaner architecture
|
|
18
|
+
- Enhanced Python environment discovery in launch script for better reliability
|
|
19
|
+
- Improved custom icon preservation logic to prevent overwriting user icons
|
|
20
|
+
- Fixed app bundle creation for various Python installation methods (pyenv, system, conda)
|
|
21
|
+
- Removed redundant files and streamlined packaging structure
|
|
22
|
+
|
|
23
|
+
### Improved
|
|
24
|
+
- **Documentation**: Updated all documentation to reflect current features and behavior
|
|
25
|
+
- Fixed keyboard shortcuts documentation across all guides
|
|
26
|
+
- Updated installation instructions with correct app bundle creation commands
|
|
27
|
+
- Verified consistency of Python version requirements (3.9+) across all docs
|
|
28
|
+
- Corrected outdated references to deprecated modules
|
|
29
|
+
|
|
30
|
+
### Removed
|
|
31
|
+
- **Code Cleanup**: Removed deprecated `setup_macos_app.py` after consolidation
|
|
32
|
+
- All functionality moved to `abstractassistant/create_app_bundle.py`
|
|
33
|
+
- Updated PyPI packaging to exclude development artifacts
|
|
34
|
+
- Cleaner project structure with single app bundle creation entry point
|
|
35
|
+
|
|
36
|
+
## [0.3.0] - 2025-10-22
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
- **CRITICAL: Session Persistence**: Completely eliminated unwanted session clearing that was destroying chat history
|
|
40
|
+
- Sessions now persist when switching providers or models
|
|
41
|
+
- TTS mode switching preserves chat history
|
|
42
|
+
- Error handling preserves sessions instead of creating new ones
|
|
43
|
+
- System tray actions require user confirmation and cannot bypass session control
|
|
44
|
+
- Only explicit "Clear" button action in UI destroys sessions
|
|
45
|
+
- Separated LLM initialization from session management
|
|
46
|
+
- Added `update_session_mode()` method for history-preserving mode switches
|
|
47
|
+
- Fixed automatic session loading that bypassed user control
|
|
48
|
+
- Bulletproof session control: NO internal process can clear sessions
|
|
49
|
+
- **UI Layout**: Fixed window resizing when adding/removing file attachments
|
|
50
|
+
- Window now dynamically resizes to accommodate file attachment widget
|
|
51
|
+
- Base size: 630x196, expands to 630x224 when files are attached (compact)
|
|
52
|
+
- Voice mode properly adjusts: 630x120 base, 630x148 with attachments
|
|
53
|
+
- Maintains proper positioning relative to system tray after resize
|
|
54
|
+
- **Session Clearing**: Clear session now also clears attached files
|
|
55
|
+
- When user clicks "Clear" button, both messages and attached files are cleared
|
|
56
|
+
- Updated confirmation dialog to mention attached files will be removed
|
|
57
|
+
- Ensures complete session reset including file attachments
|
|
58
|
+
- **File Chip Styling**: Made file attachment chips more compact and space-efficient
|
|
59
|
+
- Reduced font size from 10px to 8px for better space utilization
|
|
60
|
+
- Decreased border radius from 10px to 6px for tighter appearance
|
|
61
|
+
- Minimized padding and margins throughout (50% reduction)
|
|
62
|
+
- Smaller remove buttons (16x16 → 12x12) for cleaner look
|
|
63
|
+
- Window expansion reduced from +40px to +28px (30% space savings)
|
|
64
|
+
- **UI Cleanup**: Removed unwanted voice control panel extension
|
|
65
|
+
- Eliminated the play/pause control panel that sometimes appeared at bottom
|
|
66
|
+
- Cleaner interface without unnecessary UI extensions
|
|
67
|
+
- Voice controls still available through existing TTS toggle button
|
|
68
|
+
- **File Attachment Persistence & Visual Indicators**: Enhanced file handling for better user experience
|
|
69
|
+
- Files now remain attached after sending messages, allowing for easy reuse in follow-up messages
|
|
70
|
+
- Added visual file attachment indicators (📎) in chat history dialog showing file count per message
|
|
71
|
+
- Enhanced message history structure to track file attachments per message
|
|
72
|
+
- Clear session now properly clears both messages and file attachment tracking
|
|
73
|
+
- Improved file workflow: attach once, use multiple times until manually removed
|
|
74
|
+
|
|
75
|
+
## [0.2.8] - 2025-10-21
|
|
76
|
+
|
|
77
|
+
### Added
|
|
78
|
+
- **macOS App Bundle**: Native macOS application bundle (`.app`) with Dock integration and system tray support
|
|
79
|
+
- **Automated App Creation**: `create-app-bundle` command to generate macOS app bundle post-installation
|
|
80
|
+
- **Streamlined Installation**: `install.py` script for one-command macOS setup with app bundle creation
|
|
81
|
+
- **Neural Network Icon**: Beautiful AI-inspired icon automatically generated and converted to `.icns` format
|
|
82
|
+
|
|
83
|
+
### Improved
|
|
84
|
+
- **Cross-Environment Compatibility**: Robust Python environment detection supporting pyenv, anaconda, homebrew, and system Python
|
|
85
|
+
- **Portable Launch Script**: Smart Python discovery that works across different users and system configurations
|
|
86
|
+
- **Error Handling**: User-friendly dialog boxes for installation and launch issues
|
|
87
|
+
- **Documentation**: Updated installation guides for macOS App Bundle workflow
|
|
88
|
+
|
|
89
|
+
### Fixed
|
|
90
|
+
- **Python Environment Detection**: Resolved issues with finding correct Python installation in GUI launch context
|
|
91
|
+
- **Development vs Production**: Launch script now correctly uses installed package instead of development version
|
|
92
|
+
- **PATH Resolution**: Fixed Python executable discovery when launched from Dock vs terminal
|
|
93
|
+
|
|
94
|
+
### Technical
|
|
95
|
+
- Added `MacOSAppBundleGenerator` class for programmatic app bundle creation
|
|
96
|
+
- Enhanced `setup_macos_app.py` with comprehensive Python environment detection
|
|
97
|
+
- Updated `pyproject.toml` to include app bundle creation tools as console scripts
|
|
98
|
+
- Improved launch script with fallback mechanisms for different Python installations
|
|
99
|
+
- Added proper `Info.plist` configuration for macOS app bundle standards
|
|
100
|
+
|
|
101
|
+
### Installation
|
|
102
|
+
```bash
|
|
103
|
+
# Simple one-command installation for macOS users
|
|
104
|
+
python install.py
|
|
105
|
+
|
|
106
|
+
# Or manual installation
|
|
107
|
+
pip install abstractassistant
|
|
108
|
+
create-app-bundle
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Usage
|
|
112
|
+
- Launch from **Applications folder** or **Dock**
|
|
113
|
+
- Look for neural network icon in **menu bar** (system tray)
|
|
114
|
+
- All existing CLI options remain available
|
|
115
|
+
|
|
116
|
+
## [0.2.5] - 2025-10-21
|
|
117
|
+
|
|
118
|
+
### Added
|
|
119
|
+
- **File Attachments**: Click the 📎 button to attach images, PDFs, Office docs, or data files to your messages. The AI can now analyze documents, images, spreadsheets, and more.
|
|
120
|
+
- **Clickable Messages**: Click any message bubble in the history panel to copy its content to clipboard. A subtle flash confirms the copy.
|
|
121
|
+
|
|
122
|
+
### Improved
|
|
123
|
+
- **Chat History Layout**: Reduced text size (17px → 14px), increased bubble width (320px → 400px), and tightened spacing throughout for better readability and more efficient use of screen space.
|
|
124
|
+
- **Markdown Rendering**: Headers, paragraphs, and lists now use minimal spacing to display more content without scrolling.
|
|
125
|
+
|
|
126
|
+
### Updated
|
|
127
|
+
- **AbstractCore 2.4.5**: Upgraded from 2.4.2 to leverage universal media handling system with support for images, PDFs, Office documents (DOCX, XLSX, PPTX), and data files (CSV, JSON).
|
|
128
|
+
|
|
129
|
+
### Technical
|
|
130
|
+
- Added `ClickableBubble` widget with visual feedback for clipboard operations
|
|
131
|
+
- Enhanced `LLMManager` and `LLMWorker` to handle media file attachments
|
|
132
|
+
- File chips display with type-specific icons and individual remove buttons
|
|
133
|
+
- Improved markdown processor with tighter vertical spacing
|
|
134
|
+
|
|
135
|
+
## [1.1.0] - 2024-10-16
|
|
136
|
+
|
|
137
|
+
### 🌐 Major UI Overhaul: Beautiful Web Interface
|
|
138
|
+
|
|
139
|
+
#### Added
|
|
140
|
+
- **Modern Web Interface**: Complete replacement of Qt/Tkinter with beautiful HTML/CSS/JavaScript
|
|
141
|
+
- **Glassmorphism Design**: Stunning visual effects with backdrop blur and transparency
|
|
142
|
+
- **WebSocket Communication**: Real-time bidirectional communication between web UI and Python backend
|
|
143
|
+
- **Responsive Design**: Works perfectly on desktop and mobile browsers
|
|
144
|
+
- **Advanced Settings Panel**: Theme selection, temperature control, and token limit configuration
|
|
145
|
+
- **Smooth Animations**: Professional transitions and loading states
|
|
146
|
+
- **Dark/Light Themes**: Automatic system theme detection with manual override
|
|
147
|
+
|
|
148
|
+
#### Enhanced
|
|
149
|
+
- **Web Server**: Full aiohttp-based server with WebSocket support
|
|
150
|
+
- **Real-time Status**: Live updates for connection status and processing state
|
|
151
|
+
- **Modern Typography**: Inter font family for professional appearance
|
|
152
|
+
- **Gradient Buttons**: Beautiful send button with hover effects
|
|
153
|
+
- **Message Bubbles**: Elegant chat interface with markdown rendering
|
|
154
|
+
|
|
155
|
+
#### Technical Improvements
|
|
156
|
+
- Added `aiohttp` and `websockets` dependencies
|
|
157
|
+
- Created `WebServer` class with async/await support
|
|
158
|
+
- Fallback to simple HTTP server if aiohttp unavailable
|
|
159
|
+
- Updated system tray to launch web interface instead of Qt bubble
|
|
160
|
+
- Maintained backward compatibility with existing configuration
|
|
161
|
+
|
|
162
|
+
## [1.0.0] - 2024-10-15
|
|
163
|
+
|
|
164
|
+
### Added
|
|
165
|
+
- **System Tray Integration**: Native macOS menu bar icon with neural network-inspired design
|
|
166
|
+
- **Modern Chat Bubble UI**: Glassy, translucent interface with 1/6th screen size
|
|
167
|
+
- **Multi-Provider Support**: OpenAI, Anthropic, and Ollama integration via AbstractCore
|
|
168
|
+
- **Toast Notifications**: Elegant collapsible notifications with markdown rendering
|
|
169
|
+
- **TOML Configuration**: Modern configuration management with validation
|
|
170
|
+
- **CLI Interface**: `abstractassistant` command with multiple options
|
|
171
|
+
- **Real-time Status**: Token counting and execution status display
|
|
172
|
+
- **Copy to Clipboard**: One-click result sharing
|
|
173
|
+
- **Keyboard Shortcuts**: Cmd+Enter to send, Escape to close
|
|
174
|
+
- **Error Handling**: Graceful fallbacks and user-friendly error messages
|
|
175
|
+
- **Debug Mode**: Comprehensive debugging and logging capabilities
|
|
176
|
+
|
|
177
|
+
### Features
|
|
178
|
+
- **Universal LLM Support**: Works with any provider supported by AbstractCore
|
|
179
|
+
- **Session Management**: Persistent conversation memory
|
|
180
|
+
- **Modern Design**: Dark theme with glassy effects and smooth animations
|
|
181
|
+
- **Performance Optimized**: Threaded operations and efficient resource usage
|
|
182
|
+
- **Cross-Platform Foundation**: Built for future Windows/Linux support
|
|
183
|
+
|
|
184
|
+
### Technical
|
|
185
|
+
- **Modular Architecture**: Clean separation of concerns
|
|
186
|
+
- **Robust Error Handling**: Comprehensive exception management
|
|
187
|
+
- **Configuration Validation**: Type-safe configuration with defaults
|
|
188
|
+
- **Package Structure**: Proper Python package with CLI entry points
|
|
189
|
+
- **Development Mode**: Editable installation support
|
|
190
|
+
|
|
191
|
+
### CLI Commands
|
|
192
|
+
```bash
|
|
193
|
+
abstractassistant # Launch with default settings
|
|
194
|
+
abstractassistant --provider openai # Set provider
|
|
195
|
+
abstractassistant --model gpt-4o # Set model
|
|
196
|
+
abstractassistant --debug # Debug mode
|
|
197
|
+
abstractassistant --config custom.toml # Custom config
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Configuration
|
|
201
|
+
- TOML-based configuration with validation
|
|
202
|
+
- Environment variable support for API keys
|
|
203
|
+
- Customizable UI themes and behavior
|
|
204
|
+
- Provider and model defaults
|
|
205
|
+
|
|
206
|
+
### Dependencies
|
|
207
|
+
- AbstractCore 2.4.0+ for universal LLM support
|
|
208
|
+
- CustomTkinter for modern UI components
|
|
209
|
+
- pystray for cross-platform system tray
|
|
210
|
+
- TOML libraries for configuration management
|