Commit Graph

41 Commits

Author SHA1 Message Date
233d06fd21 Apex Universe: daily figures 2026-10-10 2026-10-10 06:15:04 +00:00
8d1703f6ab Apex Universe: daily figures 2026-10-09 2026-10-09 06:15:05 +00:00
bfc81507b2 Apex Universe: daily figures 2026-10-08 2026-10-08 06:15:04 +00:00
6d262e7805 Apex Universe: daily figures 2026-10-07 2026-10-07 06:15:03 +00:00
1d3e7e591a Apex Universe: daily figures 2026-10-06 2026-10-06 06:15:04 +00:00
b146225910 Apex Universe: daily figures 2026-10-05 2026-10-05 06:15:04 +00:00
30a0d5cda0 Apex Universe: daily figures 2026-10-04 2026-10-04 06:15:06 +00:00
38bc4f5b14 Apex Universe: daily figures 2026-10-03 2026-10-03 06:15:04 +00:00
f267b63ce8 Merge pull request 'Markets: AP3X/USD chart across every pool' (#5) from feat/markets-aggregate-chart into main 2026-10-02 19:33:33 +00:00
9276c7cd75 Markets: the price chart is AP3X/USD across every pool, not one pair
The chart card read one DexScreener pair (bAP3X/USDC on Aerodrome). It now
draws AP3X in USD aggregated over every pool with at least $1K of liquidity
- four on Base (Aerodrome USDC and WETH, Uniswap and QuickSwap cbBTC) and
Minswap's cAP3X/ADA on Cardano - from GeckoTerminal's per-pool USD candles:
price liquidity-weighted (a pool with no trade holds its last close), volume
summed. 15m / 1h / 4h / 1D, an OHLC + volume readout, and a footer naming the
pools. GeckoTerminal is keyless and rate-limited, so the pool list (6 h) and
candles (3 min) are kept in localStorage; when it is busy the card shows the
largest pool's DexScreener chart and retries. VyFi and LBank are not in its
feed and say so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-02 14:28:38 -05:00
de5b01cd01 Apex Universe: daily figures 2026-10-02 2026-10-02 06:15:06 +00:00
2373ea5299 Apex Universe: daily figures 2026-10-01 2026-10-01 06:15:04 +00:00
a3960a5bf9 Apex Universe: daily figures 2026-09-30 2026-09-30 06:15:03 +00:00
7347a647e8 Apex Universe: daily figures 2026-09-29 2026-09-29 06:15:05 +00:00
78f1df4934 Apex Universe: daily figures 2026-09-28 2026-09-28 06:15:03 +00:00
16126e9203 Merge pull request 'Fusion AI launch film: 'Now live' as in the site is live' (#4) from fix/launch-film-live into main 2026-09-27 06:52:15 +00:00
830d021f94 Fusion AI launch film: 'Now live' as in the site is live
The closing line was voiced as live (to live). Re-voiced so it rhymes
with five (checked against Brian's own 'five' and 'drive' by formant),
everything else unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 01:52:00 -05:00
d7b0434e58 Merge pull request 'Fusion AI launch film: HAL 8 card and the widget lightbox' (#3) from feat/fusion-launch-film into main 2026-09-27 06:34:17 +00:00
dfa72eec45 Fusion AI launch film: the HAL 8 card and the widget's lightbox
A 32 s trailer rendered in Blender from the Apex Universe scene. The
pane in it is the real widget replaying answers Fusion AI gave on the
live route, voiced by ElevenLabs Brian, with an original score.
fusion/launch/ holds the 16:9 cut, its poster and English captions.
The HAL 8 section gets a 'Meet Fusion AI' card (Talk to Fusion AI opens
the widget through a fusion:open event), and the widget's welcome
screen a 'Watch the launch film' chip that plays it in a lightbox.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 01:34:11 -05:00
c97d524025 Apex Universe: daily figures 2026-09-27 2026-09-27 06:15:05 +00:00
b9b9fe06d8 Merge pull request 'Fusion AI, powered by HAL 8: red eye, Standard | Incognito, code, media and voice' (#2) from feat/fusion-ai-hal8 into main 2026-09-27 00:56:47 +00:00
23b05a72da Fusion AI: play HAL 8 video links inline
HAL 8's signed file links carry no extension, so a clip linked as
[video](...) rendered as a plain link. A HAL 8 file labelled video/clip
is now a player, and a HAL 8 file embedded as an image that will not
decode is swapped for one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 19:56:23 -05:00
b2105ffa46 Fusion AI: honest Incognito copy and the README section
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 19:18:53 -05:00
716615a1d2 Fusion AI, powered by HAL 8
The hub's assistant becomes a consumer HAL 8 chat:
- The button is HAL 8's red eye (the real logo); the header reads POWERED BY HAL 8.
- One control, a Standard | Incognito pill. Standard keeps the conversation in this browser;
  Incognito keeps nothing and asks the server for no retention.
- Always on, no toggles: chat and code (copy; Python runs in the browser via Pyodide), images and
  video inline, web answers with their sources, voice in (speech recognition) and read-aloud.
- Streams from HAL 8's public Fusion endpoint (hal8.odyssey-works.io/v1/public/fusion/chat); the
  browser never holds a key. Limits come back as a friendly "see you tomorrow" card.
- A small safe markdown renderer: everything escaped, https-only links and media, HAL 8-relative
  file links resolved against HAL 8.
- tools/fusion_inject.py replaces the old assistant block idempotently (between /*F8-BEGIN*/ and
  /*F8-END*/) and inlines fusion/fusion.css.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 18:50:44 -05:00
f50457b1c1 Apex Universe: daily figures 2026-09-26 2026-09-26 23:03:04 +00:00
103c7903ff Merge pull request 'Apex Universe: the ecosystem as a live star system, below Overview' (#1) from feat/apex-universe into main 2026-09-26 23:02:50 +00:00
f8e464cad8 Apex Universe: the ecosystem as a live star system, below Overview
A new section, "Apex Universe", directly under Overview:
- Hero: a 20 s Blender flythrough (universe/apex-universe.mp4, poster.jpg) behind the title,
  with "Enter the universe" and "Watch the flythrough".
- The sandbox (universe/universe.js, three.js via the page's import map): AP3X is the star,
  PRIME, Vector and Nexus orbit it, PRIME's stake pools are its asteroid belt, the staking
  reserve is a moon, agents fly as a fleet round Vector with the HAL 8 mothership, Reactor,
  Skyline and LayerZero are jump gates, Cardano, Base and BNB Chain are distant worlds, partners
  are beacons on the outer belt. Inspector with links into the hub's sections, search, layer
  toggles, time controls, a five-chapter tour, a no-WebGL fallback, reduced motion honoured.
- Tour chapters, a field guide and the partner wall, all with official logos.
- universe/data.json holds the figures; a daily job on the desk host updates it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 18:02:22 -05:00
44dcf31f5a Overview: move the HAL 8 harness band below the hero
The band now sits after the hero's calls to action and directly above
§ 01.5 The Vector Edge, instead of above the page title.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 12:11:06 -05:00
0a6b5be2c2 Hero: AI native for the next era of the agentic economy
The last line of the overview headline now reads "the agentic economy" in the
accent colour instead of "Cardano"; colours and type unchanged, one extra
line break so the accent phrase sits on its own line.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 12:03:21 -05:00
73fc9233d0 Fold the AI Agent Economy Stack into the hub as the Agent Stack section
New sidebar entry right below HAL 8 with a robot-head icon (section id
`agents`, AgentStackSection). The section carries the standalone page's
markup as an inline string with its logo sprite, and its styles in a final
style block with every class namespaced `aes-` so nothing collides with the
hub's own cards, steps and heroes. The standalone page stays as the editable
source; refold it with the integration script rather than editing by hand.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 10:17:46 -05:00
ad1327f5ec Agent economy stack: use the HAL eye as the HAL 8 mark
The HAL 8 lockup in the top bar, the ecosystem row and the footer now carry
the red HAL eye (the Platinum deck logo, cut to a transparent disc) instead
of the figure-eight mark, matching the HAL 8 app's share card.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 09:56:51 -05:00
274f274d7a Add the AI Agent Economy Stack as a standalone page
HAL 8's capability, economic and trust planes, the architecture stack,
standards alignment and the Buzz / HAL 8 / Vector ecosystem, re-set in the
hub's design language: the hub's :root tokens, Space Grotesk and JetBrains
Mono, section numbers, cards and corner-tick frames. Every logo is the
owner's official mark embedded as an inline SVG sprite, so the page has no
asset dependencies and can be folded into the bundled page later.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 09:51:10 -05:00
4c6fc9cbd0 Social share card, favicon and splash with the Apex Fusion mark
Shared links rendered with no preview: the Open Graph tags lived only
inside the bundled template that JavaScript unpacks, so crawlers saw a
bare head, and they pointed at apexfusion.org/og-image.png, which does
not exist. The real head now carries the full Open Graph and Twitter
card set for this domain, mirrored inside the template, with a 1200x630
share image built from the avatar's neon backdrop and the media kit's
white mark.

The placeholder green A is gone from the splash screen, the tab icon
and the touch icon; all three use the Apex Fusion mark.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 11:16:00 -05:00
9c85a8e750 Markets: pool composition on the phone too
The reserves only rendered in the PAIR column, which is hidden at phone
width, so a phone showed the price of a pool without what backs it.

Each reserve is now kept as its two sides rather than one joined string.
The desktop joins them as before; the phone stacks one side per line
under the pair, which fits 390px and reads like a composition. The
trailing clause some rows carry ("out of range", "quoted in NIGHT") is
prose rather than a value, so it wraps while an amount and its ticker
never break apart.

Venue column widened to 43% to hold the longer lines. Verified with the
filter on and off at both widths: nothing clips, and the page never
scrolls sideways.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 22:05:40 +00:00
56dd31001f Markets: filter to pools over $5K, and show every pool's composition
Two CEO asks.

A toggle on the venue table, on by default, showing only pools with more
than $5K of liquidity. Below that a pool cannot absorb a trade worth
making: 1% of reserve is the most you can move before your own impact
eats the gap, so $5K of depth is about $50 of tradeable size. The
default view drops from twelve rows to five and the reader sees the four
venues that carry the token plus the order book.

The order book is exempt in both modes. It has no liquidity to measure,
so a rule written for pools should not decide whether it appears.

The headline volume and TVL still describe the whole market, not the
filtered view, so toggling never moves the numbers at the top. The
header says "5 of 12" and the note counts the hidden rows and why.

The three DexScreener rows were the only pools not stating what backs
their price. DexScreener reports each side of the pool, so they now
carry it like the ones read on-chain: Aerodrome 8.57M bAP3X and 3.6K
USDC, QuickSwap 332.5K bAP3X and 0.069 cbBTC, Uniswap 368.3K bAP3X and
6.8K AERO. All five reserve strings now share one formatter, so a
fraction of a cbBTC stays a number instead of rounding to zero.

Verified with the filter on and off, at both widths, and with
DexScreener, Koios and LBank each failing in turn.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 22:01:18 +00:00
8699979bd2 Markets: LBank is Prime's market, so AP3X takes its price
CEO correction: LBank lists the NATIVE Prime token, not a bridged form.
The page treated it as a chainless "CEX" row and told the reader there
was "no market on Prime itself" — both wrong.

- The LBank row now carries the Prime chain and its AP3X mark, with
  "native AP3X · order book" underneath, so it reads as what it is: the
  place the Prime token trades.
- The AP3X row in "One asset, four chains" takes the LBank price instead
  of showing a dash beside a CoinGecko reference, and says the native
  token trades there, when it last filled, and that every DEX pair on
  the page quotes a bridged form.

With LBank's feed down the Prime price falls back to a dash rather than
borrowing a wrapper's quote, and the row is chipped "feed down".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 20:39:07 +00:00
2bc479a200 Markets: 24h volume per pool
CEO ask: the venue table should carry 24h volume alongside price and TVL.

Added a VOL 24H column, filled from the only sources that publish it
per pool through a browser-callable API:

- Base pools DexScreener indexes: its volume.h24 (now four pools - it
  has started indexing the Uniswap v4 bAP3X/AERO pair, which the table
  picks up automatically)
- LBank: 24h turnover from the ticker

Where nobody publishes it the cell reads "no feed", never a zero or a
bare dash, and a note under the table names exactly which venues those
are and why: Cardano DEXs (Minswap, VyFi) and the two Uniswap V3 pools
DexScreener does not index expose reserves but no volume, and reading it
from swap history needs a paid archive node. Checked first: DexHunter
has no volume route, the Minswap aggregator has none, and both keyless
Base RPCs refuse a 24h eth_getLogs range (publicnode wants an archive
token, drpc caps anonymous queries at 10 blocks).

The VOLUME 24H headline is now the sum of exactly the per-pool figures
the table shows, labelled with how many venues reported, so the KPI and
the column can never disagree. It falls back to CoinGecko only when no
venue reports at all.

The phone keeps all four columns without clipping: tighter numeric
padding, a narrower venue cell and a smaller link column. The render
harness now fails a build whose table overflows its card.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 20:36:51 +00:00
b6d5920f54 Markets: every AP3X venue, live, with the proper marks
The Markets section listed three Base pairs from DexScreener and an
empty "Prime tokens" box. It now shows every venue where AP3X trades:

- Base: Aerodrome USDC (the reference price), QuickSwap cbBTC, the two
  Uniswap V3 pools DexScreener does not index and the Aerodrome cbADA
  pool it lists without a price - the last three read straight from
  the chain in one batched eth_call (publicnode, CORS-open; the
  out-of-range WETH pool is flagged and earns no TVL credit)
- Cardano: VyFi ADA/cstAP3X, ADA/cAP3X, cAP3X/cstAP3X from Koios
  address_info (reserves summed across UTxOs), Minswap V2 cAP3X/ADA and
  NIGHT/cAP3X from the pool datum found by the LP asset name, priced by
  the Minswap aggregator; DexHunter stands in when Koios is down
- LBank AP3X/USDT through the site-origin proxy, shown as what it is:
  no trades in days, spread, dead volume
- USDC.e on Nexus gets its own card (ApexScan: supply, holders, largest
  holder, all-time transfers, Stargate bridge link) in place of the
  Prime tokens box, which had nothing to list
- "One asset, four chains": AP3X, bAP3X, cAP3X, cstAP3X with the
  cstAP3X redemption rate computed live (vault / issued) so the
  receipt's premium is explained, not mispriced
- marks are the HAL 8 wallet's own PNGs plus each venue's mark, token
  image with a chain badge, embedded so the page stays one file
- feeds have deadlines, per-panel parsers, an error boundary, tiered
  refresh (quota'd feeds every 9 min, fast ones every 90 s), hidden-tab
  pause, a refresh cooldown, and honest fallbacks (ADA/USD from Minswap
  when CoinGecko is down, cAP3X/USD from reserves when the aggregator
  429s, placeholders when DexScreener is down)
- chain pulse now says mainnet; HeroLightning's ResizeObserver no longer
  throws after unmount; stake-pool saturation reads OSAM's field

Koios and LBank are reached via /api/koios/* and /api/lbank/* on this
origin (Caddy reverse proxies in the HAL 8 repo, PR #142) because
neither answers with a usable CORS header.

README documents the feeds; tools/bundle.py decodes and re-encodes the
bundled page byte-exactly so the next edit does not touch escaped text.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 18:23:41 +00:00
Claude
517d9a020a Drop the dead testnet Koios fallback
koios.vector.testnet.apexfusion.org was retired and answers 503, so the
"try mainnet, then testnet" resolver had nothing to fall back to. After
the mainnet fix both constants pointed at the same host, which meant a
transient failure on the first probe could succeed on the second and
label a mainnet base as "testnet" in the UI.

Mainnet or nothing. One base, one label.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 16:25:16 +00:00
Claude
fbebe5acd4 Fix Vector block feed: query mainnet Koios, not the retired testnet host
The market-grid panels hardcoded koios.vector.testnet.apexfusion.org for
tip/blocks/totals. That host now answers 503, so 'Vector recent blocks'
rendered 'Block feed unavailable'. The mainnet host is live (verified:
200, epoch 378, block 7,995,065) and the site already names it as
KOIOS_MAINNET for its own resolver - the panels just never used it.
Source label corrected to match the host queried.

Also: Prime /tokens is NOT broken. It returns HTTP 200 with an empty
list - no native tokens are minted on Prime yet - so reporting it as
'Token feed unavailable' called a healthy API an outage. Now reads
'No tokens minted on Prime yet.'

Caveat kept honest: the panel still cannot distinguish empty data from a
failed fetch, so if that endpoint ever does break it will show the same
line.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 15:44:37 +00:00
Claude
220ef728be AP3X Fusion ecosystem hub — initial site
Single self-contained index.html (React + assets bundled). Served as a
static site at apex-fusion.odyssey-works.io.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPpFgu6wXiDfJv8ghoUwBJ
2026-09-09 01:16:47 +00:00