# Changelog – GizerBridge

A development history of GizerBridge, from first prototype to stable release.
Documented to show the real problems solved along the way.

---

## v1.0.0 – First Stable Release (2026-05-22)

### Phase 1 – First Prototype: HTTP Script
- Built initial Python script sending trades via HTTP POST to Tralgo Analytics
- **Problem:** Session cookie missing → HTTP 200 response but nothing appeared in Tralgo
- **Fix:** Manually copied cookie from Firefox → worked
- **Problem:** Cookie expired frequently → required manual copying every session
- **Attempted:** Auto-login with username/password → failed due to 2FA + redirect loop

### Phase 2 – Automatic Cookie Reader
- Implemented automatic cookie extraction from Firefox SQLite database
- **Problem:** Firefox installed as Flatpak stores profile under non-standard path
  (`~/.var/app/org.mozilla.firefox/...` instead of `~/.mozilla/...`)
- **Fix:** Added Flatpak path as fourth search location → resolved

### Phase 3 – GUI Application
- Built full tkinter GUI with system tray, settings window, and manual import
- **Problem:** Tray icon showed as grey square on KDE/Wayland
- **Fix:** Removed pystray dependency, switched to tkinter-only main window
- **Problem:** Date filter failed to detect new log files
- **Root cause:** Bug in filename parser
- **Problem:** Trades imported with wrong date (today's date instead of original)
- **Root cause:** Used `datetime.now()` instead of parsing date from filename
- **Problem:** Times always showed `00:00:00` for historical trades
- **Root cause:** Sierra Chart log files contain no time information → accepted as limitation

### Phase 4 – DTC Protocol Integration
- Pascal (Tralgo support) recommended DTC Protocol over log file parsing
- Sierra Chart DTC server already active on port 11099
- Replaced log file parser with direct TCP connection via DTC Binary Protocol
- **Problem:** Prices transmitted as `raw_value / 100` → showed as `100000.00` in Tralgo
- **Root cause:** Division by 100 missing in auto-monitor function
- **Problem:** Trades sent twice
- **Root cause:** Two app instances running simultaneously
- **Fix:** Enforced single instance

### Phase 5 – Simulation Account Support
- **Problem:** DTC returned empty packets for simulation accounts
- **Attempted fix:** Reactivated log file parser as hybrid fallback for sim accounts
- **Retested:** DTC does deliver sim fills correctly after all → log file parser removed again
- **Result:** DTC-only for all account types (live + sim) → stable

### Phase 6 – Rebrand to GizerBridge
- Renamed app from "Analytics Importer" to **GizerBridge**
- Integrated GizerLabs logo (taskbar icon + header in main window)
- Built distributable Linux AppImage (no installation required)
- Added pystray back with correct KDE/Wayland configuration

---

## Current Status

| Feature | Status |
|---|---|
| Live account trade transfer | ✅ Working |
| Simulation account trade transfer | ✅ Working |
| Real prices and timestamps | ✅ Working |
| Auto-import (real-time) | ✅ Working |
| Manual import (historical trades) | ✅ Working |
| Linux AppImage | ✅ Built and tested |
| GizerLabs branding | ✅ Integrated |
