Skip to content

v0.27.0

Choose a tag to compare

@compusophy compusophy released this 08 Jun 17:34
· 110 commits to main since this release

Added

  • Agent scheduling — "agents run recurring jobs without a tab" (MVP, LIVE).
    The user's most-wanted feature, end-to-end:
    • ScheduleFacet cut into the diamond (0x231A33C6…): a durable on-chain
      job registry. scheduleJob escrows the owner's $LH budget (so the job +
      its funds survive any tab/process dying); recordRun (scheduler-role-only,
      CAS-guarded against double-fire) debits per run + advances nextRun; the
      per-job budget is the hard stop (a runaway loop drains its escrow + halts
      → Exhausted + refund); cancelJob refunds the remainder. 27 Foundry tests.
    • Vercel-Cron worker (proxy/api/scheduler.ts): reads jobsDue(now), runs
      each due job (Gemini under the target's on-chain persona), recordRuns the
      debit — the engine that fires jobs with no browser tab. Edge, CRON_SECRET-
      gated, no-hot-loop on errors.
    • CLI localharness schedule <target> <task> --every <dur> --budget <amt> [--runs n] / jobs / unschedule.
    • Proven live: scheduled job #1 (claude every 1m, 0.1 $LH); the worker
      fired it with no tab open — budget 0.10 → 0.09, runs-left 2 → 1, nextRun
      advanced, all on-chain.
  • Invites — user-funded, refundable onboarding links (bearer MVP, LIVE).
    Spend your own $LH to invite a newcomer, get it back if they never show:
    • InviteFacet cut into the diamond (0xc7A69Ae9…): a HOLDER calls
      createInvite(bytes32 codeHash, uint256 amount, uint64 ttlSeconds) to ESCROW
      their OWN $LH behind a shareable bearer code (TTL 1h..90d, MAX_ESCROWED
      per-funder cap). acceptInvite(string code) pays the escrow to whoever
      presents the code first (the newcomer); reclaimInvite(bytes32 codeHash) is
      permissionless to call but ALWAYS refunds the FUNDER 100% once expired and
      unclaimed. Views getInvite / escrowedOf. Supply-NEUTRAL (escrows existing
      $LH, never mints — so it doesn't reopen a sybil hole), CEI throughout.
      Bearer-only MVP; bound vouchers (an optional named recipient) are Phase 2.
      Sibling of RedeemFacet (owner-minted bootstrap codes), not a replacement.
    • CLI localharness invite create [--as me] --amount <X> [--ttl <dur>]
      (generates a bearer code + prints the localharness.xyz/?invite=<code> link)
      / invite accept <code> / invite reclaim <code> / invite list (your
      total $LH locked in pending invites).