$ hapex changelog --all # What shipped. Newest first. Live in production today.
[2026-06-10] the operator IS the product
- Dashboard retired. build.hapex.ai now opens straight into your
Operator: one canvas, one chat, your agents orbiting it. Every
old /dashboard URL redirects to its Operator equivalent.
- Canvas redesign: glass instrument-panel tool tiles with corner
status badges and hover lift, HUD corner brackets on sub-agent
cards with running/idle/done/failed chips, a rotating scan ring
on the avatar while it works, glass pill nav tabs.
- Chat message queueing: type while the Operator is mid-reply and
your messages stack as queued bubbles, then auto-send in order.
- Gmail and other read results now collapse to a one-line summary
you tap to expand, instead of dumping raw data into the chat.
[2026-06-09] the operator learns, plans, and heals itself
- Initiative layer: the Operator now sets multi-step plans (a real
dependency graph, not a todo list), works them in the background
on a 15-minute sweep, and greets you at 7am with a morning brief
plus automation suggestions grounded in your actual usage.
- Nightly memory consolidation at 3am: new facts get promoted,
repeated ones corroborated, contradictions resolved, stale ones
decayed. Your Operator's memory gets sharper while you sleep.
- Self-healing runs: a failed agent run now diagnoses itself.
Transient errors retry on a delay, config errors notify you with
the concrete fix, capability gaps retry once on a smarter tier.
- Always-on worker fixed: scheduled wakeups now run on a real Redis
queue with a heartbeat and a /healthz/worker probe.
- Security hardening pass: per-client spend caps tightened, rate
limits on learn and naming endpoints, tool results capped, and
untrusted content framed against prompt injection.
- Prompt caching on the Operator loop: ~90% input-token savings on
every conversation turn.
- New eval harness scores the APEx routing tiers on 15 real
operator tasks; tier-3 routing re-verified against the table.
- x.post capability: agents can draft posts to the Hapex X account,
gated behind owner approval like every other send.
- 591+ passing tests.
[2026-05-19] dream lab loop + chat self-extension + brand connectors
- hapex.dream schema fix: test_runs.ok was a phantom column. Now
derives ok = status === "success" and filters out queued/running
rows. Healthy agents now get a "skip dreaming" recommendation so
a Claude reflection never burns tokens on a 100%-success agent.
- Dream lab is now a true loop: one click reflects, returns
structured suggestions (style_note / schedule / description /
name) with per-card Apply buttons that write straight to plan_json.
- New chat tool suggest_new_agent: out-of-scope asks now surface a
gradient "Build a dedicated agent" CTA with a deep-link prefilling
the builder, instead of the agent making something up.
- New chat tool add_capability: in-chat green card proposes the
closest matching capability with reasoning. Apply button splices
it into plan_json (no planner round-trip). Cinematic overlay
types out the extend transcript.
- Live cron-run step pills on /dashboard/automations/.../history.
cost_events rows render as the same ToolList pills the chat uses.
- In-chat date parser: NASA APOD agent answers "what about May 17"
by routing the parsed date through APOD_DATE.
- Shopify, HubSpot, Mailchimp OAuth connectors live with real brand
logos. Slack + Microsoft sign-in working end-to-end.
- Owner mode: error log force-dynamic + per-source filters + Tell
Claude feedback widget that writes to error_events.
- 319 passing tests (+22 since last entry).
[2026-05-18] gitignore-build-trap fix + 67 more tests
- /api/build was silently swallowed by a bare `build/` rule in
.gitignore. Force-added the route, tightened the ignore to
`/build/ + */build/`. /api/build/stream now returns 401 JSON
instead of 404 HTML.
- Building.tsx checks content-type before opening the SSE reader.
Hangs on garbage HTML are gone.
- Connections page Google scope set narrowed to spreadsheets.readonly
so the "app not verified" warning stops triggering on the
verified production project.
- Theme reverted to pre-revamp (radii, palette, page headers).
Fonts (Inter, Instrument Serif) + paper-grain background kept.
- 297 passing tests (+67): whatsapp, x.post, hubspot.read,
calendly, mailchimp, shopify, square, elevenlabs, github.read.
[2026-05-17] Phase K 49 commits 18→230 tests
- cmd+k command palette across the dashboard.
- Grouped sidebar with `g a` / `g c` / `g s` / `g r` / `g p`
keyboard shortcuts.
- Per-agent run-history sparkline + today pulse on /dashboard.
- Quick triggers (12/agent) that prefill the chat input.
- Build screen progress bar + live elapsed counter from SSE.
- Connections search + filters; status counts in header.
- New pages: /dashboard/activity, /dashboard/templates,
? for shortcuts dialog, one-time what's-new banner.
- 8 no-auth capabilities: rss.read, hackernews.read,
github.activity.read, wikipedia.featured.read,
youtube.channel.read, nasa.apod.read, crypto.price.read,
public.holidays.read. Templates wired for each.
- Bug fixes: unknown-capability crash silently → logged step_error;
OAuth callback crashed on non-JSON token responses; linq
normalizer mangled phone numbers with internal spaces.
[2026-05-16] Phase J agent-of-agents primitives
- hapex.self.update: agent rewrites its own row from a run.
- hapex.dream: introspection step over recent test_runs.
- mcp.invoke: JSON-RPC tools/call against any MCP server.
[2026-05-15] Phase F + Wave 2 reliability + 17 connectors
- Auto-retry with 1s/5s/30s backoff on transient errors.
- Circuit breaker: 3 consecutive failures auto-pause the agent.
- In-product notifications: bell icon surfaces run failures,
auto-pauses, first successes, budget warnings, reauth.
- Connectors: Shopify, WhatsApp, HubSpot contact write,
Mailchimp, Square, X.com, TextBee SMS, ntfy push,
ElevenLabs, Reddit, weather, ICS calendar, Notion write,
Google Sheets write, Discord, Telegram, Twilio.
[2026-05-13] Stripe live, custom checkout
- Stripe live-mode wired with branded pay.hapex.ai domain.
- Google OAuth verified the same week; the "unverified app"
warning is no longer shown on Continue-with-Google.
EOF.
$ _
Older history is in the git log. tiny commits don't get a changelog entry.