THESIS docs
v1.1.0
Live demo Get help
● Reference · Versions

Changelog
what changed, when.

Every release, newest first. Read the entry for your target version before you update.

011.1.0

Which terminal

The commands on this page are written for the shell of macOS and Linux (bash or zsh). On Windows, run them in WSL (Windows Subsystem for Linux, Ubuntu) or Git Bash: commands such as cp, openssl, set -a && . ./.env and multi-line curl with \ do not work as written in PowerShell or cmd. The node and pnpm commands work in any of them.

Current 1.1.0 · safety, configuration and code-quality release. The rule engine, the backtest fill model and the robustness lab are unchanged.

  • Safer risk caps by default: 5x leverage, 1 % risk per trade, 5 % daily loss, 10 trades a day (1.0.0: 10x, 2 %, 10 %, 20). Raise them in Admin → Risk caps if you need to.
  • One live-start checklist (liveStartBlockers() in src/ui/flow-logic.ts) drives the start button and is checked again when a run starts: robustness grade, wallet, trading key, desk-fee approval, all four acknowledgements and, on mainnet, the typed <COIN> LIVE phrase.
  • Compiled server: pnpm build also compiles the server, the shared settings code and the Admin Kit with tsc (tsconfig.server.json) into dist-server/; pnpm start runs it with plain node. tsx is a development dependency only.
  • Environment check at start-up (server/env.ts): a malformed ADMIN_SECRET_KEY, DATABASE_URL, THESIS_PORT, THESIS_STORAGE, THESIS_BLOB_ACCESS or THESIS_TRUST_PROXY stops the Node server with the variable's name (never its value); on Vercel /admin answers 503 with the message.
  • Client address behind a proxy: with THESIS_TRUST_PROXY=1 the right-most X-Forwarded-For entry is used (1.0.0 used the left-most, which a client can write). The admin's sign-in limits count per client address.
  • Security policy: no inline script on any page (public/first-paint.js), so script-src 'self' without a hash; the operator console keeps style-src 'self' with a per-response nonce. zod runs in jitless mode (src/shared/zod-setup.ts), so its one-time new Function probe no longer shows up as a CSP violation in the browser; validation is unchanged.
  • Admin Kit 0.6.0 in packages/admin-kit: compilable server, sign-in limits per address and account with backoff, owner-password recovery helpers. The console ships as a readable bundle (not minified); the kit is part of the source and you may edit it like the rest of the code.
  • First owner with a setup token: set ADMIN_SETUP_TOKEN (openssl rand -hex 24, at least 24 characters) and enter it at /admin to create the owner; without it the server log prints a one-time setup code. Nobody can create the owner from the browser without one of the two, and neither works once an owner exists (Create the owner).
  • Notifications: alerts go to a signed webhook; the alert e-mail field is gone.
  • Pro plan refresh limit: POST /api/pro/refresh answers once per signed-in address every 30 s (429 with Retry-After otherwise), and the operator's ledger is re-read at most once every 5 s.
  • .env.example lists every variable the server reads, including ADMIN_SETUP_TOKEN, THESIS_HOST and THESIS_DIST_DIR.
  • pnpm 11 and later: the pnpm settings (the zod override and the packages allowed to build) are also in pnpm-workspace.yaml, so pnpm install --frozen-lockfile works with pnpm 10 and with pnpm 11 or later.
  • Code quality: ESLint and Prettier (120 characters per line), pnpm lint, pnpm format and pnpm check (typecheck, lint, format check, tests); the API handler split into modules; tests named by subject, 161 automated tests in 15 files.
  • Removed: an unused settings migration script. Use Admin → Export / Import to move settings between desks.

Upgrading from 1.0.0:

  1. Back upAdmin → Export / Import → Export, your .env and, on a Node server, the data/ folder.
  2. Replace the sourceKeep .env and the data folder (see How to update).
  3. Install and build
    pnpm install
    pnpm build
  4. Change the start commandIf your process manager ran pnpm run server or tsx server/node.ts, point it at node dist-server/server/node.js (or pnpm start). On Vercel, redeploy.
  5. Keep or add the setup tokenAn existing owner keeps signing in as before. For a new install, set ADMIN_SETUP_TOKEN before the first start.
  6. Check the risk capsStored caps keep their values; caps never saved take the new defaults. Open Admin → Risk caps and check the four values.

If the server refuses to start after the update, its log names the variable to fix.

021.0.0

Which terminal

The commands on this page are written for the shell of macOS and Linux (bash or zsh). On Windows, run them in WSL (Windows Subsystem for Linux, Ubuntu) or Git Bash: commands such as cp, openssl, set -a && . ./.env and multi-line curl with \ do not work as written in PowerShell or cmd. The node and pnpm commands work in any of them.

1.0.0 · first release.

  • Desk (/app) with Build, Test and Run workspaces and a guided flow (Chart → Rules → Robustness → Paper → Live); command palette (⌘K / Ctrl+K); visual and JSON rules editor; strategy gallery of three templates, each backtested live; saved strategies in the browser; share links (rules in the URL after #).
  • Optional AI chart reading with your own Anthropic key: the chart on screen plus its candles, or a screenshot, into a strict rule schema with clamped risk limits and a report of every change; edits in plain words shown as a diff; level check of chart levels against real swing highs and lows. Without a key the desk works on templates and hand-written rules.
  • Backtest on the most recent Hyperliquid candles (about 5,000 per request): next-open fills, stop-first on ambiguous candles, taker fee, builder fee, slippage, real hourly Hyperliquid funding while a position is open, older 70 % vs recent 30 % split, buy-and-hold comparison, trade CSV export.
  • Robustness lab in a background worker: walk-forward, Monte Carlo (reshuffled drawdown and bootstrapped returns), parameter sensitivity, look-ahead check and a grade from A to F that gates testnet and mainnet runs.
  • Runs as paper, testnet or mainnet (mainnet off by default) from the user's tab, with an expiring agent key approved by the user's wallet; each entry sent with its stop and target in one signed action; bounded IOC entries; risk limits; kill switch; journal of expected vs actual (fills, slippage, fees, funding); drift warning against the lab's Monte Carlo range; alerts in the app, as browser notifications and through the user's own Telegram bot; key panel with a live network log.
  • Landing page (/) with live Hyperliquid tickers, a robustness verdict computed in the visitor's browser on real data, editable copy and FAQ, a pricing section when plans are on, and a "for operators" section with a revenue calculator on the visitor's own inputs.
  • Operator admin (/admin) on the MIKODES Admin Kit 0.4.0 (in packages/admin-kit): settings with hard ranges, owner and team roles, two-factor, audit log, history and rollback, export and import with preview, status checks, realised revenue, aggregate metrics.
  • Revenue mechanisms, all off by default: Hyperliquid builder fee (cap 0.1 %), Pro plan paid in USDC on Hyperliquid, Hyperliquid referral link.
  • Access controls: maintenance mode, announcement banner, live modes blocked by country (default: US), restricted-jurisdiction confirmation before live runs.
  • Hosting: one Node process (SQLite or Postgres) or Vercel (Postgres, optional Blob); Content-Security-Policy on every page; retry with backoff when Hyperliquid rate-limits. 142 automated tests (pnpm test).

Migration: none. 1.0.0 is the first published version of THESIS, so there is nothing to upgrade from: no environment variables, stored data or settings to migrate.

03How to update

Keep the original package and your changes apart from day one, so a new version is a merge, not a rewrite:

git init
git add .
git commit -m "THESIS 1.1.0 (original)"
git branch upstream          # untouched copy of the original
  1. Back upAdmin → Export / Import → Export. On a Node server, also copy the data/ folder.
  2. Download the new versionCodeCanyon → your account → Downloads → THESIS.
  3. Unpack it on the upstream branch
    git checkout upstream
    # delete the old files (not .git), unzip the new version here
    git add -A
    git commit -m "THESIS <new version> (original)"
    git checkout main
    git merge upstream
  4. Resolve conflictsUsually only in files you rebranded. Keep your values, take the new code.
  5. Install, test, build, restart
    pnpm install
    pnpm check
    pnpm build
    Then restart the server, or push to your repository so Vercel redeploys. Admin settings stay in your database.

Versions follow major.minor.patch: a patch fixes bugs, a minor adds features with safe defaults, a major may need migration steps, which are always listed here.