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.
- package/CHANGELOG.md +41 -1
- package/README.md +5 -2
- package/analysis/trend_detection/package.json +1 -1
- package/claw/package.json +1 -1
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/tests/test_claw_mcp_transport.ts +2 -2
- package/dist/dexbot.d.ts.map +1 -1
- package/dist/dexbot.js +22 -9
- package/dist/dexbot.js.map +1 -1
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +10 -9
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/account_orders.d.ts +20 -2
- package/dist/modules/account_orders.d.ts.map +1 -1
- package/dist/modules/account_orders.js +63 -3
- package/dist/modules/account_orders.js.map +1 -1
- package/dist/modules/bitshares-native/chain_client.d.ts +10 -0
- package/dist/modules/bitshares-native/chain_client.d.ts.map +1 -1
- package/dist/modules/bitshares-native/chain_client.js +197 -28
- package/dist/modules/bitshares-native/chain_client.js.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.d.ts.map +1 -1
- package/dist/modules/bitshares-native/subscriptions.js +312 -10
- package/dist/modules/bitshares-native/subscriptions.js.map +1 -1
- package/dist/modules/bitshares-native/transport.d.ts +1 -0
- package/dist/modules/bitshares-native/transport.d.ts.map +1 -1
- package/dist/modules/bitshares-native/transport.js +97 -3
- package/dist/modules/bitshares-native/transport.js.map +1 -1
- package/dist/modules/bitshares_client.d.ts +20 -0
- package/dist/modules/bitshares_client.d.ts.map +1 -1
- package/dist/modules/bitshares_client.js +29 -0
- package/dist/modules/bitshares_client.js.map +1 -1
- package/dist/modules/chain_keys.d.ts +37 -22
- package/dist/modules/chain_keys.d.ts.map +1 -1
- package/dist/modules/chain_keys.js +145 -44
- package/dist/modules/chain_keys.js.map +1 -1
- package/dist/modules/cli_start_onboarding.d.ts +10 -0
- package/dist/modules/cli_start_onboarding.d.ts.map +1 -0
- package/dist/modules/cli_start_onboarding.js +15 -0
- package/dist/modules/cli_start_onboarding.js.map +1 -0
- package/dist/modules/cli_start_output.d.ts +6 -0
- package/dist/modules/cli_start_output.d.ts.map +1 -0
- package/dist/modules/cli_start_output.js +8 -0
- package/dist/modules/cli_start_output.js.map +1 -0
- package/dist/modules/constants.d.ts +13 -0
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +103 -1
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +49 -9
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_fill_runtime.d.ts +6 -1
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_fill_runtime.js +22 -3
- package/dist/modules/dexbot_fill_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +24 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +45 -1
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +13 -1
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +33 -1
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +11 -0
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/logger.d.ts +12 -2
- package/dist/modules/order/logger.d.ts.map +1 -1
- package/dist/modules/order/logger.js +29 -7
- package/dist/modules/order/logger.js.map +1 -1
- package/dist/modules/order/manager.d.ts +49 -0
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +72 -24
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +97 -12
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +97 -0
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +274 -2
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/paths.d.ts +7 -1
- package/dist/modules/paths.d.ts.map +1 -1
- package/dist/modules/paths.js +10 -3
- package/dist/modules/paths.js.map +1 -1
- package/dist/modules/utils/text_width.d.ts +19 -0
- package/dist/modules/utils/text_width.d.ts.map +1 -0
- package/dist/modules/utils/text_width.js +97 -0
- package/dist/modules/utils/text_width.js.map +1 -0
- package/dist/pm2.d.ts.map +1 -1
- package/dist/pm2.js +95 -18
- package/dist/pm2.js.map +1 -1
- package/dist/scripts/update.js +62 -13
- package/dist/scripts/update.js.map +1 -1
- package/dist/unlock.d.ts +14 -2
- package/dist/unlock.d.ts.map +1 -1
- package/dist/unlock.js +73 -4
- package/dist/unlock.js.map +1 -1
- package/docs/COW_INVARIANTS.md +8 -0
- package/docs/CREDENTIAL_SECURITY.md +26 -0
- package/docs/DEXBOT_COMPARISON.md +3 -3
- package/docs/EVOLUTION.md +6 -5
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
- package/docs/GRID_PRICE_INVARIANT.md +56 -1
- package/docs/LOGGING.md +17 -2
- package/docs/ORDER_ENGINE_POST_1.0_RETROSPECTIVE.md +6 -7
- package/docs/README.md +1 -1
- 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
|
-
|
|
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
|
package/dist/unlock.js.map
CHANGED
|
@@ -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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"}
|
package/docs/COW_INVARIANTS.md
CHANGED
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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**:
|
|
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
|
|
172
|
-
**Total Commits**: 2,
|
|
173
|
-
**Date Range**: December 2, 2025 – September
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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.
|