dexbot 1.6.6 → 1.6.7

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 (110) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/README.md +5 -2
  3. package/analysis/trend_detection/package.json +1 -1
  4. package/claw/package.json +1 -1
  5. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  6. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  7. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  8. package/dist/dexbot.d.ts.map +1 -1
  9. package/dist/dexbot.js +22 -9
  10. package/dist/dexbot.js.map +1 -1
  11. package/dist/modules/account_bots.d.ts.map +1 -1
  12. package/dist/modules/account_bots.js +10 -9
  13. package/dist/modules/account_bots.js.map +1 -1
  14. package/dist/modules/account_orders.d.ts +20 -2
  15. package/dist/modules/account_orders.d.ts.map +1 -1
  16. package/dist/modules/account_orders.js +63 -3
  17. package/dist/modules/account_orders.js.map +1 -1
  18. package/dist/modules/bitshares-native/chain_client.d.ts +10 -0
  19. package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -1
  20. package/dist/modules/bitshares-native/chain_client.js +197 -28
  21. package/dist/modules/bitshares-native/chain_client.js.map +1 -1
  22. package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
  23. package/dist/modules/bitshares-native/subscriptions.js +312 -10
  24. package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
  25. package/dist/modules/bitshares-native/transport.d.ts +1 -0
  26. package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
  27. package/dist/modules/bitshares-native/transport.js +97 -3
  28. package/dist/modules/bitshares-native/transport.js.map +1 -1
  29. package/dist/modules/bitshares_client.d.ts +20 -0
  30. package/dist/modules/bitshares_client.d.ts.map +1 -1
  31. package/dist/modules/bitshares_client.js +29 -0
  32. package/dist/modules/bitshares_client.js.map +1 -1
  33. package/dist/modules/chain_keys.d.ts +37 -22
  34. package/dist/modules/chain_keys.d.ts.map +1 -1
  35. package/dist/modules/chain_keys.js +145 -44
  36. package/dist/modules/chain_keys.js.map +1 -1
  37. package/dist/modules/cli_start_onboarding.d.ts +10 -0
  38. package/dist/modules/cli_start_onboarding.d.ts.map +1 -0
  39. package/dist/modules/cli_start_onboarding.js +15 -0
  40. package/dist/modules/cli_start_onboarding.js.map +1 -0
  41. package/dist/modules/cli_start_output.d.ts +6 -0
  42. package/dist/modules/cli_start_output.d.ts.map +1 -0
  43. package/dist/modules/cli_start_output.js +8 -0
  44. package/dist/modules/cli_start_output.js.map +1 -0
  45. package/dist/modules/constants.d.ts +13 -0
  46. package/dist/modules/constants.d.ts.map +1 -1
  47. package/dist/modules/constants.js +103 -1
  48. package/dist/modules/constants.js.map +1 -1
  49. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  50. package/dist/modules/dexbot_cow_runtime.js +49 -9
  51. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  52. package/dist/modules/dexbot_fill_runtime.d.ts +6 -1
  53. package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
  54. package/dist/modules/dexbot_fill_runtime.js +22 -3
  55. package/dist/modules/dexbot_fill_runtime.js.map +1 -1
  56. package/dist/modules/dexbot_maintenance_runtime.d.ts +24 -1
  57. package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
  58. package/dist/modules/dexbot_maintenance_runtime.js +45 -1
  59. package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
  60. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  61. package/dist/modules/dexbot_state_recovery.js +13 -1
  62. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  63. package/dist/modules/order/grid.d.ts.map +1 -1
  64. package/dist/modules/order/grid.js +33 -1
  65. package/dist/modules/order/grid.js.map +1 -1
  66. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  67. package/dist/modules/order/grid_reconcile_internal.js +11 -0
  68. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  69. package/dist/modules/order/logger.d.ts +12 -2
  70. package/dist/modules/order/logger.d.ts.map +1 -1
  71. package/dist/modules/order/logger.js +29 -7
  72. package/dist/modules/order/logger.js.map +1 -1
  73. package/dist/modules/order/manager.d.ts +49 -0
  74. package/dist/modules/order/manager.d.ts.map +1 -1
  75. package/dist/modules/order/manager.js +72 -24
  76. package/dist/modules/order/manager.js.map +1 -1
  77. package/dist/modules/order/utils/order.d.ts.map +1 -1
  78. package/dist/modules/order/utils/order.js +97 -12
  79. package/dist/modules/order/utils/order.js.map +1 -1
  80. package/dist/modules/order/utils/system.d.ts +97 -0
  81. package/dist/modules/order/utils/system.d.ts.map +1 -1
  82. package/dist/modules/order/utils/system.js +274 -2
  83. package/dist/modules/order/utils/system.js.map +1 -1
  84. package/dist/modules/paths.d.ts +7 -1
  85. package/dist/modules/paths.d.ts.map +1 -1
  86. package/dist/modules/paths.js +10 -3
  87. package/dist/modules/paths.js.map +1 -1
  88. package/dist/modules/utils/text_width.d.ts +19 -0
  89. package/dist/modules/utils/text_width.d.ts.map +1 -0
  90. package/dist/modules/utils/text_width.js +97 -0
  91. package/dist/modules/utils/text_width.js.map +1 -0
  92. package/dist/pm2.d.ts.map +1 -1
  93. package/dist/pm2.js +95 -18
  94. package/dist/pm2.js.map +1 -1
  95. package/dist/scripts/update.js +62 -13
  96. package/dist/scripts/update.js.map +1 -1
  97. package/dist/unlock.d.ts +14 -2
  98. package/dist/unlock.d.ts.map +1 -1
  99. package/dist/unlock.js +73 -4
  100. package/dist/unlock.js.map +1 -1
  101. package/docs/COW_INVARIANTS.md +8 -0
  102. package/docs/CREDENTIAL_SECURITY.md +26 -0
  103. package/docs/DEXBOT_COMPARISON.md +3 -3
  104. package/docs/EVOLUTION.md +6 -5
  105. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
  106. package/docs/GRID_PRICE_INVARIANT.md +56 -1
  107. package/docs/LOGGING.md +17 -2
  108. package/docs/ORDER_ENGINE_POST_1.0_RETROSPECTIVE.md +6 -7
  109. package/docs/README.md +1 -1
  110. package/package.json +2 -2
package/dist/unlock.js CHANGED
@@ -48,12 +48,16 @@ import { createCredentialDaemonController } from './modules/launcher/credential_
48
48
  import { buildScopedChildEnv } from './modules/launcher/child_env.js';
49
49
  import { parseUnlockArgs } from './modules/launcher/launch_modes.js';
50
50
  import { UPDATER, LAUNCHER } from './modules/constants.js';
51
+ import { formatStartupNotice } from './modules/cli_start_output.js';
51
52
  import { runtime } from './modules/runtime.js';
52
- import { PATHS } from './modules/paths.js';
53
+ import { PATHS, printRelocationNotices } from './modules/paths.js';
53
54
  import { buildRuntimeScriptArgs } from './modules/launcher/runtime_entry.js';
54
55
  import { sendControlCommand } from './modules/launcher/supervisor_control.js';
55
56
  import { registerCleanup, setupGracefulShutdown } from './modules/graceful_shutdown.js';
56
57
  import { normalizeBotEntry, resolveRawBotEntries, loadSettingsFile } from './modules/bot_settings.js';
58
+ import { main as runBotEditor } from './modules/account_bots.js';
59
+ import { setSuppressConnectionLog, disconnectClient } from './modules/bitshares_client.js';
60
+ import { selectStartOnboardingCommand } from './modules/cli_start_onboarding.js';
57
61
  import * as chainKeys from './modules/chain_keys.js';
58
62
  import * as credentialPolicy from './modules/credential_policy.js';
59
63
  import { getWhitelistFlags } from './modules/market_adapter_whitelist.js';
@@ -379,7 +383,53 @@ async function runIsolated({ botName, botEntry = null, stayResident = false, sta
379
383
  });
380
384
  }
381
385
  // ── Main entry point ───────────────────────────────────────────────
382
- async function main({ argv = process.argv, startupGraceMs = DEFAULT_STARTUP_GRACE_MS } = {}) {
386
+ /**
387
+ * Handle first-run setup at the launcher boundary. This is shared by
388
+ * `dexbot start`, `dexbot unlock`, and direct `node unlock` invocations.
389
+ * Internal supervisor children must not reopen onboarding after the parent
390
+ * has already completed it. Returns true when an editor was opened; it does
391
+ * not print relocation notices (the caller owns that, since a quiet first run
392
+ * should not print diagnostics ahead of the editor).
393
+ */
394
+ async function runStartOnboardingIfNeeded({ allowInteractive = true, nonInteractiveFlag = '--headless' } = {}) {
395
+ const keySetup = chainKeys.hasKeySetup();
396
+ let botCount = 0;
397
+ if (keySetup) {
398
+ const { config } = loadSettingsFile(BOTS_FILE, { silent: true });
399
+ botCount = resolveRawBotEntries(config).length;
400
+ }
401
+ const onboardingCommand = selectStartOnboardingCommand(keySetup, botCount);
402
+ if (!onboardingCommand)
403
+ return false;
404
+ if (!allowInteractive) {
405
+ const command = onboardingCommand === 'key' ? 'dexbot key' : 'dexbot bot';
406
+ throw new Error(`Incomplete setup for ${nonInteractiveFlag}; run ${command} interactively first.`);
407
+ }
408
+ console.log(formatStartupNotice(onboardingCommand === 'key'
409
+ ? "No key vault configured yet - entering key setup ('dexbot key')."
410
+ : "Key vault configured but no bots defined - entering bot setup ('dexbot bot').", {
411
+ isTTY: process.stdout.isTTY,
412
+ noColor: Boolean(Config.NO_COLOR),
413
+ }));
414
+ if (onboardingCommand === 'key') {
415
+ await chainKeys.main();
416
+ return true;
417
+ }
418
+ setSuppressConnectionLog(true);
419
+ try {
420
+ await runBotEditor();
421
+ }
422
+ finally {
423
+ try {
424
+ disconnectClient();
425
+ }
426
+ catch (err) {
427
+ console.warn('Failed to disconnect BitShares after bot helper exit:', getErrorMessage(err) || err);
428
+ }
429
+ }
430
+ return true;
431
+ }
432
+ async function main({ argv = process.argv, startupGraceMs = DEFAULT_STARTUP_GRACE_MS, exitAfterOnboarding = false, onboard = false } = {}) {
383
433
  if (typeof chainKeys.checkKeysFileSecurity === 'function')
384
434
  chainKeys.checkKeysFileSecurity();
385
435
  if (typeof credentialPolicy.checkPolicyFileSecurity === 'function')
@@ -389,11 +439,30 @@ async function main({ argv = process.argv, startupGraceMs = DEFAULT_STARTUP_GRAC
389
439
  const forceForegroundIsolated = Config.DEXBOT_ISOLATED_FOREGROUND;
390
440
  const isMonolithicBgChild = Config.DEXBOT_MONOLITHIC_BG;
391
441
  const forceForeground = argv.includes('--foreground');
442
+ const isInternalChild = isDetachedSupervisorChild || isMonolithicBgChild;
392
443
  if (parsed.control) {
393
444
  await handleControl({ cmd: parsed.control.cmd, target: parsed.control.target ?? undefined });
394
445
  return;
395
446
  }
396
447
  const { botName, clawOnly, creditOnly, isolated, dryrun, headless, passwordFile } = parsed;
448
+ // Onboarding is a launcher-CLI concern: the direct-run bootstrap opts in so
449
+ // programmatic callers (tests, embeds) never block on an interactive prompt.
450
+ if (onboard && !isInternalChild) {
451
+ // Non-interactive entry points (headless automation, dry-run
452
+ // validation) must fail fast instead of blocking on an editor prompt.
453
+ const nonInteractiveFlag = headless ? '--headless' : (dryrun ? '--dryrun' : null);
454
+ const onboarding = await runStartOnboardingIfNeeded({
455
+ allowInteractive: !nonInteractiveFlag,
456
+ nonInteractiveFlag: nonInteractiveFlag ?? '--headless',
457
+ });
458
+ if (onboarding) {
459
+ if (exitAfterOnboarding)
460
+ process.exit(0);
461
+ return;
462
+ }
463
+ }
464
+ if (!isInternalChild)
465
+ printRelocationNotices();
397
466
  let effectiveBotName = botName;
398
467
  if (creditOnly && !effectiveBotName) {
399
468
  const creditBots = listConfiguredBots().filter((b) => b.creditOnly === true && b.active !== false);
@@ -1009,7 +1078,7 @@ if (isUnlockStartDirectRun) {
1009
1078
  }
1010
1079
  (async () => {
1011
1080
  try {
1012
- await main();
1081
+ await main({ exitAfterOnboarding: true, onboard: true });
1013
1082
  }
1014
1083
  catch (err) {
1015
1084
  console.error(statusError(`unlock failed: ${getErrorMessage(err) || err}`));
@@ -1017,5 +1086,5 @@ if (isUnlockStartDirectRun) {
1017
1086
  }
1018
1087
  })();
1019
1088
  }
1020
- export { buildDexbotStartArgs, candidateRuntimeScriptPaths, ensureNoForeignCredentialDaemon, findCredentialSocketOwnerPid, isLikelyCredentialDaemonProcess, main, pidMatchesScriptCandidates, waitForChildSpawn, waitForStableChildStartup };
1089
+ export { buildDexbotStartArgs, candidateRuntimeScriptPaths, ensureNoForeignCredentialDaemon, findCredentialSocketOwnerPid, isLikelyCredentialDaemonProcess, main, runStartOnboardingIfNeeded, pidMatchesScriptCandidates, waitForChildSpawn, waitForStableChildStartup };
1021
1090
  //# sourceMappingURL=unlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unlock.js","sourceRoot":"","sources":["../unlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unlock.js","sourceRoot":"","sources":["../unlock.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,14 @@ This document defines the non-negotiable behavioral invariants for the DEXBot2 s
73
73
  - `_commitWorkingGrid` clears them only when the plan's boundary was actually applied — a held boundary (`boundaryHeld`), a gate-rejected boundary, and a null boundary all leave them owed.
74
74
  - `consumePendingFillCrawls` applies them onto a restored finite boundary; `applyPersistedPendingCrawls` is the shared startup/recovery wrapper used before sync/reconcile; `_clearPendingFillCrawls` drops them when the boundary is re-anchored (grid rebuild via `initializeGrid`, rejected snapshot via `rejectCorruptedGridSnapshot`, persisted snapshot wipe via `AccountOrders.clearGrid`).
75
75
 
76
+ - `INV-COW-009` LAST-FILL-GUARD pivot survives restarts with the snapshot, and only as a fill fact
77
+ - Single source of truth: the manager's in-memory pivot is authoritative at runtime; the disk row is a mirror that rides the grid snapshot (`persistGridSnapshot` → `storeMasterGrid` 10th param → `lastFillPivot`), so it invalidates in lockstep with the boundary/genesis instead of forming a second ledger (the `_pendingFillCrawls` lockstep contract).
78
+ - Provenance gate: only a pivot written through the shared `setLastFillPivot(type, price, 'fill')` writer is persist-eligible. A book-seeded pivot (`seedLastFilledPricesFromBook`, provenance `'book'`) is a heuristic — max resting buy / min resting sell is not market truth — and is never fossilized into the snapshot. The fill-batch and queued-fill refresh sites funnel through one implementation (free function in `utils/system.ts`; `OrderManager._setLastFillPivot` delegates to it), so value, timestamp, and provenance cannot drift apart; the queued-fill refresh and the restore path call the same free function directly, with the legacy-stub fallback built into the shared writer rather than copy-pasted. A single-sided book arms through the same writer with provenance `'book'`; the two-sided midpoint and per-side mirror seeds stay direct writes by design, because they carry no pivot provenance and must not be persist-eligible.
79
+ - The row carries `{price, type, fillsAt, genesisHash}` validated by one shared gate (`normalizeLastFillPivot`) used by BOTH the `storeMasterGrid` sanitizer and the loader — the two shape checks cannot drift. `null` from the payload builder always clears the stored row (consumed pivot / cold manager / no live genesis), `undefined` stays a legacy no-op for old callers, and a malformed shape also clears.
80
+ - Restore ordering: `grid.loadGrid` restores the pivot right after `_restoreBoundary` — with the persisted genesis applied and the grid re-typed, BEFORE the first reconcile/broadcast — so a restart cannot re-open the cold window where evacuation stamps get applied against a boundary still being rebuilt. All `loadGrid` callers (startup resume, price-match resume, recovery reload) inherit it; there is no second restore call site to drift.
81
+ - Validation chain (`restoreLastFillPivot`): TTL expiry (`GRID_LIMITS.LAST_FILL_PIVOT_TTL_MS`, 24h; the pivot is a "latest fill" fact, not a permanent ratchet; expired pivots hand over to the startup book seed) and genesis binding (mismatched hash = dead generation) erase the row through one shared drop path (`clearPersistedLastFillPivot` under the bot's persistence lock, best-effort). Off-grid refusal (`resolveOnGridPivot` — the runtime's own ladder validator, imported lazily from the restore site so ONE implementation serves both the per-probe live guard and the restore; the restorer can never accept a value the runtime would refuse per probe) is a no-op that falls back to the book seed and leaves the row for the next snapshot flush to clear (the cold in-memory pivot makes the payload builder return null). The snapped ladder level is restored, never the raw float, and the ORIGINAL `fillsAt` is preserved through `setLastFillPivot`'s `atMs` param so the TTL keeps meaning "age of the last fill", not "time since this restart".
82
+ - Generation invalidation mirrors the pending-crawl ledger: `initializeGrid` and `rejectCorruptedGridSnapshot` clear the in-memory pivot via `resetLastFillPivot` (exposed as `OrderManager._resetLastFillPivot`), which clears the FULL scalar family — per-side mirrors included — so `seedLastFilledPricesFromBook`'s cold gate cannot be silently suppressed by stale per-side values after a grid rebuild, and `AccountOrders.clearGrid` wipes the persisted row with the snapshot. The guard re-arms on the first real fill of the new generation.
83
+
76
84
  - `INV-PROJ-001` New projected orders remain virtual
77
85
  - Orders projected into empty slots must be `VIRTUAL` with no `orderId` until chain confirmation.
78
86
 
@@ -288,6 +288,32 @@ The failure path is consistent regardless of whether the daemon or the
288
288
  interactive password prompt handled the authentication, making the output
289
289
  predictable for monitoring and alerting.
290
290
 
291
+ ### Cancelling the key manager (Escape ≠ wrong password)
292
+
293
+ Pressing **Escape** at any interactive key-manager prompt is an explicit
294
+ *cancellation*, never a failed authentication. The contract:
295
+
296
+ - `authenticate()` throws `MasterPasswordCancelledError` on Escape
297
+ (`modules/chain_keys.ts`). `isMasterPasswordFailure()` recognizes
298
+ cancellation alongside a genuinely wrong password, so every abort path
299
+ (`key_store`, `chain_orders`, `credential_daemon`, `dexbot_class`, `dexbot`)
300
+ handles it without reporting it as an authentication failure.
301
+ - `main()` returns whether a **usable vault** exists, routes every close through
302
+ one message, keeps submenu Escape local to the operation, and
303
+ `selectKeyName()` returns `null` on cancel. `dexbot.ts` honors that return
304
+ value and surfaces a cancellation message during first-run setup.
305
+ - **Setup completeness is a usable account entry, not password metadata.**
306
+ `hasKeySetup()` requires a valid `v2` encrypted key, so `dexbot start` routes
307
+ back into onboarding instead of launching with a vault that cannot sign
308
+ (`selectStartOnboardingCommand(hasKeySetup, botCount)`: no usable key → `key`;
309
+ key but no bot definitions → `bot`; otherwise launch).
310
+ - Non-interactive launches never block on a prompt: `--headless` / `--dryrun`
311
+ with incomplete configuration fail fast with a message. Programmatic
312
+ `unlock.main()` callers (tests, embeds) get no onboarding at all.
313
+
314
+ Cancellation leaves no secret material behind: it is a read-only abort of the
315
+ prompt, and the 3-attempt cap applies only to real password attempts.
316
+
291
317
  ---
292
318
 
293
319
  ## 6. Startup Path — Daemon-First, Interactive Fallback
@@ -1,7 +1,7 @@
1
1
  # DEXBot vs DEXBot2 — Detailed Comparison Report
2
2
 
3
3
  > **Date:** 2026-09-02 *(metrics refreshed against local source trees)*
4
- > **Scope:** Full architectural, functional, and operational comparison between the original [DEXBot](https://github.com/Codaone/DEXBot) (Python, v1.0.0) and DEXBot2 (TypeScript, v1.6.6).
4
+ > **Scope:** Full architectural, functional, and operational comparison between the original [DEXBot](https://github.com/Codaone/DEXBot) (Python, v1.0.0) and DEXBot2 (TypeScript, v1.6.7).
5
5
  > **Audience:** Developers, contributors, and operators evaluating or migrating between the two projects.
6
6
 
7
7
  ---
@@ -36,7 +36,7 @@
36
36
 
37
37
  | Attribute | DEXBot (original) | DEXBot2 |
38
38
  |---|---|---|
39
- | **Release Track** | 1.0.0 | v1.6.6 |
39
+ | **Release Track** | 1.0.0 | v1.6.7 |
40
40
  | **Language** | Python 3.6+ | TypeScript 5.x |
41
41
  | **Status** | Released 1.0.0, unmaintained | Active development |
42
42
  | **Last Repo Activity** | May 23, 2020 | 2026-09-02 |
@@ -776,7 +776,7 @@ Where:
776
776
 
777
777
  | Metric | DEXBot | DEXBot2 |
778
778
  |---|---|---|
779
- | **Release Track** | 1.0.0 | v1.6.6 |
779
+ | **Release Track** | 1.0.0 | v1.6.7 |
780
780
  | **Active Since** | ~2018 | December 2025 |
781
781
  | **Last Commit** | May 23, 2020 | 2026-09-02 |
782
782
  | **Total Commits** | 2281 | 2,125 (v1.4.25) |
package/docs/EVOLUTION.md CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  ## Executive Summary
4
4
 
5
- DEXBot2 is a sophisticated decentralized exchange trading bot for the BitShares blockchain. This report documents the complete evolution of the project from its inception in December 2025 through the current 1.6.6 stable release.
5
+ DEXBot2 is a sophisticated decentralized exchange trading bot for the BitShares blockchain. This report documents the complete evolution of the project from its inception in December 2025 through the current 1.6.7 stable release.
6
6
 
7
7
  ### Key Milestones
8
8
  - **Project Inception**: December 2, 2025
9
9
  - **Growth Phase**: 2,277 commits over ~9 active months
10
10
  - **Code Maturity**: Evolution from basic utilities to a ~100,000+ LoC intelligent TypeScript system
11
11
  - **Stability**: Progression from manual testing to a suite of 297 automated test files
12
- - **Releases**: 138 version entries in the changelog (v0.1.0 to v1.6.6)
12
+ - **Releases**: 139 version entries in the changelog (v0.1.0 to v1.6.7)
13
13
 
14
14
  > **Post-1.0.0 "why":** the thematic story behind the hardening releases — root cause, recurring
15
15
  > bug families, and lessons — lives in
@@ -164,11 +164,12 @@ Compact, era-level view. Per-release detail lives in [CHANGELOG.md](../CHANGELOG
164
164
  | v1.6.3 → v1.6.4 | 18 | Fund-driven spread correction, gapSlots+1 batch cap, VIRTUAL RMS divergence, sync-lock log fix, invariant-doc contract, analysis shared modules, window-aware profitability annualisation, portable chart exports, range-threshold restore, dead-code purge, doc consolidation |
165
165
  | v1.6.4 → v1.6.5 | 15 | Editor-managed whitelist flags + legacy generator removal, centralized bot defaults/settings docs, log-symmetric range-scaling tilt, AMA gridPrice default + unset → startPrice normalization, Pool default/warn-color cues, Grid Health AMA-slope Δ knob, dynamic-weight chart CLI, update dist-freshness self-heal, launcher worker rename, RMS log tagging |
166
166
  | v1.6.5 → v1.6.6 | 13 | Stale-cancellation guard hardening (live ownership, per-plan startup revalidation, COW orphan protection, settlement safety), editor label/menu realignment + colored bot list, grouped CLI help, poolRef aliases + startPrice priority, legacy SMA/MACD/RSI analyzer archived, run-relative candle-cache migration dropped, update dist-freshness tsconfig-exclude fix |
167
+ | v1.6.6 → v1.6.7 | 10 | Native session/fill-channel recovery (dead-but-open forced reconnect, stale api_id self-heal, COW stale-plan recheck) + clean-process ecosystem regen, `dexbot start` onboarding redirect, key-manager cancellation + empty-vault onboarding link, LAST-FILL-GUARD pivot persistence (provenance-gated snapshot mirror, genesis-bound + TTL + on-grid restore with the boundary, centralized writer, generation invalidation mirroring the owed-crawl ledger), PM2 log-capture restore + `pm2-logrotate` enablement, correction-drain budget + broadcast-region timer/fill deferral (bounded `_gridLock` hold, backlog alarm, stale-flag-safe maintenance deferral, defer bound tied to the watchdog, per-group create yield) |
167
168
 
168
169
  ---
169
170
 
170
171
  **Report Originally Generated**: February 19, 2026
171
- **Last Updated**: September 25, 2026
172
- **Total Commits**: 2,277
173
- **Date Range**: December 2, 2025 – September 25, 2026
172
+ **Last Updated**: September 26, 2026
173
+ **Total Commits**: 2,287
174
+ **Date Range**: December 2, 2025 – September 26, 2026
174
175
  **Repository**: DEXBot2 (BitShares DEX Trading Bot)
@@ -801,4 +801,4 @@ To prevent "Time-of-Check to Time-of-Use" errors:
801
801
  **TOCTOU protection in `processFillAccounting`.** `_buildBtsDeferredRefundAdjustment` reads `btsFeeState` from `mgr.orders` while the order lock is held — the lock is acquired before accounting runs, and the POST-RESET and BOOTSTRAP tracked-fill accounting paths follow the same locking pattern.
802
802
 
803
803
  ---
804
- *Technical Reference for DEXBot2 v1.6.6 release*
804
+ *Technical Reference for DEXBot2 v1.6.7 release*
@@ -1,7 +1,7 @@
1
1
  # The Grid-Price Invariant
2
2
 
3
3
  Status: **implemented; the emission check is BLOCKING**
4
- Last code-reviewed against the v1.6.6 release baseline `224f92ee` (2026-09-24).
4
+ Last code-reviewed against the v1.6.7 release baseline `d4e0ce0b` (2026-09-26).
5
5
 
6
6
  ## The invariant
7
7
 
@@ -141,6 +141,54 @@ every BUILT op:
141
141
  Tested by FG-1..11 (`tests/test_final_pivot_gate.ts`), including the incident
142
142
  replay (FG-2) and the index-remap hygiene (FG-7/FG-11).
143
143
 
144
+ ### The pivot rides the grid snapshot
145
+
146
+ The guard reads `_lastFilledPrice`/`_lastFilledType`, so the pivot must be live
147
+ before the first decision of a run — including while the boundary is still
148
+ being rebuilt. Without a persisted row the guard starts every process cold, and
149
+ the startup book seed (`seedLastFilledPricesFromBook`, max resting buy / min
150
+ resting sell) is only a proxy: it goes wrong whenever the book is not adjacent
151
+ to the last fill (partials, rotations, reserve shelf, dust).
152
+
153
+ `persistGridSnapshot` therefore writes a `{price, type, fillsAt, genesisHash}`
154
+ row alongside the grid (`storeMasterGrid`'s `lastFillPivot` parameter, written
155
+ under the bot's persistence lock), and `loadGrid` restores it via
156
+ `restoreLastFillPivot` right after `_restoreBoundary` — with the grid re-typed
157
+ and genesis applied, before the first reconcile/broadcast — so startup,
158
+ price-match resume, and the recovery reload all inherit one call site.
159
+
160
+ Rules that keep the mirror honest:
161
+
162
+ - **The manager's in-memory pivot stays authoritative at runtime.** The row is a
163
+ mirror that rides the grid snapshot, so it invalidates in lockstep with the
164
+ boundary/genesis instead of forming a second ledger (the `_pendingFillCrawls`
165
+ lockstep contract).
166
+ - **Provenance gates persistence.** One writer, `setLastFillPivot(type, price,
167
+ 'fill' | 'book')`; only `'fill'` is persist-eligible, so a book seed never
168
+ fossilizes as market truth. One shared shape gate (`normalizeLastFillPivot`)
169
+ serves the snapshot sanitizer and the loader, so the two checks cannot drift.
170
+ - **Restore validates before it re-arms**, in order: TTL (24h,
171
+ `GRID_LIMITS.LAST_FILL_PIVOT_TTL_MS`, with the ORIGINAL `fillsAt` preserved
172
+ through `setLastFillPivot`'s `atMs` so it keeps meaning "age of the last
173
+ fill", not "time since last restart") → genesis binding (a row from a dead
174
+ generation is refused) → on-grid (the runtime's own `resolveOnGridPivot`
175
+ ladder validator, reused from `utils/system.ts`, so the restorer can never
176
+ accept a value the live guard would refuse per probe). TTL and
177
+ genesis-mismatch verdicts erase the row through one shared drop path
178
+ (`AccountOrders.clearPersistedLastFillPivot`); an off-ladder row is a no-op
179
+ that falls back to the book seed. The snapped ladder level is restored, never
180
+ the raw float.
181
+ - **The generation wipes the pivot.** `initializeGrid` and
182
+ `rejectCorruptedGridSnapshot` call `resetLastFillPivot`, which clears the
183
+ full scalar family including the per-side mirrors (so the book seed's cold
184
+ gate is not silently suppressed by a stale mirror), and `AccountOrders.clearGrid`
185
+ drops the persisted row with the snapshot.
186
+
187
+ Tested by LFP-1..8 (`tests/test_last_fill_pivot_persistence.ts`) for the
188
+ store/load round-trip shape gates, null-clears vs undefined no-ops, the
189
+ provenance gate, `fillsAt` preservation, TTL and genesis-mismatch erasure, and
190
+ off-ladder refusal.
191
+
144
192
  ### This BLOCKS
145
193
 
146
194
  `recordGridPriceInvariantCheck` / `reportGridPriceInvariant` return whether the
@@ -384,6 +432,10 @@ is divergence telemetry built on `calculateGridSideDivergenceMetric`.
384
432
  | Fill-guard pivot validated onto the ladder (`resolveOnGridPivot`) | **landed** |
385
433
  | `[HOLD]` enrichment + slow re-warn | **landed** |
386
434
  | Final pre-broadcast pivot gate re-checks BUILT ops on a refreshed pivot | **landed** |
435
+ | Fill-guard pivot persisted with the grid snapshot (provenance: fills only) | **landed** |
436
+ | Pivot restored with the boundary (TTL → genesis → on-grid validation chain) | **landed** |
437
+ | Pivot mutation behind one provenance-tagged writer (`setLastFillPivot`) | **landed** |
438
+ | Grid generation invalidates the pivot (in-memory + persisted row) | **landed** |
387
439
 
388
440
  `resolveOnGridPivot` snaps a near-ladder pivot to its slot level but **refuses to
389
441
  rewrite a far-off-ladder one** onto an edge slot — silently clamping would dress
@@ -414,6 +466,9 @@ reported.
414
466
  skipped-slot restore paths, remaps pending indexes on compaction, and never
415
467
  gates cancels or size-updates (`tests/test_final_pivot_gate.ts`, FG-1..11,
416
468
  including the 2026-09-13 stale-pivot incident replay).
469
+ - **Unit:** pivot snapshot round-trip and its restore validation chain
470
+ (`tests/test_last_fill_pivot_persistence.ts`, LFP-1..8) — shape gates,
471
+ provenance, TTL, genesis binding, off-ladder refusal, full-family reset.
417
472
  - **External gate:** `analysis/grid_correction_check.ts` — target 0 sustained
418
473
  violations at 168h/720h. **The baseline is NOT clean:** 4 of 5 bots were
419
474
  non-zero over 7 days, so this is a live signal, not a historical one.
package/docs/LOGGING.md CHANGED
@@ -43,6 +43,8 @@ Module → Logger.log() ──┬→ console (stdout/stderr)
43
43
  + JSON lines (optional)
44
44
  ```
45
45
 
46
+ **Under PM2** the console branch is the only active sink: PM2 captures stdout/stderr into `profiles/logs/<app>.log`, so the Logger suppresses its own file writes and its timestamps (PM2's `log_date_format` prefixes each line). Keep console output enabled under PM2 — auto-quieting it would leave PM2 with nothing to capture. Use `quietUnderPm2: true` only if you deliberately want a silent process.
47
+
46
48
  ---
47
49
 
48
50
  ## Log Levels
@@ -155,7 +157,13 @@ The default `LOG_LEVEL` is `"info"`. For production or minimal output, set to `"
155
157
 
156
158
  Example: 1.1GB budget with 10 rotated files → each file rotates at ~100MB, max total ~1.1GB.
157
159
 
158
- Under PM2, rotation is auto-suppressed — PM2 handles its own log files.
160
+ Under PM2, the Logger's own file writes and rotation are suppressed — PM2 owns the log files. PM2 core does **not** rotate them (the per-app `max_size` field is ignored), so `dexbot pm2` installs and configures the `pm2-logrotate` module (100M per file, retain 10, compressed) on first start. To manage rotation yourself, install it ahead of time:
161
+
162
+ ```bash
163
+ pm2 install pm2-logrotate
164
+ pm2 set pm2-logrotate:max_size 100M
165
+ pm2 set pm2-logrotate:retain 10
166
+ ```
159
167
 
160
168
  ---
161
169
 
@@ -265,6 +273,13 @@ New/updated operator-visible messages added by the uncertain-broadcast and COW h
265
273
  | `⚠ FAILED attempt N/3` / `✗ BLACKLISTED after N failures` | Daemon node health ledger — per-node retry exhaustion then blacklist |
266
274
  | `[DUST] Chain refetch after verified cancel is TRUNCATED/EMPTY; applying local cancel sync` | Truncated-read fallback in the dust-cancel refetch path |
267
275
  | `authoritative absence verified` | Aligned retry log wording — re-broadcast only on provable absence |
276
+ | `Fill channel DEGRADED for <account>: N consecutive history-scan failures … forcing reconnect` | Fill-history channel stayed dead while the socket looked open; the watchdog forced a reconnect (which re-establishes the session and fires the post-reconnect safety-net sync) |
277
+ | `Fill channel recovered for <account> [after N forced reconnect(s)]` | A previously degraded channel completed a successful history scan; `N` is how many forced reconnects it took (the clause is omitted when it recovered without an issued reconnect) |
278
+ | `processObjects (fill-poll): error … (+N suppressed)` | Throttled fill-channel error; `+N suppressed` counts repeats collapsed within the log interval |
279
+ | `processObjects (retry<N>-after-<context>): error …` | Fast re-scan rung fired after a channel failure (ladder 5s/10s/15s), to verify a recovery attempt without waiting for the next 60s poll tick. `N` is the rung |
280
+ | `Fill channel for <account> did NOT recover after N forced reconnects … fills may be missed … restart the bot` | **Operator action required.** Automatic recovery ran its full escalation and the channel is still dead — the log line that makes a failed recovery visible instead of a silent reconnect loop |
281
+ | `⚠ <node>… FAILED attempt N/3 (fill channel unrecoverable for <account>: …)` | **Node strike recorded.** Emitted only after N forced reconnects failed to clear the channel, i.e. the node itself is suspect. A forced reconnect on its own never costs a node a strike — a session-level wedge that clears on the first cycle leaves the strike ledger untouched. Three of these blacklist the node for 24h |
282
+ | `Forcing reconnect on <node> (<reason>)` | Transport-level forced reconnect (stale api_id escalation or fill-channel watchdog); the node is reported failed so the reconnect prefers another node |
268
283
 
269
284
  ---
270
285
 
@@ -316,7 +331,7 @@ Yes — each bot entry in `profiles/bots.json` accepts an optional `logging` fie
316
331
  The per-bot `logging` is deep-merged on top of the global config from `general.settings.json`. See `modules/runtime_settings.ts` for the merge logic and `modules/order/manager.ts` for where the merged config reaches the logger.
317
332
 
318
333
  **Q: What about PM2?**
319
- The logger auto-detects PM2 and suppresses file writes (PM2 captures stdout/stderr). File rotation is also suppressed under PM2.
334
+ The logger auto-detects PM2 and suppresses its own file writes because PM2 captures stdout/stderr into `profiles/logs/<app>.log`. It never auto-quiets under PM2 (that would drop every line — stdout is the only sink). Log rotation moves to `pm2-logrotate`, which `dexbot pm2` installs automatically on first start.
320
335
 
321
336
  **Q: Are log lines lost on crash?**
322
337
  Queued-but-unwritten lines could be lost. Critical errors go to stderr immediately (PM2 captures those). Queue drains every 100ms. Call `flush()` on shutdown.