Commit Graph

28 Commits

Author SHA1 Message Date
WquGuru
97797d3c3a fix(ci): add test encryption key for CI environment (#826)
* fix(ci): add test encryption key for CI environment

- Add DATA_ENCRYPTION_KEY environment variable to PR test workflow
- Add test RSA public key for encryption tests in CI
- Ensures unit tests pass in CI without production credentials

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* fix(ci): install Go cover tool to eliminate covdata warnings

- Add step to install golang.org/x/tools/cmd/cover in CI workflow
- Use || true to prevent installation failure from breaking CI
- Eliminates "no such tool covdata" warnings during test execution
- Apply go fmt to multiple files for consistency

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* fix(ci): install covdata tool for Go 1.23 coverage

The CI was failing with "go: no such tool 'covdata'" error.
This is because Go 1.23 requires the covdata tool to be installed
for coverage reporting.

Changes:
- Install golang.org/x/tools/cmd/covdata in CI workflow
- Update step name to reflect both coverage tools being installed

Fixes the unit test failures in CI pipeline.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>

* fix(ci): remove unnecessary covdata installation and use builtin go tool cover

The previous attempt to install golang.org/x/tools/cmd/covdata was failing
because the package structure changed in Go 1.23 and tools v0.38.0.

The covdata tool is not needed for this project since we only use simple
coverage reporting with go test -coverprofile. The go tool cover command
is built into the Go toolchain and requires no additional installation.

Changes:
- Remove failed covdata and cover installation attempts
- Add verification step for go tool cover availability
- Simplify CI pipeline by eliminating unnecessary dependencies

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* fix(ci): upgrade Go version to 1.25 to match go.mod declaration

The CI was using Go 1.23 while go.mod declares go 1.25.0, causing
"no such tool covdata" errors during coverage test compilation.
Go 1.25's coverage infrastructure requires toolchain features not
available in Go 1.23.

This change aligns the CI Go version with the project's declared
version requirement, ensuring the full Go 1.25 toolchain (including
the covdata tool) is available for coverage testing.

Co-authored-by: tinkle-community <tinklefund@gmail.com>

---------

Co-authored-by: tinkle-community <tinklefund@gmail.com>
2025-11-09 18:40:03 +08:00
WquGuru
ae09647468 test(trader): add comprehensive unit tests and CI coverage reporting (#823)
* chore(config): add Python and uv support to project

- Add comprehensive Python .gitignore rules (pycache, venv, pytest, etc.)
- Add uv package manager specific ignores (.uv/, uv.lock)
- Initialize pyproject.toml for Python tooling

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* chore(deps): add testing dependencies

- Add github.com/stretchr/testify v1.11.1 for test assertions
- Add github.com/agiledragon/gomonkey/v2 v2.13.0 for mocking
- Promote github.com/rs/zerolog to direct dependency

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* ci(workflow): add PR test coverage reporting

Add GitHub Actions workflow to run unit tests and report coverage on PRs:
- Run Go tests with race detection and coverage profiling
- Calculate coverage statistics and generate detailed reports
- Post coverage results as PR comments with visual indicators
- Fix Go version to 1.23 (was incorrectly set to 1.25.0)

Coverage guidelines:
- Green (>=80%): excellent
- Yellow (>=60%): good
- Orange (>=40%): fair
- Red (<40%): needs improvement

This workflow is advisory only and does not block PR merging.

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* test(trader): add comprehensive unit tests for trader modules

Add unit test suites for multiple trader implementations:
- aster_trader_test.go: AsterTrader functionality tests
- auto_trader_test.go: AutoTrader lifecycle and operations tests
- binance_futures_test.go: Binance futures trader tests
- hyperliquid_trader_test.go: Hyperliquid trader tests
- trader_test_suite.go: Common test suite utilities and helpers

Also fix minor formatting issue in auto_trader.go (trailing whitespace)

Co-authored-by: tinkle-community <tinklefund@gmail.com>

* test(trader): preserve existing calculatePnLPercentage unit tests

Merge existing calculatePnLPercentage tests with incoming comprehensive test suite:
- Preserve TestCalculatePnLPercentage with 9 test cases covering edge cases
- Preserve TestCalculatePnLPercentage_RealWorldScenarios with 3 trading scenarios
- Add math package import for floating-point precision comparison
- All tests validate PnL percentage calculation with different leverage scenarios

Co-authored-by: tinkle-community <tinklefund@gmail.com>

---------

Co-authored-by: tinkle-community <tinklefund@gmail.com>
2025-11-09 17:43:28 +08:00
SkywalkerJi
05957cccf5 fix: Increase Docker build speed by 98%. (#545)
* Resolved front-end linting issues.

* Streamlining Docker Build Scripts

* Leveraging Native ARM64 Runners on GitHub.

* Use lowercase framework names.
2025-11-05 22:24:56 +08:00
vicnoah
f1e2eadd66 ci(docker): 添加Docker镜像构建和推送的GitHub Actions工作流 (#124)
* ci(docker): 添加Docker镜像构建和推送的GitHub Actions工作流

- 支持在main和develop分支及版本标签的push事件触发
- 支持Pull Request事件及手动触发工作流
- 配置了backend和frontend两个镜像的构建策略
- 使用QEMU和Docker Buildx实现多平台构建(amd64和arm64)
- 集成GitHub Container Registry和Docker Hub登录
- 自动生成镜像元数据和多标签支持
- 支持基于GitHub Actions缓存提升构建速度
- 实现根据事件类型自动决定是否推送镜像
- 输出构建完成的镜像摘要信息

* Update Docker Hub login condition in workflow

* Fix Docker Hub login condition in workflow

* Simplify Docker Hub login step

Removed conditional check for Docker Hub username.

* Change branch names in Docker build workflow

* Update docker-build.yml
2025-11-05 16:55:09 +08:00
zbhan
43816cc073 Fix PR tpl 2025-11-04 16:05:29 -05:00
zbhan
c851e1c7cd feat(templates): add intelligent PR template selection system
- Created specialized PR templates for different change types:
  - Backend template for Go/API changes
  - Frontend template for UI/UX changes
  - Documentation template for docs updates
  - General template for mixed changes
- Simplified default template from 270 to 115 lines
- Added GitHub Action for automatic template suggestion based on file types
- Auto-labels PRs with appropriate categories (backend/frontend/documentation)
- Provides friendly suggestions when default template is used

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-11-04 15:52:01 -05:00
tinkle-community
3843ed4842 Merge pull request #389 from NoFxAiOS/beta
Fix:fix the main branch history issue from November 3rd.
2025-11-04 11:22:10 +08:00
zbhan
9a2991fd92 Fix owner 2025-11-03 21:06:25 -05:00
zbhan
f92d0cbe83 fix owner 2025-11-03 20:56:16 -05:00
zbhan
0fb9fa8a2e fix(readme): update readme and pr reviewer 2025-11-03 20:50:56 -05:00
zbhan
18d648a411 Fix PR check 2025-11-03 13:12:47 -05:00
Liu Xiang Qian
98d3466836 Revert "Merge pull request #229 from xqliu/test/add-ut-infrastructure"
This reverts commit 683e77b92f, reversing
changes made to 791cecd2ff.
2025-11-04 00:58:12 +08:00
SkywalkerJi
d6daad5708 Merge pull request #229 from xqliu/test/add-ut-infrastructure
test: Add minimal UT infrastructure and fix Issue #227
2025-11-04 00:28:34 +09:00
zbhan
3a62c817b1 fix comment 2025-11-02 22:55:27 -05:00
zbhan
972e5fb21a Fix validation logic 2025-11-02 22:49:43 -05:00
zbhan
8caffefe54 Fix validation 2025-11-02 22:24:31 -05:00
zbhan
fe25327ada Fix backend check 2025-11-02 22:15:45 -05:00
zbhan
7d1b1b9245 Fix validation error 2025-11-02 22:11:24 -05:00
zbhan
397df5e386 fix(workflow): fix github workflow 2025-11-02 21:49:59 -05:00
Luna Martinez
7171ea3912 Change permissions from read to write for contents 2025-11-02 21:15:31 -05:00
Luna Martinez
26a170935a Merge pull request #226 from xqliu/docs/enhance-bug-report-template
docs: Enhance bug report template and add troubleshooting guide
2025-11-02 21:08:32 -05:00
tangmengqiu
3218c8dfcf fix(ci): Add comprehensive permissions to pr-checks workflow
Add workflow-level default permissions and explicit per-job permissions
following the principle of least privilege:

Workflow-level (default):
- contents: read - Read repository contents
- pull-requests: write - Manage PR labels and comments
- issues: write - Manage issues (PRs are issues in GitHub API)

Job-level overrides:
- validate-pr: Inherits workflow defaults (needs issue/PR write access)
- backend-tests: Downgrade to read-only (no write operations needed)
- frontend-tests: Downgrade to read-only (no write operations needed)
- auto-label: Add missing issues:write (labeler operates on PR issues)
- security-check: Add security-events:write (upload SARIF results)
- secrets-check: Downgrade to read-only (scanning only)
- all-checks: Downgrade to read-only (status checking only)

This fixes:
1. Potential 403 errors when auto-label tries to add labels to PR issues
2. Missing permission for uploading security scan results
3. Overly permissive access for read-only jobs

Related: #282

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-11-02 18:23:28 -05:00
Liu Xiang Qian
1fdf8142da test: Add minimal UT infrastructure and fix Issue #227
This commit sets up a minimal, KISS-principle testing infrastructure
for both backend and frontend, and includes the fix for Issue #227.

Backend Changes:
- Add Makefile with test commands (test, test-backend, test-frontend, test-coverage)
- Add example test: config/database_test.go
- Fix Go 1.25 printf format string warnings in trader/auto_trader.go
  (Changed log.Printf to log.Print for non-format strings)
- All backend tests pass ✓

Frontend Changes:
- Add Vitest configuration: web/vitest.config.ts (minimal setup)
- Add test utilities: web/src/test/test-utils.tsx
- Add example test: web/src/App.test.tsx
- Add dependencies: vitest, jsdom, @testing-library/react
- All frontend tests pass ✓

Issue #227 Fix:
- Fix AITradersPage to allow editing traders with disabled models/exchanges
- Change validation to use allModels/allExchanges instead of enabledModels/enabledExchanges
- Add comprehensive tests in web/src/components/AITradersPage.test.tsx
- Fixes: https://github.com/tinkle-community/nofx/issues/227

CI/CD:
- Add GitHub Actions workflow: .github/workflows/test.yml
- Non-blocking tests (continue-on-error: true)
- Runs on push/PR to main and dev branches

Test Results:
- Backend: 1 test passing
- Frontend: 5 tests passing (including 4 for Issue #227)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-11-02 10:58:31 +08:00
zbhan
8d172d0993 fix: github workflow permission 2025-11-01 22:25:32 -04:00
Liu Xiang Qian
b27bad4d74 docs: Enhance bug report template and add comprehensive troubleshooting guide
- Enhanced bug report template with detailed log capture instructions
  - Added bug categorization system (6 main categories)
  - Frontend error capture guide (DevTools Console/Network tabs)
  - Backend log capture for Docker and PM2 deployments
  - Trading/decision logs location and usage
  - Comprehensive environment information checklist
  - Quick diagnostic tips for faster issue resolution

- Created bilingual troubleshooting guides (EN/ZH)
  - Common trading issues (e.g., Issue #202: only short positions)
  - Detailed explanation of Binance position mode requirements
  - AI decision problems and diagnostics
  - Connection and API error solutions
  - Frontend and database issues
  - Complete log capture instructions with commands
  - Emergency reset procedures

- Updated documentation cross-references
  - Added troubleshooting guide links to bug report template
  - Added links in README Common Issues section
  - Bilingual support for better accessibility

This reduces maintainer workload by helping users self-diagnose issues
and submit higher-quality bug reports with all necessary information.

Addresses Issue #202 root cause documentation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-11-02 10:19:19 +08:00
zbhan
a1bf54b952 feat: pr validation 2025-11-01 18:25:44 -04:00
zbhan
2351bb95c3 Feat: Update docs
- 重构文档结构
- 更新文档内容
- 制定roadmap
- 提供中/EN 双语文档
2025-11-01 15:05:24 -04:00
tinkle-community
fefb2b7424 Docs: Add bounty templates for Hyperliquid and Aster exchange integration
Add comprehensive bounty documentation to recruit contributors for
exchange integrations:

**New Files:**
- `.github/ISSUE_TEMPLATE/feature_request.md` - GitHub Issue template
- `INTEGRATION_BOUNTY_HYPERLIQUID.md` - Complete Hyperliquid integration spec
- `INTEGRATION_BOUNTY_ASTER.md` - Complete Aster integration spec
- `HOW_TO_POST_BOUNTY.md` - Step-by-step guide for posting bounties

**Bounty Documentation Includes:**
- Clear task requirements and acceptance criteria
- Technical specifications and interface definitions
- File structure and implementation guidelines
- Testing and documentation requirements
- Contribution workflow
- Support resources and community links

**HOW_TO_POST_BOUNTY.md Guide:**
- Two methods to post GitHub Issues (Web UI + GitHub CLI)
- Bounty platform recommendations (Gitcoin, Bountysource, IssueHunt)
- Social media promotion templates (Twitter, Telegram, Reddit)
- Issue management best practices
- Legal and quality control considerations

**Benefits:**
- Standardized contribution process
- Clear technical requirements
- Professional bounty presentation
- Easy for maintainers to post and manage
- Attractive for potential contributors

Ready to recruit developers for multi-exchange support! 🚀

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: tinkle-community <tinklefund@gmail.com>
2025-10-29 19:47:20 +08:00