§ / CHANGELOG

What changed, and when.

Shipping notes from the build. Dates are the dates the work landed.

2026-08-11TERMINALDENSITYBRAND

Round 9: terminal chrome, dense rows

  • Three chrome layers the terminal audit found missing: a 36px watchlist strip sticky under the nav, a 40px page-tab row carrying the same five destinations as the mobile bar, and a fixed 32px status bar on every signed-in route. All three reserve their height in the first frame, so nothing shifts when their data lands. The strip shows a real last price and nothing beside it — a 24h change would need one history request per market and the market rows carry no change field, so there is no delta rather than an invented one. DAY PNL is an uncoloured em dash for the same reason: the number within reach is deposits, not profit.
  • The market row is rebuilt at 64px on desktop and 88px stacked below about 540px of row width — the same fields either way, relaid rather than dropped. A row now carries the market image with its category ring and recency badge, the question, a category chip, the bid/ask spread, a resolve countdown, the size resting at the top of book, the last price over its exact one-day change in cents, 24h volume, a sparkline stroked by that same change, and a watch control. The depth figure reads "—" for any market outside the engine's top-200 cached books, which is most of the universe and is the honest answer.
  • The mandatory inset border on market images was declared correctly in round 8 and was invisible: an inset shadow paints in the background layer and the image covers it exactly, so only the monogram tiles ever showed an edge. It is now painted by an overlay above the image, and measured at all three widths.
  • The order book gains a cumulative-depth column beside the size — how much rests at each level and how much rests at that level or better, as two aligned columns of exact decimal strings rather than a second stacked line.
  • The mascot is restarted as the Reticle Owl. The round-8 drawing painted the inherited text colour, which at every real call site is grey, and dimmed its resting poses with opacity — black at 80% on a white page is also grey. Colour is now stated explicitly in black and Poly Blue and inherits nothing; there is no opacity anywhere. The eyes are crosshair apertures cut out of the silhouette, and the three poses differ only in the variables that survive at 24px.
  • A landing spacing audit: every section boundary measured 256–321px of dead white where two paddings met. Sections now pad 48px a side on desktop and 40 on mobile, measured at 1534, 834 and 406.
  • The hero's live frame accepted a one-sided order book, so it could render "—" for both MID and SPREAD on a market that had quotes on only one side. It now requires both sides, and still returns nothing rather than a placeholder when no market qualifies.
  • The watch control is device-local — it pins to this browser and claims nothing on the server, because there is no watchlist backend to claim it against.

2026-08-11REDESIGNLIGHTBRAND

Round 8: the light inversion

  • One light theme replaces the dark one — white ground, ink text, Poly Blue accents — with every foreground/background pair measured against WCAG AA and the shipped values recorded in the contrast table. Depth comes from borders and a shadow scale, not glows.
  • A real mascot: an owl built from the scope-ring stroke language, chosen from three candidate silhouettes by which one still reads as an owl at 24px. Poses for idle, watching and armed; the brand cut (icons, OG cards, manifest) follows it onto white.
  • Every market surface carries the market's image — inset border, 2px category ring, and a corner badge that is only live when the quote actually moved recently; monogram tiles where no image exists.
  • Density patterns from the trading-terminal tradition: dual-line numeric cells, tinted chips, full-width rows instead of boxed cells, mono-aligned figures.
  • Empty states are ghosted structure — real toolbars and row geometry at 6% ink with the owl and one factual line — not a blank pane.
  • The order book and the liquidity heat map are re-derived for white: tinted depth behind the text, a flat mid rule with the spread pill, and dark ink on the heat ramp where measurement said white fails.
  • The trust strip's UPTIME stat is removed rather than faked — no real data exists for it — and the ticker deduplicates by market.

2026-08-11PAINTMOBILE

Round 7: black from the first frame

  • The first paint is black now, not white: the root element carries the black ground as a critical inline style ahead of the stylesheet, theme-color and color-scheme metas tell the browser chrome and native controls the same thing, and autofilled form fields no longer flash Chrome's pale fill.
  • Category colours get their own ramp — four hues (cyan, blue, violet, magenta) chosen to be disjoint from the gain/loss/armed colours, assigned to the four most frequent categories. The long tail of small categories drops colour entirely and keeps a neutral edge; previously a category could hash onto loss-red.

2026-08-10NAVMOBILEEVIDENCE

Round 6: mobile fixes, with the evidence attached

  • The landing mobile nav drawer is opaque — content no longer bleeds through it while it is open.
  • The mobile markets feed drops its category headers; each row carries its own category label instead, and casing is normalised once, in CSS, rather than per data source.
  • A dev-only armed fixture drives the arm control so the hold-to-arm ring could be verified end to end without touching real state.
  • Lighthouse JSON reports are committed alongside the pages they measure, and the pricing card states the annual option's real status instead of implying a discount that does not exist.

2026-08-10REDESIGNBRANDMOBILE

Round 5: neutral black, one brand, three rebuilds

  • The ground is retuned to a neutral grey ramp over true black — the navy cast is gone, default body text is brighter, and blue appears only where blue means something. Buttons become top-lit pills with a specular sweep and press mechanics; every colour pair is re-measured in the shipped contrast table.
  • A proper brand set: the scope-aperture logomark, the mascot redrawn with rim light and status looks, and a full favicon/manifest/OG set. MarketAvatar puts real market thumbnails — with a monogram fallback — on every market row.
  • Landing, dashboard and auth rebuilt: centred hero over one rendered app frame, a 3-zone desktop dashboard with a resizable markets zone and an 834px master/detail tablet layout, and a split login/signup with a live-stat brand panel.
  • Three fixes: the landing mobile nav drawer rendered transparent (now opaque, focus-trapped and scroll-locked), the live-stats strip clipped UPTIME at ≤834px (now a responsive grid), and the mobile markets list repeated category headers (runs are case-normalised).

2026-08-10PALETTETYPE

PolySniper is now black, white and Poly Blue

  • Full palette and typography migration: true-black ground, white-forward text, Poly Blue as the single primary — with amber surviving for exactly one job, the armed-and-trading state.
  • Inter Tight on headings, Inter on body, JetBrains Mono on every number. Chakra Petch and Archivo retired.
  • Every text/background pair re-measured against WCAG AA; the full contrast table ships in the repo.

2026-08-10BOOK

Order book rebuilt: real depth, readable

  • Bids green, asks red, cumulative depth bars filling inward from the price side — proportional to real resting size, never a flat slab.
  • Mid price and spread computed with exact decimal-string arithmetic and displayed live; one-sided and empty books get honest states instead of dashes.
  • Depth bar widths animate 180ms so the book never jumps.

2026-08-10MOBILE

Mobile rebuilt as its own app

  • Five-tab thumb-zone IA — Markets, Book, Positions, Activity, Bot — replacing the reflowed desktop layout.
  • The order book is a bottom sheet with real snap points and weight; the arm/disarm control moves to the widest, lowest, most reachable bar on the screen.
  • Pull-to-refresh drives the mascot's reticle with pull distance. Safe-area insets throughout.

2026-08-10LANDING

The Pulse board: live markets on the landing page

  • Three live columns — widest spreads, highest volume, resolving soon — polling the engine's real feed with category filters and per-market sparklines.
  • Every count is the real array length and every missing value renders an em-dash. The board is the proof-of-product, so it fabricates nothing.

2026-08-09ENGINERISK

The risk gate: nine server-enforced limits

  • Position size (absolute and % of balance), total and per-market exposure, open-position count, liquidity, spread, order rate, and a daily loss cap that disarms the bot in the same transaction that records the loss.
  • Every rejection is written down with its rule name — the activity feed shows the trades the bot didn't take, and why.

← Back to the site

POLYSNIPER

Trading prediction markets involves substantial risk of loss. PolySniper is execution software; it does not provide investment advice and makes no representation as to results. Not available in restricted jurisdictions.

PolySniper is an independent tool and is not affiliated with, endorsed by, or operated by Polymarket.