Commit graph

16 commits

Author SHA1 Message Date
GenX FX Trading System
1cee1f8a4d
🛡️ Sentinel: [MEDIUM] Fix DoS risk in Telegram bot & Improve Output Safety (#449) 2026-02-27 02:35:43 +07:00
GenX FX Trading System
6d74ed9563
Bolt: Optimize Markdown rendering in dashboard (#459) 2026-02-27 02:35:29 +07:00
google-labs-jules[bot]
12d17ab97e 🎨 Palette: Add copy-to-clipboard for system status
- Adds a "Copy" button to "Fly.io App" and "Telegram Bot" status items in `index.html` and `dashboard/index.html`.
- Updates `scripts/web_dashboard.py` to include these status rows with the same copy functionality, ensuring consistency across all dashboard views.
- Implements visual feedback (icon changes to checkmark) and accessibility support (aria-labels) for the copy action.
- Uses inline SVG icons to avoid external dependencies.
- Verified with Playwright and existing tests.
2026-02-26 11:56:51 +00:00
google-labs-jules[bot]
b22e7a6fac Bolt: Optimize Markdown rendering in dashboard
- Replaced `markdown.markdown()` shortcut with reused `markdown.Markdown` instance via `threading.local`.
- Reduced parsing overhead by eliminating re-initialization on every call.
- Verified with unit tests and benchmark (~10% speedup).

Related to performance improvements for dashboard responsiveness.
2026-02-26 05:26:33 +00:00
google-labs-jules[bot]
0f6191a780 Refactor status command to use non-blocking asyncio subprocess and escape HTML output. 2026-02-25 11:48:12 +00:00
copilot-swe-agent[bot]
4609ce90ab Add Jules CLI integration setup and documentation
Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>
2026-02-18 09:17:49 +00:00
google-labs-jules[bot]
a41c83d9b6 🎨 Palette: Improve color contrast and accessibility
- Replaced #667eea with #4f46e5 to meet WCAG AA contrast standards.
- Updated hover color to #4338ca.
- Added aria-label to Service Worker update button.
- Updated manifest.json theme color.
2026-02-13 11:40:16 +00:00
google-labs-jules[bot]
e9918dcb22 docs: update Cloudflare nameservers and unify domain name
- Added daisy.ns.cloudflare.com and rocco.ns.cloudflare.com to Cloudflare guide.
- Unified domain name to lengkundee01.org in CNAME and PWA guide.
- Verified active domain using dig.
- Updated sentinel journal with documentation learnings.
2026-02-13 04:11:32 +00:00
google-labs-jules[bot]
1b82a2865d Optimize branch analysis in PR review script
- Modified `scripts/review_pull_requests.py` to filter `git for-each-ref` output by unmerged branches.
- Reduces algorithmic complexity from O(N) to O(M) where N is total branches and M is active branches.
- Avoids expensive `ahead-behind` calculations for potentially thousands of stale merged branches.
2026-02-09 05:06:55 +00:00
google-labs-jules[bot]
644c00e696 🎨 Palette: Add skip-to-content link for accessibility 2026-02-08 11:20:56 +00:00
google-labs-jules[bot]
9b6778cba0 Fix CRITICAL authorization bypass in Telegram Bot
- Changed `check_authorized` in `scripts/telegram_deploy_bot.py` to fail closed (deny all) if `TELEGRAM_ALLOWED_USER_IDS` is unset or empty.
- Updated `scripts/TELEGRAM_BOT_SETUP.md` and `QUICK_DEPLOY.md` to document that `TELEGRAM_ALLOWED_USER_IDS` is now mandatory for bot access.
- Added Sentinel Journal entry in `.jules/sentinel.md` documenting the vulnerability and learning.
- Verified fix with reproduction script.
2026-02-07 11:33:43 +00:00
google-labs-jules[bot]
ea261ed334 Merge feature branch, cleanup dependencies, and sanitize credentials
Co-authored-by: Mouy-leng <199350297+Mouy-leng@users.noreply.github.com>
2026-01-28 10:24:13 +00:00
google-labs-jules[bot]
85174d9a2b Bolt: Optimize market data fetching with bulk download
- Replaced sequential `yf.Ticker` loop with `yf.download`
- Added logic to handle MultiIndex DataFrame
- Reduced fetch time from ~0.86s to ~0.33s
2026-01-26 05:13:57 +00:00
google-labs-jules[bot]
0c59ee6ed8 Bolt: Reduce syscalls in web dashboard
Replaced `os.path.exists()` + `os.path.getmtime()` with a single `os.stat()` call in `scripts/web_dashboard.py` to reduce syscalls by 50% for cache checks. Also pre-calculated static file paths at module level to avoid redundant `abspath` and `join` calls on every request.

Impact:
- Reduces filesystem operations per request.
- Improves code cleanliness by centralizing path constants.
- Verified with existing tests and manual curl check.
2026-01-23 05:19:37 +00:00
google-labs-jules[bot]
3fe2d901ee
fix(MQL5): Correct off-by-one error in Donchian lookback (#87)
This commit corrects a subtle off-by-one error in the array boundary check for the Donchian channel lookback period.

The original condition `if(donStart + donCount >= needBars)` would incorrectly cause an early exit if the required number of bars for the lookback precisely matched the number of available bars in the array. This prevented valid signals from being processed at the edge of the dataset.

The condition has been changed to `if(donStart + donCount > needBars)`, which is the correct boundary check. This ensures the calculation proceeds when exactly enough data is available and only exits if there is insufficient data, improving the EA's robustness.

This issue was identified during a code review for a separate performance optimization attempt.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-01-11 02:10:59 +07:00
google-labs-jules[bot]
4d34289b02 feat(perf): Cache MTF confirmation to reduce redundant calculations
Implements a caching mechanism for the multi-timeframe (MTF) trend confirmation in `GetMTFDir`.

The trend direction from the lower timeframe is now calculated only when a new bar forms on that timeframe, instead of on every tick of the main chart. The result is cached and returned on subsequent calls until the next lower timeframe bar appears.

This avoids expensive and redundant `CopyBuffer` calls, significantly improving the EA's performance and efficiency, especially when the signal timeframe is much shorter than the confirmation timeframe. Logic was carefully updated to read from the last *completed* bar to prevent any change in trading behavior.
2026-01-07 10:37:51 +00:00