Skip to content

Releases: AncientPantheon/Codex

v1.1.0

Choose a tag to compare

@AncientHodler-Demiurg AncientHodler-Demiurg released this 02 Oct 16:07

docs(arweave-core,codex): README Status + version-history entries for v0.3.0/v1.1.0

Fixes the publish workflow's documentation gate, which checks for these
exact lines before allowing npm publish.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v0.3.0

Choose a tag to compare

@AncientHodler-Demiurg AncientHodler-Demiurg released this 02 Oct 16:05

docs(arweave-core,codex): README Status + version-history entries for v0.3.0/v1.1.0

Fixes the publish workflow's documentation gate, which checks for these
exact lines before allowing npm publish.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 18:52

feat(codex,codex-ouronet): v1.0.0 — real Kadena mainnet sends, working end to end

First stable release. Real Kadena mainnet sends (same-chain and
cross-chain) now work for the first time, alongside a full tooltip
canon 2.2 upgrade and a marathon of live-tested chain bug fixes:

  • CRITICAL: StoaChain native Send built every transaction's signer
    UNSCOPED, never declaring the coin.TRANSFER/coin.TRANSFER_XCHAIN
    capability it needed — every native Send would have failed on-chain
    with "Managed capability coin.TRANSFER was not installed". Found via
    live testing, root-caused against the deployed coin contract and
    OuronetUI's own working implementation, fixed.
  • Same-chain transfers were unreachable on any non-default chain pair
    for both Kadena and StoaChain (mutually-exclusive chain pickers
    inherited from an OuronetUI cross-chain-only ancestor).
  • The native Send launcher's tooltip only ever cycled through the two
    same-chain variants, silently omitting cross-chain. The tooltip
    cycling engine now supports mixing a registry-resolved variant and a
    local-stopgap variant in one cycle; cross-chain example values are
    now real (a genuine second account, a real chain id) instead of the
    registry's generic ghost data.
  • Kadena reads/writes now default to a real, reachable HTTPS gateway
    instead of a direct HTTP-only node that hairpin-NATs from its own LAN
    and trips browser mixed-content blocks; the direct node stays
    selectable, never the default. Network/timeout errors now name the
    node actually being talked to; 4 read functions that silently
    swallowed a chain-side envelope failure now log the real reason.
  • Both chains' cross-chain send toast used to show no progress during
    the two longest waits (~100s initiate confirmation, ~100-150s SPV
    proof) — now drives a real 3-step progress toast from the moment the
    send starts, with completed steps visually distinct from pending ones.
  • Tooltip canon upgraded to @ouronet/talos-registry@2.2.0: Rule 7 closed
    8 silently-no-op account-management launchers; Rule 8 classifies a
    live-read "no row for this key" refusal as a friendly answer instead
    of an alarming one.

Plus the seedtype-stoic-parity fix (StoaChainSeedType/SeedType
divergence blocking Pythia deploys) and the full prezbom-tooltip/
chainweb-crosschain-transfers project work from earlier this cycle.

See packages/codex-ouronet/CHANGELOG.md and packages/codex/CHANGELOG.md
for full per-change detail.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 17 Sep 12:22

release(codex): v0.11.0 — native Arweave support + direct Stoa/UrStoa movement

Two new chain capabilities land in the public package, both previously
built but never released:

  • Native Arweave: keyring (Pure Keys RSA-4096 generate/import, Seeds
    with Direct Deterministic RSA + Seed Words), live per-account balances,
    native AR send (Fee Included/Fee On Top, real on-chain confirmation
    polling, ViewBlock explorer link, balance-freshness indicator), and
    watch-list/seed persistence through codex backup — plus a real-mode
    default.
  • Direct native Stoa/UrStoa movement: a Stoa/UrStoa toggle on the
    Chainweb Accounts tab (Transfer/Stake/Unstake/Collect, liquid + staked
    • claimable balances) alongside native Stoa send with sending-chain +
      balance display.

Cross-cutting fix: every signed action above, plus Send AR, now pops the
real password prompt on a locked codex and resumes automatically instead
of dead-ending on a static error.

Version bumps: codex 0.10.0->0.11.0, codex-ouronet 0.10.0->0.11.0,
codex-arweave 0.2.0->0.3.0, codex-core 0.2.0->0.3.0, codex-ui
0.4.0->0.5.0. arweave-core unchanged (stays 0.2.0, not in this tag's
publish queue). Full clean build + typecheck + test verified across all
six workspaces before this commit.

See packages/codex/CHANGELOG.md for the full per-feature breakdown.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 19:41

release(codex): v0.10.0 — set meta.gasPrice on all 13 transaction sites

Every signed/submitted transaction in this package omitted meta.gasPrice,
so Pact's client default (1e-8) went on the wire instead of the live Yin
Engine floor — under-priced commands chainweb can reject.

Re-pin: @stoachain/stoa-core + @stoachain/kadena-stoic-legacy >=4.4.0,
@ouronet/ouronet-core >=4.6.0. CodexSigningStrategy.execute() (4.4.0) now
does ONE stoaGasMeta() clock read per call and injects gasPrice +
creationTime into every build(ctx) callback, alongside gasLimit.

All 13 sites now take both from that injected ctx and spread them into
.setMeta({...}) — uniformly, no site calls stoaGasMeta()/safeCreationTime()
itself (single-clock-read guarantee preserved).

This also fixes a latent request-key bug: build() runs twice (gas-measuring
simulation, then real). The old per-call safeCreationTime() yielded a
different creationTime between the two passes, changing the command hash.

The delegating zbom RotateGuard/RotatePaymentKey modals build no command of
their own — fixed upstream in ouronet-core; the re-pin alone corrects them
(verified, not re-fixed).

Adds tests/tx-gas-meta-surface.test.ts: locks the transaction-site inventory
and asserts every site passes gasPrice + creationTime from ctx, so a future
site cannot silently omit the gas contract.

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 13:27

release(codex): v0.9.1 — Address Book width/display fixes

Fix long Ouronet addresses bulging past the page width in the Address
Book: the entry-list grid now uses grid-template-columns: minmax(0, 1fr)
so an unbreakable address can no longer expand a card (and the page) —
long rows truncate instead of overflowing. Covers all three sub-tabs
(Ouronet, StoaChain, StoicTags) via the one shared grid.

  • Ouronet entries render via OuronetAddressHighlight (same component as
    the Ouronet Accounts tab): blue first-3/last-3 highlight, fills width,
    centered start … end middle-truncation.
  • MiddleEllipsis + OuronetAddressHighlight render directly in final form
    (hidden until measured width settles) — no "retract" flash.
  • Remove the erroneous KADENA:MAINNET chain chip (StoaChain is
    mainnet-only).

Bump codex + codex-ouronet to 0.9.1; README/CHANGELOG doc gates updated.
codex-only publish (arweave-core unchanged).

Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 17:50

feat(codex-ouronet): Pythia consumer-API-key management — Single/Dual API tabs (v0.9.0)

Adds Pythia consumer-API-key management to the Ouronet accounts view.

Two new account sub-tabs (after Standard/Smart):

  • Single API — two columns of the codex's Apollo halves (Standard ₱. left,
    Smart Π. right), each with search + pagination and live UNLINKED/LINKED/
    not-deployed status (DPL-UR.URC_0031). Pick one unlinked half from each side
    and Link them into a dual API key.
  • Dual API — the codex's mutually-linked ₱.|Π. composite keys, read via the new
    DPL-UR.URC_0033_DualApiKeyMapper with Pythia prices from URC_0034_PythiaPrices.
    Shows consumer-lane + active/revoked status with per-key Rename lane / Revoke.

Three ZBOM transaction modals, authorized by BOTH half-owners (P|TS):

  • Link (no fee), Rename lane (100 STOA, undiscounted, 4-way split), Revoke
    (1 IGNIS kill-switch). Costs + split receivers are read from the on-chain INFO
    so they never drift when prices change. Both owners' guards are resolved from
    chain, deduped when shared, and any missing owner key is requested via the
    standard manual-key input. Rename mirrors the proven deploy modal's patron +
    payment-key + coin.TRANSFER split; Revoke mirrors the IGNIS-only rotate ops.

Post-transaction refresh: a usePostTxRefresh hook subscribes to the onTxConfirmed
event (previously fired into the void), so URC_0027 account state, URC_0031
API-key status, and the dual-link/price reads all re-fetch automatically once any
Codex tx confirms — no manual reload.

Also: isApiKeyRegistered reads the mapper's explicit is-registered flag
(owner-account fallback); linkage detected by "counterpart is an Apollo account"
rather than a sentinel string (fixes registered-but-unlinked halves reading as
linked); SigningZone no longer shows a permanent "Waiting for account data…"
spinner for owner-only (no-patron) transactions; Rename/Revoke disable on an
already-revoked link; a clear "half not in this Codex" blocker replaces a stuck
spinner for cross-owner keys. Playground vite.config port-resolution fixed (the
constructors/ reorg left it one dir too shallow, silently falling back to :5173).

All three tx types live-tested on-chain by the owner. Adversarially reviewed
(no injection, no one-owner-signing bypass, no duplicate signers, no secret
leakage, no listener leak). codex-ouronet + codex bump 0.8.1 -> 0.9.0 (MINOR,
additive). Full workspace typecheck/build green; codex-ouronet 724 tests green.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 06 Aug 09:32

fix(codex-ouronet): show virgin (never-funded) payment keys, don't hide them (v0.8.1)

The Ouronet account card hid an account's entire Payment Key section when the
chain's payment-key-existance flag was false. But every registered Ouronet
account is ASSIGNED a payment key at activation; payment-key-existance reports
only whether that payment-key ADDRESS has ever held STOA (has a coin-table row)
— i.e. virgin (never funded) vs funded — NOT whether a payment key exists. So a
virgin payment key vanished from the card entirely, even though it exists.

Fix: surface the payment-key address whenever URC_0027 returns one, regardless
of funding (hydrate no longer gates stoaChainLedger on payment-key-existance).
The funding flag now drives only the balance and a new subtle "virgin · never
funded" marker — never whether the section shows. This also makes Payment Key
consistent with every sibling chain section (Guard/StoicTag/Sovereign/Governor),
which already render an empty/placeholder state rather than disappearing.

Reproduces identically in OuronetUI, Mnemosyne, and the Codex playground because
all three read the same URC_0027 chain data through this shared card — hence the
fix lands here in the Codex package, and consumers pick it up on their next bump.

TDD: new ui-ouronet-accounts-payment-key.test.tsx mocks URC_0027 to return a
virgin payment key (existance:false, real payment-key address) and asserts the
address renders with the virgin marker; a funded row asserts the balance shows
with no marker. codex-ouronet 68 files / 724 tests green; full workspace
typecheck + build green.

codex-ouronet and codex both bump 0.8.0 -> 0.8.1 (PATCH, bug fix).

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 23:05

feat(codex-ouronet): server-safe pre-bound headless Kadena KeyResolver (v0.8.0)

Adds createHeadlessKadenaResolver, exported from @ancientpantheon/codex/ouronet:
a pre-bound Kadena KeyResolver ({ getKeyPairByPublicKey, listCodexPubs }) that
headless Khronoton automatons (Pythia, Mnemosyne) drop straight into the engine's
resolver seam. A consumer supplies only loadSnapshot + getPassword thunks and
binds ZERO @StoaChain crypto itself — all seedType-aware derivation delegates to
Codex's one canonical createHeadlessCodexResolver.

This is Topic 1 of Pythia's khronoton-keyresolver-delegation: consumers had each
hand-rolled a KeyResolver that re-derived seeds koala-only, ignoring seedType, so
a chainweaver/eckowallet operator seed derived a different key and refused to
sign (a real live gas-payer failure; Mnemosyne carries the latent duplicate).
Delegating to Codex removes the reimplementation-per-consumer root cause.

  • Extracted the real @StoaChain deps binding (REAL_STOA_DEPS,
    buildExtendedForeignSigningKey, the shared HEADLESS instance, the core->ouronet
    key-missing remap) out of the browser InternalCodexResolver.ts into a new
    server-safe headlessKadenaDeps.ts that BOTH resolvers consume — one derivation
    path, no duplication. InternalCodexResolver behaviour is unchanged (a pure
    structural refactor; its own resolver-internal.test.ts stays green).
  • Fire-time: loadSnapshot + getPassword are re-invoked per call, never cached, so
    a codex edit is picked up next tick and plaintext never outlives the call.
  • Wrong-key refusal guard re-added at the delegation boundary: if the codex
    derives a different pubkey than requested (corrupt codex / wrong seedType tag),
    it refuses to sign rather than return a mislabeled key (secret-free error).
  • Server-safe: importing from /ouronet loads no React/DOM (proven by a plain-Node
    import of the built public dist).

Tests (real crypto end-to-end): koala + chainweaver + eckowallet SEED-derived
accounts each resolve and produce a VALID ed25519 signature (the exact non-koala
scenario that caused the live bug), chainweaver pure-import 128-hex WASM path,
foreign/pure, fire-time re-read counts, wrong-key refusal, and not-found counts.
codex-ouronet 67 files / 722 tests green; full workspace typecheck + build green.

codex-ouronet and codex both bump 0.7.0 -> 0.8.0 (MINOR, additive, no breaking
changes). Implements constructors/Pythia/docs/HANDOFF-codex-headless-kadena-resolver.md.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 09:17

fix(codex): bump README Status block to 0.7.0 for the publish gate

publish.yml's doc-consistency gate requires the ## Status block to
already reference the new version before the tag is pushed (checked via
grep against packages/codex/README.md, alongside the version-history
entry and CHANGELOG's first heading). I'd left Status at 0.6.1 reasoning
it was "still accurate pre-publish" -- wrong call, this repo's own
convention (enforced by the gate, not just style) is to bump it in the
same commit as the version. First v0.7.0 publish run
(run 30617786799) failed here, before ever reaching npm -- confirmed
nothing published (npm view still shows 0.5.0..0.6.1 only). Verified all
3 doc gate regexes pass locally before pushing this.

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com