[1.0.2] — 2026-09-18 Added - X OAuth 2.0 user token: encrypted store + auto-refresh (tools/xoauth2.py). The X Chat DM read (where every inbound DM now lands) needs a user-context OAuth2 token that X expires two hours after mint; the tree read ONE static env value and never refreshed it, so a hand-minted token proved the rail once and then inbound went dark. Every consumer (surfaces/x/client.py, tools/twittertool.py, the polyrob x/gateway presence checks, the CLI twitter gate) now resolves through resolveaccesstoken: store → refresh within 5 min of expiry (refresh token
Added - self-deploy skill: an agent-facing bootstrap for a FRESH instance — assess (model, wallet + funding per chain, email, X, autonomy grants, tool catalog), provision what a lever exists for (own inbox, X account, standing work), bundle the human-only asks into ONE message (API keys, funding addresses read from a tool, env flags, a CAPTCHA), verify by a READ, and report one readiness table. Until now polyrob init was the human's wizard and the setup interview covered only the owner contract. - twitterpollresults(tweetid): reads the options, votes, shares, votingstatus and e
What's Changed * Release POLYROB 1.0.0 by @themontreal in https://github.com/theselfruleorg/polyrob/pull/16 Full Changelog: https://github.com/theselfruleorg/polyrob/compare/v0.13.0...v1.0.0
[0.13.0] — 2026-09-08 Two-week release audit — money, autonomy and app-service hardening (2026-09-08) A full audit of the two weeks since 0.12.0 produced 6 critical and 13 high findings; every one is fixed with a regression test. - Solana swap guard sees the whole transaction (core/wallet/solanatxinspect.py): a Token-2022 transfer no longer bypasses the balance-delta check, the guard reads the full instruction set instead of the first transfer, and it REFUSES what it cannot observe rather than passing it. - A Solana swap reports whether it actually landed — a submitted-but-u
Fixed — session eviction killed the shared Twitter/X and MCP tools (13h prod outage) - Session teardown no longer destroys process-wide tool singletons. Idle session eviction (orchestrator.cleanup(fullcleanup=True)) called every controller tool's private _cleanup() — including container singletons — so one session's eviction nulled TwitterTool.client / MCPTool.servermanager for the whole process, and the skipped cleanup() bookkeeping left is_initialized True, so the re-init gate never fired again (dead until restart; 2026-08-21, ~13h41m of failed X reads/writes plus the "
[0.11.0] — 2026-08-19 Added — multi-chain DeFi - Chain registry SSOT (tools/defi/chains.py) — Ethereum and Base as money-capable chains, Robinhood Chain as data-only (capability decided by on-chain evidence, not vibes); the tool door checks chain capability while the transaction guard keeps its own RPC pin. Per-chain portfolio views, a provider-id price filter, and a registry-driven chain gate on every money verb. Gas is sized from the simulation's gasUsed (a fixed 120k limit would out-of-gas a real swap). Fixed — first-run install & CLI UX (proposal 027, clean-room verified
[0.10.0] — 2026-08-11 Two new capability surfaces — user-declared LLM providers and on-chain token operations — on top of a large correctness and honesty pass across the agent loop, billing, security gates, and the provider/credential UX. Added - On-chain token sight (defi_data, DEFI_DATA_ENABLED, default off): a read-only tool giving the agent eyes on Base — tokenresolve (ranked candidate contracts for a ticker), tokeninfo (on-chain identity + price + liquidity + a safety screen), price, portfolio (own holdings, USD-valued) and contractread (raw ethcall). No sig
Reliability, autonomy, and honesty hardening across the agent loop, plus two new interoperability surfaces (an inbound MCP server and dependency-ordered goals). Added - Per-session spend budget (RUN_BUDGET_USD, default 0 = off): set a dollar ceiling and a run halts honestly the moment its summed real provider cost reaches the cap — reported as a stopped run with a budget marker, never a fabricated "completed". The cap counts real provider cost (not the marked-up user price); sub-agents ride the parent's budget. Surfaced in the agent's environment block so the model can pace itself,
[0.8.1] — 2026-07-21 2026-07-20 — Reliability & honesty fixes (live battle-test hardening) - Financial-language honesty: an unpaid fetch / x402 attempt now explicitly states it did NOT pay (the proximate cause of a fabricated "payment sent" claim), and the agent is steered to x402quote instead of a rejected maxamount_usd=0. - Owner-delivery priority lanes: the user-delivery rail is now priority-ordered so a credit-death / halt notice can no longer be starved behind ordinary chatter under the flat FIFO send cap. - Credit-death sentinel reachability: the fatal-halt branc
Cumulative release: public consumers jump 0.5.1 → 0.8.0 directly. The 0.6.0 and > 0.7.0 sections below the fold in CHANGELOG.md > were cut in-tree but never published — everything in them ships here too. 2026-07-18 — Proposal wave 010A/012/015/016/019-cap: outage honesty + delivery-cap starvation + acceptance gap - LLM_OUTAGE_NOTICE (default ON, 015 #2): an owner chat turn that dies on total LLM-provider exhaustion (the live OpenRouter-402 shape) now gets one static, LLM-free ⚠️ notice over the originating surf
[0.5.1] — 2026-07-08 Bug-fix release on top of 0.5.0. Money / wallet - 2026-07-08: Agent wallet spends from the address it tells you to fund (fund == spend). The agent wallet is hub-and-spoke (one seed → per-venue keys); the x402 spend path signed with the x402 venue key while AgentWallet.address (the owner-facing "fund me" address) returned the treasury key — so funding the surfaced address funded an address no spend path used, stranding funds. Now AGENTWALLETOPERATIONAL_VENUE (default treasury) is the venue same-chain spend paths sign with, AgentWallet.address tracks
[0.5.0] — 2026-07-08 0.5.0 is a large capability release on top of 0.4.3: the compute-posture ladder (installable sandbox + persistent shell/process + selfenv), the agent money loop, the full-control monitoring console, restart-durable autonomy, and a broad intelligence/memory/prompt/security polish pass. Every capability is flag-gated and a default server is behavior-identical to 0.4.3 unless a bullet says otherwise. Computer-use / system-use (compute posture) - 2026-07-07: **AGENTCOMPUTE_POSTURE capability ladder (0–3), default 0.** A third orthogonal capability axis (beside
What's Changed * release: POLYROB 0.4.3 — message tool + outbound allowlist, goal completion verification, asks/escalation by @themontreal in https://github.com/theselfruleorg/polyrob/pull/2 New Contributors * @themontreal made their first contribution in https://github.com/theselfruleorg/polyrob/pull/2 Full Changelog: https://github.com/theselfruleorg/polyrob/compare/v0.4.2...v0.4.3
Initial public release of POLYROB — a self-hosted autonomous AI agent that pursues goals, learns from experience, and runs entirely on your own machine. See the README to get started, and CHANGELOG.md for details. Install: pipx install "polyrob[all]"