jgrusewski
463b2cd130
refactor(fxt): complete TLI→FXT rename + fix token storage panic
...
- Rename TliConfig→FxtConfig, TliError→FxtError, TliResult→FxtResult
- Migrate token storage path foxhunt-tli→foxhunt-fxt with auto-migration
- Fix FileTokenStorage::Default panic (fallback to /tmp on missing HOME)
- Update all doc comments, login prompt, config.toml.example, env vars
- Update keyring service names foxhunt-tli-access→foxhunt-fxt-access
- Add TOKEN_REFRESH_BUFFER_SECS named constant
- Add clarifying comments for JWT dummy key and IBKR default client ID
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 14:43:07 +01:00
jgrusewski
5fe3608d92
fix(fxt,infra): production hardening — OTLP telemetry, TUI fixes, K8s infra
...
- Remove opentelemetry-otlp internal-logs feature (OTLP feedback loop)
- Switch trace sampling from AlwaysOn to 10% ratio-based
- Add RUST_LOG filtering (opentelemetry/h2/tonic/hyper=warn) to all 8 services
- Wire per-service latency measurement via health check → proto metadata → TUI
- Replace Vec::remove(0) with VecDeque ring buffers (O(1) vs O(n))
- Add Arc<AtomicBool> connected_sent for first-connected detection across 12 streams
- Add MAX_RECONNECT_ATTEMPTS (10) uniformly to all stream spawners
- Change kill switch/circuit breaker fields to Option types with N/A display
- Wire data_cache to real download status stream, remove dead cluster_events
- Remove ServiceData::new() hardcoded stubs, add honest placeholders
- Fix nanos_to_hms zero/negative guard, total_records semantic fix
- Fix RwLock held across yield in broker_gateway stream_account_state
- Add break after yield Err in broker/trading stream generators
- Fix connected_at advancing per tick in stream_session_status
- Tempo: replace emptyDir with 10Gi PVC, bump memory to 512Mi/2Gi
- Remove Prometheus gitlab-annotated-pods duplicate scrape job
- Wire 6 new gRPC streaming adapters (risk, trading, ml, data-acquisition)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:39:56 +01:00
jgrusewski
609f533abc
feat: implement all 15 fxt CLI commands with real gRPC calls
...
- 13 commands with full gRPC implementations: service, train, tune,
model, trade, broker, agent, data, risk, config, cluster, auth, backtest
- Streaming support: train logs --follow, broker executions --follow
- --json output on every command via OutputFormat/HumanReadable
- Fix web-gateway monitoring URL default (50057 → 50051, API Gateway)
- Rewire 7 remaining build.rs to consolidated proto/ root (web-gateway,
backtesting_service, training_uploader, 3 test crates, e2e)
- Fix web-gateway ml_training.proto new fields (mode, max_epochs, resume)
- 75 fxt tests + 139 web-gateway tests, 0 clippy warnings, workspace clean
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 22:16:35 +01:00
jgrusewski
eed268c230
chore: update Cargo.lock and regenerated e2e proto
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 02:02:20 +01:00
jgrusewski
2fbb19d9df
refactor(ml): rename real_data_loader to data_loader
...
The real_ prefix was misleading — there is no fake data loader.
Mechanical rename across 18 source files, no logic changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 15:41:23 +01:00
jgrusewski
2aedc2ae1a
feat(ml): comprehensive GPU saturation audit — 58 fixes across all 10 models
...
Phase 1 — Fix broken models (P0):
- Diffusion: wire optimizer_step to actually apply gradients (was no-op)
- TLOB: connect forward pass to projection layers (was Tensor::zeros)
- Mamba2: F64→F32 migration across 5 files (~30x faster on L40S tensor cores)
Phase 2 — Eliminate hot-path GPU sync stalls:
- Mamba2: keep dt on GPU in discretize_ssm (4 functions, no CPU round-trip)
- TFT: gate attention weight logging to eval only (8 syncs/forward eliminated)
- Mamba2: defer loss scalar after backward (pipeline stall removed)
- Mamba2: delete dead gradient clipping (4N wasted GPU syncs removed)
Phase 3 — Enable BF16 for supervised models:
- Flip mixed_precision defaults to true in 4 config locations
- Fix cuda_layer_norm to support BF16/F16 via F32 intermediate
Phase 4 — Raise hyperopt bounds for datacenter GPUs:
- 7 adapters with VRAM-aware tiers (TFT, Liquid, TGGN, KAN, xLSTM,
Diffusion, TLOB) — L40S gets full hidden_dim range
- Fix L40S tier boundary (was excluded at <48000, now >=40000)
Phase 5 — Update memory estimates:
- 10 param_count estimates updated (DQN 200K→12M, TFT 2M→50M, etc.)
- Fix power-of-two rounding (was wasting up to 49% of budget)
- Correct MODEL_OVERHEAD_MB in DQN/PPO/TFT adapters
Phase 6 — Fix per-epoch CPU bottlenecks:
- PPO: deduplicate double advantage normalization (correctness fix)
- PPO: GPU tensor reward normalization + explained variance
- Fuse per-parameter grad norm to single GPU sync (xLSTM, KAN, TGGN)
Phase 7 — Data pipeline:
- GpuBufferPool: use from_slice (eliminate staging buffer copy)
Phase 8 — Correctness:
- TFT: remove broken .detach() in forward_checkpointed (restore gradients)
- Update stale RTX 3050 Ti doc references
33 files changed, 2451 tests pass, 0 clippy warnings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 15:41:23 +01:00
jgrusewski
e2a0576ef5
docs: create/update README.md for all services, CLI, and testing crates
...
Create 3 missing service READMEs (api_gateway, data_acquisition_service,
trading_agent_service). Create bin/fxt/README.md. Create
testing/service-integration/README.md. Update existing service and testing
READMEs to standard template. Delete 4 subdirectory READMEs from
testing/integration/ and testing/e2e/.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 22:50:38 +01:00
jgrusewski
4a1add5806
cleanup: delete 92 scattered .md files and .serena artifacts
...
Remove stale test reports, quick-start guides, benchmark analyses,
profiling reports, and tool artifacts from across the workspace.
Keeps only root README.md per crate/service.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-01 22:42:36 +01:00
jgrusewski
afd85b2f8f
chore: clean up examples, update ML binaries and risk tests
...
- Delete 14 unused example files (-3,543 lines): config, adaptive-strategy,
data, storage, trading_engine, api_gateway, backtesting, trading_service, chaos
- Update ML training/eval binaries: improved CLI args, completion tracking,
CUDA test cleanup, hyperopt enhancements
- Fix KAN network and TFT module adjustments
- Update risk test assertions for consistency
- Fix backtesting repositories and promotion manager
- Update .serena project config and Cargo dependencies
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-27 01:33:18 +01:00
jgrusewski
de8d7b86f8
chore: commit generated proto stubs for on-demand training RPCs
...
The e2e test crate uses pre-generated proto code (no build.rs).
Missing stubs for: ReportJobCompletion, ListPendingPromotions,
ApprovePromotion, RejectPromotion + message types.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 13:55:40 +01:00
jgrusewski
d7f11449f4
fix(e2e): mark infrastructure-dependent tests as #[ignore]
...
E2E framework tests require running services (database, JWT, ML
pipeline) that aren't available in CI unit test stage.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 14:00:49 +01:00
jgrusewski
9c3d741a08
refactor: restructure repo — crates/, bin/, testing/ layout
...
Move 17 library crates into crates/, CLI binary into bin/fxt,
consolidate 10 test crates into testing/, split config crate
from deployment config files.
Root directory reduced from 38+ to ~17 directories.
All Cargo.toml paths and build.rs proto refs updated.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-25 11:56:00 +01:00