Changelog
What changed in dexterm, by day, written by hand from the app's git history.
Human-written from the git log of dexterm/app (84 commits, 2026-10-05 to 2026-10-09). Hashes are the merge or lane commits on main. The app is version 0.0.1 throughout; there is no public release yet.
2026-10-09#
- Keyless social layer (
87b598f, merge ofce99a04): a TRENDING IN THE SPACE board on T ranked from public lists (Jupiter trending and organic score, GeckoTerminal trending pools, CoinGecko trending; DexScreener paid boosts weighted against a coin), narratives, and a NEWS column from CoinDesk, Cointelegraph, The Block and Decrypt official RSS; a SOCIAL panel on the token screen (s); KOL lists on K anddexterm kol, with hash-locked packs that are refused when tampered. Every post and headline passes a prompt firewall, near-duplicates collapse, account bursts are marked spam, and instruction-like posts never reach the model. No X API, no scraping, no login: in live mode the panel shows on-chain rows only. - History recorder (
4b082fd, merge ofe3f5fd6): on by default in live mode, it keeps material changes per coin, feed membership and code-only outcome labels (1 h to 72 h) in the local database, with low-priority DexScreener re-checks capped at 6 a minute and 1,500 a day. Nothing is uploaded. Measured at about 100 MB per 8-hour day and no CPU cost above noise;--no-recorderorDEXTERM_RECORDER=0turns it off, anddexterm recorder stats|label|prune|exportreads it. - Coin images (
0560b6e…3f8648e): the coin's picture on every row, the token screen, the spotlight and the popup header; real pixels over kitty, iTerm2 and sixel, half-block art everywhere else including Terminal.app; one fetch per coin through a local cache;--no-imagesto turn it off.
- Popup chart v2 (
242863e, merge ofb5016be): TradingView Lightweight Charts 5.2.1 vendored and served same-origin on one exact route; a native wry window docked beside the terminal that follows it; the chart's own six timeframes answered from the terminal cache with zero fetches; EMA, VWAP, volume MA, tape markers, drawings, live/stale badge; the paper position drawn as an entry line, fills and a row. Fixed on the way: malformed WebSocket close frames, a ×100 bug on the 24h change in popup pages, unknown popup events echoed back, andinstall.shnever linking the popup package. A 50-probe attack suite runs against the in-app server.
2026-10-08#
- AI scan mode (
be92898): an observe-only watcher with six triggers, a no-hop lock, cost caps, a WHY strip,Z/Rkeys,--scanflags and/scancommands. Four structural layers keep the scan session from ever taking a UI action; measured zero extra requests and no idle-CPU cost in calm mode. - UX round 3 (
bfdf2f7): the screener paints in under a second from a cached snapshot or skeleton rows (was 17.5 s cold); the chart gets limiter priority over background work so a cold timeframe lands in ~250 ms (was 15 s); hover prefetch of candles; the analyst answers in 3–6 decided lines with long form only on request; a position row under the chart; the buy/sell flow panel replaces the tape by default (Ftoggles). - Idle throttle and quit (
67f5a74,770d096,44e8206,1082dc0): the full look while you type, 8 fps ambient rain after 5 s idle; quit under a second by wiring the shutdown signal through the transport and cancelling parked limiter waits; measured startup and RSS. - Popup host hardening (
87b79f1,d49f330): navigation pinned by parsed origin (closes a userinfo bypass), crash-safe close, loopback-only enforcement for remote content, a README for theopenPopupinterface and security model. - Analyst prompt order fix (
e9d7cba): keep the skill invocation first so the CLI expands it. - Merge of analyst round 2, speed and the LARP detector (
b7f5804).
2026-10-07#
- LARP detector (
85e1bbf…0882e59): advertised-link classification, an SSRF-safe page fetch (DNS validated in the socket, robots.txt honoured, bodies capped), RDAP domain age, GitHub activity, four MCP tools, thelarp-checkskill with a structured verdict,V/W/X/T/Lkeys, a verdict badge only for coins you vetted, an end-to-end prompt-injection fixture, and the RDAP+jsoncontent-type fix that had silently dropped every real RDAP body. - Analyst round 2 (
4f86b50,be0f882): the analyst knows the hovered coin and the visible rows every turn; a split coin-list view on the analyst tab; a token-authenticated UI-action channel re-validated by the app; plain-language filters; coin-list answers that jump. - Speed (
b01e236): 5m/15m derived from 1m and 4h/1d from 1h so a switch is milliseconds; a one-callget_dossier; the MCP server shares the terminal's on-disk cache; sonnet as the default analyst model; partial verdicts withmissing_datainstead of false INSUFFICIENT_DATA. - PAPER trading T0 (
8513485): the ticket, the simulated wallet in SQLite, the positions screen, the confirm gate, aTradeExecutorboundary with no signing library anywhere. - Two-speed feed (
2e804e3,a718670,da197c3): on-chain curve price over one WebSocket for the open token and the watchlist, LIVE/POLL badges, a cap of 24 subscriptions, calm-mode budget. - QA batches (
72f57d7,a605325,3e71858,063ad59,7fb51cc): chat focus model (i/⏎ to type,qnever quits mid-question), copy CA, the trench feed as default, no auto-dossier on ⏎, mint-pinned selection on new pairs, scrollable answers, the ~9 s quit hang from WebSocket reconnect backoff. - FREE-FOREVER data layer (
0d276be): an RPC pool that rotates by health and pauses on 429, the keyless holder aggregate, a request budget meter, a keyless smoke script. - Installable and self-explaining (
07e42e9):install.sh,dexterm doctor, the welcome card, the?help overlay, graceful states for every missing thing. - Pacing and idle CPU (
aa83124,f5cd0cd,0d803c9,8badf3f): DexScreener wide pool paced to ≤30 req/min, idle CPU to ≤12%, a feed switcher, hundreds of coins in the pool, doubled analyst answers fixed, the first-test fixes.
2026-10-06#
- The Claude analyst wired into the app (
be39d04,d654559):arug-checks the selected row, ⏎ opened a dossier (later made explicit), the decrypting answer, the cost caption. - The cyberspace look ported onto live data (
c35ae07,946000e): rain made of your own tickers, two masks on the cell buffer, pump/dump colouring from the data, boot sequence, blink transitions, intensity tiers. - Live data (
18f55ad): Helius RPC with a credit meter, live token screen, PumpPortal new pairs, the watchlist, GoPlus. - Screener on the data store (
f5e395d,d5d5354): the filter grammar, the sort menu, presets through the health registry, the spotlight,--record/--replay.
2026-10-05#
- Data layer (
ea4d5ba,b5e28de): the limiter, the health registry, the SQLite cache, fixtures, DexScreener and Jupiter adapters; GeckoTerminal candles, Solana RPC mint and holders, the RugCheck summary. - The TUI and the CLI (
6c7fb97,8dbdd59): the cell-buffer renderer extracted from the prototype, the five screens on fixtures, snapshot tests, the monorepo scaffold and the normalized model.