]> Piment Noir Git Repositories - freqai-strategies.git/log
freqai-strategies.git
23 hours agochore(quickadapter): bump version to 3.13.0-rc.12 fix/causal-continuation-rl-accounting
Jérôme Benoit [Wed, 23 Sep 2026 23:44:03 +0000 (01:44 +0200)] 
chore(quickadapter): bump version to 3.13.0-rc.12

23 hours agofix(ci): restore Ruff import grouping
Jérôme Benoit [Wed, 23 Sep 2026 23:25:42 +0000 (01:25 +0200)] 
fix(ci): restore Ruff import grouping

23 hours agofix(reforcexy): clarify diagnostics and deduplicate leverage warnings
Jérôme Benoit [Wed, 23 Sep 2026 23:20:30 +0000 (01:20 +0200)] 
fix(reforcexy): clarify diagnostics and deduplicate leverage warnings

24 hours agostyle(docs): apply prettier to coverage mapping
Jérôme Benoit [Wed, 23 Sep 2026 22:52:22 +0000 (00:52 +0200)] 
style(docs): apply prettier to coverage mapping

24 hours agofix(reforcexy): report marginal unmasked action probabilities
Jérôme Benoit [Wed, 23 Sep 2026 22:49:11 +0000 (00:49 +0200)] 
fix(reforcexy): report marginal unmasked action probabilities

25 hours agodocs: explain strategy PYTHONPATH in QA
Jérôme Benoit [Wed, 23 Sep 2026 22:17:37 +0000 (00:17 +0200)] 
docs: explain strategy PYTHONPATH in QA

25 hours agorefactor(ci): consolidate strategy QA jobs
Jérôme Benoit [Wed, 23 Sep 2026 22:10:57 +0000 (00:10 +0200)] 
refactor(ci): consolidate strategy QA jobs

25 hours agodocs: describe ReforceXY leverage bounds
Jérôme Benoit [Wed, 23 Sep 2026 21:53:01 +0000 (23:53 +0200)] 
docs: describe ReforceXY leverage bounds

25 hours agofix: harden reward analysis and runtime regressions
Jérôme Benoit [Wed, 23 Sep 2026 21:44:18 +0000 (23:44 +0200)] 
fix: harden reward analysis and runtime regressions

27 hours agostyle(docs): format Markdown with Prettier
Jérôme Benoit [Wed, 23 Sep 2026 19:52:28 +0000 (21:52 +0200)] 
style(docs): format Markdown with Prettier

28 hours agofix(reward): preserve profitable synthetic paths at high fees
Jérôme Benoit [Wed, 23 Sep 2026 19:03:59 +0000 (21:03 +0200)] 
fix(reward): preserve profitable synthetic paths at high fees

29 hours agodocs: complete development table of contents
Jérôme Benoit [Wed, 23 Sep 2026 18:16:21 +0000 (20:16 +0200)] 
docs: complete development table of contents

29 hours agodocs: reconcile strategy guides and invariant ownership
Jérôme Benoit [Wed, 23 Sep 2026 18:02:25 +0000 (20:02 +0200)] 
docs: reconcile strategy guides and invariant ownership

29 hours agofix(reforcexy): preserve second-level continuation and fee extrema
Jérôme Benoit [Wed, 23 Sep 2026 17:24:27 +0000 (19:24 +0200)] 
fix(reforcexy): preserve second-level continuation and fee extrema

31 hours agofix(freqai): bound continuation and correct RL accounting
Jérôme Benoit [Wed, 23 Sep 2026 16:10:47 +0000 (18:10 +0200)] 
fix(freqai): bound continuation and correct RL accounting

34 hours agofix(freqai): preserve restart state correctly
Jérôme Benoit [Wed, 23 Sep 2026 13:10:53 +0000 (15:10 +0200)] 
fix(freqai): preserve restart state correctly

Squash merge PR #274 after all quality and CodeQL checks passed.

2 days agochore(deps): update astral-sh/setup-uv action to v10.2.0 (#273)
renovate[bot] [Tue, 22 Sep 2026 11:32:12 +0000 (13:32 +0200)] 
chore(deps): update astral-sh/setup-uv action to v10.2.0 (#273)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
3 days agochore(deps): update dependency scipy-stubs to v1.18.1.1 (#271) main
renovate[bot] [Mon, 21 Sep 2026 12:14:14 +0000 (14:14 +0200)] 
chore(deps): update dependency scipy-stubs to v1.18.1.1 (#271)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4 days agodocs(reforcexy): align test manifest formatting
Jérôme Benoit [Sun, 20 Sep 2026 14:36:10 +0000 (16:36 +0200)] 
docs(reforcexy): align test manifest formatting

4 days agofix(reforcexy): correct audit findings (#270)
Jérôme Benoit [Sun, 20 Sep 2026 14:31:38 +0000 (16:31 +0200)] 
fix(reforcexy): correct audit findings (#270)

* fix(reforcexy): correct audit findings

* fix(reforcexy): preserve invalid PBRS provenance

* fix(reforcexy): warn on invalid exit modes

4 days agodocs(reforcexy): align manifest table formatting
Jérôme Benoit [Sun, 20 Sep 2026 11:25:15 +0000 (13:25 +0200)] 
docs(reforcexy): align manifest table formatting

4 days agofix(reforcexy): enforce analysis provenance contracts (#269)
Jérôme Benoit [Sun, 20 Sep 2026 11:19:06 +0000 (13:19 +0200)] 
fix(reforcexy): enforce analysis provenance contracts (#269)

* fix(reforcexy): enforce analysis provenance contracts

* refactor(reforcexy): harmonize manifest parameter domains

4 days agostyle: clarify QuickAdapter smoothing comments
Jérôme Benoit [Sat, 19 Sep 2026 23:36:40 +0000 (01:36 +0200)] 
style: clarify QuickAdapter smoothing comments

5 days agorefactor: centralize QuickAdapter support policies
Jérôme Benoit [Sat, 19 Sep 2026 23:09:41 +0000 (01:09 +0200)] 
refactor: centralize QuickAdapter support policies

5 days agorefactor: document QuickAdapter option indexes
Jérôme Benoit [Sat, 19 Sep 2026 22:50:23 +0000 (00:50 +0200)] 
refactor: document QuickAdapter option indexes

* refactor: document QuickAdapter option indexes

* style: harmonize QuickAdapter index comments

* fix: remove index annotation from label docstring

* fix: remove duplicate QuickAdapter index comments

* fix: remove repeated smoothing annotation

* fix: remove duplicate wrap annotation

* refactor: deduplicate QuickAdapter label annotations

* fix: complete QuickAdapter index annotations

5 days agochore: update Serena project configuration
Jérôme Benoit [Sat, 19 Sep 2026 21:41:11 +0000 (23:41 +0200)] 
chore: update Serena project configuration

5 days agofix(reforcexy): align training, inference and reward analysis contracts
Jérôme Benoit [Sat, 19 Sep 2026 21:36:04 +0000 (23:36 +0200)] 
fix(reforcexy): align training, inference and reward analysis contracts

* fix(reforcexy): account for portfolio transition returns

* fix(reforcexy): align training inference and reward analysis contracts

* fix(reforcexy): resolve statistical reporting and type-narrowing findings

- BH correction filters undefined p-values out of the finite family;
  non-applicable tests keep significant flags None and NaN adjusted values.
- Bootstrap percentile CIs validate finite ordered bounds only; constants
  keep exact degenerate bounds in both diagnostic modes without widening.
- Distribution diagnostics mark constant columns as N/A (skewness/kurtosis
  None, normality tests and Q-Q omitted) and reject fabricated fallbacks.
- Explicit independent_observations contract across hypothesis tests,
  bootstrap, shift metrics and report sections; trajectory report is
  descriptive (no inferential p-values/CIs unless declared independent).
- Distribution shift computes exact ks_2samp statistics on raw values;
  KS p-value reported only for independent observations.
- PBRS certification requires ordered-episode evidence: local identity
  F = gamma*next - prev, continuity, discounted boundary residual;
  non-canonical configurations are never certified from raw sums.
- Report renders actual bootstrap resample count, independent sections
  and N/A constant rows; transforms rename bounded asinh to softsign_sqrt
  without aliases; loss-potential bound docs corrected.
- Narrow Optional callback/env/attr types and force float arrays so the
  BasedPyright snapshot holds 142 diagnostics; ruff clean.

* docs(reforcexy): align HPO continuation contract with merged behavior

* fix(reforcexy): harden inference contracts and reward accounting

Isolate deployed policy on continuation, account open positions at
terminal liquidation, guarantee Python bool terminated, handle OHLC
drop without holdout, prune no-learning DQN trials, preserve replay
buffer and chronology across restarts and splits, propagate complete
observation validity, reset temporal caches on discontinuities, fix
terminal neutral potential in analysis, align history events with
transitions, enforce loss amplification threshold, honor simulated
unrealized PnL, keep idle duration past threshold, reject missing
real_episodes files and unknown overrides. Transport inference dates
through dk.data_dictionary with explicit length alignment guard.

* fix(reforcexy): address review follow-ups

* refactor(reforcexy): consolidate constants and helpers

* fix(reforcexy): close review follow-ups

* fix(reforcexy): address final review findings

* fix(reforcexy): apply final review corrections

* fix(reforcexy): harmonize diagnostic messages

* fix(reforcexy): clarify remaining diagnostics

* fix(reforcexy): align simulated pnl trajectories

* refactor(reforcexy): align replay pair terminology

* refactor(reforcexy): require explicit entry pnl

* fix: remove ReforceXY legacy compatibility paths

* fix: address PBRS review findings

6 days agostyle(reforcexy): harmonize all log/error message prefixes to '<Component> [<scope...
Jérôme Benoit [Fri, 18 Sep 2026 16:32:23 +0000 (18:32 +0200)] 
style(reforcexy): harmonize all log/error message prefixes to '<Component> [<scope>]:' (#264)

Exhaustive audit of ReforceXY.py messages: 144/148 now follow the
dominant '<Component> [<scope>]:' convention.

Ported (QuickAdapter PR #261) messages reprefixed:
- Training [%s]: cannot continue / continuing deployment / RL
  preprocessing / model-on info log / warmup (Live [%s]:).
- Training banners converted to 'Training [%s]: starting|completed'
  (were asymmetric '----Starting/done training----' separators).

Pre-existing non-scoped messages reprefixed:
- Repair [global]: FreqAI prediction repair synchronous-drawer guard.
- Journal [%s]: corrupt-journal quarantine warning.
- Hyperopt [global]: best-params lock/path filesystem invariants.

Remaining 4 are by-design, not user-facing message-convention items:
- 3 internal 'persisted ...' ValueErrors are immediately re-raised by
  the conforming 'Training [%s]: cannot continue ...' DependencyException
  wrapper; prefixing them would double-scope the surfaced text.
- FileExistsError(path) carries no literal message.

Line-count neutral: BasedPyright ReforceXY snapshot unaffected.

6 days agofix(reforcexy): port applicable QuickAdapter PR #261 fixes (#263)
Jérôme Benoit [Fri, 18 Sep 2026 15:23:00 +0000 (17:23 +0200)] 
fix(reforcexy): port applicable QuickAdapter PR #261 fixes (#263)

* fix(reforcexy): port applicable QuickAdapter PR #261 fixes

- Align prediction history to requested candle dates and exact strategy
  indexes (recorded/produced provenance, dedupe, exact-index attach).
- Freeze deployment feature coordinates for continual learning with
  independent cache/disk state restoration and explicit rejection of
  legacy or incompatible artifacts.
- Keep raw OHLC environment prices out of feature preprocessing; cold
  HPO trials use fresh candidate pipelines while the final continuation
  reuses the frozen deployment pipeline on the raw split.
- Return the current finite evaluation best checkpoint (best_model.zip)
  with final-policy fallback.
- Optional per-pair produced-observation action statistics with session
  warmup, numeric coercion and population standard deviation.
- Refresh BasedPyright snapshot; 2 argument-type errors resolved.

* fix(reforcexy): align resumed gamma and invalidate incompatible HPO state

* docs(reforcexy): clarify continuation and objective compatibility

* docs(reforcexy): condense continuation guidance

* fix(reforcexy): preserve replay buffer on best checkpoint selection

* chore(reforcexy): refresh basedpyright snapshot positions

6 days agofix(quickadapter): resolve initial and comprehensive review findings (#261)
Jérôme Benoit [Fri, 18 Sep 2026 14:36:25 +0000 (16:36 +0200)] 
fix(quickadapter): resolve initial and comprehensive review findings (#261)

* fix(quickadapter): resolve six initial review findings

* fix(quickadapter): preserve nonnegative trade volatility

* fix(quickadapter): align prediction history and guard deployment state

* docs(quickadapter): align prose with current behavior

* chore(quickadapter): refresh basedpyright snapshot positions

* fix(quickadapter): remove unreleased selection schema increments

* docs(quickadapter): remove redundant versioning commentary

* docs(quickadapter): clarify schema version release boundary

* fix(quickadapter): slice label weights before normalization

* style(quickadapter): harmonize log message capitalization

* fix(quickadapter): validate original weights before projection fallback

* docs(quickadapter): clarify weight validation and normalization order

* chore(quickadapter): bump release candidate to 3.13.0-rc.10

6 days agoMerge pull request #260 from jerome-benoit/docs/quickadapter-backtest-protocol
Jérôme Benoit [Fri, 18 Sep 2026 11:59:41 +0000 (13:59 +0200)] 
Merge pull request #260 from jerome-benoit/docs/quickadapter-backtest-protocol

docs(quickadapter): clarify backtest evaluation protocol

6 days agodocs(quickadapter): correct Freqtrade 2026.8 source anchors
Jérôme Benoit [Fri, 18 Sep 2026 11:42:39 +0000 (13:42 +0200)] 
docs(quickadapter): correct Freqtrade 2026.8 source anchors

7 days agodocs(quickadapter): clarify backtest evaluation protocol
Jérôme Benoit [Thu, 17 Sep 2026 22:43:54 +0000 (00:43 +0200)] 
docs(quickadapter): clarify backtest evaluation protocol

7 days agoMerge pull request #259 from jerome-benoit/fix/forcexy-fit-live-predictions-validation
Jérôme Benoit [Thu, 17 Sep 2026 21:53:17 +0000 (23:53 +0200)] 
Merge pull request #259 from jerome-benoit/fix/forcexy-fit-live-predictions-validation

fix(reforcexy): validate optional prediction statistics window

7 days agoMerge branch 'main' into fix/forcexy-fit-live-predictions-validation
Jérôme Benoit [Thu, 17 Sep 2026 21:49:24 +0000 (23:49 +0200)] 
Merge branch 'main' into fix/forcexy-fit-live-predictions-validation

7 days agoMerge pull request #258 from jerome-benoit/fix/quickadapter-review-contracts
Jérôme Benoit [Thu, 17 Sep 2026 21:48:30 +0000 (23:48 +0200)] 
Merge pull request #258 from jerome-benoit/fix/quickadapter-review-contracts

fix(quickadapter): repair reviewed training and selection contracts

7 days agofix(reforcexy): validate optional prediction statistics window
Jérôme Benoit [Thu, 17 Sep 2026 21:32:32 +0000 (23:32 +0200)] 
fix(reforcexy): validate optional prediction statistics window

7 days agodocs(quickadapter): remove operational constraints section
Jérôme Benoit [Thu, 17 Sep 2026 21:00:42 +0000 (23:00 +0200)] 
docs(quickadapter): remove operational constraints section

7 days agodocs(quickadapter): clarify helper contracts and comments
Jérôme Benoit [Thu, 17 Sep 2026 20:55:36 +0000 (22:55 +0200)] 
docs(quickadapter): clarify helper contracts and comments

7 days agorefactor(quickadapter): canonicalize format_dict style literals
Jérôme Benoit [Thu, 17 Sep 2026 20:36:56 +0000 (22:36 +0200)] 
refactor(quickadapter): canonicalize format_dict style literals

7 days agorefactor(quickadapter): replace duplicated domain string literals with canonical...
Jérôme Benoit [Thu, 17 Sep 2026 20:23:14 +0000 (22:23 +0200)] 
refactor(quickadapter): replace duplicated domain string literals with canonical constants

7 days agofix(quickadapter): keep selection schema 3 within the pull request
Jérôme Benoit [Thu, 17 Sep 2026 19:37:39 +0000 (21:37 +0200)] 
fix(quickadapter): keep selection schema 3 within the pull request

7 days agodocs(quickadapter): document selection normalization bounds and schema
Jérôme Benoit [Thu, 17 Sep 2026 19:31:37 +0000 (21:31 +0200)] 
docs(quickadapter): document selection normalization bounds and schema

7 days agofix(quickadapter): harden selection normalization and config bounds
Jérôme Benoit [Thu, 17 Sep 2026 19:31:19 +0000 (21:31 +0200)] 
fix(quickadapter): harden selection normalization and config bounds

7 days agodocs(quickadapter): drop stale selection schema label
Jérôme Benoit [Thu, 17 Sep 2026 18:54:09 +0000 (20:54 +0200)] 
docs(quickadapter): drop stale selection schema label

7 days agofix(quickadapter): invalidate stale label selection state
Jérôme Benoit [Thu, 17 Sep 2026 18:44:00 +0000 (20:44 +0200)] 
fix(quickadapter): invalidate stale label selection state

7 days agofix(quickadapter): enforce reviewed training and trading contracts
Jérôme Benoit [Thu, 17 Sep 2026 18:06:55 +0000 (20:06 +0200)] 
fix(quickadapter): enforce reviewed training and trading contracts

7 days agofix(quickadapter): isolate fitted scalers before and after PCA
Jérôme Benoit [Thu, 17 Sep 2026 17:38:37 +0000 (19:38 +0200)] 
fix(quickadapter): isolate fitted scalers before and after PCA

7 days agofix(quickadapter): preserve zero power mean exponent in label selection
Jérôme Benoit [Thu, 17 Sep 2026 17:20:36 +0000 (19:20 +0200)] 
fix(quickadapter): preserve zero power mean exponent in label selection

_validate_power_mean_p returns 0.0 for p=0 (a finite float accepted by
README), and the falsy fallback silently rewrote it to 1.0, turning the
documented generalized-mean p=0 (geometric) into arithmetic. Use an
explicit None check for the fallback; map-based metrics are unchanged.

Verified in the QA image (Freqtrade 2026.8): p=0 now matches
geometric_mean selection (winner 1, identical distances), while p=None
keeps the arithmetic default.

8 days agoMerge pull request #257 from jerome-benoit/renovate/all-minor-patch
Jérôme Benoit [Wed, 16 Sep 2026 13:10:32 +0000 (15:10 +0200)] 
Merge pull request #257 from jerome-benoit/renovate/all-minor-patch

chore(deps): update dependency pandas-stubs to v3.0.5.260914

8 days agochore(basedpyright): drop resolved reward_space_analysis ExtensionArray.size diagnostic
Jérôme Benoit [Wed, 16 Sep 2026 13:03:45 +0000 (15:03 +0200)] 
chore(basedpyright): drop resolved reward_space_analysis ExtensionArray.size diagnostic

pandas-stubs 3.0.5.260914 resolves the previously-recorded
reportAttributeAccessIssue on ExtensionArray.size at
reward_space_analysis.py:2720, so the accepted ReforceXY snapshot no
longer matches current diagnostics. Remove the stale entry to unblock
the BasedPyright (ReforceXY) required check.

9 days agochore(deps): update dependency pandas-stubs to v3.0.5.260914
renovate[bot] [Tue, 15 Sep 2026 00:22:28 +0000 (00:22 +0000)] 
chore(deps): update dependency pandas-stubs to v3.0.5.260914

11 days agoMerge pull request #256 from jerome-benoit/fix/quickadapter-rpc-custom-data-cleanup
Jérôme Benoit [Sun, 13 Sep 2026 15:48:07 +0000 (17:48 +0200)] 
Merge pull request #256 from jerome-benoit/fix/quickadapter-rpc-custom-data-cleanup

fix(freqai): preserve prediction history and release annotation sessions

11 days agochore(quickadapter): bump version to 3.13.0-rc.9
Jérôme Benoit [Sun, 13 Sep 2026 15:37:02 +0000 (17:37 +0200)] 
chore(quickadapter): bump version to 3.13.0-rc.9

11 days agofix(freqai): align prediction repair across both models
Jérôme Benoit [Sun, 13 Sep 2026 15:17:32 +0000 (17:17 +0200)] 
fix(freqai): align prediction repair across both models

11 days agofix(quickadapter): preserve recorded predictions during history repair
Jérôme Benoit [Sun, 13 Sep 2026 15:03:12 +0000 (17:03 +0200)] 
fix(quickadapter): preserve recorded predictions during history repair

11 days agofix(quickadapter): release annotation RPC custom-data sessions
Jérôme Benoit [Sun, 13 Sep 2026 14:40:42 +0000 (16:40 +0200)] 
fix(quickadapter): release annotation RPC custom-data sessions

12 days agoMerge pull request #255 from jerome-benoit/renovate/all-minor-patch
Jérôme Benoit [Sat, 12 Sep 2026 12:10:57 +0000 (14:10 +0200)] 
Merge pull request #255 from jerome-benoit/renovate/all-minor-patch

chore(deps): update dependency matplotlib to v3.11.2

12 days agochore(deps): update dependency matplotlib to v3.11.2
renovate[bot] [Sat, 12 Sep 2026 02:09:48 +0000 (02:09 +0000)] 
chore(deps): update dependency matplotlib to v3.11.2

13 days agoMerge pull request #254 from jerome-benoit/feat/renovate-basedpyright-snapshot-version
Jérôme Benoit [Fri, 11 Sep 2026 16:56:29 +0000 (18:56 +0200)] 
Merge pull request #254 from jerome-benoit/feat/renovate-basedpyright-snapshot-version

fix(qa): tolerate tool version drift in snapshot comparison

13 days agofix(qa): do not commit check tests
Jérôme Benoit [Fri, 11 Sep 2026 16:29:50 +0000 (18:29 +0200)] 
fix(qa): do not commit check tests

13 days agoMerge branch 'main' into feat/renovate-basedpyright-snapshot-version
Jérôme Benoit [Fri, 11 Sep 2026 16:19:47 +0000 (18:19 +0200)] 
Merge branch 'main' into feat/renovate-basedpyright-snapshot-version

13 days agofix(qa): tolerate tool version drift in snapshot comparison
Jérôme Benoit [Fri, 11 Sep 2026 16:13:16 +0000 (18:13 +0200)] 
fix(qa): tolerate tool version drift in snapshot comparison

Compare snapshots with basedpyrightVersion normalized out: a tool upgrade that changes no diagnostics no longer fails the check. The recorded version stays in snapshots and --write output as provenance, is still validated nonempty on both sides, still appears in the failure diff, and both versions are reported in the success message. Diagnostics, file inventory and schema stay byte-exact, so changed output still fails closed. Covers scripts/test_check_basedpyright.py (stdlib unittest): version-only drift matches, diagnostic change mismatches, empty version and missing key rejected.

13 days agofix(renovate): anchor managed version values to digit-start
Jérôme Benoit [Fri, 11 Sep 2026 16:13:11 +0000 (18:13 +0200)] 
fix(renovate): anchor managed version values to digit-start

Require managed version values to start with a digit in both Dockerfile ARG and compose matchStrings. Kills the false-positive class where any *_version key with a non-version scalar (e.g. latest, stable) becomes a pypi lookup. Verified no-op on the current corpus: identical 26-capture set before/after.

13 days agoMerge pull request #253 from jerome-benoit/renovate/all-minor-patch
Jérôme Benoit [Fri, 11 Sep 2026 14:27:57 +0000 (16:27 +0200)] 
Merge pull request #253 from jerome-benoit/renovate/all-minor-patch

chore(deps): update all non-major dependencies

13 days agochore(qa): refresh BasedPyright snapshots for 1.40.1
Jérôme Benoit [Fri, 11 Sep 2026 14:16:24 +0000 (16:16 +0200)] 
chore(qa): refresh BasedPyright snapshots for 1.40.1

Repin accepted snapshots for the basedpyright 1.40.0 -> 1.40.1 bump. Diagnostics are unchanged in both projects (242 quickadapter / 159 reforcexy) — only the version marker moves. Snapshots generated with the same --pull docker build as CI.

13 days agochore(deps): update all non-major dependencies
renovate[bot] [Fri, 11 Sep 2026 02:58:56 +0000 (02:58 +0000)] 
chore(deps): update all non-major dependencies

2 weeks agoMerge pull request #245 from jerome-benoit/renovate/lock-file-maintenance
Jérôme Benoit [Wed, 9 Sep 2026 13:15:40 +0000 (15:15 +0200)] 
Merge pull request #245 from jerome-benoit/renovate/lock-file-maintenance

chore(deps): lock file maintenance

2 weeks agoMerge branch 'main' into renovate/lock-file-maintenance
Jérôme Benoit [Wed, 9 Sep 2026 13:12:02 +0000 (15:12 +0200)] 
Merge branch 'main' into renovate/lock-file-maintenance

2 weeks agoMerge pull request #252 from jerome-benoit/renovate/all-minor-patch
Jérôme Benoit [Wed, 9 Sep 2026 13:11:46 +0000 (15:11 +0200)] 
Merge pull request #252 from jerome-benoit/renovate/all-minor-patch

chore(deps): update dependency optunahub to v0.5.0

2 weeks agochore(deps): lock file maintenance
renovate[bot] [Wed, 9 Sep 2026 13:08:08 +0000 (13:08 +0000)] 
chore(deps): lock file maintenance

2 weeks agochore(deps): update dependency optunahub to v0.5.0
renovate[bot] [Wed, 9 Sep 2026 13:07:42 +0000 (13:07 +0000)] 
chore(deps): update dependency optunahub to v0.5.0

2 weeks agoMerge pull request #251 from jerome-benoit/style/docker-blank-line
Jérôme Benoit [Wed, 9 Sep 2026 13:07:23 +0000 (15:07 +0200)] 
Merge pull request #251 from jerome-benoit/style/docker-blank-line

style(docker): keep blank line after build args

2 weeks agostyle(docker): keep blank line after build args
Jérôme Benoit [Wed, 9 Sep 2026 13:02:17 +0000 (15:02 +0200)] 
style(docker): keep blank line after build args

2 weeks agoMerge pull request #249 from jerome-benoit/feat/lightgbm-install-version
Jérôme Benoit [Wed, 9 Sep 2026 13:00:03 +0000 (15:00 +0200)] 
Merge pull request #249 from jerome-benoit/feat/lightgbm-install-version

feat(docker): manage lightgbm installation and version

2 weeks agofeat(docker): manage lightgbm installation and version
Jérôme Benoit [Wed, 9 Sep 2026 12:44:02 +0000 (14:44 +0200)] 
feat(docker): manage lightgbm installation and version

2 weeks agoMerge branch 'main' into feat/xgboost-install-version
Jérôme Benoit [Wed, 9 Sep 2026 12:42:19 +0000 (14:42 +0200)] 
Merge branch 'main' into feat/xgboost-install-version

2 weeks agofeat(docker): manage xgboost installation and version
Jérôme Benoit [Wed, 9 Sep 2026 12:30:51 +0000 (14:30 +0200)] 
feat(docker): manage xgboost installation and version

Pin xgboost as a managed build dependency, harmonized with the existing catboost/ngboost pattern: ARG xgboost_version in quickadapter/Dockerfile, matching build arg in docker-compose.yml, and automatic updates via the existing renovate custom regex manager (pypi datasource).

The freqtrade stable_freqai base image ships xgboost 3.2.0; this pins 3.4.1 so the QA and production images track the latest release independently of base image lag. ReforceXY is untouched: it does not use xgboost. BasedPyright snapshots unchanged (242/159 diagnostics verified with the rebuilt QA images).

2 weeks agoMerge pull request #247 from jerome-benoit/renovate/optuna-5.x
Jérôme Benoit [Wed, 9 Sep 2026 12:23:15 +0000 (14:23 +0200)] 
Merge pull request #247 from jerome-benoit/renovate/optuna-5.x

chore(deps): update dependency optuna to v5

2 weeks agochore(deps): update dependency optuna to v5
renovate[bot] [Wed, 9 Sep 2026 11:39:05 +0000 (11:39 +0000)] 
chore(deps): update dependency optuna to v5

2 weeks agoMerge pull request #246 from jerome-benoit/renovate/all-minor-patch
Jérôme Benoit [Wed, 9 Sep 2026 11:38:42 +0000 (13:38 +0200)] 
Merge pull request #246 from jerome-benoit/renovate/all-minor-patch

chore(deps): update dependency basedpyright to v1.40.0

2 weeks agochore(qa): refresh BasedPyright snapshots for 1.40.0
renovate[bot] [Wed, 9 Sep 2026 11:22:48 +0000 (13:22 +0200)] 
chore(qa): refresh BasedPyright snapshots for 1.40.0

Repin accepted snapshots for the basedpyright 1.40.0 bump (pyright 1.1.412). QuickAdapter diagnostics are unchanged; ReforceXY keeps one message-only update from the re-pulled base image (base class step() return dict value inferred as dict[str, float] instead of dict[str, Unknown]) with the same rule, location, and severity. No added or removed diagnostics. Snapshots generated with the same --pull docker build as CI.

2 weeks agochore(deps): update dependency basedpyright to v1.40.0
renovate[bot] [Wed, 9 Sep 2026 01:56:36 +0000 (01:56 +0000)] 
chore(deps): update dependency basedpyright to v1.40.0

3 weeks agochore(qa): refresh BasedPyright snapshots
Jérôme Benoit [Mon, 31 Aug 2026 11:14:58 +0000 (13:14 +0200)] 
chore(qa): refresh BasedPyright snapshots

3 weeks agochore(quickadapter): bump version to 3.13.0-rc.8
Jérôme Benoit [Mon, 31 Aug 2026 11:06:10 +0000 (13:06 +0200)] 
chore(quickadapter): bump version to 3.13.0-rc.8

3 weeks agoMerge pull request #243 from jerome-benoit/renovate/lock-file-maintenance
Jérôme Benoit [Sun, 30 Aug 2026 18:25:39 +0000 (20:25 +0200)] 
Merge pull request #243 from jerome-benoit/renovate/lock-file-maintenance

chore(deps): lock file maintenance

3 weeks agoMerge pull request #242 from jerome-benoit/renovate/all-minor-patch
Jérôme Benoit [Sun, 30 Aug 2026 18:24:21 +0000 (20:24 +0200)] 
Merge pull request #242 from jerome-benoit/renovate/all-minor-patch

chore(deps): update dependency scipy-stubs to v1.18.1.0

3 weeks agochore(deps): lock file maintenance
renovate[bot] [Sun, 30 Aug 2026 18:24:08 +0000 (18:24 +0000)] 
chore(deps): lock file maintenance

3 weeks agochore(deps): update dependency scipy-stubs to v1.18.1.0
renovate[bot] [Sun, 30 Aug 2026 18:23:41 +0000 (18:23 +0000)] 
chore(deps): update dependency scipy-stubs to v1.18.1.0

3 weeks agochore: integrate BasedPyright quality checks (#241)
Jérôme Benoit [Sun, 30 Aug 2026 18:22:06 +0000 (20:22 +0200)] 
chore: integrate BasedPyright quality checks (#241)

* chore: integrate BasedPyright quality checks

* fix: enforce exact BasedPyright diagnostics

* fix: reject malformed type snapshots

* docs: align quality guidance with repository structure

* fix: preserve devcontainer development tooling

* fix: validate BasedPyright result coverage

* fix(quality): harden BasedPyright snapshot gate

* fix(quality): reject symlinked snapshots

* fix(quality): scope QuickAdapter import paths

* fix(quality): track BasedPyright source identities

* fix(reforcexy): provide libatomic in runtime

3 weeks agochore: enforce Ruff across Python projects (#240)
Jérôme Benoit [Sun, 30 Aug 2026 10:55:04 +0000 (12:55 +0200)] 
chore: enforce Ruff across Python projects (#240)

* chore: enforce Ruff across Python projects

* fix(ci): pin Ruff tooling with uvx

* fix(ci): align Ruff tooling semantics

* fix(devcontainer): upgrade persistent Ruff

* fix(quickadapter): preserve validation contracts

* fix(devcontainer): remove redundant Ruff upgrade

3 weeks agoMerge pull request #239 from jerome-benoit/refactor/quickadapter-trade-natr-terminology
Jérôme Benoit [Sat, 29 Aug 2026 21:35:10 +0000 (23:35 +0200)] 
Merge pull request #239 from jerome-benoit/refactor/quickadapter-trade-natr-terminology

refactor(quickadapter): rename trade NATR method

3 weeks agorefactor(quickadapter): rename trade NATR method
Jérôme Benoit [Sat, 29 Aug 2026 21:22:57 +0000 (23:22 +0200)] 
refactor(quickadapter): rename trade NATR method

3 weeks agofix(quickadapter): gate final take-profit on retracement
Jérôme Benoit [Fri, 28 Aug 2026 16:18:38 +0000 (18:18 +0200)] 
fix(quickadapter): gate final take-profit on retracement

Replace the elapsed-time final take-profit exit with a persisted volatility-scaled retracement, harden its state invariants, and harmonize final-exit terminology.

4 weeks agochore(quickadapter): update label_weighting and label_smoothing templates
Jérôme Benoit [Sun, 23 Aug 2026 21:14:34 +0000 (23:14 +0200)] 
chore(quickadapter): update label_weighting and label_smoothing templates

- set label_smoothing method to kaiser_bessel_derived with window_candles 6
- add commented alternative label_weighting example (amplitude strategy,
  epsilon_gaussian fill, knn bandwidth)
- align commented per-label beta example with canonical default (8.0)

4 weeks agoMerge pull request #237 from jerome-benoit/renovate/lock-file-maintenance
Jérôme Benoit [Fri, 21 Aug 2026 13:26:51 +0000 (15:26 +0200)] 
Merge pull request #237 from jerome-benoit/renovate/lock-file-maintenance

chore(deps): lock file maintenance

5 weeks agofeat(reforcexy): add custom_protections property with validation
Jérôme Benoit [Mon, 17 Aug 2026 15:25:33 +0000 (17:25 +0200)] 
feat(reforcexy): add custom_protections property with validation

5 weeks agochore(deps): lock file maintenance
renovate[bot] [Mon, 17 Aug 2026 01:40:06 +0000 (01:40 +0000)] 
chore(deps): lock file maintenance

5 weeks agofeat(scripts): archive previous image before docker-upgrade rebuild
Jérôme Benoit [Sat, 15 Aug 2026 22:41:08 +0000 (00:41 +0200)] 
feat(scripts): archive previous image before docker-upgrade rebuild

5 weeks agofix(scripts): propagate signal exit codes in docker-upgrade lock trap
Jérôme Benoit [Sat, 15 Aug 2026 22:38:19 +0000 (00:38 +0200)] 
fix(scripts): propagate signal exit codes in docker-upgrade lock trap