Changelog
What is new on CW Macro
April 26, 2026
Macro mobile layout fix FIX
- Bottom tab bar no longer covers the page on mobile. The screen-pills nav (1 VERDICT / 2 CYCLE / 3 CAPITAL / 4 EXECUTION / 5 PLAN) was inheriting
top: 0 from the desktop sticky rule when the mobile position: fixed; bottom: 0 kicked in, which stretched the nav to full viewport height and let its translucent backdrop hide every panel behind it. Now sits at viewport bottom as intended.
April 25, 2026
CW Desk Sprint 3d — pin freshness NEW
- Setup-age badges. Every cell on the Desk now shows how long the structurally-equivalent setup has been triggering.
🕐 fresh for under 5 min, 🕐 23m for under an hour, 🕐 1h 47m for longer. The hash is structural — based on persona/profile/direction + stop-loss bucketed at 0.1× ATR — so micro-drift in entry/TP across renders doesn't reset the badge.
- Entry-zone badges. Each cell tells you whether current price is still within an enterable distance of the original entry.
✓ in zone, ⚠ +0.4× ATR (drifting, still pinnable), ⛔ entry passed (price has run past entry in the trade direction by more than the threshold). Thresholds: scalp 0.3× ATR, intraday 0.5× ATR, swing 1.0× ATR, quant 1.0× ATR.
- Pin-time hard reject. Server returns HTTP 422 if you try to pin a setup whose entry zone has been passed. Apparent winrate from late pins is now structurally impossible — the ledger only accepts pins on setups you could actually take at the original entry. The pin button visibly disables when the zone is passed; the server backstops anyone bypassing the disabled state.
April 26, 2026
Cross-Asset Positioning surfaced on Macro NEW
- BTC, ETH, SOL, and HYPE bias all visible on the verdict screen now. The AI debate engine has always produced per-asset positioning (bias / conviction / size band / rationale / key levels / catalysts), but the panel that renders it sat 8 deep on Macro's verdict screen, behind 4 BTC-only panels. The panel head was renamed to Cross-Asset Positioning · BTC · ETH · SOL · HYPE and moved to position 5 — right after the verdict summary bento. Now visible without scrolling past the BTC composite.
- Phase 2 (per-asset cycle phase math). Standalone ETH/SOL cycle phase using MVRV/NUPL/Puell math is deferred to Phase 2; it depends on Glassnode adding ETH + SOL collectors first. Phase 1 surfaces what already exists.
April 26, 2026
Web push notifications — Phase 1 plumbing NEW
- Browser push opt-in is live in Hunter's alert modal. Open the 🔔 button, scroll to "Browser push", click "Enable browser push" — the page registers a service worker, requests notification permission, subscribes via VAPID, and posts the subscription to the server. From then on you can be notified even when the page is closed (Chrome / Firefox / Edge desktop; iOS PWA needs home-screen install first which is Phase 2).
- Send test push button verifies the full pipeline end-to-end. After subscribing, click "Send test push" — every subscribed device shows a native OS notification within seconds.
- Phase 2 (server-side automatic triggers): today the test path is the only push trigger. Phase 2 wires regime flips, concentration alarms, and CUT signals to fire automatic pushes from the cron workers. Phase 2 also adds per-event opt-in (subscribe to "regime flips" but not "concentration") and Macro-page push UI.
April 26, 2026
Macro→Hunter regime ribbon — Phase 1 NEW
- Hunter now shows Macro's allocation read at the top of the page. A ribbon between the screen-nav and panel-stack surfaces the current BTC bias (e.g. "Cautious Long"), recommended size band (e.g. "60-70%"), and a one-line rationale from the AI debate engine. Tone color follows the bias text — Long/Accumulate → aqua, Cautious/Neutral → amber, Risk-Off/Sit-Out → rose.
- Closes the audit gap on "no allocation→alpha bridge". Macro tells you IF and HOW MUCH to be exposed; Hunter tells you WHAT to own. The ribbon makes that flow explicit at the top of every Hunter session. Phase 1 is informational — Spotlight + Edge scoring math is unchanged. Phase 2 would gate scores by regime: down-weight in CAUTION/RISK_OFF, up-weight high-conviction setups in HUNT/HUNT_ALTS.
April 26, 2026
Macro "Jump to" dropdown + Cross-Asset chevrons + Birdeye-offline retry card NEW
- Macro: 'Jump to ▾' dropdown now lives in the screen-nav strip. Click it to jump to any panel on the active screen — auto-builds the menu from the current screen's panels using each panel's heading as the label, smooth-scrolls on click. Closes the long-standing "12+ screens, no in-page nav" critique.
- ▲/▼ chevrons before signed numbers. Color-blind affordance — hue alone (red vs green) excluded ~8% of male users; chevrons make signal direction readable without color. Applied narrowly to value-bearing classes (KPI tiles, bento values, narrative chip percentages) so chips/badges/swatches don't double-glyph.
- Hunter Fresh Momentum offline state is now actionable. When Birdeye returns quota errors, the panel shows a structured retry card with a live countdown to 00:00 UTC quota reset, a manual ↻ Retry button, and a "Why this happens" disclosure. No more dead-end "FEED OFFLINE" string.
- Track Record reframes. Macro's "Framework Track Record" bento card now leads with the absolute fraction (e.g. "5/9 cycle pivots") instead of the easily-misread "56%". The standalone /track-record page reframes NEUTRAL outcomes as a valid "don't take a directional bet" signal rather than a failed prediction; the headline stat is now "Directional hit rate" so the math is honest about what it counts.
April 26, 2026
SEO + UX hygiene quick wins FIX
- Renamed Hunter screen pill "MY STUFF" → "WATCHLIST" (route hash
#mystuff kept for backwards compat with bookmarks).
- /macro now 301-redirects to / (was a 404 trap — natural URL guess that bounced users).
- /robots.txt + /sitemap.xml serve real content. Sitemap covers all 7 public routes with priorities and changefreq.
- Canonical tags on every page + Open Graph and Twitter Card meta filled in for /hunter (was partial), /desk, /docs, /changelog, /track-record (were missing). Sharing any Cryptowatch link to Telegram/Slack/Twitter now produces a proper preview card.
- Hunter desktop hamburger menu hidden. The ☰ button was leaking onto desktop next to DESK because of a CSS specificity collision with a tap-target a11y rule. Now hidden on desktop, still functional on mobile.
April 26, 2026
Hunter Track screen — backfilled track record + accountability log FIX
- Track Record now walks every daily anchor in snapshot history. Previously the panel showed a single 5-pick measurement (top scores from 24h ago vs current price) so n stayed stuck at 5 and the "n too low" warning never moved. The backfill walker pairs each daily anchor with its (anchor + 24h) and (anchor + 7d) forward snapshot when one exists, computes per-pick returns from market_cap deltas (price proxy + same outlier clamp as bootstrap_perf), and aggregates hit rate / median across all anchors. Current 6d snapshot window now produces n=30 across 6 anchors at the 24h horizon.
- Accountability Log merges bootstrap picks. The /hunter/accountability endpoint now reads
accountability_log_bootstrap.jsonl alongside the live log (same pattern as /hunter/regime-performance), preferring precomputed forward returns over current-vs-pick math for bootstrap entries. Total picks jumped from 18 to 43 (33 live + 25 backfilled), unblocking statistical-significance threshold.
- Disclaimers now read measurement count, not snapshot-window days. Track Record warning fires below n=25 and softens to a muted "directional" note between 25–99, then disappears at ≥100. Accountability summary surfaces the live/backfilled split so you always know what's measured.
April 26, 2026
Macro Regime Radar — "OnChain" label clipping FIX
- The 7-character "OnChain" axis label was rendering past the SVG's right edge with
overflow:hidden, so the trailing "n" got chopped (looked like "OnChai"). Widened the radar viewBox horizontal padding (250→270, aspect-ratio 1.25→1.35) and switched to overflow:visible. Polygon vertices stay inside the new bounds.
April 25, 2026
CW Desk Sprint 3c — track record page + validity fix + docs NEW
- New page at /track-record/desk. Every pinned setup, graded against actual price action. Aggregate strip (total / winrate / avg R / expectancy / open) + per-persona breakdown + per-profile breakdown + ticker/persona/profile filters + paginated table. Linked from each Desk card's footer ("See all →") with the active ticker pre-filtered, and from /track-record's header.
- Pin validity windows fixed. Pre-Sprint-3c, every non-scalp pin expired at 24h regardless of horizon — swing pins (1d candles, multi-day moves) were timing out before they could plausibly play out. New windows: scalp 2h, intraday 12h, swing 7d, quant funding-harvest 3d, quant stat-arb 10d. Sprint-2 OPEN pins from before this fix have been retroactively corrected via a hash-chain-preserving override table (no row mutations, no broken ledger integrity).
- Desk docs added. New #desk section in /docs covers overview, card structure, the 10 cells, ALIGNED, OBSERVATION ONLY, pinning workflow + grading rules, validity windows, the new track-record page, data sources, and known gaps. The known-gaps section flags Sprint 3d work (setup-age tracking, entry-zone drift indicator, pin-time validation) honestly so operators know what the system doesn't do yet.
April 25, 2026
Mobile responsive topbar + nav FIX
- Single-row topbar on phones. Macro / Hunter / Desk now collapse cleanly at ≤768px — logo, surface switcher (Macro / Hunter / Desk), live status chip, and a ☰ hamburger fit on one row instead of stacking into three. Drawer reveals Docs, Changelog, search, Time Machine (Macro), or Alert Settings + Daily Brief (Hunter).
- One-row scrollable pill nav. The decision-flow pills (1 VERDICT → 5 PLAN & TRACK on Macro, 1 VERDICT → 7 TRACK on Hunter) no longer wrap to two rows — they scroll horizontally on a single line with a soft right-edge fade hint.
- iOS Dynamic Island / notch. Added
viewport-fit=cover + env(safe-area-inset-*) padding so the topbar starts below the status bar on modern iPhones instead of being clipped.
- Desk linked from Macro & Hunter. Surface-nav now lists all three products (Macro / Hunter / Desk) on every page so you can jump between them without typing the URL.
- Search input on mobile Hunter drops to its own full-width row beneath the brand so the autocomplete dropdown has room to breathe.
April 25, 2026
CW Desk Sprint 3a — data improvements NEW
- True 7-day rolling funding-z. Replaces the cross-sectional snapshot (z across 230 coins right now) with a per-ticker rolling z over 168 hourly observations. Hourly cron writer + 30-day SQLite retention. Cross-sectional stays as cold-start fallback for the first 24h after deploy.
- Per-coin liquidations now sourced natively from Hyperliquid. Coinglass
top_coins returned zeros for ETH/SOL/HYPE at our tier — fixed by subscribing to HL's trades WebSocket per-coin and filtering by zero-hash (the liquidation marker). 24h in-memory ring buffer; renders read without HTTP. Coinglass remains for non-desk tickers.
- Stat-arb (BTC/ETH) Quant strategy. When the BTC/ETH log-ratio crosses |z|≥2 over the 60-day daily lookback, both BTC and ETH cards surface a "short rich / long cheap" entry alongside funding-harvest. Delta-flat pair trade; equal-notional sizing.
- Multi-strategy Quant cells. The Quant block is no longer single-strategy — funding-harvest and stat-arb render side by side with their own column layouts. Pin button now correctly disambiguates which strategy you're tagging.
April 25, 2026
CW Desk Sprint 2 — real data + Swing/Quant + accountability
- Indicator tiles now show real values. Funding (per-ticker rate + cross-sectional z over 230 coins), OI ($56.86B for BTC w/ 4H delta; per-ticker fallback for ETH/SOL/HYPE), macro countdown (next FOMC/CPI/NFP/PCE from /catalysts), Shield gating (CLEAN for majors; ledger lookup for alts).
- Swing + Quant generators live. 3 directional personas (Scalp / Intraday / Swing) × 3 risk profiles + 1 Quant strategy block per card = 10 cells per asset. Quant Sprint 2 ships funding-harvest strategy; stat-arb/basis/vol-arb arrive in Sprint 3.
- Score_swing dedicated formula. Composite alignment +3, D1 EMA50 trend +2, funding-z aligned +2, VWAP +1, Shield +1, no macro 24h +1. Replaces the interim 'use intraday formula' shim.
- ALIGNED badge. Gold ribbon + glow when all 3 directional personas agree on direction with confluence ≥7. Rare-but-powerful signal.
- Pinned setup resolver. Setups pinned to the Accountability Ledger now auto-grade against actual price action — first-touched-wins on candle data (5m for scalp, 1h for intraday, 1d for swing). New
desk_setup_resolution table tracks status, hit event, max R achieved, max drawdown. Background worker grades every 5 min. Per-card track record at the bottom of each Desk card shows last 5 grades + win-rate.
- Why drawer. Click 'why' on any setup head to expand the full confluence bullet list with per-bullet point values. Score is now fully transparent.
- OBSERVATION ONLY mode. New tickers with <30 days of daily history get a blue banner, indicators still render, but all setup cells return NO-TRADE — engine doesn't have enough history for the regime classifier or swing rules to be trustworthy.
- Latency cut from ~2s to ~50ms perceived. Parallel candle fetches via threadpool, 60s cache pre-warmer for default tickers, asyncio thread offload to keep the event loop free, and progressive frontend rendering — each card upgrades independently as state/narrative/track-record arrives instead of waiting on the slowest.
April 25, 2026
CW Desk — pre-trade workspace shipped (Sprint 1) NEW
- New surface at /desk. Multi-asset pre-trade workspace. Cards for BTC, ETH, SOL, HYPE plus up to 4 user-added (saved in your browser). Click a card to expand.
- Setups for two trader styles to start. Scalp (5m–15m) and Intraday (1H–4H), each with three risk profiles — Conservative, Moderate, Aggressive. Swing + Quant arrive in Sprint 2.
- Deterministic levels engine. Every entry / stop / TP is computed from named indicators (ATR, EMAs, VWAP, swing pivots). Same input → same output. Tunable via
backend/desk/engine_config.yaml.
- 5-state regime gate. TREND-UP, TREND-DOWN, RANGE, CHOP, EVENT-RISK. Setups gate on regime. CHOP and event-risk windows force NO-TRADE.
- NO-TRADE as a positive signal. When the validator rejects a setup, the cell shows why. Pin a NO-TRADE to the Accountability Ledger and stand behind your non-action.
- ICT killzone clock. Header tracks Asia / London / NY AM / NY PM windows in UTC.
- Opt-in pin to Accountability Ledger. Per-row pin button hashes the setup snapshot and writes a
desk_setup call. Resolves at T+1d / T+7d (resolver wired in Sprint 2).
- Opus 4.7 narrative agent. Layered on top of the deterministic engine. Reads the state and writes a one-liner. Cached 15 min per asset. Silent-degrades if the API key isn't set.
April 25, 2026
Renamed to CW Macro NEW
- The main dashboard is now "CW Macro." The new name describes what it actually is — a BTC cycle & regime intelligence dashboard — instead of borrowing generic Bloomberg branding.
- Pairs cleanly with CW Hunter: macro (BTC cycle) on one side, narrative discovery on the other. Matches how the PRD has always positioned the two-product split.
- Renamed end-to-end: header wordmark, nav pill, PWA manifest, file names (
cw_macro.html), systemd unit (cw-macro.service), API path (/api/macro/data/{key}), CSS class names, internal docs, and history. URLs that used /, /cw, /docs, /changelog, /track-record, /hunter are unchanged — those are paths, not product names.
April 25, 2026
Round 7 audit — verification complete FIX
- EARLY tab verified —
/hunter#early renders 32 signals across All / Pre-Pump LP / CT Emergence. No "Synthesizing…" hang. (audit B1)
- Regime-Conditional Performance verified — panel no longer spinners; shows explicit n<10 fallback with MOCK badge until 30+ days of cross-regime picks accumulate. (audit B2)
- Chase Risk mindshare verified —
/api/hunter/chase-risk returns populated mindshare_now for every resolved pump via DexScreener + Birdeye address mapping. (audit B5)
- All 12 accepted audit findings + 3 self-identified infrastructure gaps (atomic writes, full-length SHA-256, complete-field hashing) now shipped and live.
April 24, 2026
External audit response — Shield v2, Macro expansion, Backtest Engine NEW FIX
- Manipulation Shield v2 — all 5 on-chain detectors now real (D1 supply concentration, D2 holder-movement delta, D3 liquidity trap + contract safety, D4 wash-trade ratio, D5 coordinated accumulation). Replaces Phase-1 proxy heuristics.
- Pattern Matcher v1 — 8 attacker-playbook templates (wash-driven breakout, LP trap, coordinated entry, whale distribution, pump without narrative, social/price divergence, thin LP + vol anomaly, multi-detector alert) render as colored chips in the Altcoin Scanner risk column.
- Accountability Ledger for Shield — every HIGH/CRITICAL flag writes to the hash-chained ledger; dedupes on (ticker, tier escalation). Read via
GET /api/hunter/manipulation-shield/ledger.
- Macro coverage 3 → 11 indicators — added Fed Balance Sheet (WALCL), Yield Curve (T10Y2Y), Reverse Repo (RRPONTSYD), Real Yield (10Y TIPS), HY Credit Spread, VIX, Dr. Copper, USD/CNY. Each card follows the existing regime-coded pattern with source attribution.
- Backtest Engine — new Macro panel simulates the composite signal over 3y of BTC history (7 Tier-1 signals), with conviction (±6) and mild (±3) strategy variants compared against Buy&Hold and DCA baselines. Total return, Sharpe, max drawdown, win rate.
- Edge Score QUAL fixed — creator_quality was stubbed at 0.5 for every token; now sources real GitHub activity (commits_4w, PR contributors, PRs merged, stars) from CoinGecko and computes a 0-1 differentiated score.
- AI predictor — tracker bug fixed (direction was derived from a non-existent top-level score field, now reads verdict.overall_sentiment); aggregator prompt gained an explicit commitment rule so specialists at ≥70% conviction on their native horizon now override the safe-middle bias.
- Cross-product Cmd+K — Macro search finds Hunter panels and vice versa with ↗ nav arrows.
- MOCK badge overhaul — 9px amber-on-dim badge → 12px solid-amber banner with in-body warning banner auto-injected into every scaffolded panel. Impossible to miss.
- Notify button feedback — toast system ported to Macro; verdict-flip toggle now confirms every state change with explicit success/warn toasts.
- Retry UI — stale/missing feeds now get a ↻ button that re-syncs the dashboard snapshot (Macro freshness accordion + Hunter pipeline overlay).
- Mobile polish — Indicator Breakdown, Whale Flow, Pulse Scorecard, Altcoin Scanner all collapse gracefully at ≤640px (audit TC-02 fix).
- 404 page — 6-tile nav grid with attempted-URL echo, replacing the old bare "Back to Dashboard" link.
- Regime Radar — "Sentim" untruncated to "Sentiment", per-axis hover tooltips, filled-area legend.
April 23, 2026
Macro V2 & Hunter V2 Architecture Overhaul NEW PERF
- Migrated Macro and Hunter to a strict 7-screen "zero-to-decision" tabbed routing architecture.
- Removed legacy IntersectionObserver scroll-spy logic for improved rendering performance.
- Hunter V2: Merged technical widgets into a unified Token Detail — Confluence Score composite.
- Hunter V2: Merged emerging flows into a unified Early Signal Feed composite.
- Added mock structures for Narrative Heat Index and Chase Penalty composite indicators.
- Macro V2: New Multi-Asset Matrix backend proxy (ETH, SOL, HYPE vs BTC relative strength).
- Macro V2: New Scenario Tree Engine simulator (macro catalysts like CPI, FOMC).
- Macro V2: Upgraded the Accountability Ledger with retroactive 7-day outcome resolution and cryptographic hash-anchoring for tamper-proof prediction tracking.
April 16, 2026
Search, tooltips, and broadcast launch NEW
- Ctrl+K search overlay — fuzzy search all 41 panels by name or description
- Nav tooltip glossary — hover any panel label for a one-line explanation
- Public Telegram channel @cryptowatchid — daily morning brief
- This changelog page
April 16, 2026
Security and performance hardening PERF FIX
- Single snapshot endpoint replaces 34 parallel API calls (faster page load)
- Self-hosted fonts — eliminated 3 external font service dependencies
- ETag and Cache-Control headers for HTML caching
- Proxy endpoint security hardening
- 34 automated tests added
April 15, 2026
Signal Conflict Resolver NEW
- New panel: resolves conflicts when indicators disagree
- Distribution Confluence panel for cycle top detection
- Documentation v2 with Q&A guide
April 14, 2026
Cryptowatch Macro launch NEW
- Standalone dashboard at cryptowatch.id
- 41 panels across 5 tiers
- Time Machine — rewind to any historical date
- AI Debate Engine — 3 models debating daily predictions
- Full methodology documentation at /docs
- PWA support — installable on mobile and desktop
← Back to Dashboard