Changelog
what changed, when.
Every release, newest first. Read the entry for your target version before you update.
011.1.0
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()insrc/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> LIVEphrase. - Compiled server:
pnpm buildalso compiles the server, the shared settings code and the Admin Kit withtsc(tsconfig.server.json) intodist-server/;pnpm startruns it with plainnode.tsxis a development dependency only. - Environment check at start-up (
server/env.ts): a malformedADMIN_SECRET_KEY,DATABASE_URL,THESIS_PORT,THESIS_STORAGE,THESIS_BLOB_ACCESSorTHESIS_TRUST_PROXYstops the Node server with the variable's name (never its value); on Vercel/adminanswers 503 with the message. - Client address behind a proxy: with
THESIS_TRUST_PROXY=1the right-mostX-Forwarded-Forentry 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), soscript-src 'self'without a hash; the operator console keepsstyle-src 'self'with a per-response nonce. zod runs in jitless mode (src/shared/zod-setup.ts), so its one-timenew Functionprobe 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/adminto 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/refreshanswers once per signed-in address every 30 s (429 withRetry-Afterotherwise), 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_HOSTandTHESIS_DIST_DIR. - pnpm 11 and later: the pnpm settings (the zod override and the packages allowed to build) are also in
pnpm-workspace.yaml, sopnpm install --frozen-lockfileworks with pnpm 10 and with pnpm 11 or later. - Code quality: ESLint and Prettier (120 characters per line),
pnpm lint,pnpm formatandpnpm 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:
- Back upAdmin → Export / Import → Export, your
.envand, on a Node server, thedata/folder. - Replace the sourceKeep
.envand the data folder (see How to update). - Install and build
pnpm install pnpm build - Change the start commandIf your process manager ran
pnpm run serverortsx server/node.ts, point it atnode dist-server/server/node.js(orpnpm start). On Vercel, redeploy. - Keep or add the setup tokenAn existing owner keeps signing in as before. For a new install, set
ADMIN_SETUP_TOKENbefore the first start. - 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
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 (inpackages/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
- Back upAdmin → Export / Import → Export. On a Node server, also copy the
data/folder. - Download the new versionCodeCanyon → your account → Downloads → THESIS.
- 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 - Resolve conflictsUsually only in files you rebranded. Keep your values, take the new code.
- Install, test, build, restart
Then restart the server, or push to your repository so Vercel redeploys. Admin settings stay in your database.pnpm install pnpm check pnpm build
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.