- Remove dead scoring code (_score_candidate, _action_for, etc.) and
align action decisions directly with score_opportunity_signal metrics.
- Reduce action surface from trigger/setup/chase/skip to entry/watch/avoid.
- Add confidence field (0..100) mapped from edge_score.
- Update evaluate/optimize ground-truth mapping and tests.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Replace hardcoded ticker_24h with ticker_stats supporting configurable window
- Add -w/--window flag to `market tickers` (choices: 1h, 4h, 1d, default 1d)
- Update TUI title and JSON output to include window field
- Keep opportunity/pf service on 1d default
- Sync tests and doc comments
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Write live trades to logs/live/ and dry-run trades to logs/dryrun/
- Add -d/--dry-run flag to catlog to read dry-run audit logs
- List all 16 Binance kline interval options in --help and docs
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove overview/balances/positions subcommands in favor of one
`account` command that returns all balances with an `is_dust` flag.
Add descriptions to every parser and expose -a/--agent and --doc
on all leaf commands for better help discoverability.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add `coinhunter catlog` with limit/offset pagination for audit logs
- Optimize audit log reading with deque to avoid loading all history
- Allow `-a/--agent` flag after subcommands
- Fix upgrade spinner artifact and empty line issues
- Render audit log TUI as timeline with low-saturation event colors
- Convert audit timestamps to local timezone in TUI
- Remove futures-related capabilities
- Add conda environment.yml for development
- Bump version to 2.0.9 and update README
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Delete USDT-M futures support since the user's Binance API key does not
support futures trading. This simplifies the CLI to spot-only:
- Remove futures client wrapper (um_futures_client.py)
- Remove futures trade commands and close position logic
- Simplify account service to spot-only (no market_type field)
- Remove futures references from opportunity service
- Update README and tests to reflect spot-only architecture
- Bump version to 2.0.7
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix TOCTOU race conditions by wrapping read-modify-write cycles
under single-file locks in execution_state, portfolio_service,
precheck_state, state_manager, and precheck_service.
- Add missing test coverage (96 tests total):
- test_review_service.py (15 tests)
- test_check_api.py (6 tests)
- test_external_gate.py main branches (+10 tests)
- test_trade_execution.py new commands (+8 tests)
- Unify all agent-consumed JSON messages to English.
- Config-ize hardcoded values (volume filter, schema_version) via
get_user_config with sensible defaults.
- Add 1-hour TTL to exchange cache with force_new override.
- Add ruff and mypy to dev dependencies; fix all type errors.
- Add __all__ declarations to 11 service modules.
- Sync README with new commands, config tuning docs, and PyPI badge.
- Publish package as coinhunter==1.0.0 on PyPI with MIT license.
- Deprecate coinhunter-cli==1.0.1 with runtime warning.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>