Changelog.

What shipped in aeon - merged PRs, new skills, dashboard fixes, and ecosystem additions, published as a changelog each week.

  1. README brand refresh, three new skills

    The README is rebuilt around an animated hero and section-banner art with a pill navigation, trimmed to a tight prose density and the longer-form detail moved into docs/. The same batch adds three skills - video-script, aeon-update, and pack-submit - registers the Skim Clean Reads community pack, and hardens the memory-flush garbage-collection pass. The catalog grows to 68 skills.

    • README brand refresh: animated hero, section-banner art, pill navigation, and a compare-vs-Claude-Code/Hermes/OpenClaw pointer - presentation only, no capability change (#833-#857)
    • New skill video-script - turns a repo, product page, or topic into a receipts-first, recording-ready video script, verifying every number against the live source in-run (#835)
    • New skill aeon-update - the downstream counterpart to fork-fleet: pulls the parent framework's shipped changes down into an instance as one reviewable PR (#832)
    • New skill pack-submit - the inverse of install-skill: publishes one of the agent's own skills as a standalone community pack and opens the registry PR (#831)
    • Community skill pack registered: Skim Clean Reads - clean-markdown web reads via x402, ~4x smaller than raw HTML, $0.002 USDC on Base (#829)
    • memory-flush hardened: stamps the consolidation date on every flush, scans an adaptive window, de-duplicates before writing, and rotates its logs (#828)
    • Catalog grows to 68 skills (Core 12, Evolution 9, Basics 17) (#831, #832, #835)
    • Maintenance: webhook Dependabot batch plus two CI changes (#826, #827, #839)
  2. Spec-form skills, OpenTelemetry, Buzz channel

    Aeon drops OKF entirely and moves all 65 skills to the Agent Skills open standard, so every skill passes the official spec validator. The same batch wires OpenTelemetry across the Node services and the non-claude harnesses, adds Buzz (Block's Nostr-relay workspace) as an outbound notification channel, gives every skill its own icon, recalibrates the skill security scanner to fire on real sinks, corrects the read-only persistence contract, and teaches the setup skill to mine your Claude Code history for work worth automating.

    • OKF removed globally and all 65 skills adopt the Agent Skills open-standard frontmatter, passing the official skills-ref validator (#824)
    • OpenTelemetry now traces the dashboard, MCP server, and webhook, plus a coarse gen_ai span per run for the grok/codex/pi/vibe/kimi harnesses - opt-in, numeric usage only (#821, #823)
    • Buzz (Block's self-hostable Nostr-relay workspace) joins Telegram/Discord/Slack/email as an outbound ./notify channel, signed with the agent's own keypair (#822)
    • The setup skill gains Mode 8 - mine your past Claude Code chats to surface recurring work worth turning into a scheduled skill (#820)
    • Every skill gets its own monochrome icon from one canonical catalog source, across the dashboard, README, and docs (#808)
    • Skill security scanner recalibrated to fire on dangerous operations rather than ordinary shell syntax (it was failing 65 of 67 first-party skills), with follow-up hardening against suppression-keyword evasion (#811, #813)
    • Read-only persistence contract corrected: read-only skills route through ./notify and their captured output, not direct memory/ writes the sandbox refuses; finance-district-mcp also declares onchain_writes (#816, #817, #818)
    • Ecosystem logos refreshed; NoelClaw and SyntheticsAI removed (#814)
    • Community skill pack registered: AI2Human Create Task (#812)
    • Maintenance: 2 dependency bumps + a new CI capability-integrity gate (#809, #810, #815)
  3. Deploy Uniswap v4 hooks from a brief

    A new crypto-pack skill, deploy-uni-hook, turns a one-line brief into a live Uniswap v4 hook and test pool on any v4 chain - a pre-audited template or a from-scratch freeform hook, with the hook-address flag bits auto-derived and every deploy gated behind a static audit, a dangerous-pattern scan, a behavioral forge test, and a fork simulation. It is a dry-run by default and only broadcasts on an explicit arm:, stays testnet-only unless a mainnet triple-lock lines up, and brings the catalog to 66 skills.

    • New skill deploy-uni-hook generates, audits, simulates, and deploys a Uniswap v4 hook + test pool from a one-line brief, on any v4 chain - catalog now 66 skills (#805)
    • Safe by default: every run is a dry-run unless prefixed arm:, and a mainnet broadcast needs arm: + an explicit chain: + a HOOK_MAINNET_OK=1 lock, a triple-lock so a stray message can't reach mainnet (#805)
    • Dashboard catalogs the two new HOOK_* secrets (burner key + mainnet lock) and adds a per-skill run-input hint parsed from each skill's var: (#805)

    1 PR included

  4. Two dev skills, PostHog MCP, circuit breaker

    Two new dev-pack skills land. seo-audit runs a daily on-page and technical SEO pass over every page of a site (sitemap discovery, per-page scoring, cross-page checks, a day-over-day diff, and a standing fix list), and posthog-errors sends a weekly cross-project error digest over the PostHog MCP server, which joins the featured servers with one-click Connect and brings the catalog to 65 skills. The scheduler also gains an auto-recovering circuit breaker so a repeatedly-failing skill pauses itself instead of burning every run, and inbound Telegram is now gated on the owner's user ID to close a public-chat button hijack.

    • New skills seo-audit + posthog-errors, and PostHog joins the featured MCP servers with one-click Connect - catalog now 65 skills (#802)
    • Scheduler trips an auto-recovering circuit breaker on a repeatedly-failing skill, so one broken skill can't burn every run (#801)
    • Telegram inbound is gated on the owner's user ID, closing a public-chat button hijack; it defaults to the chat ID for a 1:1 DM (#797)
    • Dashboard catalogs the PAGESPEED_API_KEY secret with its brand icon and setup copy, instead of a bare catch-all row (#803)
    • Docs: MCP catalog drift fixed, harness framing flattened, a README catalog drift-guard added, and finance-district added to the mcp-oauth table (#794, #796)
    • finance-district-mcp registered in aeon.yml so it actually schedules - it shipped in #791 with no entry (#800)
    • Maintenance: CI green-up after the Telegram gate, and a dashboard PacksPanel unique-key fix (#798, #799)
  5. Harness MCP + sandbox hardening, new wallet skill

    MCP now actually works on codex, grok, and kimi — it was silently dead on all three, reporting the server "not connected" and finishing green with a plausible answer. Every surface now dispatches skills through one harness path, so inbound messages and the local MCP server honor the operator's chosen harness instead of quietly falling back to Claude, and read-only skills are genuinely write-locked on all six harnesses. The batch also adds finance-district-mcp — a multichain non-custodial agent wallet over MCP — bringing the catalog to 63 skills, and gives MCP credentials their own logo'd group in the dashboard Settings.

    • MCP now actually works on codex, grok, and kimi — all three failed silently, so a green run was never evidence the tools ran (one even fabricated Hacker News item IDs) (#779, #780)
    • Community skill packs install cleanly end to end — five defects fixed; a sweep of all 10 registry packs now installs 52/52 skills, up from 8/52 (#778)
    • grok's MCP --trust fix extended to inbound messages and the local MCP server, where MCP had stayed silently dead (#781)
    • One run path — messages.yml and apps/mcp-server now dispatch through run-harness, and the MCP server resolves all six harnesses instead of silently running four on Claude (#784)
    • Inbound messages now run on all six harnesses — messages.yml had answered codex/pi/vibe/kimi on Claude; harness resolution and CLI install are now shared scripts covered by their first test suites (#789)
    • Read-only skills are now genuinely sandboxed on every harness — grok previously had zero runtime enforcement — and notify's queues moved out of the repo into $AEON_PENDING_DIR (#787)
    • Docs corrected — the read-only guard they described didn't exist, and the dead grok-args generator is removed rather than rewired (#788)
    • Dashboard: connecting a harness account no longer opens two browser tabs, and seven credentials regained their brand icons in Settings (#786)
    • Dashboard: MCP credentials get their own logo'd Access Keys group instead of falling into the Skill Keys catch-all (#790)
    • New skill finance-district-mcp — a multichain non-custodial agent wallet over MCP (balances, prices, DeFi yields, swaps, x402 payments across EVM, Solana, Bitcoin, and Sui), bringing the catalog to 63 skills (#791)
    • A code-quality sweep surfaced two correctness fixes: envelope wrap_raw_output could fabricate a green run (now flagged with a warning marker), and read-only skills ran unsandboxed on the MCP-server path (#792)
    • Maintenance: dead GROK_JSON_SCHEMA knob removed, run-grok.sh reduced to setup-only, and a postcss CVE override (#782, #785, #783)
  6. Claude 5 default, grok OAuth durability, harness fixes

    The model picker now offers only the Claude 5 family (Sonnet 5, Opus 5, Haiku 4.5) and defaults to Sonnet 5 — all earlier variants retired. The same batch fixes three harness-correctness gaps: Grok's rotated OAuth refresh token now persists so GROK_CREDENTIALS survives past its 6-hour lifetime, AGENTS.md is a full CLAUDE.md mirror so non-Claude harnesses load their complete operating manual, and the Run banner now shows the actual resolved model — not the config-default Claude id.

    • Model picker now offers the Claude 5 family only; default switches to Sonnet 5 (#775)
    • Grok OAuth refresh token now persists across runs so GROK_CREDENTIALS survives past its 6h lifetime (#773)
    • AGENTS.md is now a full CLAUDE.md mirror so non-Claude harnesses load the complete operating manual (#770)
    • Run step banner now shows the actual resolved harness model, not the config-default Claude id (#769)
    • Dashboard MCP controls disabled on the Codex harness, where MCP calls silently cancel without stdin (#771)
    • Secrets-write PAT renamed MCP_SECRETS_PAT → GH_SECRETS_PAT; now one token covers MCP OAuth and Grok refresh (#774)
    • harness-adapter docs drop three pointers to repos that 404 — no more ghost contribution paths (#776)
    • /aeon setup skill count corrected 61 → 62 across setup skill, README, and all self-references (#772)
    • External contributor amir-rezaei fixes CHANGELOG.md grammar: 'serving latest main' → 'serving the latest main' (#764)
    • Maintenance: 1 CI optimization (OKF validation fires only on .md file changes; #777)
  7. In-repo docs catch up to harness batch

    CHANGELOG.md inside aeonfun/aeon now carries the full multi-harness batch (#757–#767) — Added, Changed, Security, and Maintenance sections — so what's recorded in the repo matches what shipped. The aeon setup skill's secrets reference is refreshed in the same pass.

    • In-repo CHANGELOG.md updated with the #757–#767 batch (multi-harness, aeon-doctor, setup skill, CVE patches, BASESCAN rename); aeon setup skill secrets reference refreshed (#768)

    1 PR included

  8. Multi-harness support, aeon-doctor, in-repo setup skill

    Skills now run on any of six agent CLIs — Claude Code, Grok, Codex, Pi, Vibe, and Kimi — behind one {result, usage, session_id} contract via the new harness-adapter, with the four OpenRouter-backed harnesses sharing a single OPENROUTER_API_KEY or running on their own native login. The batch also adds aeon-doctor (a static config linter that catches the silent-misconfig class no run-based health skill can see), ships the /aeon setup skill in-repo, completes the BASESCAN_KEY → BASESCAN_API_KEY secret rename, and patches two high-severity dashboard CVE classes.

    • Multi-harness support — run skills on Claude Code, Grok, Codex, Pi, Vibe, or Kimi behind one {result, usage, session_id} contract via harness-adapter; all six verified live on GitHub Actions (#765, #767)
    • The four OpenRouter-backed harnesses (codex/pi/vibe/kimi) share one OPENROUTER_API_KEY or run on their own native login — Connect ChatGPT / Kimi / provider key (#765)
    • aeon-doctor — a read-only static config-correctness linter for unquoted schedules, duplicate keys, unconfigured skills, mode typos, and broken requires/MCP refs; notifies only on problems (#761)
    • The /aeon setup skill now ships in-repo at .claude/skills/aeon/ and is documented, naming the coding agents that can drive an install: Claude Code, Codex, Hermes, OpenClaw (#762, #763)
    • Dashboard — per-skill model picker now tracks the active harness (#766)
    • Secret rename BASESCAN_KEY → BASESCAN_API_KEY, following the <PROVIDER>_API_KEY convention (#760)
    • Maintenance: two high-severity dashboard CVE patches (sharp/libvips, Next.js 16.2.11) and an 8-dimension repo cleanup (#757, #758, #759)
  9. App CI gating, config fixes, test expansion

    Every app under apps/ now has a CI gate — dashboard typechecks, tests, and builds; cli typechecks; mcp-server builds; webhook bundles through wrangler — closing the gap that let dependency bumps break silently, and catalog/skill-packs.json gets a validation workflow of its own. The same batch fixes two silent config bugs that stopped aeon enable and aeon schedule from working on freshly added skills, an external contributor expands validate-pack test coverage from 3 to 20 cases, and the README badges get a refresh.

    • apps/** now has CI: dashboard typechecks/tests/builds, cli typechecks, mcp-server builds, webhook bundles via wrangler --dry-run (#752)
    • catalog/skill-packs.json gated by its own workflow, with validate-skill-packs wired into the test suite (#752)
    • Config CLI: enable/schedule now creates missing aeon.yml entries and quotes generated crons (#754)
    • TypeScript held on 6.x for apps/dashboard via a Dependabot major-ignore — TS7 breaks the Next.js 16 build (#724)
    • External contributor BBridgeers expands validate-pack test coverage from 3 to 20 cases (#751)
    • Docs badge added to the README, linking to aeon.fun/docs (#755)
    • Badge copy tweaks: Documentation label shortened to Docs, X drops Follow, Bankr reads $aeon on Bankr (#756)
    • Maintenance: 4 dependency bumps (tsx, wrangler, actions/setup-node, dashboard group)
  10. Integrate Aeon image, support section, count sync

    The README's Integrate Aeon section now shows the aeon-connect visual, all links to the private aeon-connect repo are dropped, and a Support the project section with the wallet address is added. Skill-pack counts are synced to the live catalog: 61 skills total, Basics pack at 15.

    • Integrate Aeon section gets an aeon-connect visual and a dedicated Support the project wallet address (#748)
    • All links to the private aeon-connect repo dropped; ADK guide updated to generic reference-implementation wording (#749)
    • Skill-pack counts synced to catalog: 61 skills total, Basics pack now 15 (#747)
    • Orphaned use-this-template.png asset removed from docs/assets (#750)

    4 PRs included

  11. One-click MCP OAuth, new MCP skills, ADK

    OAuth-gated MCP servers (Base, Robinhood, glim, Executor) now connect in one browser click, with tokens refreshed durably before every run. The same batch swaps in dedicated Robinhood and glim skills, adds Executor Cloud, ships Grok 4.5 in the Grok Build harness, and documents the ADK for building products on top of Aeon.

    • One-click OAuth Connect for OAuth-gated MCP servers — authorize once in the browser, tokens captured server-side and stored as repo secrets (#730)
    • glim joins Base and Robinhood as a one-click OAuth Connect server (#731)
    • Durable OAuth refresh: rotated refresh tokens now persist via MCP_SECRETS_PAT / GH_GLOBAL, fixing 401s one run after Connect (#732)
    • MCP panel shows PAT-setup steps (with a clickable link) when no secrets-write token is set, surfaced before the first Connect (#737, #740)
    • New robinhood-mcp and glim-mcp skills replace ctrl — on-demand portfolio/trading and cited live-data research (#734)
    • Executor Cloud added to the MCP catalog with a read-only executor-mcp skill (#736)
    • robinhood-mcp and glim-mcp now send a single notify call per run (#735)
    • Grok Build harness supports Grok 4.5 (new default) and retires the deprecated x_search model for grok-4.3 (#725)
    • ADK (Aeon Developer Kit) documents building products on top of Aeon via a GitHub App and skill packs (#741, #742, #743)
    • MCP catalog, README pack table, and CONFIGURATION docs updated for the new servers and skills (#739, #733)
    • Skill runs stamp OKF frontmatter before auto-commit so bare markdown files self-heal (#738)
    • Maintenance: 3 CI/chore updates (actions/cache v4 → v6, attestation-gate logging, grok harness log noise)
  12. aeonfun org transfer, all links updated

    The repo has moved from aaronjmars to the aeonfun org (owned by Aeon Inc) — every self-referential link, badge, install command, and the trusted-sources allowlist updated in one atomic PR. Fork from aeonfun/aeon going forward.

    • Repo transferred to aeonfun org; all GitHub links, badges, and bin/add-skill install commands updated (#721)
    • Maintenance: 2 dependency bumps (typescript 6.0.3 → 7.0.2, wrangler 4.107.0 → 4.110.0)

    3 PRs included

  13. README overhaul, optimize round 2, v0.1.0 changelog

    The README dropped from 733 to 330 lines as reference docs moved to dedicated pages; a second /optimize pass fixed a latent parseContentsList crash and surfaced swallowed errors in the MCP CLI. The same batch adds a v0.1.0 CHANGELOG.md and retires the last postprocess scripts.

    • README halved (733 → 330 lines): Advanced reference moved to docs/, gateway/auth story deduped (#700, #706, #708)
    • Sharper landing page: Proof of Work section, 1.6M-stars headline, one-liner Community Packs (#701, #711)
    • Auth and Notifications setup rewritten as scannable tables with Grok documented (#705)
    • CHANGELOG.md added to the repo, seeded with the v0.1.0 entry (#712)
    • deploy and token-transfer retire postprocess scripts; both now run in-run (#707)
    • /optimize round 2: parseContentsList crash fixed; mcp CLI and outputs route errors now surface (#715, #716)
    • Dashboard color tokens unified: ~150 eva-* refs collapsed into single aeon-* scheme (#717)
    • Skill scorer no longer flags legitimate no-ops (clean scan, empty inbox) as empty_output (#714)
    • Transient skill writes (github-trending, token-movers, write-tweet) pinned to /tmp (#713)
    • AgentLink community pack: biomapped on-chain agent identity on Base (#686)
    • Stale doc references refreshed across 22 user-facing files: catalog paths and webhook secret corrected (#699)
  14. secretcurl auth, headless CLI, dashboard polish

    Skills now call authenticated APIs directly via `./secretcurl`, collapsing three pre-run airlock scripts into zero and giving each fork least-privilege key injection by default. The batch also ships a headless `aeon` CLI, a 14-PR dashboard UX overhaul, and Sigstore attestations on every skill-run output.

    • `./secretcurl` replaces the XAI pre-run airlock; all 11 social skills call api.x.ai directly (#685, #687)
    • CoinGecko, Alchemy, Etherscan, and GitHub reads moved in-run via `./secretcurl`; all prefetch scripts retired (#689, #691)
    • Irreversible sends (notify, article, tweets) run in-run; four postprocess scripts deleted (#695)
    • Per-skill least-privilege: each skill receives only the API keys it declares in `requires:` (#682, #684)
    • CoinGecko demo-key header fixed — free keys were 400'ing silently with the wrong header (#683)
    • Headless `aeon` CLI ships — every dashboard feature as a scriptable, server-free command (#676, #677)
    • Skill catalog restructured: 59 skills in 6 packs where `category` equals the pack name (#647)
    • Sigstore provenance: every skill-run output gets a signed, Rekor-logged attestation (#650, #652, #653)
    • Chain-input script injection and arbitrary file read patched (GHSA-h9v2, GHSA-cqvj) (#658, #660, #661)
    • Dashboard: enable/disable is now a real toggle switch with live schedule status on the skill page (#673)
    • Dashboard copy overhaul: Team→Skills, duty→enabled/disabled, bare text actions → bordered buttons (#664, #669, #670, #671, #672, #674, #675)
    • Scheduler and message poller split into independent workflows; fresh-fork DEGRADED state fixed (#649, #678)
    • vuln-scanner scan arm made functional: scanner allowlist grant and tool-staging step wired (#693)
    • Email notifications migrated from SendGrid to Resend — one outbound-email key covers everything (#680)
    • Non-main-ref workflow dispatch no longer breaks Commit and cron-state steps (#694)
    • 8-agent optimize sweep: dead code, weak types, orphaned verdikta scaffolding, dead scripts removed (#655, #656, #657, #696)
    • Maintenance: 1 CI config update (#659)
  15. OKF-native memory, repo compaction, grok-build

    Aeon's `memory/topics/` is now an OKF-native knowledge bundle — every concept self-describes with `type:` frontmatter, enforced by a CI gate and exposed via MCP `okf://` resources. In the same batch the repo root compacted 31 → 14 tracked entries, the grok harness gained grok-build model selection, and the skill catalog pruned to 69.

    • `memory/topics/` becomes an OKF-native knowledge bundle: `type:` frontmatter on every concept, `okf-validate` CI gate, MCP `okf://` resources (#627, #628, #629)
    • Repo root compacted 31 → 14 tracked entries: CLI scripts → `bin/`, registries → `catalog/`, deliverables → `output/` (#607, #616, #617, #618, #619)
    • Architecture audit across all 69 skills: silently-bypassed security scanner restored, 3 dead scripts pruned, .gitignore fixed (#620)
    • `grok-build` is now a selectable model in the dashboard harness picker (#622)
    • Connecting the grok harness in the dashboard auto-switches and pushes the config — no manual step (#624)
    • Heartbeat shifted to once daily at 08:00 UTC; staleness heuristic updated from ~8h to ~26h (#625)
    • `verdikta-hunter` ships as a prompt-style bounty-discovery skill with hard-capped on-chain execution, contributed by @nigelon11 (#605)
    • SECURITY.md and CONTRIBUTING.md added; LICENSE restored to repo root so GitHub detects it; Sponsor button added via FUNDING.yml (#609, #610, #611)
    • Skill catalog pruned 94 → 69 (25 removed, incl. 3 Core); community pack registry trimmed 24 → 10 (#603, #600)
    • Maintenance: Telegram slash-commands now re-register daily; sync-upstream workflow dropped (no-op on canonical repo); FUNDING.yml location settled; misc admin cleanup (#626, #623, #621, #613, #614, #615, #612, #608, #601, #604)
  16. API-key audit, repair ledger, cadence-free shiplog

    The API-key layer got a full audit across all 102 skills — routing is verified, vault descriptions corrected, and one orphaned key removed. shiplog collapses into a single cadence-agnostic skill that covers whatever window has elapsed since it last ran, and a public self-repair ledger backported from aaeron tracks every skill write, review, merge, and prune.

    • API-key routing audited across all 102 skills: GH_READ_PAT added where missing, orphan removed, vault descriptions corrected to match real usage (#595)
    • shiplog is now cadence-agnostic — one skill covers the full elapsed window since the last run, replacing the separate weekly and daily variants (#569)
    • self-repair-ledger backported from aaeron: a dated public ledger of every skill the agent wrote, reviewed, merged, or pruned, auto-committed to the repo (#568)
    • Phylax audit gains a hosted-engine fast path — canonical ALLOW/WARN/DENY verdict from the Phylax API, with inline 3-scanner fallback if the API is unreachable (#559)
    • README and docs updated: default model corrected to claude-sonnet-4-6, stale skill counts synced to 102 (#596)
    • pyyaml pinned to ==6.0.2 in CI — the last unpinned CLI install across all workflows (#577)
    • Maintenance: 6 dependency/CI bumps
  17. Grok Build harness + skills consolidated to 102

    aeon becomes multi-harness: run any skill through xAI's Grok Build CLI, logging in with your X account — fully additive, with Claude Code still the default. In parallel the skill catalog is consolidated from 187 hubs down to 102 with no capability lost, and Telegram's button + reply layer is wired across 16 skills.

    • New Grok Build harness — run skills through xAI's grok CLI, authenticated with your X account (SuperGrok / X Premium+) or an XAI_API_KEY; Claude Code stays the default (#585)
    • A Claude→grok compatibility layer lets existing skills run unchanged on grok, with no per-skill rewrites (#590)
    • Grok harness gains native MCP support plus opt-in per-skill run-shaping — max_turns, best_of_n, verify, effort (#587)
    • The harness is wired through every entry point — scheduled runs, chains, inbound Telegram/Discord/Slack, and the quality scorer — so a grok-only fork behaves identically (#586, #587)
    • Note: grok's headless output carries no token counts, so grok-harness runs log 0 tokens on Actions and don't appear in cost tracking (#585)
    • Skill catalog consolidated 187 → 102 hubs behind per-skill selectors; every absorbed behavior survives as a branch of its hub (#581, #583)
    • Telegram buttons and stateless force-reply follow-ups wired across 16 skills — snooze/mute a noisy alert, refine a draft, or add to a watchlist straight from chat (#591)
    • Then made zero-touch: every notification auto-carries global Run again / Schedule weekly quick-action buttons, and saving your bot token in the dashboard auto-registers the slash-command menu — no manual workflow run (#593, #594)
    • Dashboard: harness picker with one-click Connect X account, Sonnet 4.6 as the default model, and grok model-id fixes (#585, #588, #589, #592)
    • Docs and catalogs (smithery, skill-graph) regenerated to the 102-skill inventory (#584)
  18. Interactive Telegram + a leaner core

    Telegram gains slash commands, inline buttons, deep links, and force-reply follow-ups — all with no LLM in the loop for structured input. The codebase also sheds ~1,800 lines of dead weight, Claude Sonnet 5 lands as a selectable model, and the ecosystem list is refreshed.

    • Telegram interactivity: /skill slash commands with autocomplete, inline snooze/mute/re-run buttons, t.me deep links, and stateless force-reply follow-ups — structured input runs with no LLM in the loop, on both the poller and the instant webhook (#578)
    • Installers consolidated behind a shared library and the speculative a2a-server removed — net −1,823 lines, plus a fix for a footgun that shipped real treasury addresses into forks (#579)
    • CLAUDE.md audited against the real workflows: drift fixed and an end-to-end architecture overview added (#576)
    • Claude Sonnet 5 added as a selectable model — near-Opus quality on coding and agentic work at Sonnet pricing (#572)
    • Ecosystem refresh: logos updated, Zetta added, x402Books and Bankrsynth removed (#571)
    • shiplog's X-traction prefetch path wired up, config-driven from memory/products.md (#570)
  19. 21 skills backported, vigil at 17 tools

    The biggest skill expansion since the hardening trilogy: 21 skills from derivative instances land in canonical aeon (all disabled by default), vigil's tool count jumps from 9 to 17, and a new send-email skill ships while 5 others are retired. Heartbeat, repo-pulse, and disclosure-tracker all get richer implementations reverse-backported from live instances.

    • vigil skill jumps from 9 to 17 tools: consensus, liquidity lock, tax check, and ownership audit added (#558)
    • validate-config test suite wired into CI, closing a gate gap where the suite ran nowhere (#560)
    • 21 skills from derivative instances backported to canonical aeon, all disabled by default (#562)
    • repo-pulse, disclosure-tracker, and pvr-watchlist upgraded with richer reverse-backported implementations (#563)
    • heartbeat status logic refined: status page no longer flaps red on a recovered transient failure (#564)
    • private-repo prefetch now driven by products.md; GH_READ_PAT wired for per-product access (#565)
    • send-email skill ships via Resend; polymarket, polymarket-comments, ecosystem-entrants, smithery-manifest, v4-readiness removed (#566)
    • daily-shiplog and idea-forge generalized to config-driven skills via memory/products.md (#567)
    • 8-agent optimize sweep: dead code removed, internal constants de-exported, knip now clean (#561)
  20. hardening trilogy defaults on, chain and scanner fixes

    Three hardening features from aeon-dev — capability tiers (§6), issues-as-state dual-write (§3), and votable health (§7) — now activate by default in any fork. The batch also fixes a silent coercion bug that had disabled §7, patches two latent chain-runner issues, and corrects the vuln-scanner disclosure endpoint.

    • Port hardening easy wins: notify formatter, compact logs, verify output, schedule clusters, prune skills (#547)
    • Capability tiers (§6) enforce read-only vs write mode per skill, now on by default (#548)
    • Issues-as-state (§3) and votable health (§7) ship on by default with dual-write safety net (#550)
    • `HEALTH_ISSUES` unset was coerced to 0, silently disabling votable health — now fixed (#552)
    • Chain runner gets `issues:write` permission and var-less skill discovery fixed (#553)
    • Hardening features documented: capability tiers, issues-as-state, votable health in README (#554)
    • `validate-config.js` added — the shared validator `config-validator` already referenced but never committed (#546)
    • Phylax-audit threat-string examples wrapped in backticks to prevent scanner false positives (#545)
    • vuln-scanner disclosure endpoint corrected to `POST /security-advisories/reports` with explicit HTTP-code branching (#557)
    • AeThree joins ecosystem: agent governance launchpad where token holders vote on AI models (#556)
    • clawhunter-skills v0.2 listing: multi-venue support, per-bounty agentPlan, research tools (#555)
  21. skill-triage gets Phylax security pre-screen

    Inbound skill PRs that reference a Base contract address or a declared payment/data endpoint now get a Phylax onchain + endpoint ALLOW/WARN/DENY verdict inline, alongside the existing static skill-scan pass. Pure-prompt skills — the common case — pass through unchanged.

    • skill-triage runs Phylax onchain + endpoint audit on any skill PR declaring a contract address or payment endpoint (#544)

    1 PR included

  22. dashboard README closes the last sub-app gap

    The Aeon dashboard was the only sub-app without a README — the A2A and MCP servers got theirs in #501 and #512. One PR closes that gap: quickstart via `./aeon` or direct npm, the six views, configuration, and the loopback security gate, all documented.

    • Dashboard README added: quickstart, six views, config reference, and remote-access security gate documented (#543)

    1 PR included

  23. phylax-audit skill, dashboard signal cleanup

    Phylax ships a pre-install ALLOW/WARN/DENY verdict for external skills — the first supply-chain audit gate contributed from outside the core team. The dashboard feed gets fixed the same day to show only Aeon-launched runs, cutting Dependabot rows that were flooding real activity.

    • `phylax-audit` gives a deterministic ALLOW/WARN/DENY verdict before any external skill install (#537)
    • Dashboard feed and Runs tab now show only Aeon-launched events; Dependabot rows filtered out (#542)
    • Phylax listed in ECOSYSTEM.md as an active security-layer contributor (#539)
    • Code quality pass: shared utilities extracted, dead code removed, load-error UX improved (#540)
    • Maintenance: 6 dependency/CI bumps
  24. community packs, MCP catalog, install pipeline hardening

    Community packs drove this batch — Charon, Simmer, ClawHunter, Hunch, glim.sh, and logbook all joined the registry — while a run of dashboard fixes made pack discovery and install reliable enough that new forks start Core-only by default.

    • Charon policy-guard pack runs pre-flight PASS/PAUSE/DENY checks before each skill (#511)
    • Simmer Polymarket Trader: take live positions on Polymarket from an Aeon skill (#499)
    • ClawHunter: Pump Fun bounty discovery and x402-paid content-studio skills (#498)
    • Hunch: on-Base prediction markets with x402 position-taking (#472)
    • glim.sh added to MCP catalog: semantic search, X, Reddit, GitHub live data (#470)
    • Litebeam added to MCP catalog: x402-settled microservice routing layer (#508)
    • Robinhood Agentic Trading MCP added: portfolio read and trade execution via OAuth (#489)
    • logbook signed action-receipt pack listed in ecosystem (#507)
    • Five ecosystem entries added: ClawHunter, Glim.sh, Lens, LiteBeam, Simmer (#528)
    • Pack install auto-merges and ensures Actions can open PRs on fresh forks (#485)
    • Installed community packs now appear in the dashboard skill roster (#490)
    • Enabled-packs scoped per repo; new forks default to Core-only (#491)
    • Pack `path` field forwarded correctly on dashboard one-click install (#493)
    • `packs.json` regenerated on install so new skills appear without manual steps (#487)
    • `validate-pack.sh` added for local pre-flight validation before opening a PR (#495)
    • `skills.json` decoupled from `aeon.yml`; catalog CI no longer trips on config edits (#484)
    • A2A gateway quickstart README added (#501)
    • MCP server quickstart README added (#512)
    • PR template added to surface contribution gates at submission time (#494)
    • Stale skill references cleaned across docs, config, and issue templates (#503, #504, #505, #506, #531)
    • README one-click dashboard pack install documented (#497)
    • Only Claude models remain in aeon.yml; non-Claude Bankr options removed (#496)
    • LICENSE copyright updated to Aeon Inc (#529)
    • `@json-render` packages aligned on ^0.19 to eliminate dependency duplication (#526)
    • Dependabot enabled for Actions workflows and npm workspaces (#513)
    • README skill count synced to 183; packs table aligned, stale banner removed (#530, #488)
    • Maintenance: 12 dependency/CI bumps