New features, improvements, and notices from the team. No account required to read this page.New features, improvements, and notices from the team. No account required to...
–
The past six months at a glance
A rolling summary of the last half-year on Hi Energy: design-system foundations, Searchkick-first admin search, clicks and performance reporting, MCP and Dex maturity, Slack workflows, agency multi-account access, a steady stream of network integrations, and production hardening across exports, materialized views, and CI. This page is not exhaustive; it groups the most visible themes. For April–June detail, see the monthly articles below.
Monthly deep dives (April–June 2026)
June 2026 — Comments, Slack digests, AI repair tools, Cowork MCP policy, QTD reporting, and API reliability.
May 2026 — Click analytics, MCP directory readiness, Dex in Slack, Connexity, and agency reporting.
April 2026 — Dex/MCP workflows, export resilience, design-system rollout, and network integration cleanup.
December 2025
Laid the design token and Bootstrap refresh groundwork; improved shared page_header and deal-terms modal layout.
Shipped this release notes page and footer link; polished logged-out marketing and API documentation chrome.
Added operational rake tasks for publisher deal backfills and continued AI normalization script tuning.
January 2026
Integrated Optimise advertisers, campaigns, and status mapping; added LinkConnector deals sync.
Introduced the clicks model and wired clicks into reporting paths; refactored Partnerize transactions to weekly batches.
Moved transactions and advertiser APIs toward Searchkick; launched performance-summary email and the home portfolio tab.
Tightened CI job ordering for fail-fast feedback and added ERB lint to pre-commit hooks.
February 2026
Onboarded TradeTracker end-to-end: advertisers, campaigns, transactions, and credential validation.
Centralized admin deals querying on Searchkick; refined admin filter UX, country filters, and risk tags on advertisers.
Improved contacts export and preload paths to eliminate N+1 queries; hardened session authentication for network clients.
March 2026
Expanded MCP with top report views, active-deals-by-country, improved advertiser search/lookup, and higher chat output limits.
Aligned deals export filters with the admin list (including hidden deals); added Skimlinks Link Builder support.
Fixed Intercom launcher behavior (JWT-backed lazy load, Turbo-safe help triggers); added clicks migration safety for large indexes.
Themes across the half-year
Design system — Public design system page, shared tabs, filter bars, empty states, and admin index compaction.
Search & policy — Searchkick-backed admin advertiser search with Pundit-scoped queries; global autocomplete for records and API docs.
Performance & data — Materialized views for KPIs, clicks, EPC, conversion rate, publisher stats, and QTD/quarter comparisons; chunked exports with row caps.
MCP & Dex — From documentation and search helpers to Cowork-ready tools, OAuth, encrypted API keys, contact discovery, and synchronous AI advertiser repair.
Slack — Dex bot in channels, slash search, Block Kit onboarding, weekly digests, commission-drop canvases, and publisher channel mapping.
Reliability — Heroku asset hardening, CI sharding, Bullet N+1 guards, Strong Migrations, dependency and CVE patches, and production timeout fixes.
Early summer: comments, Slack digests, AI repair tools, and admin polish
The past month focused on in-app collaboration, hardening Slack publisher notifications, making MCP and AI advertiser repair workflows production-ready for Cowork, tightening admin deals and performance reporting, and closing API and query-performance gaps surfaced in production.
Comments & collaboration
Polymorphic comments landed across admin surfaces so teams can leave context where work happens: advertisers, publishers, networks, agencies, deals, and application requests share one comments UI with loading states and consistent authorization. Advertiser comments respect the same access rules as other commentable resources.
Slack digests & publisher notifications
Slack channel delivery and enrollment were hardened for publisher weekly digests and commission-drop notifications. Digest canvases now use dated titles and markdown tables for cleaner reading in Slack; publisher editors can send weekly digest previews; test-message delivery was improved; and bot scopes were expanded so preview posts reach the right channels.
MCP, AI data repair & Cowork
Advertiser AI repair is now callable synchronously from a rake task, a dedicated API endpoint, and an MCP tool with semantic retry when required fields stay blank—so Cowork and other agents can fix missing normalization or commission data without waiting on the backed-up OpenAI queue. Cowork onboarding includes a paste-ready tool policy (auto-approve reads, ask on writes), and paid publishers can add contacts via the API and MCP.
Performance, deals & admin workflow
Performance summary gained QTD and last-quarter periods backed by new materialized views; publisher stats now read from snapshots instead of live aggregates. Admin deals split the country map into its own tab with scoped filters on both the table and map; global search links campaigns to the advertiser’s Campaigns tab; Link Builder usage is tracked per source; and application-request filters merge safely with policy scope.
Network integrations & hidden deals
Partnerize discovery campaigns sync into Campaign records with refreshed counts; AdMarketplace Find ingestion turns server-side tiles into hidden deals; Rakuten credential UI supports dual-auth probing with clearer non-2xx logging; FlexOffers and deal-import paths normalize advertiser countries before pulling deal geography; and publisher stats materialized views count nil campaign statuses correctly.
API reliability & verticals
The verticals API no longer times out on large distinct counts and scopes aggregations to authorized advertisers; tag hydration for vertical names was fixed so responses include real ids and timestamps instead of null placeholders. Searchkick ID validation and deals filter param validation reject bad input before expensive queries; MCP resilience adds empty-result fallbacks across search tools; and JWT was bumped to address a published CVE.
Reliability, navigation & admin UX
N+1 queries on application requests and recent changes were eliminated; global search now surfaces navbar destinations each user can actually reach (with admin-only external links for the Issues List and how to report issues). Export links request from the correct Turbo frame; staging emits HSTS on Basic Auth challenges; and duplicate publisher names on the admin deals map show disambiguated tooltips.
Late-spring platform push: clicks analytics, MCP maturity, Slack, and Connexity
The past few weeks focused on making performance data easier to read, hardening MCP and API integrations for external directories and connectors, expanding Slack/Dex workflows, shipping Connexity end-to-end, and closing agency reporting gaps.
Performance summary & click analytics
Performance summary now includes engagement charts for clicks, EPC, and conversion rate, backed by materialized views the same way KPI totals are snapshotted. Admins can compare all publishers on one chart or drill into a single publisher; MTD table comparisons were corrected so current month lines up against the same days last month instead of all of last month. CJ programs that do not report clicks show a clear N/A instead of misleading zeros.
MCP, Dex AI & public API
MCP moved closer to production-grade external use: Anthropic Directory submission prep, OpenAI Responses API–compatible tools/list, clearer tool error shaping, and Searchkick-backed advertiser contact discovery. User API keys are encrypted at rest without changing integration values; only the key owner sees their API key and MCP link in the UI. The clicks API is documented in OpenAPI and indexed in Searchkick; transaction search failures are handled more gracefully; MCP-proxied requests return real contact emails; and the API docs playground can live-probe endpoints.
Slack & Dex in Slack
Dex in Slack was polished end-to-end: the bot answers as @dex_ai, rotates friendly “thinking” phrases, supports threaded replies, and scopes channel MCP calls to the mapped publisher. Slash search respects the channel’s publisher; carousels link through to deals and advertisers; and admins can edit publishers or set network credentials from Slack. OAuth invalid-scope failures blocking install were fixed; Slack rake tasks were consolidated; Block Kit onboarding and a send-test-message control were added for publisher channels; and the publisher channel picker now merges bot and user token results so private channels appear in the admin dropdown.
Connexity network
Connexity is wired through the full stack: advertiser sync, admin credentials UI and validation, MCP tools, deeplink generation, and registration in the admin network list and last-sync recorder. Sync defers expensive global approval metrics so large imports stay responsive.
Deals API & admin filtering
The Deals API gained deal_type and deal_visibility filters with an updated playground. Searchkick deal queries were stabilized for legacy NULL deal_kind rows, hidden-deal handling, and deterministic pagination; admin show_hidden is enforced even when Searchkick drifts.
Agency & multi-account access
Agencies managing publishers can use the Link Builder across managed accounts, see publisher-level exports and analytics reports (matching paid-publisher visibility), and—when they manage at least one publisher—get the full navbar mega menu with Performance, Reports, Analytics, and related tooling instead of the slim restricted dropdown.
Reliability, security & admin polish
Transaction and Webgains credential validation paths were hardened; Digidip stale-click cleanup no longer times out in production; per-network refresh actions require authorization; extension impersonation of HiEnergy users is blocked; internal HiEnergy users are hidden on publisher cards; the advertiser Commission tab loads through a lazy Turbo frame with skeleton state; and recurring network refresh paths align with NetworkRefreshJob coverage.
April was a platform month
April was a broad product and infrastructure push for Hi Energy: better AI workflows, faster reporting, sturdier exports, cleaner admin tools, stronger network integrations, and a more coherent UI foundation.
MCP, Dex AI & API workflows
The MCP and Dex surfaces grew from documentation and search helpers into richer operational workflows. We added advertiser discovery, advertiser contact workflows, ChatGPT MCP dynamic registration, OAuth support, protected resource metadata, marketplace metadata, clearer tool contracts, streaming chat responses, and better advertiser context throughout Dex.
Reporting, performance summaries & exports
Reporting became more useful and more resilient. Performance summaries gained clicks, EPC, and conversion-rate graphing; CJ click gaps are clearer; Webgains revenue inflation was corrected; and materialized-view refreshes were split and optimized for scale. Large customer exports also became safer through chunked branded workbooks, clearer part labeling, row caps, retry handling, and a Heroku-friendly report reaper.
Admin, agency & design-system polish
Agency workflows now support multi-account management, agency types, unified account search, compact account admin views, LinkedIn discovery, and richer seed examples. Admin user management was tightened with profile edit lockdown, alias-login fixes, stronger CRUD coverage, and safer destructive actions. At the same time, shared page headers, search/filter bars, tables, empty states, tokens, buttons, and layout partials moved the app toward one consistent design system.
Network integrations & data correctness
The network layer saw steady cleanup across Rakuten, Partnerize, PartnerStack, Webgains, LinkConnector, Tradedoubler, Levanta, Skimlinks, and Impact. Highlights include Rakuten partnership status truth, PartnerStack advertiser/transaction/reward sync, Webgains value parsing fixes, Skimlinks Link Builder support, Tradedoubler auth and refresh safeguards, Levanta brand sync, and better approved-advertiser status mapping.
Production reliability, security & CI
The month also included Heroku asset hardening, CSS and JavaScript compression, Node and buildpack configuration, self-hosted Bootstrap Icons and Montserrat font loading fixes, Puma and queue tuning, safer migrations, reindex freeze prevention, unsafe DOM usage cleanup, a SAST path-traversal fix, stronger PR guardrails, broader system specs, CI coverage improvements, and regular dependency updates.