feedback-one 2.6.2__py3-none-any.whl

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.
Files changed (86) hide show
  1. feedback_one-2.6.2.dist-info/METADATA +455 -0
  2. feedback_one-2.6.2.dist-info/RECORD +86 -0
  3. feedback_one-2.6.2.dist-info/WHEEL +4 -0
  4. feedback_one-2.6.2.dist-info/entry_points.txt +3 -0
  5. feedback_one-2.6.2.dist-info/licenses/LICENSE +24 -0
  6. mcp_feedback_enhanced/__init__.py +52 -0
  7. mcp_feedback_enhanced/__main__.py +419 -0
  8. mcp_feedback_enhanced/debug.py +79 -0
  9. mcp_feedback_enhanced/desktop_app/__init__.py +30 -0
  10. mcp_feedback_enhanced/desktop_app/desktop_app.py +336 -0
  11. mcp_feedback_enhanced/desktop_release/__init__.py +1 -0
  12. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-linux +0 -0
  13. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-arm64 +0 -0
  14. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-intel +0 -0
  15. mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop.exe +0 -0
  16. mcp_feedback_enhanced/i18n.py +379 -0
  17. mcp_feedback_enhanced/py.typed +0 -0
  18. mcp_feedback_enhanced/server.py +674 -0
  19. mcp_feedback_enhanced/utils/__init__.py +28 -0
  20. mcp_feedback_enhanced/utils/error_handler.py +449 -0
  21. mcp_feedback_enhanced/utils/memory_monitor.py +519 -0
  22. mcp_feedback_enhanced/utils/resource_manager.py +801 -0
  23. mcp_feedback_enhanced/web/__init__.py +26 -0
  24. mcp_feedback_enhanced/web/constants/__init__.py +8 -0
  25. mcp_feedback_enhanced/web/constants/message_codes.py +173 -0
  26. mcp_feedback_enhanced/web/locales/en/translation.json +644 -0
  27. mcp_feedback_enhanced/web/locales/zh-CN/translation.json +630 -0
  28. mcp_feedback_enhanced/web/locales/zh-TW/translation.json +649 -0
  29. mcp_feedback_enhanced/web/main.py +1236 -0
  30. mcp_feedback_enhanced/web/models/__init__.py +13 -0
  31. mcp_feedback_enhanced/web/models/feedback_result.py +16 -0
  32. mcp_feedback_enhanced/web/models/feedback_session.py +1108 -0
  33. mcp_feedback_enhanced/web/routes/__init__.py +12 -0
  34. mcp_feedback_enhanced/web/routes/main_routes.py +698 -0
  35. mcp_feedback_enhanced/web/static/css/audio-management.css +545 -0
  36. mcp_feedback_enhanced/web/static/css/notification-settings.css +152 -0
  37. mcp_feedback_enhanced/web/static/css/prompt-management.css +566 -0
  38. mcp_feedback_enhanced/web/static/css/session-management.css +1428 -0
  39. mcp_feedback_enhanced/web/static/css/styles.css +2203 -0
  40. mcp_feedback_enhanced/web/static/favicon.ico +0 -0
  41. mcp_feedback_enhanced/web/static/icon-192.png +0 -0
  42. mcp_feedback_enhanced/web/static/icon.svg +16 -0
  43. mcp_feedback_enhanced/web/static/index.html +158 -0
  44. mcp_feedback_enhanced/web/static/js/app.js +2213 -0
  45. mcp_feedback_enhanced/web/static/js/i18n.js +376 -0
  46. mcp_feedback_enhanced/web/static/js/modules/audio/audio-manager.js +610 -0
  47. mcp_feedback_enhanced/web/static/js/modules/audio/audio-settings-ui.js +732 -0
  48. mcp_feedback_enhanced/web/static/js/modules/connection-monitor.js +435 -0
  49. mcp_feedback_enhanced/web/static/js/modules/constants/message-codes.js +168 -0
  50. mcp_feedback_enhanced/web/static/js/modules/file-upload-manager.js +555 -0
  51. mcp_feedback_enhanced/web/static/js/modules/image-handler.js +199 -0
  52. mcp_feedback_enhanced/web/static/js/modules/logger.js +404 -0
  53. mcp_feedback_enhanced/web/static/js/modules/notification/notification-manager.js +360 -0
  54. mcp_feedback_enhanced/web/static/js/modules/notification/notification-settings.js +344 -0
  55. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-input-buttons.js +427 -0
  56. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-manager.js +414 -0
  57. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-modal.js +458 -0
  58. mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-settings-ui.js +524 -0
  59. mcp_feedback_enhanced/web/static/js/modules/session/session-data-manager.js +1040 -0
  60. mcp_feedback_enhanced/web/static/js/modules/session/session-details-modal.js +594 -0
  61. mcp_feedback_enhanced/web/static/js/modules/session/session-ui-renderer.js +817 -0
  62. mcp_feedback_enhanced/web/static/js/modules/session-manager.js +1059 -0
  63. mcp_feedback_enhanced/web/static/js/modules/settings-manager.js +1002 -0
  64. mcp_feedback_enhanced/web/static/js/modules/tab-manager.js +235 -0
  65. mcp_feedback_enhanced/web/static/js/modules/textarea-height-manager.js +267 -0
  66. mcp_feedback_enhanced/web/static/js/modules/ui-manager.js +568 -0
  67. mcp_feedback_enhanced/web/static/js/modules/utils/dom-utils.js +392 -0
  68. mcp_feedback_enhanced/web/static/js/modules/utils/status-utils.js +403 -0
  69. mcp_feedback_enhanced/web/static/js/modules/utils/time-utils.js +440 -0
  70. mcp_feedback_enhanced/web/static/js/modules/utils.js +472 -0
  71. mcp_feedback_enhanced/web/static/js/modules/websocket-manager.js +625 -0
  72. mcp_feedback_enhanced/web/static/js/vendor/marked.min.js +6 -0
  73. mcp_feedback_enhanced/web/static/js/vendor/purify.min.js +3 -0
  74. mcp_feedback_enhanced/web/templates/components/image-upload.html +43 -0
  75. mcp_feedback_enhanced/web/templates/components/settings-card.html +58 -0
  76. mcp_feedback_enhanced/web/templates/components/status-indicator.html +31 -0
  77. mcp_feedback_enhanced/web/templates/components/toggle-switch.html +19 -0
  78. mcp_feedback_enhanced/web/templates/feedback.html +1360 -0
  79. mcp_feedback_enhanced/web/templates/index.html +330 -0
  80. mcp_feedback_enhanced/web/utils/__init__.py +13 -0
  81. mcp_feedback_enhanced/web/utils/browser.py +152 -0
  82. mcp_feedback_enhanced/web/utils/compression_config.py +190 -0
  83. mcp_feedback_enhanced/web/utils/compression_monitor.py +314 -0
  84. mcp_feedback_enhanced/web/utils/network.py +66 -0
  85. mcp_feedback_enhanced/web/utils/port_manager.py +332 -0
  86. mcp_feedback_enhanced/web/utils/session_cleanup_manager.py +525 -0
@@ -0,0 +1,455 @@
1
+ Metadata-Version: 2.4
2
+ Name: feedback-one
3
+ Version: 2.6.2
4
+ Summary: Enhanced MCP server for interactive user feedback and command execution in AI-assisted development, featuring dual interface support (Web UI and Desktop Application) with intelligent environment detection and cross-platform compatibility.
5
+ Project-URL: Homepage, https://github.com/Minidoracat/feedback-one
6
+ Project-URL: Repository, https://github.com/Minidoracat/feedback-one
7
+ Project-URL: Issues, https://github.com/Minidoracat/feedback-one/issues
8
+ Author-email: Minidoracat <minidora0702@gmail.com>
9
+ License-File: LICENSE
10
+ Keywords: ai,cross-platform,desktop-app,development,dual-interface,feedback,interactive,mcp,tauri,web-ui
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: MacOS X
13
+ Classifier: Environment :: Web Environment
14
+ Classifier: Environment :: Win32 (MS Windows)
15
+ Classifier: Environment :: X11 Applications
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Desktop Environment
23
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
24
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
+ Classifier: Topic :: Software Development :: User Interfaces
26
+ Requires-Python: >=3.11
27
+ Requires-Dist: aiohttp>=3.8.0
28
+ Requires-Dist: fastapi>=0.115.0
29
+ Requires-Dist: fastmcp>=2.0.0
30
+ Requires-Dist: jinja2>=3.1.0
31
+ Requires-Dist: mcp>=1.9.3
32
+ Requires-Dist: psutil>=7.0.0
33
+ Requires-Dist: uvicorn>=0.30.0
34
+ Requires-Dist: websockets>=13.0.0
35
+ Provides-Extra: dev
36
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
37
+ Requires-Dist: pytest>=7.0.0; extra == 'dev'
38
+ Description-Content-Type: text/markdown
39
+
40
+ # Feedback One
41
+
42
+ **🌐 Language / 語言切換:** **English** | [繁體中文](README.zh-TW.md) | [简体中文](README.zh-CN.md)
43
+
44
+ **Original Author:** [Fábio Ferreira](https://x.com/fabiomlferreira) | [Original Project](https://github.com/noopstudios/interactive-feedback-mcp) ⭐
45
+ **Enhanced Fork:** [Minidoracat](https://github.com/Minidoracat)
46
+ **UI Design Reference:** [sanshao85/mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)
47
+
48
+ ## 🎯 Core Concept
49
+
50
+ This is an [MCP server](https://modelcontextprotocol.io/) that establishes **feedback-oriented development workflows**, providing **Web UI and Desktop Application** dual interface options, perfectly adapting to local, **SSH Remote environments**, and **WSL (Windows Subsystem for Linux) environments**. By guiding AI to confirm with users rather than making speculative operations, it can consolidate multiple tool calls into a single feedback-oriented request, dramatically reducing platform costs and improving development efficiency.
51
+
52
+ **🌐 Dual Interface Architecture Advantages:**
53
+ - 🖥️ **Desktop Application**: Native cross-platform desktop experience, supporting Windows, macOS, Linux
54
+ - 🌐 **Web UI**: No GUI dependencies required, suitable for remote and WSL environments
55
+ - 🔧 **Flexible Deployment**: Choose the most suitable interface mode based on environment requirements
56
+ - 📦 **Unified Functionality**: Both interfaces provide exactly the same functional experience
57
+
58
+ **🖥️ Desktop Application:** v2.5.0 introduces cross-platform desktop application support based on Tauri framework, supporting Windows, macOS, and Linux platforms with native desktop experience.
59
+
60
+ **Supported Platforms:** [Cursor](https://www.cursor.com) | [Cline](https://cline.bot) | [Windsurf](https://windsurf.com) | [Augment](https://www.augmentcode.com) | [Trae](https://www.trae.ai)
61
+
62
+ ### 🔄 Workflow
63
+ 1. **AI Call** → `feedback-one` tool
64
+ 2. **Interface Launch** → Auto-open desktop application or browser interface (based on configuration)
65
+ 3. **Smart Interaction** → Prompt selection, text input, image upload, auto-submit
66
+ 4. **Real-time Feedback** → WebSocket connection delivers information to AI instantly
67
+ 5. **Session Tracking** → Auto-record session history and statistics
68
+ 6. **Process Continuation** → AI adjusts behavior or ends task based on feedback
69
+
70
+ ## 🌟 Key Features
71
+
72
+ ### 🖥️ Dual Interface Support
73
+ - **Desktop Application**: Cross-platform native application based on Tauri, supporting Windows, macOS, Linux
74
+ - **Web UI Interface**: Lightweight browser interface suitable for remote and WSL environments
75
+ - **Automatic Environment Detection**: Intelligently recognizes SSH Remote, WSL and other special environments
76
+ - **Unified Feature Experience**: Both interfaces provide exactly the same functionality
77
+
78
+ ### 📝 Smart Workflow
79
+ - **Prompt Management**: CRUD operations for common prompts, usage statistics, intelligent sorting
80
+ - **Auto-Timed Submit**: 1-86400 second flexible timer, supports pause, resume, cancel with new pause/resume button controls
81
+ - **Auto Command Execution** (v2.6.0): Automatically execute preset commands after creating new sessions or commits for improved development efficiency
82
+ - **Session Management & Tracking**: Local file storage, privacy controls, history export (supports JSON, CSV, Markdown formats), real-time statistics, flexible timeout settings
83
+ - **Connection Monitoring**: WebSocket status monitoring, auto-reconnection, quality indicators
84
+ - **AI Work Summary Markdown Display**: Support for rich Markdown syntax rendering including headers, bold text, code blocks, lists, links and other formats for enhanced content readability
85
+
86
+ ### 🎨 Modern Experience
87
+ - **Responsive Design**: Adapts to different screen sizes, modular JavaScript architecture
88
+ - **Audio Notifications**: Built-in multiple sound effects, custom audio upload support, volume control
89
+ - **System Notifications** (v2.6.0): System-level real-time alerts for important events (like auto-commit, session timeout)
90
+ - **Smart Memory**: Input box height memory, one-click copy, persistent settings
91
+ - **Multi-language Support**: Traditional Chinese, English, Simplified Chinese, instant switching
92
+
93
+ ### 🖼️ Images & Media
94
+ - **Full Format Support**: PNG, JPG, JPEG, GIF, BMP, WebP
95
+ - **Convenient Upload**: Drag & drop files, clipboard paste (Ctrl+V)
96
+ - **Unlimited Processing**: Support for any size images, automatic intelligent processing
97
+
98
+ ## 🌐 Interface Preview
99
+
100
+ ### Web UI Interface (v2.5.0 - Desktop Application Support)
101
+
102
+ <div align="center">
103
+ <img src="docs/en/images/web1.png" width="400" alt="Web UI Main Interface - Prompt Management & Auto Submit" />
104
+ </div>
105
+
106
+ <details>
107
+ <summary>📱 Click to view complete interface screenshots</summary>
108
+
109
+ <div align="center">
110
+ <img src="docs/en/images/web2.jpeg" width="800" alt="Web UI Complete Interface - Session Management & Settings" />
111
+ </div>
112
+
113
+ </details>
114
+
115
+ *Web UI Interface - Supports desktop application and Web interface, providing prompt management, auto-submit, session tracking and other smart features*
116
+
117
+ ### Desktop Application Interface (v2.5.0 New Feature)
118
+
119
+ <div align="center">
120
+ <img src="docs/en/images/desktop1.png" width="600" alt="Desktop Application - Native Cross-platform Desktop Experience" />
121
+ </div>
122
+
123
+ *Desktop Application - Native cross-platform desktop application based on Tauri framework, supporting Windows, macOS, Linux with exactly the same functionality as Web UI*
124
+
125
+ **Shortcut Support**
126
+ - `Ctrl+Enter`(Windows/Linux)/ `Cmd+Enter`(macOS):Submit feedback (both main keyboard and numeric keypad supported)
127
+ - `Ctrl+V`(Windows/Linux)/ `Cmd+V`(macOS):Direct paste clipboard images
128
+ - `Ctrl+I`(Windows/Linux)/ `Cmd+I`(macOS):Quick focus input box (Thanks @penn201500)
129
+
130
+ ## 🚀 Quick Start
131
+
132
+ ### 1. Installation & Testing
133
+ ```bash
134
+ # Install uv (if not already installed)
135
+ pip install uv
136
+ ```
137
+
138
+ ### 2. Configure MCP
139
+ **Basic Configuration** (suitable for most users):
140
+ ```json
141
+ {
142
+ "mcpServers": {
143
+ "feedback-one": {
144
+ "command": "uvx",
145
+ "args": ["feedback-one@latest"],
146
+ "timeout": 600,
147
+ "autoApprove": ["interactive_feedback"]
148
+ }
149
+ }
150
+ }
151
+ ```
152
+
153
+ **Advanced Configuration** (requires custom environment):
154
+ ```json
155
+ {
156
+ "mcpServers": {
157
+ "feedback-one": {
158
+ "command": "uvx",
159
+ "args": ["feedback-one@latest"],
160
+ "timeout": 600,
161
+ "env": {
162
+ "MCP_DEBUG": "false",
163
+ "MCP_WEB_HOST": "127.0.0.1",
164
+ "MCP_WEB_PORT": "8765",
165
+ "MCP_LANGUAGE": "en"
166
+ },
167
+ "autoApprove": ["interactive_feedback"]
168
+ }
169
+ }
170
+ }
171
+ ```
172
+
173
+ **Desktop Application Configuration** (v2.5.0 new feature - using native desktop application):
174
+ ```json
175
+ {
176
+ "mcpServers": {
177
+ "feedback-one": {
178
+ "command": "uvx",
179
+ "args": ["feedback-one@latest"],
180
+ "timeout": 600,
181
+ "env": {
182
+ "MCP_DESKTOP_MODE": "true",
183
+ "MCP_WEB_HOST": "127.0.0.1",
184
+ "MCP_WEB_PORT": "8765",
185
+ "MCP_DEBUG": "false"
186
+ },
187
+ "autoApprove": ["interactive_feedback"]
188
+ }
189
+ }
190
+ }
191
+ ```
192
+
193
+ **Configuration File Examples**:
194
+ - Desktop Mode: [examples/mcp-config-desktop.json](examples/mcp-config-desktop.json)
195
+ - Web Mode: [examples/mcp-config-web.json](examples/mcp-config-web.json)
196
+
197
+ ### 3. Prompt Engineering Setup
198
+ For optimal results, add the following rules to your AI assistant:
199
+
200
+ ```
201
+ # MCP Interactive Feedback Rules
202
+
203
+ follow feedback-one instructions
204
+ ```
205
+
206
+ ## ⚙️ Advanced Settings
207
+
208
+ ### Environment Variables
209
+ | Variable | Purpose | Values | Default |
210
+ |----------|---------|--------|---------|
211
+ | `MCP_DEBUG` | Debug mode | `true`/`false` | `false` |
212
+ | `MCP_WEB_HOST` | Web UI host binding | IP address or hostname | `127.0.0.1` |
213
+ | `MCP_WEB_PORT` | Web UI port | `1024-65535` | `8765` |
214
+ | `MCP_DESKTOP_MODE` | Desktop application mode | `true`/`false` | `false` |
215
+ | `MCP_LANGUAGE` | Force UI language | `zh-TW`/`zh-CN`/`en` | Auto-detect |
216
+
217
+ **`MCP_WEB_HOST` Explanation**:
218
+ - `127.0.0.1` (default): Local access only, higher security
219
+ - `0.0.0.0`: Allow remote access, suitable for SSH remote development environments
220
+
221
+ **`MCP_LANGUAGE` Explanation**:
222
+ - Used to force the interface language, overriding automatic system detection
223
+ - Supported language codes:
224
+ - `zh-TW`: Traditional Chinese
225
+ - `zh-CN`: Simplified Chinese
226
+ - `en`: English
227
+ - Language detection priority:
228
+ 1. User-saved language settings in the interface (highest priority)
229
+ 2. `MCP_LANGUAGE` environment variable
230
+ 3. System environment variables (LANG, LC_ALL, etc.)
231
+ 4. System default language
232
+ 5. Fallback to default language (Traditional Chinese)
233
+
234
+ ### Testing Options
235
+ ```bash
236
+ # Version check
237
+ uvx feedback-one@latest version # Check version
238
+
239
+ # Interface testing
240
+ uvx feedback-one@latest test --web # Test Web UI (auto continuous running)
241
+ uvx feedback-one@latest test --desktop # Test desktop application (v2.5.0 new feature)
242
+
243
+ # Debug mode
244
+ MCP_DEBUG=true uvx feedback-one@latest test
245
+
246
+ # Specify language for testing
247
+ MCP_LANGUAGE=en uvx feedback-one@latest test --web # Force English interface
248
+ MCP_LANGUAGE=zh-TW uvx feedback-one@latest test --web # Force Traditional Chinese
249
+ MCP_LANGUAGE=zh-CN uvx feedback-one@latest test --web # Force Simplified Chinese
250
+ ```
251
+
252
+ ### Developer Installation
253
+ ```bash
254
+ git clone https://github.com/Minidoracat/feedback-one.git
255
+ cd feedback-one
256
+ uv sync
257
+ ```
258
+
259
+ **Local Testing Methods**
260
+ ```bash
261
+ # Functional testing
262
+ make test-func # Standard functional testing
263
+ make test-web # Web UI testing (continuous running)
264
+ make test-desktop-func # Desktop application functional testing
265
+
266
+ # Or use direct commands
267
+ uv run python -m mcp_feedback_enhanced test # Standard functional testing
268
+ uvx --no-cache --with-editable . feedback-one test --web # Web UI testing (continuous running)
269
+ uvx --no-cache --with-editable . feedback-one test --desktop # Desktop application testing
270
+
271
+ # Desktop application build (v2.5.0 new feature)
272
+ make build-desktop # Build desktop application (debug mode)
273
+ make build-desktop-release # Build desktop application (release mode)
274
+ make test-desktop # Test desktop application
275
+ make clean-desktop # Clean desktop build artifacts
276
+
277
+ # Unit testing
278
+ make test # Run all unit tests
279
+ make test-fast # Fast testing (skip slow tests)
280
+ make test-cov # Test and generate coverage report
281
+
282
+ # Code quality checks
283
+ make check # Complete code quality check
284
+ make quick-check # Quick check and auto-fix
285
+ ```
286
+
287
+ **Testing Descriptions**
288
+ - **Functional Testing**: Test complete MCP tool functionality workflow
289
+ - **Unit Testing**: Test individual module functionality
290
+ - **Coverage Testing**: Generate HTML coverage report to `htmlcov/` directory
291
+ - **Quality Checks**: Include linting, formatting, type checking
292
+
293
+ ## 🆕 Version History
294
+
295
+ 📋 **Complete Version History:** [RELEASE_NOTES/CHANGELOG.en.md](RELEASE_NOTES/CHANGELOG.en.md)
296
+
297
+ ### Latest Version Highlights (v2.6.0)
298
+ - 🚀 **Auto Command Execution**: Automatically execute preset commands after creating new sessions or commits, improving workflow efficiency
299
+ - 📊 **Session Export Feature**: Support exporting session records to multiple formats for easy sharing and archiving
300
+ - ⏸️ **Auto-commit Control**: Added pause and resume buttons for better control over auto-commit timing
301
+ - 🔔 **System Notifications**: System-level notifications for important events with real-time alerts
302
+ - ⏱️ **Session Timeout Optimization**: Redesigned session management with more flexible configuration options
303
+ - 🌏 **I18n Enhancement**: Refactored internationalization architecture with full multilingual support for notifications
304
+ - 🎨 **UI Simplification**: Significantly simplified user interface for improved user experience
305
+
306
+ ## 🐛 Common Issues
307
+
308
+ ### 🌐 SSH Remote Environment Issues
309
+ **Q: Browser cannot launch or access in SSH Remote environment**
310
+ A: Two solutions available:
311
+
312
+ **Solution 1: Environment Variable Setting (v2.5.5 Recommended)**
313
+ Set `"MCP_WEB_HOST": "0.0.0.0"` in MCP configuration to allow remote access:
314
+ ```json
315
+ {
316
+ "mcpServers": {
317
+ "feedback-one": {
318
+ "command": "uvx",
319
+ "args": ["feedback-one@latest"],
320
+ "timeout": 600,
321
+ "env": {
322
+ "MCP_WEB_HOST": "0.0.0.0",
323
+ "MCP_WEB_PORT": "8765"
324
+ },
325
+ "autoApprove": ["interactive_feedback"]
326
+ }
327
+ }
328
+ }
329
+ ```
330
+ Then open in local browser: `http://[remote-host-IP]:8765`
331
+
332
+ **Solution 2: SSH Port Forwarding (Traditional Method)**
333
+ 1. Use default configuration (`MCP_WEB_HOST`: `127.0.0.1`)
334
+ 2. Set up SSH port forwarding:
335
+ - **VS Code Remote SSH**: Press `Ctrl+Shift+P` → "Forward a Port" → Enter `8765`
336
+ - **Cursor SSH Remote**: Manually add port forwarding rule (port 8765)
337
+ 3. Open in local browser: `http://localhost:8765`
338
+
339
+ For detailed solutions, refer to: [SSH Remote Environment Usage Guide](docs/en/ssh-remote/browser-launch-issues.md)
340
+
341
+ **Q: Why am I not receiving new MCP feedback?**
342
+ A: Likely a WebSocket connection issue. **Solution**: Directly refresh the browser page.
343
+
344
+ **Q: Why isn't MCP being called?**
345
+ A: Please confirm MCP tool status shows green light. **Solution**: Repeatedly toggle MCP tool on/off, wait a few seconds for system reconnection.
346
+
347
+ **Q: Augment cannot start MCP**
348
+ A: **Solution**: Completely close and restart VS Code or Cursor, reopen the project.
349
+
350
+ ### 🔧 General Issues
351
+ **Q: How to use desktop application?**
352
+ A: v2.5.0 introduces cross-platform desktop application support. Set `"MCP_DESKTOP_MODE": "true"` in MCP configuration to enable:
353
+ ```json
354
+ {
355
+ "mcpServers": {
356
+ "feedback-one": {
357
+ "command": "uvx",
358
+ "args": ["feedback-one@latest"],
359
+ "timeout": 600,
360
+ "env": {
361
+ "MCP_DESKTOP_MODE": "true",
362
+ "MCP_WEB_PORT": "8765"
363
+ },
364
+ "autoApprove": ["interactive_feedback"]
365
+ }
366
+ }
367
+ }
368
+ ```
369
+ **Configuration File Example**: [examples/mcp-config-desktop.json](examples/mcp-config-desktop.json)
370
+
371
+ **Q: How to use legacy PyQt6 GUI interface?**
372
+ A: v2.4.0 completely removed PyQt6 GUI dependencies. To use legacy GUI, specify v2.3.0 or earlier: `uvx feedback-one@2.3.0`
373
+ **Note**: Legacy versions don't include new features (prompt management, auto-submit, session management, desktop application, etc.).
374
+
375
+ **Q: "Unexpected token 'D'" error appears**
376
+ A: Debug output interference. Set `MCP_DEBUG=false` or remove the environment variable.
377
+
378
+ **Q: Chinese character garbled text**
379
+ A: Fixed in v2.0.3. Update to latest version: `uvx feedback-one@latest`
380
+
381
+ **Q: Window disappears or positioning errors in multi-screen environment**
382
+ A: Fixed in v2.1.1. Go to "⚙️ Settings" tab, check "Always show window at primary screen center" to resolve. Especially suitable for T-shaped screen arrangements and other complex multi-screen configurations.
383
+
384
+ **Q: Image upload failure**
385
+ A: Check file format (PNG/JPG/JPEG/GIF/BMP/WebP). System supports any size image files.
386
+
387
+ **Q: Web UI cannot start**
388
+ A: Check firewall settings or try using different ports.
389
+
390
+ **Q: UV Cache occupies too much disk space**
391
+ A: Due to frequent use of `uvx` commands, cache may accumulate to tens of GB. Regular cleanup recommended:
392
+ ```bash
393
+ # View cache size and detailed information
394
+ python scripts/cleanup_cache.py --size
395
+
396
+ # Preview cleanup content (no actual cleanup)
397
+ python scripts/cleanup_cache.py --dry-run
398
+
399
+ # Execute standard cleanup
400
+ python scripts/cleanup_cache.py --clean
401
+
402
+ # Force cleanup (attempts to close related programs, solving Windows file occupation issues)
403
+ python scripts/cleanup_cache.py --force
404
+
405
+ # Or directly use uv command
406
+ uv cache clean
407
+ ```
408
+ For detailed instructions, refer to: [Cache Management Guide](docs/en/cache-management.md)
409
+
410
+ **Q: AI models cannot parse images**
411
+ A: Various AI models (including Gemini Pro 2.5, Claude, etc.) may have instability in image parsing, sometimes correctly recognizing and sometimes unable to parse uploaded image content. This is a known limitation of AI visual understanding technology. Recommendations:
412
+ 1. Ensure good image quality (high contrast, clear text)
413
+ 2. Try uploading multiple times, retries usually succeed
414
+ 3. If parsing continues to fail, try adjusting image size or format
415
+
416
+ ## 🙏 Acknowledgments
417
+
418
+ ### 🌟 Support Original Author
419
+ **Fábio Ferreira** - [X @fabiomlferreira](https://x.com/fabiomlferreira)
420
+ **Original Project:** [noopstudios/interactive-feedback-mcp](https://github.com/noopstudios/interactive-feedback-mcp)
421
+
422
+ If you find it useful, please:
423
+ - ⭐ [Star the original project](https://github.com/noopstudios/interactive-feedback-mcp)
424
+ - 📱 [Follow the original author](https://x.com/fabiomlferreira)
425
+
426
+ ### Design Inspiration
427
+ **sanshao85** - [mcp-feedback-collector](https://github.com/sanshao85/mcp-feedback-collector)
428
+
429
+ ### Contributors
430
+ **penn201500** - [GitHub @penn201500](https://github.com/penn201500)
431
+ - 🎯 Auto-focus input box feature ([PR #39](https://github.com/Minidoracat/feedback-one/pull/39))
432
+
433
+ **leo108** - [GitHub @leo108](https://github.com/leo108)
434
+ - 🌐 SSH Remote Development Support (`MCP_WEB_HOST` environment variable) ([PR #113](https://github.com/Minidoracat/feedback-one/pull/113))
435
+
436
+ **Alsan** - [GitHub @Alsan](https://github.com/Alsan)
437
+ - 🍎 macOS PyO3 Compilation Configuration Support ([PR #93](https://github.com/Minidoracat/feedback-one/pull/93))
438
+
439
+ **fireinice** - [GitHub @fireinice](https://github.com/fireinice)
440
+ - 📝 Tool Documentation Optimization (LLM instructions moved to docstring) ([PR #105](https://github.com/Minidoracat/feedback-one/pull/105))
441
+
442
+ ### Community Support
443
+ - **Discord:** [https://discord.gg/Gur2V67](https://discord.gg/Gur2V67)
444
+ - **Issues:** [GitHub Issues](https://github.com/Minidoracat/feedback-one/issues)
445
+
446
+ ## 📄 License
447
+
448
+ MIT License - See [LICENSE](LICENSE) file for details
449
+
450
+ ## 📈 Star History
451
+
452
+ [![Star History Chart](https://api.star-history.com/svg?repos=Minidoracat/feedback-one&type=Date)](https://star-history.com/#Minidoracat/feedback-one&Date)
453
+
454
+ ---
455
+ **🌟 Welcome to Star and share with more developers!**
@@ -0,0 +1,86 @@
1
+ mcp_feedback_enhanced/__init__.py,sha256=PJVVbSKkHt8BcsItiZ3PB6g7HtZ07eEGFZLG9JCAJbU,1059
2
+ mcp_feedback_enhanced/__main__.py,sha256=lqQyu9675zQ3IBpSHLjjnBjCMENMLuYs52fu7Hw5cjg,13787
3
+ mcp_feedback_enhanced/debug.py,sha256=F_rCAm69iCElqH9hwGtHM0-068bkJ05LXdq1K8YvkT0,2268
4
+ mcp_feedback_enhanced/i18n.py,sha256=LQcntHVvQpAQPSfKYHPLTRcim82CfOxunYHbIN29sq4,13999
5
+ mcp_feedback_enhanced/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ mcp_feedback_enhanced/server.py,sha256=0_u59HKideta1r2ETwdiI74rc9ij3JTxyJnQ5OJ9fQI,23959
7
+ mcp_feedback_enhanced/desktop_app/__init__.py,sha256=-dU69FvIAc0VE-UIquWMz64MblK3DZVO5vBR2u1VXrQ,642
8
+ mcp_feedback_enhanced/desktop_app/desktop_app.py,sha256=cilNMS_eXjXwEs-hDR5Ijp-M3xh-S6201NaRkHeQCEE,11201
9
+ mcp_feedback_enhanced/desktop_release/__init__.py,sha256=ExyX8OhO2o9uiKqfD3La9S1NldKCiuctkQD84Iu5qpw,36
10
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-linux,sha256=LZ2e80yIeml6i1FTpAzKsKI2bqoV4Kiu14F3NPCejOs,5338296
11
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-arm64,sha256=BNXcRFv9ntrKCIzJKz1ncjfvO2saiOA7s-hLS1lHHPo,4475840
12
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop-macos-intel,sha256=6nvBkhct8l28whf8DQWaQdNiqXnScE3N6v8sk8nU_mc,4904060
13
+ mcp_feedback_enhanced/desktop_release/mcp-feedback-enhanced-desktop.exe,sha256=Jmlpq2_t15PB6x0d0_NR5ufzC2bWiYzGKf6EkDg13yo,4711424
14
+ mcp_feedback_enhanced/utils/__init__.py,sha256=mPYLvxmZdz66LZFK7kbtF4pYgc7_DBw9Lb7nAPpJdIw,566
15
+ mcp_feedback_enhanced/utils/error_handler.py,sha256=nD2IaiJnaR4iZedataqVbHXD5ZTo8lVEoK-gADgtf4c,15028
16
+ mcp_feedback_enhanced/utils/memory_monitor.py,sha256=hqCfyrheGZR4aK9bxS4vo7hzTrbi1-gOHq8mq0GAm1U,18199
17
+ mcp_feedback_enhanced/utils/resource_manager.py,sha256=9B08qoKSOII07R5LsBuM9G2teDhan10pgSMyaEDk6TI,26432
18
+ mcp_feedback_enhanced/web/__init__.py,sha256=Ku_z_ytsip7Gsytp7ThDy_4ouGLYJQDCNyJ1-8RCsJg,648
19
+ mcp_feedback_enhanced/web/main.py,sha256=HBxqUKk8KwGh9Rxb4giT4mx0WGKwCCZhkCM2a76Cob0,49755
20
+ mcp_feedback_enhanced/web/constants/__init__.py,sha256=XxyJBVe59K4_sx97_51rqO27pk97kXbKlzkDUhIXkbM,133
21
+ mcp_feedback_enhanced/web/constants/message_codes.py,sha256=80WugHWGlAz-blkyPlfEc-SoC_MwdIuDunu9cG7Jf5U,6911
22
+ mcp_feedback_enhanced/web/locales/en/translation.json,sha256=40-dwGF4QlIyIu1FeZ2oS4nZqhKBTl0nmZk79c7HEnQ,30268
23
+ mcp_feedback_enhanced/web/locales/zh-CN/translation.json,sha256=5-nOKytBB10udT-27PIB8tRFduwkkpjaJJ3auzMgzLA,28085
24
+ mcp_feedback_enhanced/web/locales/zh-TW/translation.json,sha256=hvABcXDbf3oxSFtkATcgdSCOPf3fYRgP4iODNN0J2hs,29521
25
+ mcp_feedback_enhanced/web/models/__init__.py,sha256=eUp-a-KpZOkJx_X-hV4zfff98XK8mQkvjw3Q2V4grUg,336
26
+ mcp_feedback_enhanced/web/models/feedback_result.py,sha256=XP7sK5yuHCs21vVE73VYsLLQ_n6fUCrUN5fom8gfEyQ,314
27
+ mcp_feedback_enhanced/web/models/feedback_session.py,sha256=b444BI1NR6cziuQLqdfCsf5ZC6nQBQ1tZ_E-7RLhYgE,40575
28
+ mcp_feedback_enhanced/web/routes/__init__.py,sha256=SreRzMigIh6JE5izQ6WFPtqSB9fqJwlXEvxgk9ERrl0,177
29
+ mcp_feedback_enhanced/web/routes/main_routes.py,sha256=zJvRdzGu2kPyTt_l1gg90D_LD0LaxoxkX3Fr_gh4DUg,26106
30
+ mcp_feedback_enhanced/web/static/favicon.ico,sha256=UsNBKoWAkzlMmoQIdAfJcK_88l8jMpY3V-RwUoxvStc,2238
31
+ mcp_feedback_enhanced/web/static/icon-192.png,sha256=jXpgTqCp9rnlpIccrJu9nsRxEGJSslvWOk0WR6-zw18,1067
32
+ mcp_feedback_enhanced/web/static/icon.svg,sha256=CBmb9T9AU_csxIR_qv6Nc9REQsXCHlbnxjMSM29v3Jg,919
33
+ mcp_feedback_enhanced/web/static/index.html,sha256=ox-jWKzQoSjl93R-DCBYRn-QTNbe5pKnR3a-nB6ednk,5179
34
+ mcp_feedback_enhanced/web/static/css/audio-management.css,sha256=MA9wc-WhnJOy08JQzWwMcVnhJbUyVu-R63kHjdU1v7Y,10589
35
+ mcp_feedback_enhanced/web/static/css/notification-settings.css,sha256=TJmPtLoeLzyjQuIE2fZ1Qlad-LsVAdDWwW8g266z9mQ,2922
36
+ mcp_feedback_enhanced/web/static/css/prompt-management.css,sha256=_3ENYGXtVfw0oAdUDFny04eMHi3wikBAHhO1hUoMO3M,11426
37
+ mcp_feedback_enhanced/web/static/css/session-management.css,sha256=2jH8ybfyqWb9m-lecxhNxMGzRopiSDXAwBF3e2cmaA0,28599
38
+ mcp_feedback_enhanced/web/static/css/styles.css,sha256=OS0nZmZXUnvD1nj2zIo7ZXx09XLNTZg53uPqH34S6Cc,47412
39
+ mcp_feedback_enhanced/web/static/js/app.js,sha256=VrYdJZhf_SlR8LHhUUkm2rT0GwpODPXJnfvr_1u3NXQ,87722
40
+ mcp_feedback_enhanced/web/static/js/i18n.js,sha256=KWyD4kcp67dP8kVtfPdxfRU82nq5b_3xpUIu_kPkdhA,14782
41
+ mcp_feedback_enhanced/web/static/js/modules/connection-monitor.js,sha256=mFEEt7FePYJKYrvDIs1LHK5VtUBZ6mdZKeoYQ58_nnk,14787
42
+ mcp_feedback_enhanced/web/static/js/modules/file-upload-manager.js,sha256=je9-sHNTtodFMCRsazAJTM2bF7Q7Um4JTiEvbPCMC4w,19032
43
+ mcp_feedback_enhanced/web/static/js/modules/image-handler.js,sha256=AkBtHhuphmrOVDEeyOvtkPl1YwLT__7JurzOZOph4qo,6086
44
+ mcp_feedback_enhanced/web/static/js/modules/logger.js,sha256=vCOYXDVKrF30O4qRWD1BcHR1LNjbXzRniFk2F-xossk,12140
45
+ mcp_feedback_enhanced/web/static/js/modules/session-manager.js,sha256=IplFWou8eYrggkjrNWume3ICqAYPLx1aU-SWNA31LhY,39361
46
+ mcp_feedback_enhanced/web/static/js/modules/settings-manager.js,sha256=kjkEv7FFhYM2bgxSJVc5sLkQ0Vxbf6iH8E2B9vqTqUs,39757
47
+ mcp_feedback_enhanced/web/static/js/modules/tab-manager.js,sha256=fPOvLCK0_qsN5ErhqS_Bf8ixGZ5909CXPZgI8WnUlJc,6438
48
+ mcp_feedback_enhanced/web/static/js/modules/textarea-height-manager.js,sha256=lKz1OAYIkGd_Lc9yL83_9BhBHIp30xnVQ7HqkhZXU5E,8379
49
+ mcp_feedback_enhanced/web/static/js/modules/ui-manager.js,sha256=As3A2cFBrKY5_-NdGztY0Jrcp1Smj5UWhwnm5wpaVjY,19767
50
+ mcp_feedback_enhanced/web/static/js/modules/utils.js,sha256=tqXgDPTgkwr6UoLwPkzIFgykOFg2758pecXV-PJ1s6o,18796
51
+ mcp_feedback_enhanced/web/static/js/modules/websocket-manager.js,sha256=z8RF92C3s7DSMuq16vCVUtBdqOf79uIv_cBvmkRZCAE,21356
52
+ mcp_feedback_enhanced/web/static/js/modules/audio/audio-manager.js,sha256=7wvHzWeYsEL80D073onfNkVHkxRgjOQqy7B6O7KYCo4,20631
53
+ mcp_feedback_enhanced/web/static/js/modules/audio/audio-settings-ui.js,sha256=Nc7tcSaNJBCeP5vF-jF2A14CyVw3xWycUu_f6L5idsc,27587
54
+ mcp_feedback_enhanced/web/static/js/modules/constants/message-codes.js,sha256=iMk6hf6S1fjc5GuzxVKkGRTNvVx7rx8GmIldZZD1-WA,5686
55
+ mcp_feedback_enhanced/web/static/js/modules/notification/notification-manager.js,sha256=ACZOVES4BEwJ4V70FZpzA6EUHP7PfFo-H0k0Wb6B-LY,11289
56
+ mcp_feedback_enhanced/web/static/js/modules/notification/notification-settings.js,sha256=VauUCMcvoJOwNhTyCzhOg4kJub23EovE_uRD3bc5WBM,12602
57
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-input-buttons.js,sha256=qxeQyVNOxGczdhJjOucpS789QVCE0XP1VUmrPLxKlgE,14307
58
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-manager.js,sha256=bLkQxDo1qXXISZqjYKYRNdootry8hkWQkWzklfe7w-M,12481
59
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-modal.js,sha256=6kpQrcMWF1nxsILjonb1K5lhnswvraapn6Xt5lcYpsk,14655
60
+ mcp_feedback_enhanced/web/static/js/modules/prompt/prompt-settings-ui.js,sha256=OXiKAYbZY_N7n6rVipcfnzkoihvBQhWuSVrMWEycK7s,20052
61
+ mcp_feedback_enhanced/web/static/js/modules/session/session-data-manager.js,sha256=1e2nfLWfMOF9uU6cDQtfybgQ-0CledI5aiyIfjvDZEA,36689
62
+ mcp_feedback_enhanced/web/static/js/modules/session/session-details-modal.js,sha256=QG3qegahpj_AG-PfjrywjClX_Qra-M4oog2r0HuG6jA,22765
63
+ mcp_feedback_enhanced/web/static/js/modules/session/session-ui-renderer.js,sha256=JJpmAVmrRf485VzDViHF0O-oZREuqbQrL8vC6DQVCQc,30856
64
+ mcp_feedback_enhanced/web/static/js/modules/utils/dom-utils.js,sha256=30kivJv2ssDJ-HDwD62nPe014pqRh7mDheEdxPDug10,11729
65
+ mcp_feedback_enhanced/web/static/js/modules/utils/status-utils.js,sha256=_BHoHoRzLBREYkMm-FWtWvSdcblNX39Av4tdNp7YTC8,14036
66
+ mcp_feedback_enhanced/web/static/js/modules/utils/time-utils.js,sha256=e9UpBamB6dwq3-9u8mskH3to3SaHVtRxu307xco0IJM,15005
67
+ mcp_feedback_enhanced/web/static/js/vendor/marked.min.js,sha256=EJLDzjPdc37dAueAJj8Udr8YJ42BgXr2QD32hA-ANKs,36521
68
+ mcp_feedback_enhanced/web/static/js/vendor/purify.min.js,sha256=ZmeLA8z1rRu0v45aC-vdRjYeJBXejDnZiDjfSJmj36Q,22064
69
+ mcp_feedback_enhanced/web/templates/feedback.html,sha256=fv5srO-UXWSqQWyRJXBI1edImXceEnhRfrUGP8HLfwQ,72991
70
+ mcp_feedback_enhanced/web/templates/index.html,sha256=qGvZopyBas1J7nRSXFjrlvXJ-Tgh_fl-3dSByJ3YcXI,9296
71
+ mcp_feedback_enhanced/web/templates/components/image-upload.html,sha256=hlxtB9mBiA-XXMY_b-rmZBgmiJ8pI-Dyp9UuHxmz0gg,1805
72
+ mcp_feedback_enhanced/web/templates/components/settings-card.html,sha256=ZxQMv0Fq_fxMn2HUJKzg4c8dDzq2ePa-r2U9o2k0KUI,1542
73
+ mcp_feedback_enhanced/web/templates/components/status-indicator.html,sha256=jXYDstGN7SyK5xJ1VetyY1CzGC1q_fcKNpobP8wrw8k,962
74
+ mcp_feedback_enhanced/web/templates/components/toggle-switch.html,sha256=CctM_xMyxg0TCUyEZ149Drmq9vtBLQGwGwU9sqMNXlY,469
75
+ mcp_feedback_enhanced/web/utils/__init__.py,sha256=BQpl_XaUOu0VKH7pl1cmr1a8HEXyQ_KZ9Oj8oe7hpXw,236
76
+ mcp_feedback_enhanced/web/utils/browser.py,sha256=5t2pjPfGjN1_VtH-eWza0_-pNq4jbSO_0XqOypBt_lY,4307
77
+ mcp_feedback_enhanced/web/utils/compression_config.py,sha256=s5RsR4lsXJlNmcd4lgvvs2Z5KjpTBimFwaa8cHsabGw,6318
78
+ mcp_feedback_enhanced/web/utils/compression_monitor.py,sha256=irY4UOCNZSpPdKAIO1dxw4HphMeIt3zpGppXcF99Hgo,11203
79
+ mcp_feedback_enhanced/web/utils/network.py,sha256=zXZe8hwPXHxn7-EuVhJ7MViGadSOtPwEqDZKo7SzmQc,1665
80
+ mcp_feedback_enhanced/web/utils/port_manager.py,sha256=qHe0B4OUp7LucIbea6k_8ojyUrahau82vgZf7U3rDOc,11410
81
+ mcp_feedback_enhanced/web/utils/session_cleanup_manager.py,sha256=V503Qh5Km-zbHLEwSjOXEu1SgWh7SFpJsJ6qaLl0IT8,19468
82
+ feedback_one-2.6.2.dist-info/METADATA,sha256=wetTjB7JyPvmohqFy_V428IyJQHznVlVgeAyg6ZAFkk,20134
83
+ feedback_one-2.6.2.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
84
+ feedback_one-2.6.2.dist-info/entry_points.txt,sha256=LUh0K1B60wUv0KFUwMsslOc-emimTsOgUBbEdOZYFwQ,132
85
+ feedback_one-2.6.2.dist-info/licenses/LICENSE,sha256=PcY4I27kcFtNyea8lkQzEbh6gopczJ2FYrLctaiQfOE,1165
86
+ feedback_one-2.6.2.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.29.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ feedback-one = mcp_feedback_enhanced.__main__:main
3
+ interactive-feedback-mcp = mcp_feedback_enhanced.__main__:main
@@ -0,0 +1,24 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Fábio Ferreira
4
+
5
+ Portions of this software are modifications and enhancements
6
+ Copyright (c) 2024 Minidoracat
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to deal
10
+ in the Software without restriction, including without limitation the rights
11
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in all
16
+ copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
+ SOFTWARE.
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ MCP Interactive Feedback Enhanced
4
+ ==================================
5
+
6
+ 互動式用戶回饋 MCP 伺服器,提供 AI 輔助開發中的回饋收集功能。
7
+
8
+ 作者: Fábio Ferreira
9
+ 增強功能: Web UI 支援、圖片上傳、現代化界面設計
10
+
11
+ 特色:
12
+ - Web UI 介面支援
13
+ - 智慧環境檢測
14
+ - 命令執行功能
15
+ - 圖片上傳支援
16
+ - 現代化深色主題
17
+ - 重構的模組化架構
18
+ """
19
+
20
+ __version__ = "2.6.2"
21
+ __author__ = "Minidoracat"
22
+ __email__ = "minidora0702@gmail.com"
23
+
24
+ import os
25
+
26
+ from .server import main as run_server
27
+
28
+ # 導入新的 Web UI 模組
29
+ from .web import WebUIManager, get_web_ui_manager, launch_web_feedback_ui, stop_web_ui
30
+
31
+
32
+ # 保持向後兼容性
33
+ feedback_ui = None
34
+
35
+ # 主要導出介面
36
+ __all__ = [
37
+ "WebUIManager",
38
+ "__author__",
39
+ "__version__",
40
+ "feedback_ui",
41
+ "get_web_ui_manager",
42
+ "launch_web_feedback_ui",
43
+ "run_server",
44
+ "stop_web_ui",
45
+ ]
46
+
47
+
48
+ def main():
49
+ """主要入口點,用於 uvx 執行"""
50
+ from .__main__ import main as cli_main
51
+
52
+ return cli_main()