dexbot 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +5 -4
  3. package/analysis/ama_fitting/package.json +1 -1
  4. package/analysis/tradingview/tradingview_uplot_chart_generator.ts +19 -5
  5. package/analysis/trend_detection/package.json +1 -1
  6. package/claw/package.json +1 -1
  7. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  8. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  9. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  10. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -1
  11. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +19 -5
  12. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -1
  13. package/dist/dexbot.js +1 -1
  14. package/dist/dexbot.js.map +1 -1
  15. package/dist/market_adapter/inputs/fetch_book_data.js +2 -2
  16. package/dist/market_adapter/inputs/fetch_book_data.js.map +1 -1
  17. package/dist/market_adapter/inputs/fetch_lp_data.d.ts +22 -3
  18. package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
  19. package/dist/market_adapter/inputs/fetch_lp_data.js +15 -15
  20. package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
  21. package/dist/market_adapter/inputs/kibana_feed_source.js +2 -2
  22. package/dist/market_adapter/inputs/kibana_feed_source.js.map +1 -1
  23. package/dist/market_adapter/inputs/window_cache.d.ts +54 -8
  24. package/dist/market_adapter/inputs/window_cache.d.ts.map +1 -1
  25. package/dist/market_adapter/inputs/window_cache.js +328 -87
  26. package/dist/market_adapter/inputs/window_cache.js.map +1 -1
  27. package/dist/modules/account_bots.js +2 -2
  28. package/dist/modules/account_bots.js.map +1 -1
  29. package/dist/modules/bitshares-native/subscriptions.d.ts +1 -1
  30. package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
  31. package/dist/modules/bitshares-native/subscriptions.js +18 -4
  32. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  33. package/dist/modules/bitshares_client.d.ts.map +1 -1
  34. package/dist/modules/bitshares_client.js +10 -0
  35. package/dist/modules/bitshares_client.js.map +1 -1
  36. package/dist/modules/constants.d.ts +12 -3
  37. package/dist/modules/constants.d.ts.map +1 -1
  38. package/dist/modules/constants.js +66 -20
  39. package/dist/modules/constants.js.map +1 -1
  40. package/dist/modules/credit_runtime.d.ts.map +1 -1
  41. package/dist/modules/credit_runtime.js +24 -6
  42. package/dist/modules/credit_runtime.js.map +1 -1
  43. package/dist/modules/dexbot_class.d.ts +34 -6
  44. package/dist/modules/dexbot_class.d.ts.map +1 -1
  45. package/dist/modules/dexbot_class.js +94 -17
  46. package/dist/modules/dexbot_class.js.map +1 -1
  47. package/dist/modules/dexbot_cow_runtime.d.ts +57 -6
  48. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  49. package/dist/modules/dexbot_cow_runtime.js +474 -38
  50. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  51. package/dist/modules/dexbot_fill_runtime.d.ts +53 -1
  52. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
  53. package/dist/modules/dexbot_fill_runtime.js +277 -9
  54. package/dist/modules/dexbot_fill_runtime.js.map +1 -1
  55. package/dist/modules/dexbot_maintenance_runtime.d.ts +69 -0
  56. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  57. package/dist/modules/dexbot_maintenance_runtime.js +277 -7
  58. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  59. package/dist/modules/dexbot_startup_runtime.d.ts.map +1 -1
  60. package/dist/modules/dexbot_startup_runtime.js +6 -1
  61. package/dist/modules/dexbot_startup_runtime.js.map +1 -1
  62. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  63. package/dist/modules/dexbot_state_recovery.js +32 -4
  64. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  65. package/dist/modules/market_adapter_whitelist.js +1 -1
  66. package/dist/modules/market_adapter_whitelist.js.map +1 -1
  67. package/dist/modules/order/grid.d.ts +3 -1
  68. package/dist/modules/order/grid.d.ts.map +1 -1
  69. package/dist/modules/order/grid.js +93 -16
  70. package/dist/modules/order/grid.js.map +1 -1
  71. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  72. package/dist/modules/order/grid_reconcile_internal.js +73 -7
  73. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  74. package/dist/modules/order/logger.js +1 -1
  75. package/dist/modules/order/logger.js.map +1 -1
  76. package/dist/modules/order/manager.d.ts +14 -1
  77. package/dist/modules/order/manager.d.ts.map +1 -1
  78. package/dist/modules/order/manager.js +54 -2
  79. package/dist/modules/order/manager.js.map +1 -1
  80. package/dist/modules/order/sync_engine.d.ts.map +1 -1
  81. package/dist/modules/order/sync_engine.js +183 -10
  82. package/dist/modules/order/sync_engine.js.map +1 -1
  83. package/dist/modules/order/utils/math.d.ts +65 -15
  84. package/dist/modules/order/utils/math.d.ts.map +1 -1
  85. package/dist/modules/order/utils/math.js +93 -22
  86. package/dist/modules/order/utils/math.js.map +1 -1
  87. package/dist/modules/order/utils/order.d.ts +51 -1
  88. package/dist/modules/order/utils/order.d.ts.map +1 -1
  89. package/dist/modules/order/utils/order.js +122 -2
  90. package/dist/modules/order/utils/order.js.map +1 -1
  91. package/dist/modules/utils/errors.d.ts +22 -0
  92. package/dist/modules/utils/errors.d.ts.map +1 -1
  93. package/dist/modules/utils/errors.js +30 -0
  94. package/dist/modules/utils/errors.js.map +1 -1
  95. package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +1 -1
  96. package/dist/scripts/generate_market_adapter_whitelist.js +3 -2
  97. package/dist/scripts/generate_market_adapter_whitelist.js.map +1 -1
  98. package/docs/BITSHARES_ONBOARDING.md +14 -6
  99. package/docs/COPY_ON_WRITE_MASTER_PLAN.md +1 -1
  100. package/docs/DEXBOT_COMPARISON.md +3 -7
  101. package/docs/EVOLUTION.md +9 -7
  102. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +4 -9
  103. package/docs/GRID_RECALCULATION.md +8 -7
  104. package/docs/LIFECYCLE.md +2 -2
  105. package/docs/README.md +9 -1
  106. package/docs/architecture.md +7 -7
  107. package/docs/developer_guide.md +4 -4
  108. package/market_adapter/README.md +14 -11
  109. package/package.json +1 -1
  110. package/scripts/README.md +4 -4
  111. package/analysis/results/ama_sweep_results_lp_pool_133_1h.json +0 -2455
  112. package/analysis/results/bot_fitting_results_lp_pool_133_1h.json +0 -218
  113. package/analysis/tradingview/h-bts_tradingview.html +0 -1570
  114. package/analysis/tradingview/t-bts_tradingview.html +0 -1570
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.6.2] - 2026-09-14 - Grid-Price Invariant, Gap-Slot Batch Sizing, Candle Shard Cache, Recovery Tolerance, Fill Counter Hygiene, Node List Cleanup
6
+
7
+ ### 2026-09-14
8
+
9
+ - **Fix(grid)**: enforce grid-price invariant at emission sites + escalate persistent corruption and stranded holds — the engine had two sources of truth for a slot's price — the genesis ladder (`priceForSlot(idx, genesis)`) and the mutable `slot.price` field — and every violation was the second winning over the first. Five mechanisms fed it: orphan adoption overwrote the slot's identity price (S1), a pre-broadcast "freshness" step re-substituted that corrupted price at debug level (S2), guards checked range membership but never grid membership (S3), the fill-guard pivot was written from unvalidated fill prices (S4), and guard bypasses skipped even that (S5). New `checkGridPriceInvariant` / `reportGridPriceInvariant` (`modules/order/utils/order.ts`) require the emitted price for a slot to equal its genesis level (fail-open on everything unjudgeable: no genesis, unparseable id, out-of-ladder index, non-finite price, checker error), enforced blocking at all six emission sites: CREATE, UPDATE (rotation), CREATE-FALLBACK (`modules/dexbot_cow_runtime.ts`); RECONCILE-CREATE, RECONCILE-UPDATE, STARTUP-CREATE (`modules/order/grid_reconcile_internal.ts`). Rotation UPDATE derives the emitted price from the destination slot's genesis level (`deriveRotationPrice`) instead of trusting the planner's carried `newPrice`; both pre-broadcast price substitutions removed (drift reported at warn, never adopted); legacy orphan adoption no longer writes `chainOrder.price` into `slot.price` and gains a rail guard; materialize path derives slot price (and side) from the ladder; `loadGrid` repairs a mismatched slot price from the genesis ladder in both validation modes; fill-guard pivot validated onto the ladder (`resolveOnGridPivot`: near-ladder pivots snap, far off-ladder fail open and are counted as `pivotOffGrid`). Persistent invariant rejection escalates after `GRID_PRICE_INVARIANT_RESYNC_THRESHOLD` consecutive rejecting batches per slot (bot-scoped streak, reset on clean check, 15m cooldown) to `requestStructuralGridResync('grid-price-invariant-violation')`. Out-of-bounds policy: hold and surface — grid geometry is not invalidated by the market leaving it (the removed 5% placement gate is documented as a design deadlock, not a tuning problem). New `docs/GRID_PRICE_INVARIANT.md` plus `docs/README.md` index entry and `CONSOLIDATED_ORPHAN_FIX_SUMMARY.md` status refresh. Tests: new `tests/test_grid_price_invariant_guard.ts` (GPI-001..015) and `tests/test_grid_price_invariant_wiring.ts` (GPI-WIRE-001..008) plus `tests/test_startup_and_guard_log_hygiene.ts` (GPI-LOG-001); every behavioral fix mutation-tested (11 escalation/guard mutations verified); audited over 1,153 slots across five geometries with zero rejections; full suite 282/282 pass (`modules/order/utils/order.ts`, `modules/dexbot_cow_runtime.ts`, `modules/order/grid_reconcile_internal.ts`, `modules/order/grid.ts`).
10
+
11
+ - **Fix(fill)**: retire deferred-retry counter on queue settle + pin COW finally drain — the fill-consumer deferral counter (`_deferredFillRetryWaits`) only retired when a pending retry timer fired against an already-empty queue, so a queue drained by any other path left the counter elevated and the deferral log cadence stuck at warn (every 12th defer) after the backlog cleared. The counter now retires in `consumeFillQueue` at both settle points (top-of-run empty early-return and tail-after-drain); `_deferredFillRetryTimer` declared/initialized on the bot class and cleared on shutdown so the unref'd timer cannot leak across lifecycle restarts. New RETRY-007 pins the counter reset on a clean drain (7 → 0 on settle); RETRY-006 pins the COW batch finally (injected `_ensureCredentialDaemonWritable` throw after `_batchInFlight++` / `_cowBroadcastInFlight` asserts the finally releases both and reschedules the fill consumer exactly once; the COW layer converts the throw into a handled `{executed:false}` abort via `_handleBatchHardAbort`) (`modules/dexbot_fill_runtime.ts`, `modules/dexbot_class.ts`, `tests/test_fill_defer_retry.ts`; neighbors green, `tsc --noEmit` clean).
12
+
13
+ - **Fix(recovery)**: tolerate transient in-band stranding in persisted-boundary gate — a mid-evacuation persisted snapshot (honest boundary one crawl stale, live order stranded in-band by SPREAD GUARD) failed the restore gate's `placed_order_in_band` check and forced `rms_structural_grid_resync`, wiping boundary progression, owed crawls, streaks, and the queued GAP-EVAC plan on every uncertain-broadcast recovery (observed: boundary regressed five slots 93 → 88, five owed fill crawls dropped, one live chain order left unmatched, three structural resyncs in twelve minutes). The gate's premise ("honest writers never strand") is disproven: SPREAD GUARD keeps live rail orders in-band across fill-driven boundary crawls by design, and GAP-EVAC heals them per-slot over 2–3 cycles — stranding alone is not a poison signature. `validateBoundaryCommit` now records in-band placements instead of early-returning, `crossed_book_geometry` takes precedence over a co-occurring strand, and the full scan no longer skips rail slots after the first strand; new `isTransientInBandRejection()` (pure stranding, any count, no structural signal) with shared constant `BOUNDARY_REJECT_PLACED_IN_BAND`. `recoverFromPersistedGrid` tolerates transient stranding with a warn and proceeds with load (true poison still refuses); `loadGrid` gains optional `options.tolerateTransientStranding` (default strict, existing callers unchanged). Startup strict path degrading a mid-evacuation strand to boundary-less is a known follow-up; runtime backstops (GAP-EVAC streaks + cancel-only teeth, commit-time gate, P4 fund-drift snapshot reject) own persistent cases (`modules/order/utils/math.ts`, `modules/dexbot_state_recovery.ts`, `modules/order/grid.ts`, `tests/test_boundary_restore_validation.ts` 9/9; gap-evac, persistence, bloat, crawl, uncertain-broadcast suites pass; `tsc --noEmit` clean).
14
+
15
+ - **Fix(nodes)**: prune dead default nodes and single-source the connection-trace node list — `NODE_MANAGEMENT.DEFAULT_NODES` drops three dead endpoints, leaving seven live defaults; `tests/test_connection_trace.ts` no longer carries its own hardcoded copy — it reads `NODE_MANAGEMENT.DEFAULT_NODES` with an optional `BITSHARES_TRACE_NODE` override for single-node tracing, and the transport login probe uses `NODES[0]` instead of a hardcoded URL, so future node-list changes propagate automatically (`modules/constants.ts`, `tests/test_connection_trace.ts`).
16
+
17
+ ### 2026-09-13
18
+
19
+ - **Feat(batch)**: derive fill/broadcast batch sizing from gap-slot count — two independent fixed caps (`FILL_PROCESSING.MAX_FILL_BATCH_SIZE` and `COW_PERFORMANCE.MAX_OPS_PER_BROADCAST`, both 4) bounded fill batching and per-broadcast order operations with no relationship to actual grid geometry. New `_getGapSlotBatchSize()` resolves via `resolveGapSlots()` (`manager._gapSlots`, else `calculateGapSlots(config)`, ≥1 floor, falls back to 1 on failure); legacy `_getMaxFillBatchSize()` / `_getMaxOpsPerBroadcast()` kept as thin aliases; dead `config._gapSlots` fallback operand removed; both constants removed from `modules/constants.ts` (remaining COW_PERFORMANCE keys unchanged). `executeChunkedWithRetryOnUncertain` prefers the gap-slot size with its own ≥1 guard. Docs across `architecture.md`, `LIFECYCLE.md`, `FUND_MOVEMENT_AND_ACCOUNTING.md`, `developer_guide.md` use gap-slot batch sizing terminology (stale FILL_PROCESSING snippet removed); `COPY_ON_WRITE_MASTER_PLAN.md` marks `MAX_OPS_PER_BROADCAST` removed with a pointer. Completed/obsolete legacy docs removed (not describing anything still in the code): `BROWSER_COMPAT_PLAN.md` (superseded by the package.json browser field + AGENTS.md), `GRID_PRICE_SLOT_DETERMINISM_PLAN.md` (implemented), `PLAN_FILL_STALE_RESTORE_MAIN.md` (implemented), `PLAN_MIN_BTS_VALUE.md` (completed plan), `crash_report_jan_mar_2026.md` (historical incident). Batch size now scales with grid size by construction (larger-gap grids produce larger fill batches and larger single broadcast transactions than the old fixed cap of 4 — intended); removed keys simply drop out of the runtime-settings override merge, no remaining consumers (`modules/dexbot_class.ts`, `modules/constants.ts`, `modules/dexbot_cow_runtime.ts`; `tests/test_cow_ops_per_broadcast.ts` mirrors via `manager._gapSlots` with strict `calculateGapSlots` equality, chunking/death-spiral expectations updated, `tests/sim_batching.ts` uses the GAP_SLOTS constant; full `npm test` exit 0).
20
+
21
+ - **Fix(cache)**: store Kibana candle cache in stable calendar-month shards — run-relative chunk files (`chunk_<index>_<dates>`) shifted names on every run because windows anchor at floored-now, forcing a full rewrite plus an orphan-deletion pass each invocation; the deletion destroyed cached history (fully-disjoint files wiped by narrow runs, boundary-straddling files losing out-of-window buckets). Storage is now fixed UTC calendar-month shards (`<base>.shard_YYYY-MM.json`) decoupled from querying: runs load only overlapping shards, fetch only genuinely missing buckets, and rewrite solely shards that gained buckets (higher-volume-wins) or query coverage (monotonically unioned `queriedRanges`); pure-reuse runs do zero writes/deletes. Legacy `*.chunk_*` files are absorbed (buckets + clipped coverage folded into shards) and retired only when every bucket provably lives in a shard; disjoint legacy is never loaded or deleted. Removed `cleanupOrphanCacheChunks`, `chunkPathFor`, `siblingChunkFiles`, `priorQueriedInWindow`; preserved immutable-gap pruning, 48h tail refresh, partial-window withholding, fetch retry budget. Windows are now fetch-planning splits only (`{index, gte, lte}`); the LP orphan-cleanup wrapper/export is dropped. Preceded by the narrower prune-scope fix (run passes its active coverage; orphans whose `meta.timeRange` does not overlap it are kept) plus the chart fixes it was validated against: update-marker div reuse (`um-wrap` class) and log-scale vertical-pan/wheel-zoom bbox offset correction (`market_adapter/inputs/window_cache.ts`, `market_adapter/inputs/fetch_lp_data.ts`, `market_adapter/README.md`, `analysis/tradingview/tradingview_uplot_chart_generator.ts`; `tests/test_window_cache.ts` rewritten with shard mapping, coverage set ops, scoped-load, and end-to-end integrations; LP/book assertions target `.shard_` files; full suite exit 0; live-verified: repeated feed chart runs show pure reuse, a wider run refetched one genuinely-lost span and left 7 stable shards).
22
+
23
+ ## [1.6.1] - 2026-09-13 - Never-Run-Stale Hardening, Whitelist Range-Scaling Opt-In, Live-Save Docs, Shelf-Count Hardening
24
+
25
+ ### 2026-09-13
26
+
27
+ - **Fix(recovery)**: give the GRID-PRICE-INVARIANT guard and the deferred-hold policy a self-healing exit — both had the same shape (state the guard refuses to emit, but nothing repairs it) and both now escalate to the existing structural resync rather than running forever. A slot rejected as off-grid is skipped and warned, which is correct for a one-off, but the recurring planner carries the slot's price straight from `manager.orders`, so an in-process corruption is re-planned, re-rejected and re-warned every cycle with nothing able to heal it short of a restart — the slot is dead while the bot looks healthy, and the repeated warns train operators to ignore them. The guard now counts **consecutive** rejecting batches per slot (bot-scoped — the monolithic runtime (`dexbot.ts`, the `dexbot` bin) builds EVERY active bot in one process, so a module-level streak would let one bot's rejections push another to the threshold on its FIRST rejection and fire a spurious resync on a healthy bot, and the count also must not outlive a repair; GPI-WIRE-009 pins the cross-bot case) and at `TIMING.GRID_PRICE_INVARIANT_RESYNC_THRESHOLD` (3) fires `requestStructuralGridResync('grid-price-invariant-violation', {slotId, expected, actual, site, streak})`; a clean check clears the streak so escalation means "rejected N consecutive batches", not "N times ever", and `GRID_PRICE_INVARIANT_RESYNC_COOLDOWN_MS` (15m) bounds repeats. Healing in place at rejection time is deliberately NOT done — silently rewriting `slot.price` would erase the diagnostic signal distinguishing the four corruption sources. Separately, out-of-rail orphans hold locked funds and are never auto-cancelled per cycle (correct: cancelling on ambiguous evidence is irreversible), but "held indefinitely" had no exit; a hold whose signature is unchanged for `DEFERRED_HOLD_ESCALATE_MS` (24h) now escalates at `error` to `requestStructuralGridResync('deferred-hold-stale')`, which is safe because the full reset's reconcile is update-first (unmatched orders are price-updated onto rail slots, only true surplus cancelled), so funds are released without inventing a new cancellation policy. Hold age is tracked **per stranded order** (bot-scoped map keyed `id@price/size:reason`), because two simpler clocks were wrong: `manager._lastUnmatchedChainOrdersAt` is unconditionally refreshed on every sync observing any unmatched order, so it records "when we last looked" and an age gate on it could never fire (HOLD-007 pins this); and the whole-held-set signature clock looked correct but was **reset by unrelated churn** — the signature includes every entry's reason, so an unrelated hold flapping in and out restarted the clock every cycle and starved a genuinely stranded order of escalation forever (HOLD-010 pins this; a 6-hourly flap was simulated reporting a clock reset on every tick). A third defect sat in the same path: the signature-change branch `return`ed before the escalation call, so any churn skipped escalation entirely — escalation now runs on both branches, since a signature change is a reason to re-log, not to stop evaluating age. Escalation triggers only on genuinely **stranded** reasons via a narrow allow-list (`isStrandedHoldOrder`: `out-of-rail-deferred`, `out-of-grid-deferred`) rather than the broad `-deferred` non-blocking filter, because a resync cannot end a broadcast region or re-evaluate an uncommitted boundary; `broadcast-active-deferred`, `boundary-hold-trailing-market`, `boundary-unknown-deferred` and `held-plan-unchanged-deferred` are excluded (HOLD-011 pins this), and the allow-list fails closed so a future transient reason is excluded by default. Both escalations reuse the existing debounced, batch-in-flight-aware resync path; a second repair mechanism would duplicate tested machinery. New GPI-WIRE-006..009 (`tests/test_grid_price_invariant_wiring.ts`) and HOLD-006..011 (`tests/test_hold_and_center_guards.ts`); mutation-verified that removing the escalation call, removing the streak reset, disabling the cooldown, removing the hold escalation, re-gating escalation behind the signature early return, reading the hold age from the whole-set clock, and replacing the stranded allow-list with the broad `-deferred` filter are each caught (`modules/constants.ts`, `modules/dexbot_cow_runtime.ts`, `modules/dexbot_maintenance_runtime.ts`, `docs/GRID_PRICE_INVARIANT.md`, `docs/CONSOLIDATED_ORPHAN_FIX_SUMMARY.md`).
28
+
29
+ - **Fix(shelf)**: exclude shelf orders from every grid count (issue #27 follow-up) — the four shelf follow-ups gated `reserveEdgeIdSet`, `matchedExcess`, and the geometric size recalc to `parseSlotIndex(id) !== null`, but three counters feeding the same decisions never got the gate, so a live fork-kept shelf (non-slot-N id, `ACTIVE` + `orderId`) still poisoned them via the fail-open `isSlotInRail` geometry. `_countActiveOnGrid` inflated `matchedOnGrid` (suppressing `neededSlots`/creates), `chainCount` in `_reconcileStartupSide` counted shelf-bound chain orders (fabricating a `chain - target` surplus that cancelled real window orders), `countLiveGridOrders` masked window shortfalls in targeted sync, and `_getOnChainOrders` plus the spread `buyCount`/`sellCount` masked `oneSideEmpty`. All now apply the same slot-N gate (no-op on grids that only mint slot-N ids); shelf stays in the geometric-recalc denominator by design (conservative sizing direction). `_pickVirtualSlotsToActivate` and the `getInitialOrdersToActivate` window picks are gated too so a `VIRTUAL` shelf can never consume window activation budget (`modules/order/grid_reconcile_internal.ts`, `modules/dexbot_maintenance_runtime.ts`, `modules/order/grid.ts`, `modules/order/manager.ts`; `tests/test_reserve_orders.ts` shelf expectations corrected to the fixed behavior — chain 12 grid vs target 8 plans 4 rail cancels, grid count converges to 8 with 3 shelf surviving alongside — plus a new block pinning `_countActiveOnGrid`, startup create non-suppression, targeted-sync `buy 5/8` firing through shelf, and slot-N-only activation picks; `tests/test_startup_decision.ts`, `tests/test_resync_balance_fix.ts`, `tests/test_resync_duplicate_race.ts` fixtures migrated from ad-hoc ids to `slot-N` ids per the production invariant; full suite exit 0, zero failures).
30
+
31
+ - **Fix(whitelist)**: disable range scaling in whitelist defaults — AMA whitelist generation is conservative by default so new entries enable AMA live writes without enabling dynamic weights or asymmetric range scaling; new explicit asymmetric-bounds opt-in flags for new and targeted entries, legacy array-form whitelist entries interpreted as AMA-only, CLI help and generation tests updated for the new defaults; README, onboarding, market-adapter, and grid-recalculation guidance aligned with the range-scaling opt-in behavior (`modules/market_adapter_whitelist.ts`, `scripts/generate_market_adapter_whitelist.ts`, `dexbot.ts`, `README.md`, `docs/BITSHARES_ONBOARDING.md`, `docs/GRID_RECALCULATION.md`, `market_adapter/README.md`, `scripts/README.md`, `tests/test_market_adapter_fixes.ts`).
32
+
33
+ ### 2026-09-12
34
+
35
+ - **Fix(stale)**: never-run-stale hardening for deferred-fill and spread-correction hangs — a live market-pair bot froze after its sell fills were processed during an already-ended broadcast region: the edge-triggered region-end retry never fired, the owed boundary shift was never applied, and no future fills could unblock the grid. Audit of the same "retry depends on a future event" class found three more silent-hang paths; all deferred work is now level-triggered (scheduled at defer time) with time-based watchdogs, so no retry depends on an event that may never come. Deferred fill retry schedules `DexbotStateRecovery.schedulePostRecoveryRebalance` directly whenever any chunk defers (level-triggered, idempotent — first trigger wins alongside the hook). Stale-totals deferral no longer drops fills: fills deferred on a failed accountTotals refresh were already spliced from the queue while their dedupe keys stayed marked processed (silent fund loss with a "retrying next cycle" comment but no next cycle without backlog) — now `releaseFillDedupeKeys` + `parkFillsForTotalsRetry` parks them outside the live queue (idle gate keeps working) and re-queues on a backoff timer (10s doubling, 60s cap, attempt resets on clean cycle, capped at `MAX_INCOMING_FILL_QUEUE`). Out-of-spread persistence watchdog `trackOutOfSpreadStaleness` warns at 10min and structural re-centers at 30min with 5min cooldown (resets on heal or placed orders) for grids whose correction places zero candidates indefinitely. Held-plan suppression is now visible (counted, warn on 1st/every 10th, reset on fresh fills) instead of silently debug-suppressed forever; deferred post-recovery aborts warn (not debug) with throttled pipeline-blocked logging. Region-end hook fan-out via `addBroadcastRegionEndListener` (dedupe, error-contained) replaces the legacy single `_onBroadcastRegionEnd` slot that let a second wirer silently displace the fill-queue drain. One-sided spread honesty: `calculateSpreadFromOrders` returns Infinity (was bogus 0% that looked perfectly tight), `shouldFlagOutOfSpread` bounds non-finite input to the nominal gap count, and log/status lines are one-side-aware; typed-spread candidates sort edge-first (`modules/constants.ts`, `modules/dexbot_class.ts`, `modules/dexbot_fill_runtime.ts`, `modules/dexbot_maintenance_runtime.ts`, `modules/dexbot_state_recovery.ts`, `modules/order/grid.ts`, `modules/order/logger.ts`, `modules/order/manager.ts`, `modules/order/utils/math.ts`, `modules/order/utils/order.ts`; new `tests/test_deferred_fill_retry.ts` and `tests/test_stale_grid_hardening.ts`, 11 hardening tests TOTALS-001..003, SPREAD-001..003, INF-001..002, HOOK-001..002, SUPP-001; full suite runner exit 0, zero failures).
36
+ - **Docs(save)**: clarify live-save vs reset vs reload; restructure power-law paper — the onboarding guide and the `dexbot bot` editor hint now spell out the three save groups (live keys auto-apply ~1min, grid geometry needs `dexbot reset`, market/account needs `dexbot reload`); the power-law comparison is restructured around pool concepts with a new executive summary, a capital-density section, and corrected static-density and holdings claims (`docs/BITSHARES_ONBOARDING.md`, `docs/DEXBOT2_VS_POWER_LAW_CURVE.md`, `modules/account_bots.ts`).
37
+
5
38
  ## [1.6.0] - 2026-09-12 - Node-Failure Strike Ledger, Grid Regen, TV Order Overlay, Balance Heal, Live Config Pickup, Reserve Ladder, Boundary Recovery, Candle Cache Unification, Chart Upgrades, Shelf/Startup Hardening
6
39
 
7
40
  ### 2026-09-12
package/README.md CHANGED
@@ -176,9 +176,10 @@ Keep the default settings first, and tune these:
176
176
  ```
177
177
 
178
178
  This writes `market_adapter_whitelist.json` in the profiles directory. New AMA bots get AMA
179
- live writes and range scaling. Use `dexbot white --dynamic-weight` for
180
- newly generated dynamic-weight entries; existing entries are preserved.
181
- To overwrite an existing bot: `dexbot white --dynamic-weight --bot <botKey>`.
179
+ live writes only; dynamic weights and range scaling are disabled by default. Use
180
+ `dexbot white --dynamic-weight` or `dexbot white --asymmetric-bounds` to opt
181
+ newly generated entries into those features; existing entries are preserved.
182
+ To overwrite an existing bot, include `--bot <botKey>` with the desired flags.
182
183
 
183
184
  6. **Start DEXBot2** with `dexbot start`.
184
185
 
@@ -253,7 +254,7 @@ First-run details and common mistakes are covered in the [BitShares Onboarding T
253
254
  ```bash
254
255
  dexbot key # Master password/keyring
255
256
  dexbot bot # Interactive bot configurator
256
- dexbot white # Market adapter whitelist, dynamic weights off by default
257
+ dexbot white # AMA whitelist; dynamic weights and range scaling off by default
257
258
 
258
259
  dexbot reset {all|<bot>} # Regenerate grid
259
260
  dexbot disable {all|<bot>} # Disable bot in config
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ama_fitting",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "Tools for fitting AMA parameters to market data",
5
5
  "main": "../../dist/analysis/ama_fitting/optimizer_high_resolution.js",
6
6
  "scripts": {
@@ -721,17 +721,20 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
721
721
  if (e.ctrlKey || e.metaKey || e.altKey) return;
722
722
  e.preventDefault();
723
723
  const rect = chart.root.getBoundingClientRect();
724
+ const pxRatio = chart.pxRatio || 1;
725
+ const bboxLeft = chart.bbox ? chart.bbox.left / pxRatio : 0;
726
+ const bboxTop = chart.bbox ? chart.bbox.top / pxRatio : 0;
724
727
  // Shift+wheel scales price (cursor-anchored) anywhere over the
725
728
  // price pane — same as wheeling over the price axis. Volume has
726
729
  // no manual Y lock, so it keeps the timeframe zoom.
727
730
  if (chart === priceChart && (e.shiftKey || inYAxisZone(chart, e.clientX))) {
728
- const centerY = chart.posToVal(e.clientY - rect.top, 'y');
731
+ const centerY = chart.posToVal(e.clientY - rect.top - bboxTop, 'y');
729
732
  const delta = e.deltaY !== 0 ? e.deltaY : e.deltaX;
730
733
  zoomYAt(chart, centerY, delta < 0 ? 0.91 : 1.10);
731
734
  return;
732
735
  }
733
736
  e.stopPropagation();
734
- const left = e.clientX - rect.left - (chart.bbox.left / (chart.pxRatio || 1));
737
+ const left = e.clientX - rect.left - bboxLeft;
735
738
  const center = chart.posToVal(left, 'x');
736
739
  const s = chart.scales.x || {};
737
740
  const currMin = Number.isFinite(s.min) ? s.min : xMin;
@@ -788,6 +791,8 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
788
791
  let startMin = 0;
789
792
  let startMax = 0;
790
793
  let startYRange = null;
794
+ let startBboxLeft = 0;
795
+ let startBboxTop = 0;
791
796
  let panRaf = 0;
792
797
  let pendingPan = null;
793
798
  const applyPendingPan = () => {
@@ -799,8 +804,12 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
799
804
  // move sets a manual Y range; double-click the price axis to
800
805
  // return to autofit. Axis gutters never pan — they scale.
801
806
  if (chart === priceChart && startYRange && Number.isFinite(p.clientY)) {
802
- const vStart = chart.posToVal(p.startY - p.rectTop, 'y');
803
- const vCur = chart.posToVal(p.clientY - p.rectTop, 'y');
807
+ // Plot-relative coords: subtract the axis gutter offset
808
+ // (bbox) like bindWheelZoom. On linear scales the offset
809
+ // cancels in subtraction, but on log scale the ratio
810
+ // corrupts and vertical drag dies without it.
811
+ const vStart = chart.posToVal(p.startY - p.rectTop - p.bboxTop, 'y');
812
+ const vCur = chart.posToVal(p.clientY - p.rectTop - p.bboxTop, 'y');
804
813
  if (Number.isFinite(vStart) && Number.isFinite(vCur) && vCur !== vStart) {
805
814
  // Rigid move only: the span is locked by construction so a
806
815
  // plot drag can never rescale — Y scaling happens solely
@@ -822,7 +831,7 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
822
831
  }
823
832
  }
824
833
  }
825
- const delta = chart.posToVal(p.clientX - p.rectLeft, 'x') - chart.posToVal(p.startX - p.rectLeft, 'x');
834
+ const delta = chart.posToVal(p.clientX - p.rectLeft - p.bboxLeft, 'x') - chart.posToVal(p.startX - p.rectLeft - p.bboxLeft, 'x');
826
835
  syncXRange(startMin - delta, startMax - delta);
827
836
  };
828
837
  const onMove = (e) => {
@@ -833,6 +842,7 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
833
842
  clientX: e.clientX, clientY: e.clientY,
834
843
  startX: startClientX, startY: startClientY,
835
844
  rectLeft: rect.left, rectTop: rect.top,
845
+ bboxLeft: startBboxLeft, bboxTop: startBboxTop,
836
846
  };
837
847
  if (!panRaf) panRaf = requestAnimationFrame(applyPendingPan);
838
848
  };
@@ -857,6 +867,9 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
857
867
  dragging = true;
858
868
  startClientX = e.clientX;
859
869
  startClientY = e.clientY;
870
+ const startPxRatio = chart.pxRatio || 1;
871
+ startBboxLeft = chart.bbox ? chart.bbox.left / startPxRatio : 0;
872
+ startBboxTop = chart.bbox ? chart.bbox.top / startPxRatio : 0;
860
873
  const s = chart.scales.x || {};
861
874
  startMin = Number.isFinite(s.min) ? s.min : currentCandles[0].time;
862
875
  startMax = Number.isFinite(s.max) ? s.max : currentCandles[currentCandles.length - 1].time;
@@ -2473,6 +2486,7 @@ function generateHTML(data: any, title: any = 'TradingView Style Research') {
2473
2486
  if (!wrap) {
2474
2487
  try { if (getComputedStyle(u.root).position === 'static') u.root.style.position = 'relative'; } catch (e) {}
2475
2488
  wrap = document.createElement('div');
2489
+ wrap.className = 'um-wrap';
2476
2490
  wrap.style.cssText = 'position:absolute;z-index:24;pointer-events:none;';
2477
2491
  wrap.innerHTML =
2478
2492
  '<div class="um-line" style="position:absolute;top:0;height:100%;width:0;border-left:2px dashed #22d3ee;opacity:0.75;"></div>' +
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "trend-detection",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "description": "Kalman filter trend detection with tactical/modal state tracking",
5
5
  "main": "../../dist/analysis/trend_detection/kalman_trend_analyzer.js",
6
6
  "scripts": {
package/claw/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dexbot2-claw",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
4
4
  "private": true,
5
5
  "description": "Claw bridge and runtime integration layer for BitShares and DEXBot2.",
6
6
  "type": "module",
@@ -2,7 +2,7 @@
2
2
  "id": "bitshares-claw",
3
3
  "name": "BitShares Claw",
4
4
  "description": "Native BitShares and DEXBot2 tools from the DEXBot2 claw integration",
5
- "version": "1.6.0",
5
+ "version": "1.6.2",
6
6
  "skills": [
7
7
  "skills"
8
8
  ],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bitshares-claw-openclaw-plugin",
3
3
  "private": true,
4
- "version": "1.6.0",
4
+ "version": "1.6.2",
5
5
  "type": "module",
6
6
  "main": "index.js"
7
7
  }
@@ -30,7 +30,7 @@ async function testParserAcceptsJsonlAcrossChunksAndSingleBuffer() {
30
30
  capabilities: {},
31
31
  clientInfo: {
32
32
  name: 'claw-mcp-transport-test',
33
- version: '1.6.0'
33
+ version: '1.6.2'
34
34
  },
35
35
  protocolVersion: '2024-11-05'
36
36
  }
@@ -187,7 +187,7 @@ async function testMainEntrypointHandlesRealProcessInitialize() {
187
187
  capabilities: {},
188
188
  clientInfo: {
189
189
  name: 'claw-mcp-transport-test',
190
- version: '1.6.0'
190
+ version: '1.6.2'
191
191
  },
192
192
  protocolVersion: '2024-11-05'
193
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tradingview_uplot_chart_generator.d.ts","sourceRoot":"","sources":["../../../analysis/tradingview/tradingview_uplot_chart_generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAgCnD,iBAAS,kBAAkB,CAAC,QAAQ,GAAE,GAAyC,OAQ9E;AA2CD,QAAA,MAAM,4BAA4B,iCAAiC,CAAC;AACpE,QAAA,MAAM,oBAAoB,6BAA6B,CAAC;AAExD,iBAAS,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAO7D;AAGD,iBAAS,sBAAsB,CAAC,IAAI,GAAE,GAAQ,EAAE,mBAAmB,GAAE,GAAO,UAM3E;AAED,iBAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAE,GAAkC,UAokGzE;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"tradingview_uplot_chart_generator.d.ts","sourceRoot":"","sources":["../../../analysis/tradingview/tradingview_uplot_chart_generator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAgCnD,iBAAS,kBAAkB,CAAC,QAAQ,GAAE,GAAyC,OAQ9E;AA2CD,QAAA,MAAM,4BAA4B,iCAAiC,CAAC;AACpE,QAAA,MAAM,oBAAoB,6BAA6B,CAAC;AAExD,iBAAS,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAO7D;AAGD,iBAAS,sBAAsB,CAAC,IAAI,GAAE,GAAQ,EAAE,mBAAmB,GAAE,GAAO,UAM3E;AAED,iBAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,GAAE,GAAkC,UAklGzE;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,CAAA"}
@@ -713,17 +713,20 @@ function generateHTML(data, title = 'TradingView Style Research') {
713
713
  if (e.ctrlKey || e.metaKey || e.altKey) return;
714
714
  e.preventDefault();
715
715
  const rect = chart.root.getBoundingClientRect();
716
+ const pxRatio = chart.pxRatio || 1;
717
+ const bboxLeft = chart.bbox ? chart.bbox.left / pxRatio : 0;
718
+ const bboxTop = chart.bbox ? chart.bbox.top / pxRatio : 0;
716
719
  // Shift+wheel scales price (cursor-anchored) anywhere over the
717
720
  // price pane — same as wheeling over the price axis. Volume has
718
721
  // no manual Y lock, so it keeps the timeframe zoom.
719
722
  if (chart === priceChart && (e.shiftKey || inYAxisZone(chart, e.clientX))) {
720
- const centerY = chart.posToVal(e.clientY - rect.top, 'y');
723
+ const centerY = chart.posToVal(e.clientY - rect.top - bboxTop, 'y');
721
724
  const delta = e.deltaY !== 0 ? e.deltaY : e.deltaX;
722
725
  zoomYAt(chart, centerY, delta < 0 ? 0.91 : 1.10);
723
726
  return;
724
727
  }
725
728
  e.stopPropagation();
726
- const left = e.clientX - rect.left - (chart.bbox.left / (chart.pxRatio || 1));
729
+ const left = e.clientX - rect.left - bboxLeft;
727
730
  const center = chart.posToVal(left, 'x');
728
731
  const s = chart.scales.x || {};
729
732
  const currMin = Number.isFinite(s.min) ? s.min : xMin;
@@ -780,6 +783,8 @@ function generateHTML(data, title = 'TradingView Style Research') {
780
783
  let startMin = 0;
781
784
  let startMax = 0;
782
785
  let startYRange = null;
786
+ let startBboxLeft = 0;
787
+ let startBboxTop = 0;
783
788
  let panRaf = 0;
784
789
  let pendingPan = null;
785
790
  const applyPendingPan = () => {
@@ -791,8 +796,12 @@ function generateHTML(data, title = 'TradingView Style Research') {
791
796
  // move sets a manual Y range; double-click the price axis to
792
797
  // return to autofit. Axis gutters never pan — they scale.
793
798
  if (chart === priceChart && startYRange && Number.isFinite(p.clientY)) {
794
- const vStart = chart.posToVal(p.startY - p.rectTop, 'y');
795
- const vCur = chart.posToVal(p.clientY - p.rectTop, 'y');
799
+ // Plot-relative coords: subtract the axis gutter offset
800
+ // (bbox) like bindWheelZoom. On linear scales the offset
801
+ // cancels in subtraction, but on log scale the ratio
802
+ // corrupts and vertical drag dies without it.
803
+ const vStart = chart.posToVal(p.startY - p.rectTop - p.bboxTop, 'y');
804
+ const vCur = chart.posToVal(p.clientY - p.rectTop - p.bboxTop, 'y');
796
805
  if (Number.isFinite(vStart) && Number.isFinite(vCur) && vCur !== vStart) {
797
806
  // Rigid move only: the span is locked by construction so a
798
807
  // plot drag can never rescale — Y scaling happens solely
@@ -814,7 +823,7 @@ function generateHTML(data, title = 'TradingView Style Research') {
814
823
  }
815
824
  }
816
825
  }
817
- const delta = chart.posToVal(p.clientX - p.rectLeft, 'x') - chart.posToVal(p.startX - p.rectLeft, 'x');
826
+ const delta = chart.posToVal(p.clientX - p.rectLeft - p.bboxLeft, 'x') - chart.posToVal(p.startX - p.rectLeft - p.bboxLeft, 'x');
818
827
  syncXRange(startMin - delta, startMax - delta);
819
828
  };
820
829
  const onMove = (e) => {
@@ -825,6 +834,7 @@ function generateHTML(data, title = 'TradingView Style Research') {
825
834
  clientX: e.clientX, clientY: e.clientY,
826
835
  startX: startClientX, startY: startClientY,
827
836
  rectLeft: rect.left, rectTop: rect.top,
837
+ bboxLeft: startBboxLeft, bboxTop: startBboxTop,
828
838
  };
829
839
  if (!panRaf) panRaf = requestAnimationFrame(applyPendingPan);
830
840
  };
@@ -849,6 +859,9 @@ function generateHTML(data, title = 'TradingView Style Research') {
849
859
  dragging = true;
850
860
  startClientX = e.clientX;
851
861
  startClientY = e.clientY;
862
+ const startPxRatio = chart.pxRatio || 1;
863
+ startBboxLeft = chart.bbox ? chart.bbox.left / startPxRatio : 0;
864
+ startBboxTop = chart.bbox ? chart.bbox.top / startPxRatio : 0;
852
865
  const s = chart.scales.x || {};
853
866
  startMin = Number.isFinite(s.min) ? s.min : currentCandles[0].time;
854
867
  startMax = Number.isFinite(s.max) ? s.max : currentCandles[currentCandles.length - 1].time;
@@ -2465,6 +2478,7 @@ function generateHTML(data, title = 'TradingView Style Research') {
2465
2478
  if (!wrap) {
2466
2479
  try { if (getComputedStyle(u.root).position === 'static') u.root.style.position = 'relative'; } catch (e) {}
2467
2480
  wrap = document.createElement('div');
2481
+ wrap.className = 'um-wrap';
2468
2482
  wrap.style.cssText = 'position:absolute;z-index:24;pointer-events:none;';
2469
2483
  wrap.innerHTML =
2470
2484
  '<div class="um-line" style="position:absolute;top:0;height:100%;width:0;border-left:2px dashed #22d3ee;opacity:0.75;"></div>' +
@@ -1 +1 @@
1
- {"version":3,"file":"tradingview_uplot_chart_generator.js","sourceRoot":"","sources":["../../../analysis/tradingview/tradingview_uplot_chart_generator.ts"],"names":[],"mappings":"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C,UAAU;gCACzI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;gCACzI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uGAqzClE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;qJACa,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;qJACnC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA8S9K,eAAe,EAAE;;;;QAInB,CAAC;AACT,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,CAAA"}
1
+ {"version":3,"file":"tradingview_uplot_chart_generator.js","sourceRoot":"","sources":["../../../analysis/tradingview/tradingview_uplot_chart_generator.ts"],"names":[],"mappings":"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CAAC,IAAI,CAAC,UAAU;gCACzI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;gCACzI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,iBAAiB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uGAszClE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;qJACa,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;qJACnC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA8S9K,eAAe,EAAE;;;;QAInB,CAAC;AACT,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,CAAA"}
package/dist/dexbot.js CHANGED
@@ -240,7 +240,7 @@ function printCLIUsage() {
240
240
  console.log(' reload Reload the monolithic runtime (leaves credential daemon untouched).');
241
241
  console.log(' restart Restart the monolithic runtime (re-unlocks credential daemon).');
242
242
  console.log(' delete Stop/delete all runtime processes.');
243
- console.log(' whitelist, white Generate market adapter whitelist from AMA bot configs. Flags (--dynamic-weight, --no-asymmetric-bounds, --prune, --bot <key>) are forwarded. --bot implies overwrite for that key.');
243
+ console.log(' whitelist, white Generate market adapter whitelist from AMA bot configs. Flags (--dynamic-weight, --asymmetric-bounds, --prune, --bot <key>) are forwarded. --bot implies overwrite for that key.');
244
244
  console.log(' clear Remove all log files from <profiles>/logs/ (runs scripts/clear-logs.sh).');
245
245
  console.log(' clear-orders Remove all persisted order files from <profiles>/orders/.');
246
246
  console.log(' clear-market-adapter Remove market adapter data, state, and logs.');