ZZ zrewidował ten Gist . Przejdź do rewizji
1 file changed, 6 insertions, 6 deletions
Qwen-SUMMARY.md
| @@ -34,17 +34,17 @@ Every contribution, no matter the size, helps keep this project growing and acce | |||
| 34 | 34 | | Clipboard sync (ENet + AES-256) | ✅ Working | | |
| 35 | 35 | | AI Chat (Ollama streaming) | ✅ Working | | |
| 36 | 36 | | Markdown Editor (autosave) | ✅ Working | | |
| 37 | - | | VoIP (UDP, VAD, jitter buffer) | ✅ Working | | |
| 38 | - | | Audio settings (volume, mute, mic level) | ✅ Working | | |
| 37 | + | | VoIP (UDP, VAD, jitter buffer) | 🚧 In Progress | | |
| 38 | + | | Audio settings (volume, mute, mic level) | 🚧 In Progress | | |
| 39 | 39 | | Timer panel (12 slots, fuel-bar UI) | ✅ Working | | |
| 40 | - | | Inventory panel (12 slots, fuel-bar UI) | ✅ Working | | |
| 40 | + | | Inventory panel (12 slots, fuel-bar UI) | 🚧 In Progress | | |
| 41 | 41 | | Tab management (custom tab bar, session persistence) | ✅ Working | | |
| 42 | - | | OS Grid layout (configurable rows × cols) | ✅ Working | | |
| 42 | + | | OS Grid layout (configurable rows × cols) | 🚧 In Progress | | |
| 43 | 43 | | Theme builder (bg/font/accent/shade/transparency) | ✅ Working | | |
| 44 | 44 | | Video settings (FPS, DPI, window mode, position, size) | ✅ Working | | |
| 45 | - | | Web tab browser (paginated Chrome export) | ✅ Working | | |
| 45 | + | | Web tab browser (paginated Chrome export) | 🚧 In Progress | | |
| 46 | 46 | | Ship game (2D physics, object pooling) | ✅ Working | | |
| 47 | - | | TOP / Power state tracker | ✅ Working | | |
| 47 | + | | TOP / Power state tracker | 🚧 In Progress | | |
| 48 | 48 | | User AFK detection (cross-platform) | ✅ Working | | |
| 49 | 49 | | Window drag/resize (borderless) | ✅ Working | | |
| 50 | 50 | | System tray minimization | ✅ Working | | |
ZZ zrewidował ten Gist . Przejdź do rewizji
1 file changed, 1 insertion, 1 deletion
Qwen-SUMMARY.md
| @@ -1,4 +1,4 @@ | |||
| 1 | - | # WovenConnect — Multi-PC, Multi-Monitor Productivity Suite | |
| 1 | + | # EnvoyOS — Multi-PC, Multi-Monitor Productivity Suite | |
| 2 | 2 | ||
| 3 | 3 | A productivity-focused desktop application built with Godot 4.6. Designed for engineers and knowledge workers who work across multiple PCs and monitors. The core value proposition: **every keystroke, file, and timer is one hop away regardless of which machine you're sitting at.** | |
| 4 | 4 | ||
ZZ zrewidował ten Gist . Przejdź do rewizji
1 file changed, 228 insertions
Qwen-SUMMARY.md(stworzono plik)
| @@ -0,0 +1,228 @@ | |||
| 1 | + | # WovenConnect — Multi-PC, Multi-Monitor Productivity Suite | |
| 2 | + | ||
| 3 | + | A productivity-focused desktop application built with Godot 4.6. Designed for engineers and knowledge workers who work across multiple PCs and monitors. The core value proposition: **every keystroke, file, and timer is one hop away regardless of which machine you're sitting at.** | |
| 4 | + | ||
| 5 | + | --- | |
| 6 | + | ||
| 7 | + | ## Project Highlights | |
| 8 | + | ||
| 9 | + | - **All-in-One Toolkit**: AI tools, clipboard sync, file transfer, timers, inventory tracking, video/audio settings, and built-in support documentation in a single interface. | |
| 10 | + | - **Modular Architecture**: Clean separation between logic (`*_engine.gd`) and UI (`*_ui.gd`) ensures scalability and easy maintenance. | |
| 11 | + | - **Cross-PC Sync**: ENet-based multiplayer with AES-256 encrypted clipboard, planned file transfer, and shared state. | |
| 12 | + | - **Multi-Monitor Aware**: DPI scaling, per-monitor layout memory, window tiling, and floating overlays. | |
| 13 | + | - **AI Integration**: Local Ollama-powered code assistant, suggestions, and (planned) transcription. | |
| 14 | + | ||
| 15 | + | --- | |
| 16 | + | ||
| 17 | + | ## Why Support? | |
| 18 | + | ||
| 19 | + | Developing and maintaining open-source tools takes time, effort, and resources. Your support directly funds: | |
| 20 | + | ||
| 21 | + | - New feature development & bug fixes | |
| 22 | + | - Performance optimizations & engine updates | |
| 23 | + | - Documentation & community resources | |
| 24 | + | ||
| 25 | + | Every contribution, no matter the size, helps keep this project growing and accessible to everyone. Thank you for your support! ☕✨ | |
| 26 | + | ||
| 27 | + | --- | |
| 28 | + | ||
| 29 | + | ## Current State | |
| 30 | + | ||
| 31 | + | ### Completed / Working | |
| 32 | + | | Module | Status | | |
| 33 | + | |--------|--------| | |
| 34 | + | | Clipboard sync (ENet + AES-256) | ✅ Working | | |
| 35 | + | | AI Chat (Ollama streaming) | ✅ Working | | |
| 36 | + | | Markdown Editor (autosave) | ✅ Working | | |
| 37 | + | | VoIP (UDP, VAD, jitter buffer) | ✅ Working | | |
| 38 | + | | Audio settings (volume, mute, mic level) | ✅ Working | | |
| 39 | + | | Timer panel (12 slots, fuel-bar UI) | ✅ Working | | |
| 40 | + | | Inventory panel (12 slots, fuel-bar UI) | ✅ Working | | |
| 41 | + | | Tab management (custom tab bar, session persistence) | ✅ Working | | |
| 42 | + | | OS Grid layout (configurable rows × cols) | ✅ Working | | |
| 43 | + | | Theme builder (bg/font/accent/shade/transparency) | ✅ Working | | |
| 44 | + | | Video settings (FPS, DPI, window mode, position, size) | ✅ Working | | |
| 45 | + | | Web tab browser (paginated Chrome export) | ✅ Working | | |
| 46 | + | | Ship game (2D physics, object pooling) | ✅ Working | | |
| 47 | + | | TOP / Power state tracker | ✅ Working | | |
| 48 | + | | User AFK detection (cross-platform) | ✅ Working | | |
| 49 | + | | Window drag/resize (borderless) | ✅ Working | | |
| 50 | + | | System tray minimization | ✅ Working | | |
| 51 | + | ||
| 52 | + | ### Missing / Stub (Blocking) | |
| 53 | + | | File | Status | Action Required | | |
| 54 | + | |------|--------|-----------------| | |
| 55 | + | | `system_engine.gd` | Empty | Implement CPU/RAM/disk/GPU stats | | |
| 56 | + | | `system_ui.gd` | Empty | Build system dashboard (CPU graph, RAM bar, disk, AFK) | | |
| 57 | + | | `ai_code_engine.gd` | Empty | Build code-gen/review/explain engine | | |
| 58 | + | | `ai_code_ui.gd` | Empty | Side-by-side code editor + AI panel | | |
| 59 | + | | `music_engine.gd` | `extends Node` only | Implement playback queue, seeking, shuffle | | |
| 60 | + | ||
| 61 | + | ### Known Bugs / Technical Debt | |
| 62 | + | | Issue | Location | Fix | | |
| 63 | + | |-------|----------|-----| | |
| 64 | + | | `grid_engine.gd` references `clipboard_engine.is_connected_to_network` (doesn't exist) | `grid_engine.gd` line ~230 | Change to `clipboard_engine.can_broadcast` / `clipboard_engine.is_connecting` | | |
| 65 | + | | `tab_engine.gd` and `top_engine.gd` are 95% duplicates | Both files | Merge into one class or have TopEngine extend TabEngine | | |
| 66 | + | | No input validation on VoIP port field | `voip_ui.gd` | Add `is_valid_int()` check before `int()` cast | | |
| 67 | + | | Timer/Inventory `hh:mm:ss` parse has no overflow guard | `time_ui.gd`, `inventory_ui.gd` | Validate h≤23, m≤59, s≤59 before arithmetic | | |
| 68 | + | | Music/Media tab is a dead tab | `main_engine.gd` ALL_TABS | Either implement or remove from list | | |
| 69 | + | | No CI / automated testing | Repo root | Add GitHub Actions with `godot --headless --check-only` | | |
| 70 | + | ||
| 71 | + | --- | |
| 72 | + | ||
| 73 | + | ## Feature Roadmap | |
| 74 | + | ||
| 75 | + | ### Phase 1 — Fix & Stabilise (Weeks 1–2) | |
| 76 | + | ||
| 77 | + | | # | Task | Details | | |
| 78 | + | |---|------|---------| | |
| 79 | + | | 1.1 | Implement `system_engine.gd` | CPU %, RAM used/total, disk usage, GPU load (platform-specific), network throughput. Emit signals for UI. | | |
| 80 | + | | 1.2 | Implement `system_ui.gd` | Dashboard with live-updating gauges, AFK timer (reuse `user_active_engine.gd`), process list (optional). | | |
| 81 | + | | 1.3 | Fix `grid_engine.gd` broken refs | Replace `is_connected_to_network` → `can_broadcast`, `is_reconnecting` → `is_connecting`. | | |
| 82 | + | | 1.4 | Merge `tab_engine` / `top_engine` | One base class, reduce duplication. | | |
| 83 | + | | 1.5 | Add input validation | VoIP port, Timer/Inventory time parsing, all user-facing number fields. | | |
| 84 | + | | 1.6 | Implement or remove Music tab | Either build `music_engine.gd` + wire `music_ui.gd`, or remove "Media" from ALL_TABS. | | |
| 85 | + | | 1.7 | Add unit tests (GUT) | ThemeSerializer round-trip, TabEngine CRUD, TimeEngine tick, InventoryEngine expiry, ClipboardEngine encrypt/decrypt. | | |
| 86 | + | | 1.8 | CI pipeline | GitHub Actions: `godot --headless --check-only` + GUT test run on push. | | |
| 87 | + | ||
| 88 | + | ### Phase 2 — Multi-PC Power Features (Weeks 3–6) | |
| 89 | + | ||
| 90 | + | | # | Task | Details | | |
| 91 | + | |---|------|---------| | |
| 92 | + | | 2.1 | **Clipboard History Ring Buffer** | Store last 100 items (text + images) with timestamp, source PC, app name. Global hotkey `Ctrl+Shift+V` opens searchable picker across all peers. | | |
| 93 | + | | 2.2 | **Snippet Library** | Save frequently-used text blocks (code snippets, email templates, API keys). Sync to all PCs. One-click paste. | | |
| 94 | + | | 2.3 | **Cross-PC Text Search** | Type a keyword → search all peers' clipboard history simultaneously via RPC. | | |
| 95 | + | | 2.4 | **P2P File Transfer** | Drag file onto Network tab → AES-256 encrypt → chunked ENet stream → progress bar → destination PC. Reuse existing crypto. | | |
| 96 | + | | 2.5 | **Shared Workspace Folder** | Synced directory (chunked transfer). Edit on PC-A, open on PC-B. | | |
| 97 | + | | 2.6 | **Shared Kanban Board** | To-Do / In-Progress / Done. RPC-synced in real-time. Cards: title, tags, due date, assigned PC. Reuse `clipboard_engine` RPC pattern. | | |
| 98 | + | | 2.7 | **Notification Mirroring** | System/app notifications broadcast to all peers. "PC-A idle > 10 min" → toast on PC-B. Timer expiry → alert all. | | |
| 99 | + | | 2.8 | **Command Palette (`Ctrl+K`)** | Fuzzy-search all actions: "open tab", "change theme", "start timer 3", "connect to PC-B", "mute audio". One keystroke to do anything. | | |
| 100 | + | | 2.9 | **Global Hotkeys (OS-level)** | Register via native helper: clipboard history, screenshot, quick paste. Works even when app is unfocused. | | |
| 101 | + | | 2.10 | **Offline Queue** | When disconnected, queue clipboard/file/task changes. Auto-sync on reconnect (extend existing reconnection logic). | | |
| 102 | + | ||
| 103 | + | ### Phase 3 — Multi-Monitor & AI (Weeks 7–10) | |
| 104 | + | ||
| 105 | + | | # | Task | Details | | |
| 106 | + | |---|------|---------| | |
| 107 | + | | 3.1 | **Monitor Layout Memory** | Detect monitors, save per-monitor window positions/sizes per panel. Restore on reconnect. `user://monitor_layout.json`. | | |
| 108 | + | | 3.2 | **Floating Overlays** | Always-on-top widgets: timer countdown, clipboard dock (last 5 items), AFK indicator glow. Assignable to specific monitor. | | |
| 109 | + | | 3.3 | **Window Tiling / Snapping** | `Ctrl+1..4` → quadrant. `Ctrl+Shift+Left/Right` → half. Save/load named layouts. `Ctrl+L` to cycle. | | |
| 110 | + | | 3.4 | **Per-Monitor Contrast** | Each monitor can have different shade/brightness. Auto-adjust based on ambient light or time-of-day. | | |
| 111 | + | | 3.5 | **AI Code Engine** | `ai_code_engine.gd`: Explain selected code, Refactor + diff view, Generate from prompt, Review PR diff. Reuse Ollama streaming client. | | |
| 112 | + | | 3.6 | **AI Code UI** | `ai_code_ui.gd`: Side-by-side editor + AI response panel. Syntax highlighting, diff view, copy-to-clipboard. | | |
| 113 | + | | 3.7 | **AI Meeting Notes** | Stream mic audio → local Whisper (Ollama-compatible) → bullet-point summary → sync to all peers. | | |
| 114 | + | | 3.8 | **Cross-PC Input Mirroring (KVM)** | Type on PC-A → keystrokes stream to PC-B. Mouse delta streaming (relative, not absolute). Per-peer toggle. | | |
| 115 | + | | 3.9 | **AI Suggestion Engine** | Wire existing "Suggestion" prompt field to a "Smart Suggestions" button on clipboard tab. 3 context-aware actions. | | |
| 116 | + | ||
| 117 | + | ### Phase 4 — Polish & Release (Weeks 11–12) | |
| 118 | + | ||
| 119 | + | | # | Task | Details | | |
| 120 | + | |---|------|---------| | |
| 121 | + | | 4.1 | **Auto-start with OS** | Registry key (Win), `.desktop` file (Linux), `LaunchAgent` (macOS). | | |
| 122 | + | | 4.2 | **System Tray Menu** | "Show", "Mute", "Disconnect", "Open Timer", "Open Kanban", "Exit". | | |
| 123 | + | | 4.3 | **Backup / Restore** | One-click export all `user://` settings to `.zip`. Import on new PC. | | |
| 124 | + | | 4.4 | **Accessibility Pass** | High-contrast mode, UI font scaling, screen-reader labels on all controls. | | |
| 125 | + | | 4.5 | **Session Replay** | Record 10s UI interaction replay as JSON for bug reports. | | |
| 126 | + | | 4.6 | **User Documentation** | Expand SUMMARY.md → full user manual. Keyboard shortcut reference. Setup guide per OS. | | |
| 127 | + | | 4.7 | **Export / Packaging** | `godot --export-release` for Windows / Linux / macOS. In-app updater (optional). | | |
| 128 | + | ||
| 129 | + | ### Phase 5 — Differentiators (Ongoing) | |
| 130 | + | ||
| 131 | + | | # | Feature | Description | | |
| 132 | + | |---|---------|-------------| | |
| 133 | + | | 5.1 | Screen recording per monitor | GPU capture, "record this monitor" toggle, export to file. | | |
| 134 | + | | 5.2 | Screenshot + AI annotate | Capture region → send to Ollama → written description. | | |
| 135 | + | | 5.3 | Pomodoro focus mode | 25/5 preset. Auto-pauses AI streaming and network sync during focus. | | |
| 136 | + | | 5.4 | Dark-light auto-switch | Theme tied to system clock (dark after 18:00). | | |
| 137 | + | | 5.5 | Peer presence bar | Avatar strip showing online PCs (reuse `multiplayer.get_peers()`). | | |
| 138 | + | | 5.6 | Voice commands | "Hey, paste the last email" → VAD → match snippet → paste. | | |
| 139 | + | | 5.7 | Shared timer countdown | Timer on PC-A shows live on PC-B. Sync `end_timestamp` over network. | | |
| 140 | + | | 5.8 | Calendar view | Timers/inventory deadlines on a mini monthly calendar. | | |
| 141 | + | | 5.9 | CSV export | Timer/inventory state as CSV for spreadsheet tracking. | | |
| 142 | + | | 5.10 | Low-stock alerts | Inventory item below threshold → red flag on all PCs. | | |
| 143 | + | ||
| 144 | + | --- | |
| 145 | + | ||
| 146 | + | ## Architecture Notes | |
| 147 | + | ||
| 148 | + | ``` | |
| 149 | + | ┌─────────────────────────────────────────────────────────────────────┐ | |
| 150 | + | │ MainUI / GridUI (Root) │ | |
| 151 | + | │ ┌───────────────────────────────────────────────────────────────┐ │ | |
| 152 | + | │ │ TabBar / Grid Toolbar │ │ | |
| 153 | + | │ └───────────────────────────────────────────────────────────────┘ │ | |
| 154 | + | │ ┌───────────────────────────────────────────────────────────────┐ │ | |
| 155 | + | │ │ TabContainer / Content Area │ │ | |
| 156 | + | │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ | |
| 157 | + | │ │ │ AI Chat │ │ Editor │ │ Network │ │ Timer │ ... │ │ | |
| 158 | + | │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │ | |
| 159 | + | │ └───────────────────────────────────────────────────────────────┘ │ | |
| 160 | + | │ ┌───────────────────────────────────────────────────────────────┐ │ | |
| 161 | + | │ │ Engines (Nodes) │ │ | |
| 162 | + | │ │ clipboard_engine │ ai_engine │ video_engine │ audio_engine │ │ | |
| 163 | + | │ │ mic_engine │ web_engine │ time_engine │ inventory_engine │ │ | |
| 164 | + | │ │ ui_engine │ top_engine │ tab_engine │ voip_engine │ │ | |
| 165 | + | │ └───────────────────────────────────────────────────────────────┘ │ | |
| 166 | + | └─────────────────────────────────────────────────────────────────────┘ | |
| 167 | + | ||
| 168 | + | Network Layer: ENet (MultiplayerPeer) + AES-256 (AESContext) | |
| 169 | + | Persistence: ConfigFile (*.cfg) + JSON (*.json) + CSV (timers/inventory) | |
| 170 | + | Theme: ThemeSerializer (compressed JSON, hex colors, FastLZ) | |
| 171 | + | ``` | |
| 172 | + | ||
| 173 | + | --- | |
| 174 | + | ||
| 175 | + | ## Supported Platforms | |
| 176 | + | ||
| 177 | + | | OS | Clipboard | Audio | Idle Detection | Network | | |
| 178 | + | |----|-----------|-------|----------------|---------| | |
| 179 | + | | Windows | ✅ | WASAPI | GetLastInputInfo (P/Invoke) | ENet | | |
| 180 | + | | macOS | ✅ | CoreAudio | IOHIDSystem (ioreg) | ENet | | |
| 181 | + | | Linux | ✅ | PipeWire/PulseAudio | D-Bus (Mutter/KWin) / xprintidle | ENet | | |
| 182 | + | ||
| 183 | + | --- | |
| 184 | + | ||
| 185 | + | ## Keyboard Shortcuts (Planned) | |
| 186 | + | ||
| 187 | + | | Shortcut | Action | | |
| 188 | + | |----------|--------| | |
| 189 | + | | `Ctrl+K` | Command Palette | | |
| 190 | + | | `Ctrl+Shift+V` | Clipboard History (cross-PC) | | |
| 191 | + | | `Ctrl+1..4` | Snap to quadrant | | |
| 192 | + | | `Ctrl+Shift+Left/Right` | Snap to half | | |
| 193 | + | | `Ctrl+L` | Cycle saved layouts | | |
| 194 | + | | `Ctrl+W` / `close_tab` | Close current tab | | |
| 195 | + | | `Ctrl+T` / `new_tab` | New tab | | |
| 196 | + | | `Ctrl+Tab` / `Ctrl+Shift+Tab` | Next / Previous tab | | |
| 197 | + | ||
| 198 | + | --- | |
| 199 | + | ||
| 200 | + | ## Why This Saves Time | |
| 201 | + | ||
| 202 | + | | Pain Point | Solution | Time Saved | | |
| 203 | + | |------------|----------|------------| | |
| 204 | + | | Copy on PC-A, walk to PC-B, paste | Cross-PC clipboard sync | 30s–2min per transfer | | |
| 205 | + | | Re-type same email/snippet on each machine | Snippet library + one-click paste | 1–5min per repetition | | |
| 206 | + | | "Where did I save that file?" | Shared workspace + cross-PC search | 5–15min per search | | |
| 207 | + | | Set up different configs per monitor | Monitor layout memory + auto-restore | 5–10min per session | | |
| 208 | + | | Explain code to colleague on another screen | AI explain + share to all PCs | 5–10min per explanation | | |
| 209 | + | | Track physical inventory across desk drawers | Shared inventory with expiry alerts | Ongoing | | |
| 210 | + | | "Did I finish that task?" | Shared Kanban visible on all PCs | 2–5min per check | | |
| 211 | + | | Context-switch between 4 monitors on 2 PCs | Window tiling + input mirroring | 1–3min per switch | | |
| 212 | + | ||
| 213 | + | --- | |
| 214 | + | ||
| 215 | + | ## Contribution Guidelines | |
| 216 | + | ||
| 217 | + | 1. Read `AIFIX.md` for Godot 4.6 API corrections before editing. | |
| 218 | + | 2. Follow the `*_engine.gd` / `*_ui.gd` naming convention. | |
| 219 | + | 3. All new UI must handle tab-switch cleanup (check for existing wrapper before adding). | |
| 220 | + | 4. Network changes must go through `clipboard_engine.gd` RPC pattern (or the new `MultiplayerChannel` helper). | |
| 221 | + | 5. Theme changes must flow through `ui_engine.gd` → `MainUI.apply_full_theme()`. | |
| 222 | + | 6. Run tests: `godot --headless -s res://addons/gut/gut_cmdln.gd -gdir=res://tests` | |
| 223 | + | ||
| 224 | + | --- | |
| 225 | + | ||
| 226 | + | ## License & Attribution | |
| 227 | + | ||
| 228 | + | Open-source. See repository for license file. Built with ❤️ and too much coffee. ☕ | |