Plugins:
open-aea-ledger-ethereum(EthereumApi.build_transaction): populatestx_params["from"]fromtx_args["sender_address"]alongside the existing nonce read, and passes the address throughself.api.to_checksum_address(...)once so the same EIP-55 form is used for both the nonce lookup and the built tx dict (matching the handling inget_transfer_transaction/get_deploy_transaction). The previous implementation builttx_paramswithnonce,value, and gas-pricing fields but nofrom, so web3'scontract.functions.<m>().build_transaction(tx_params)produced a transaction dict without afromfield, and the subsequentupdate_with_gas_estimatecall sent that dict toeth_estimateGas. The JSON-RPC node defaulted missingfromto the zero address, so contract methods whose state checks rejectmsg.sender == 0x0(notably ERC20approveon tokens guarded byrequire(owner != address(0), ...), e.g. Circle USDC) reverted during the estimate.build_transactionthen returnedNonevia the wrappingtry_decorator, leaving callers without a usable transaction. #925
Plugins:
open-aea-ledger-ethereum(try_get_gas_pricing): eliminates a thread-safety race that causedtx["gasPrice"]to be set to a dict (e.g.{"maxFeePerGas": ..., "maxPriorityFeePerGas": ...}) instead of an integer. The previous implementation temporarily mutatedw3.eth._gas_price_strategyviaset_gas_price_strategy/generate_gas_price()/ restore. A concurrentbuild_transactioncall would invokefill_transaction_defaultsinside that window, observe a non-Nonegenerate_gas_price()result, forceis_dynamic_fee_transaction = False, and store the entire strategy-returned dict astx["gasPrice"]. Downstream arithmetic on that dict crashed withTypeError: unsupported operand type(s) for *: 'dict' and 'float', surfacing as an HTTP 500 in Pearl's backend. Fix calls the strategy callable directly —gas_price_strategy_callable(self._api, None)— which is whatgenerate_gas_price()did internally but never touchesw3.eth._gas_price_strategy. The race window is eliminated. #921
Framework:
-
aea.configurations.loader: exposesparse_service_yaml(file_pointer) -> (head, overrides)as a public module-level helper that parses a service YAML stream into the head document and the trailing override documents without schema validation.ConfigLoader._load_service_confignow delegates to it. Lets downstream packagers (e.g. open-autonomy, which needs to substitute environment variables in the head document before validating it through its ownServiceconfig class) drop a hand-maintained copy of the parse-and-split logic. RaisesValueError("Service configuration file was empty.")whenever the head document is not a mapping — covers empty streams, bare---, and YAML scalars (false,0,"",[]) — so the failure surfaces at parse time rather than as an opaqueAttributeErrorfrom the downstream validator. #918 -
aea.cli.scaffold.scaffold_item: savesctx.cwdon entry and restores it viatry ... finally. Previously the--to-local-registrybranch swappedctx.cwdto<registry_path>/<author>to make the innerfingerprint_itemcall resolve correctly, but never restored it, leaking the registry path back to callers. The post-fingerprint steps in the same function (notably the--with-symlinksblock, which builds vendor symlinks fromctx.cwd) also see the original value again. Downstream wrappers that had to bracketscaffold_itemwith their ownpreserve_cwd = ctx.cwd; ...; ctx.cwd = preserve_cwdcan drop the workaround. #918 -
aea.contracts.base.Contract.from_configandaea.connections.base.Connection.from_config: pass the canonical packages-prefixed dotted path (packages.<author>.contracts.<name>.contract/packages.<author>.connections.<name>.connection) toload_moduleinstead of the bare"contracts"/"connection_module"constants. With the newsys.modulesregistration inload_module(below), the bare keys would have collided across contracts and across connections loaded in the same process. Caller-visible behaviour is unchanged becauseload_modulealways returns a fresh module object. #918 -
aea.skills.base._SkillComponentLoader: makes the dotted module path returned by_compute_module_dotted_paththe canonical one (packages.<author>.skills.<name>.<file>), drops the now-redundant "exclude classes whose__module__starts with this skill's dotted path" condition from_filter_classes, and updates the unused-class warning filter at_print_warning_message_for_unused_classesto keep classes that belong to this skill (both submodule classes and those defined at the skill's own__init__.pylevel) instead of dropping everypackages.-prefixed class. Cross-skill re-exports (the canonical FSM composition idiom —class_name: AbciDialoguesinskill.yamlbound to anAbciDialoguesimported from a parent skill) still pass the filter because their__module__starts with another skill's prefix, notaea.. The legacy_parse_modulefilter (used byBehaviour.parse_module/Handler.parse_module/Model.parse_module) drops the same local-prefix exclusion clause and switches itsload_modulecall to the canonical packages-prefixed dotted path so itssys.modulescache entries do not collide on bare keys ("behaviours"/"handlers"/"models") across skills loaded in the same process. The remaining difference vs._filter_classesis the legacy filter's name-allowlist gate (x[0] in component_names), which is unchanged.aea.helpers.base.load_modulenow registers the loaded module insys.modulesunder its dotted path beforeexec_module(reusing any module already registered at that path so a subsequent ordinaryfrom packages.<author>.skills.<name>.<file> import Xreturns the same object instead of re-executing the file and producing a second copy of every class defined in it), and rolls the entry back ifexec_moduleraises. Together these eliminate the dual short-name / long-name class objects that downstream code (open-autonomy's_MetaPayload.registry) previously had to paper over with a key-rewrite loop._compute_module_dotted_pathis no longer a@classmethod(it readsself.skill_dotted_path) — internal API, no out-of-tree caller. #918 -
aea.cli/aea.helpers.protocols: removes the two module-toplogging.basicConfig(...)calls that fired as a side effect ofimport aea.cliand attached a stderrStreamHandlerto the root logger. That orphan root handler survived the agent'slogging.config.dictConfig(the config block has noroot:key) and caught everyaea.agent.*record a second time via propagation, producing the] [INFO]vs][INFO]doubling seen in operator captures. Fix moves thebasicConfiginaea/cli/generate_all_protocols.pyinto the click command body and switchesaea/helpers/protocols.pyfromsetup_logger(__name__)tologging.getLogger(__name__). Behaviour change for operators: third-party libraryINFO/DEBUGlogs (e.g. fromweb3,requestsin the ledger plugins) that the orphan handler previously surfaced now go silent under an agent config without aroot:block inlogging_config.WARNINGand above still appear on stderr via Python'slogging.lastResorthandler, though with that handler's bare-message format (just%(message)s, no level or logger-name prefix and no timestamp) rather than the formatted one the orphan installed. Operators who want the previous behaviour (timestamped third-partyINFO/DEBUG) can add aroot:block tologging_configin the agent'saea-config.yaml. #914 #917 -
aea.helpers.env_vars.generate_env_vars_recursively: adds anis_strict_dict-style branch that JSON-encodes a whole dict as a single env var when any key fails the bash identifier rule (^[A-Za-z_][A-Za-z0-9_]*$), mirroring the existingis_strict_listhandling. Previously a dict keyed by bash-unsafe strings (e.g. probability thresholds like"0.0","0.6","1.0") flattened per key to env var names such as..._BET_AMOUNT_PER_THRESHOLD_0.0that bash rejects at export time, so the override silently never reached the agent (see open-autonomy#2243). Also fixes a latent key-corruption bug where the per-key path round-tripped numeric-looking string keys throughjson.loadsinsideparse_list. All-safe-key dicts still flatten per key (no regression); mixed-key dicts now travel as one JSON-encoded env var. Agent-side reads throughconvert_value_str_to_typeJSON-decode the:dict:/:list:placeholders unchanged. #915
Plugins:
open-aea-ci-helpers(aea-ci check-dependencies):PyProjectToml.loadnow reads[tool.poetry.group.*.dependencies]tables in addition to the main[tool.poetry.dependencies]block, and accepts dict-form entries without anextraskey (so{version = "...", optional = true}deps are no longer silently dropped). Implementation refactored around two helpers (_normalize_version,_dependency_from_spec) that handle string and dict forms uniformly; main-deps entries still win on name collisions. New unit tests atplugins/aea-ci-helpers/tests/test_check_dependencies.pycover the four entry formats,dev+docsgroups, main-vs-group precedence, missing[tool.poetry]table, and thepythonignore filter. Removes a sharp edge for anyone usingaea-ci check-dependencieslocally against a project with grouped or optional-without-extras deps. #916
Documentation:
docs/connection-resilience.mdrewrite addressing @DavidMinarsch's review of the original v2.2.6 doc. Adds a "What the protocol's speech acts imply" section that walks through the protocols in the repo and groups them by failure-channel shape (typed-error, status-with-classification, response-only, routing-failure) — making explicit how a protocol'sspeech_actsand reply rules pin down what the skill can decide. Terminology aligned with the framework convention (speech_actsover "vocabulary", with FIPA's "performatives" as a one-line synonym). Cross-links added to Design principles, Architectural diagram, Skills, Connections, Protocols, Message routing, Decision maker, and Ledger & Crypto APIs. Accuracy pass on the original draft (fetchai/defaultrouting failures are surfaced by thefetchai/errorskill, not the multiplexer; protocols decide failure-signal richness, not which layer retries; ACN reply rules clarified per performative). Net 261 → 91 lines for the same coverage plus the new protocol section. #912
Framework:
aea.helpers.base.try_decorator: enriches the swallowed-exception log line with the wrapped function's qualified name and the exception type. The previouslog(error_message.format(e))rendered aKeyError("maxFee")as just"...'maxFee'"; the line now reads"... [function=<qualname>, exc_type=KeyError]"so swallowed failures are diagnosable without changing the catch semantics. The public docstring also documents theraise_on_try=Trueescape hatch. #891 #910
Packages:
valory/ledgerconnection: caps the per-attempt retry sleep inget_transaction_receipt/get_transactionatMAX_RETRY_DELAY = 60.0. Without the cap, the linear backoffretry_timeout * attemptsgrew unboundedly across the retry budget; capping bounds the worst-case loop while preserving the retry count. #891 #910valory/ledgerconnection: owns a dedicatedThreadPoolExecutorsized by a newmax_thread_workersconfig (default 32) and shuts it down withcancel_futures=Trueon disconnect. Previously the dispatchers passedexecutor=Noneand shared Python's default asyncio thread pool with every other agent component; under sustained RPC outageRotatingHTTPProvider.make_request's sync sleeps accumulated abandoned threads in the shared pool. The dedicated executor isolates ledger work and surfaces the resource cost as operator-tunable config. #891 #910valory/ledgerconnection: lowers the shippedretry_attemptsdefault inconnection.yamlfrom 240 to 60 (and the in-codeMAX_ATTEMPTS/RequestDispatcher.retry_attemptsdefaults from 120 to 60 to match). Now thatRotatingHTTPProviderhandles transport-layer rotation per call, the dispatcher budget is a layered backstop rather than the primary retry mechanism; the tighter default drops worst-case per-slot pool occupancy from ~230 minutes to ~50 minutes. Operators wanting the old budget can override in their connection config. #891 #910valory/ledgerconnection: improves the dispatcher's retry-loop warning log to include the exception type —self.logger.warning(e)previously rendered aKeyError("maxFee")as just"maxFee". Now uses"%s: %s", type(e).__name__, efor both the receipt and transaction loops. #891 #910valory/ledgerconnection: typedmax_thread_workersasintat the assignment site so a stringified YAML value cannot slip past mypy and explode atThreadPoolExecutor(max_workers=...). #891 #910
Plugins:
open-aea-ledger-ethereum: tightensmax_gas_fastper chain inCHAIN_EIP1559_OVERRIDES. Until now low-fee chains (Gnosis, Optimism, Base, Mode, Fraxtal, Arbitrum One) inherited the chain-agnostic 1500 gwei default, so a fee-oracle anomaly could authorise a tx priced 100×+ above the chain's normal range before the cap engaged. A production market-creator deployment on Gnosis submitted a routine multisend at 694 gwei (~700× the validator floor of 1 gwei) on 2026-04-22 (tx 0x727262d9…), paying 0.637 xDAI — ~45% of the agent's 30-day spend — while the inherited 1500 gwei ceiling did not trigger the fallback. New per-chain ceilings: Gnosis 30 gwei, Optimism / Base 100 gwei, Mode / Fraxtal 50 gwei, Arbitrum One 5 gwei. Sized to preserve operability during legitimate congestion (Base's March 2024 Dencun memecoin frenzy sustained ~24 gwei averages with bursts >100 gwei in individual blocks; Gnosis Tornado-deposit waves briefly hit 5–8 gwei) while bounding fee-oracle anomalies. Polygon (10000 gwei ceiling) and Celo (default 1500 gwei) are unchanged.valory/ledgerconnection.yamlmirrors the plugin-level ceilings. #909 #911open-aea-ledger-ethereum: gas-price strategies (Polygon EIP1559 and Eth Gas Station) broaden theexceptclause to cover(requests.exceptions.RequestException, ValueError, KeyError, TypeError)so malformed-response failure modes hit the documented fallback.response.json()raisesJSONDecodeError(aValueErrorsubclass) on non-JSON 200;[speed]/["maxFee"]subscripts raiseKeyErroron schema drift; a non-dict 200 body (a JSONnull, array, or string from a CDN serving an error page) raisesTypeErroron the raw subscript. The previousexcept requests.exceptions.RequestExceptiononly caught network-shaped errors, so the documented fallback was bypassed for everything else. Both strategies now also emit aWARNINGcarrying the exception type so transport failures and schema drift are distinguishable in operator logs. #891 #910open-aea-ledger-ethereum:RotatingHTTPProviderdocstring documents the interaction with the ledger connection's dedicatedThreadPoolExecutor—make_requestis synchronous and usestime.sleepbetween retries, so worker threads in the connection's pool can be held for the duration of a retry sequence. Operators expecting high ledger concurrency under RPC degradation should sizemax_thread_workersto exceed peak concurrent retries for their RPC topology. #891 #910open-aea-cli-ipfs: routes the success-pathjson.loadscalls in_api_post,add, andadd_bytesthrough a single_safe_json_loadshelper that raises a typedStatusError(with a printable, length-capped body preview) on non-JSON 200 responses. Previously a 200 carrying a non-JSON body (CDN HTML error page, truncated payload, gzipped body) raised an unhandledValueErrorto the caller. The body preview replaces non-printable bytes with.and truncates at 80 chars so an arbitrary remote response cannot inject terminal-control sequences into operator logs. #891 #910
Documentation:
- New
docs/connection-resilience.mdframework-developer guidance for choosing retry and timeout behaviour. Covers where work happens in an agent (skills / connections / protocols), the distinction between within-agent and agent-to-external failures, per-component overview (HTTP client, HTTP server, ledger read-side / write-side / thread pool,RotatingHTTPProvider, IPFS, P2P libp2p variants, cosmos / fetchai / solana plugins), and a "picking a policy for a new component" checklist. Indexed inmkdocs.ymlunder Development – Advanced → Topic Guides. #891 #910
Plugins:
open-aea-ledger-ethereum: refactorsRPCRotationMiddlewareinto aRotatingHTTPProvider(anHTTPProvidersubclass) and constructsWeb3(RotatingHTTPProvider(...))directly inEthereumApi.__init__. Rotation now lives at the transport layer, so the standard web3 middleware chain — defaults plus any user-injected middleware — runs untouched on every call. Fixes the v2.2.4 regression whereledger_api.api.eth.<method>(...)returned plain dicts instead ofAttributeDict, breaking attribute access (e.g.receipt.blockNumber) for downstream consumers reaching into the underlying web3 handle directly (open-autonomyTxSettler.settle(), etc.). All inner middleware (AttributeDictMiddleware,ENSNameToAddressMiddleware,FormattingMiddleware,BufferedGasEstimateMiddleware,GasPriceStrategyMiddleware, and any user-injectedinject(layer=0)middleware) — silently dead under the v2.2.4 bypass — now run normally.ExtraDataToPOAMiddlewarereverts to its standard placement atinject(layer=0). #889open-aea-ledger-ethereum:RotatingHTTPProvider.endpoint_uriis overridden as a property that reflects the currently active RPC URL, so diagnostic tooling (metrics, logs, request IDs) readingw3.provider.endpoint_uripost-rotation observes the correct endpoint instead of the URL passed tosuper().__init__. #889open-aea-ledger-ethereum:RotatingHTTPProviderraisesValueErrorat construction ifrpc_urls(after Chainlist enrichment) is empty, replacing the silent failure that previously surfaced as an opaquerequestserror on the first RPC call. #889open-aea-ledger-ethereum:_mark_rpc_backoffand_is_rpc_healthynow run under the rotation lock (switched tothreading.RLockso they remain callable from inside_rotate), closing a torn-read window on_backoff_untilunder concurrent error/rotation events. Unknown-category errors emit aWARNINGlog before re-raising so novel transport failures are no longer silent.classify_errornow returns aLiteral[...]so the categorical switches inmake_request/_handle_error_and_rotateare mypy-checkable. #889
Tooling:
strategy.ini: loosens theurllib3license-whitelist pin from==2.6.3to>=2.6.3,<3to track minor upgrades thatrequestsresolves transitively. Resolves theliccheckCI failure whererequestspulledurllib3 2.7.0while the strategy still authorized only2.6.3. #889
Plugins:
open-aea-ledger-ethereum: makesRPCRotationMiddleware's connection-reset detection locale-safe.classify_errornow matches onisinstance(ConnectionResetError),isinstance(ssl.SSLError)(excludingssl.SSLCertVerificationError), anderrno == 10054(WSAECONNRESET) — and walks the__cause__/__context__chain — instead of substring-matching the localized OS message. On non-English Windows installs, transient resets that previously slipped through as"unknown"and skipped the retry path are now retried correctly. Resolves theterminate_and_withdrawHTTP 500 reported on Polystrat / Pearl. #887open-aea-ledger-ethereum: on connection-reset errors,RPCRotationMiddlewarenow evicts the cachedrequests.Sessionfor the affected provider (_evict_provider_session) before retrying, so the next attempt performs a fresh TCP/TLS handshake instead of reusing the half-closed pooled socket. The cache read andclear()execute under the session manager's_lockwhen one is exposed; the_current_indexsnapshot in_handle_error_and_rotateis taken under the middleware's own lock. Eviction failures are logged atWARNINGwithexc_info=Trueso recovery-path regressions remain diagnosable. #887open-aea-ledger-ethereum: removes thelen(rpc_urls) > 1gate fromRPCRotationMiddleware.wrap_make_request— single-URL deployments (Pearl's default) now enter the retry / session-eviction loop. The retry budget remainsmin(MAX_RETRIES, len(rpc_urls) * 2); when the configuredMAX_RETRIESis clamped by the pool size, an INFO log line is emitted once atbuild()time. On genuine pool exhaustion a single WARNING summary is emitted before the finalraise, distinguishing systemic outages from one-off transient failures. #887open-aea-ledger-ethereum: changes the registration ofExtraDataToPOAMiddlewarefrominject(layer=0)(innermost) toadd(...)(outermost). Required becauseRPCRotationMiddleware.wrap_make_requestcalls each provider directly and bypasses the inner middleware chain (formatters, ENS, retry, exception,AttributeDictMiddleware); PoA processing must therefore wrap the rotation layer to apply on every response. Fixes BSCextraDatafield truncation that surfaced during CI. #887open-aea-ledger-ethereum: widensAttributeDictTranslator.to_dictto accept plaindict(Union[AttributeDict, TxReceipt, TxData, Dict[str, Any]]). Required because responses returning through the rotation path arrive as plain dicts rather thanAttributeDictinstances (the inner middleware chain is bypassed).TxReceiptandTxDataare TypedDicts and continue to flow through the same arm. The existingAttributeDictcallers are unaffected. #887
Tests:
- Reworks
ACNWithBootstrappedEntryNodesDockerImage(the libp2p ACN docker fixture) to support a multi-container topology (bootstrap node plus two entry nodes), replacing the single-containerwait()with a per-container port poll. Resolves flaky ACN integration tests; unrelated to the WSAECONNRESET fix but absorbed into the same release for CI continuity. #887
AEA:
- Bumps the
GitPythonfloor to>=3.1.47,<4.0.0to pull in the upstream fixes forGHSA-rpm5-65cw-6hj4(insecure non-multi options in clone / clone_from) andGHSA-x2qx-6953-8485(blind local-file-read viagit ls-remote). #884
Tooling:
- Collapses the four out-of-band lint/test config files (
pytest.ini,setup.cfg,.pylintrc,.gitleaks.toml) intopyproject.toml+tox.ini(Wave 2a). Pytest config moves to[tool.pytest.ini_options]; the only remainingsetup.cfgcontent is a minimal[isort]block consumed byaea generate-all-protocolsto format generated protocol code.[mypy]and per-module[mypy-*]overrides plus the[darglint]block live at the bottom oftox.ini(mypy/darglint don't read pyproject.toml); the[testenv:mypy]command passes--config-file=tox.iniso they're picked up. #885 - Bumps
tomteto==0.7.0(released). Every lint testenv now references{envsitepackagesdir}/tomte/configs/<config>for its config — pylint, mypy, isort, flake8, bandit, darglint, safety, gitleaks — instead of carrying a forked copy in this repo. The pylint testenv keeps OAEA-specific extras (--ignored-modules=…,--ignore-patterns=…) inline because they're project-specific. #885 - Slims
pyproject.tomlto strict PEP 621 +[tool.poetry]+[tool.pytest.ini_options]+[tool.isort](no[tool.pylint.*]/[tool.flake8]/[tool.mypy]blocks). #885 - Updates the
gitleaksGitHub Actions job to install tomte and run with--config={envsitepackagesdir}/tomte/configs/gitleaks.toml. The previous job ran against gitleaks default rules..gitleaksignoreregenerated viatomte freeze-gitleaks(66 historical fingerprints). #885
Plugins:
open-aea-ledger-ethereum: generalisesEthereumApi.get_l1_data_feeto dispatch bychain_id. Covers OP-stack (Optimism, Base, Mode, Fraxtal) via theGasPriceOracleand Arbitrum Nitro (Arbitrum One, Arbitrum Nova) via theNodeInterfaceprecompile; returns 0 on any other chain. Non-OP-stack L2 queries previously failed silently. Callers that need the L1 data fee (e.g. drain-address budgeting) invoke the helper explicitly — it is safe to call on any chain. #780open-aea-ledger-ethereum: adds chain-aware fallback defaults inside the plugin itself via a unifiedCHAIN_EIP1559_OVERRIDESmap applied byget_default_gas_strategy(chain_id). Per-chain tunings: Optimism / Base / Mode / Fraxtal (5 gwei maxFeePerGas, 3 gwei tip — OP-stack), Arbitrum One (2 gwei maxFeePerGas, 1 gwei tip — above the 0.1 gwei floor), Polygon (6000 gwei maxFeePerGas, 30 gwei tip,min_allowed_tip30 gwei — clears the validator-enforced priority fee floor;max_gas_fast10000), Celo (50 gwei maxFeePerGas, 25 gwei tip,min_allowed_tip25 gwei — above the 25 gwei network floor), and Gnosis (5 gwei maxFeePerGas, 1 gwei tip,min_allowed_tip1 gwei). All other chains inheritDEFAULT_FALLBACK_ESTIMATE. Applies whether the ledger is built viamake_ledger_api('ethereum', chain_id=...)directly OR through thevalory/ledgerconnection, and covers botheip1559andeip1559_polygonstrategies. User-suppliedgas_price_strategieskwargs still take precedence. #775open-aea-ledger-ethereum: improves the fallback-gas warning emitted byget_gas_price_strategy_eip1559to name the actualmaxFeePerGas/maxPriorityFeePerGasvalues being used and point at thegas_price_strategieskwarg as the supported override. #775open-aea-ledger-ethereum: updatesPOLYGON_GAS_ENDPOINTfrom the deprecatedgasstation-mainnet.matic.network/v2to the canonicalgasstation.polygon.technology/v2per Polygon docs. Affects callers of theeip1559_polygonstrategy. #775open-aea-ledger-solana: bumpssolana>=0.33.0,<0.34.0,solders>=0.21.0,<0.22.0,anchorpy>=0.20.0,<0.21.0. Removes the transitivecachetools<5pin thatsolana-py0.29–0.32 carried, unblocking consumers that needcachetools>=7(e.g.tomte[tox]==0.6.5 → tox 4.46).solana.blockhash.BlockhashCachewas removed upstream in 0.33.0; inlined locally as a minimal TTL cache to preserve the plugin's public import surface. Seeopen-autonomy#2479. #880open-aea-ledger-ethereum-hwi: drops the orphanedconstruct<=2.10.61cap from the plugin'sinstall_requiresand the repo-levelpyproject.toml/tox.ini, unblocking dependency resolution for consumers that pull in the solana plugin alongside hwi. #882
Packages:
valory/ledgerconnection: aligns per-chainfallback_estimateandmin_allowed_tipinconnection.yamlwith the new plugin-level defaults — Optimism / Base / Mode / Fraxtal 5 gwei, Arbitrum 2 gwei, Polygon 6000 gwei + 30 gwei tip +max_gas_fast10000, Celo 50 gwei + 25 gwei tip, Gnosis 5 gwei + 1 gwei tip. Also adds a Polygon-specificeip1559_polygonblock (the chain's default strategy) so tuned values apply on the default path, not only when callers explicitly selecteip1559. Technically redundant now that the plugin ships matching defaults, but keeps the YAML self-documenting and defensible if the plugin defaults ever drift. #775
AEA:
- Populates the PyPI
Descriptionsection for the root package and every plugin from the correspondingREADME.md(was empty / a one-liner before). #876
Plugins:
- Removes the unmaintained
open-aea-ledger-ethereum-flashbotsplugin and every CI / docs / config reference to it. Consumers should dropethereum_flashbotsfrom thevalory/ledgerconnection config and removeaea_ledger_ethereum_flashbotsPyInstaller flags. Seedocs/upgrading.md. - Makes
aea-ci generate-api-docsconfigurable (--source-dir,--packages-dir,--plugins-dir,--docs-dir,--default-package,--ignore-plugin,--ignore-prefix,--parallel) so downstream repos can reuse it. Parallel mode now surfaces worker exceptions instead of silently dropping them. #876 - Adds
aea-ci check-third-party-hashes— verifies localpackages/packages.jsonthird_partyentries against one or more upstream repos, with per-upstream fault tolerance. #876
Tests:
- Re-enables the "Local"
test_libp2pDHT integration tests against the rebuiltvalory/open-acn:latestimage (libp2p v0.33.2). Switches fixture entry-peer multiaddrs from0.0.0.0to127.0.0.1to satisfy libp2p v0.33's stricter dial checks. #876
CI:
- Adds
bugs.python.org/issue8296to the doc-link skip list to eliminate a flaky external URL. #876
AEA:
- Removes
requests,ipfshttpclient,jsonschema,python-dotenv,semver,morphys,ecdsa,base58/multibase/multicodec/pymultihashfrom core dependencies -- replaced with stdlib or inlined implementations. #858 #859 #860 #861 #862 #863 #866 #867 - Adds env var resolution on component override sections in AEABuilder. #868
- Switches to strict PEP 440 version parsing (replaces
semver). #859 - Enhances env file parser to support
exportprefix,${VAR}interpolation, and inline comments. #860 - Inlines IPFS HTTP client (replaces
ipfshttpclient). #866 - Inlines JSON Schema Draft-04 validator (replaces
jsonschema). #862 - Inlines secp256k1 validation (replaces
ecdsafrom base deps). #863 - Inlines multiformat helpers (replaces
base58/multibase/multicodec/pymultihash). #861
Plugins:
- Adds new plugin:
open-aea-ci-helpers(aea-ci) with 8 CI automation commands migrated from scripts/. #871 - Adds new plugin:
open-aea-dev-helpers(aea-dev) with 7 release/dev tool commands migrated from scripts/. #865 - Migrates
check_copyright,check_doc_links,freeze_dependenciesto tomte CLI. #865 - Widens dependency pins across all plugins for broader compatibility. #864
Go / libp2p:
- Bumps Go module dependencies to Go 1.24. #872
- Restores circuit-relay v2 routing parity. #872
- Fixes golangci-lint integration for libp2p_node. #872
- Adds Python<->Go FIPA e2e test harness to CI. #872
Tooling:
- Migrates from Pipenv to Poetry. #857
- Bumps
tomtefrom0.6.1to0.6.5. #857 - Deletes 12 Python scripts from scripts/ (migrated to plugins). #865 #871
- Removes benchmark/checks/ legacy scripts. #865
- Comprehensive docs refresh. #872
CI:
- Bumps GitHub Actions (checkout v4, setup-python v5, golangci-lint v6). #872
- Bumps Go from 1.17-1.20 to 1.24. #872
- Adds golangci-lint for libp2p_node and aealite. #872
- Reduces platform matrix for faster CI runs. #869
- Fixes Click
flag_valuedefault handling follow-up. #855
AEA:
- Extends Python support from
3.10-3.11to3.10-3.14. #831 - Adds support for pytest v8 and updates related test and utility modules. #835
- Makes CLI
flag_valuedefaults robust across Click processing-order changes (includingpackages syncdefaults and registry flag defaults). #839 #848 - Adds
AEA_PASSWORDenvironment variable support for CLI password handling. #825 - Fixes multiple high-impact audit findings across behaviours, multiplexer, manager, dependency installation, and registry handling. #846
Plugins:
- Adds multiple RPC rotation with automatic failover in the Ethereum ledger plugin stack. #829
- Fixes
open-aea-ledger-ethereum-flashbotsdependency constraints to be compatible withopen-aea-ledger-ethereumin the2.1.0rc6line. #850
Tooling and dependencies:
- Bumps
tomtefrom0.4.0to0.6.1. #831 - Updates Click range to
<8.4.0and applies compatibility fixes for 8.3.x behaviour rules. #838 #839 #848 - Updates several pinned dependencies for Python 3.12-3.14 compatibility, including
packaging==26,pytest>=8.2,<10,protobuf>=5,<6,requests>=2.32.5,<3,openapi-core==0.22.0,openapi-spec-validator>=0.7.0,<0.8.0,docker==7.1.0,hypothesis==6.151.9, andcosmpy>=0.11.0,<0.12. #831 - Removes obsolete/deprecated compatibility dependencies and paths (including
gymanddistutilsusage). #831 #836
Compatibility and regression fixes:
- Fixes Python 3.13/3.14 regressions in async/multiprocessing paths (including
multiprocessing.Managercontext handling and asyncio event-loop compatibility changes). #843 - Reworks ready-awaitable internals to avoid Python 3.14 warnings/regressions and follow-up flaky behaviour. #831 #847
- Fixes local connection cross-thread queue loop handling to avoid race conditions caused by private asyncio queue internals. #847
- Adds follow-up fixes for CLI and framework regressions found after the initial interpreter/dependency bump, including critical audit issues and command behaviour corrections. #846 #847 #848
Packages:
- Warns when the chain id is not specified in a message #824
- Caches the chain id to avoid excessive RPC usage #826
Docs:
- Updates the docs to use the new naming convention for Agent blueprints and AI agents #821
AEA:
- Pins
clickto>=8.1.0,<8.3.0# 819 Packages: - Makes timeout in
http_serverconfigurable by any skill that's using this connection #818
Plugins:
- Bumps
open-aea-flashbots==2.0.0inopen-aea-ledger-ethereum-flashbots#814 - Fixes
valory/open-aea-userdocker image building and warnings #817
Packages:
- Updates the
acn.staging.autonolas.techDNS entries toacn.autonolas.tech
Plugins:
- Fixes no attribute error in
aea-ledger-ethereumplugin when callingupdate_with_gas_estimatealong withfromaddress in the transaction. #812
AEA, Plugins, Packages:
- Bumps the version of
web3pyto>=7.0.0,<8.0.0# 810 - Bumps the version of
eth-accountto>=0.13.0,<0.14.0# 810 - Bumps the version of
hexbytesto==1.3.1# 810
AEA:
- Loosens the pytest version range to
>=7.0.0,<8.0.0# 808
Plugins:
- Removes pytest from the base dependencies of
aea-cli-ipfsplugin and keeps it only for tests # 808
AEA, Plugins, Packages:
- Ends support for Python 3.8 and 3.9. #801
- Docker images now use Python 3.10 as the base Python version #801
get_metavarnow requires a new parameter,ctx: Context#801aeaand its subcommands that expect some arguments (for exampleaea,aea ipfs, etc.), when used without any arguments will now finish with exit code 2 instead of 0, and print their usage help instderr. #801
Packages:
- Refines the default EIP-1559 values in the ledger connection's configuration #788 && #791
Plugins:
- Uses the minimum tip as a fallback #789
- Makes the timeout of RPC requests configurable #792
Docs:
- Fixes broken submodule and Macro syntax error #787
Tests:
- Creates a test for the EIP-1559 fee calculation #791
- Makes the public RPCs overridable via environment variables #793
Plugins:
open-aea-ethereumnow multiplies the base gas fee as before. #786
Plugins:
- Defaults the minimum allowed tip as 1000000000 for Gnosis chain, and 1 for the rest. #784
- Adds a new function
get_l1_data_feeto theEthereumApiclass, to get the L1 data fee for a transaction. #784
Packages:
- Updates tasks.py log level to debug #774
Plugins:
- Accounts for the minimum allowed tip on chains #782
AEA:
- Fixes encoding #779
Plugins:
- Removes incorrect key from the fallback estimate #779
- Fixes the transaction receipt's retrieval on the ledger dispatcher #773
Chores:
- Upgrades macOS in workflow #772
Docs:
- Adds explicit reference to the version of
mkdocs-mermaid-plugin#776 - Fixes reference to the multiplexer image #778
Plugins:
- Fixes the handling of dropped ACN node connection #769
- Fixes an edge case in the gas estimation #770
Plugins:
- Fixes the gas estimation #766
AEA
- Avoids validation failures with --help #764
AEA:
- Adds support for dictionary overrides #750, #761
AEA:
- Adds support for custom components in
publishandejectcommands. #758
Plugins:
- Improves the EIP1559 strategy #759
Plugins:
- Fixes the pricing logic. #756
Plugins:
- Adds support for polygon, fraxtal, base and mode. #746 && #747
Plugins:
- Adds optimism config to the ledger connection. #744
Chore:
- Updates the release process document. #743
AEA:
- Pins
python-dotenvto>=0.14.0,<1.0.1
AEA:
- Loosens up the version range for several dependencies to allow better integration with other frameworks
Plugins:
- Implements a custom filtering method to handle RPC timeouts and hanging.
Packages:
- Adds
Celoto ledger connection configurations
Chore:
- Adds whitelist for component mint check
AEA:
- Adds support for pushing custom components to the IPFS registry
Packages:
- Make timeout configurable on the http client connection
- Adds
Celoto ledger connection configurations
AEA:
- Fixes IPFS node address parsing on Git console
- Adds support for caching and reusing packages
AEA:
- Pins
python-dotenv>=0.14.0,<0.22.0
AEA:
- Fixes custom file references in the CLI commands
AEA:
- Adds support for scaffolding and managing custom packages
Plugins:
- Bumps
cosmpy@0.9.2 - Fixes the
_try_send_signed_transactionon the solana plugin to separate the transaction receipt retrieval
AEA:
- Updates the
generate-keycommand to include ledger specifier when writing keys in a JSON file
Plugins:
- Fixes transaction deserialisation for adding nonce on the solana ledger
- Increases the number of retries for fetching transaction receipt
Packages:
- Regenerates the protocols to update the copyright header
- Updates the date range for issuing the certificates
- Adds optional key word arguments to
SEND_TRANSACTIONmessages
AEA:
- Fixes the default environment variable parsing for the base types
AEA:
- Fixes the default environment variable parsing for the list types
AEA:
- Adds
--timeoutflag on aea install command - Fixes circular import issues on package manager
- Fixes nested list environment variable parsing
Plugins:
- Adds support for versioned transactions on
solanaplugin
AEA:
- Pins
openapi-core==0.15.0,openapi-spec-validator<0.5.0,>=0.4.0andjsonschema<4.4.0,>=4.3.0
Chore:
- Adds a script for managing dependencies across various project configurations
Packages:
- Use
kwargs.popinstead ofkwargs.getto avoid extra argument error on ledger connection
AEA:
- Fixes the source repository validation regex
- Updates the
generate-keycommand to prompt before overwriting the existing keys file - Fixes the inconsistent hashing caused by the
CRLFline endings - Updates the component loader to ignore the test modules when loading the component
- Adds support for overriding dependencies
- Updates the
synccommand to download missing dependencies and updatepackages.json - Updates the error messages for missing ledger plugins on
generate-keycommand
Plugins:
- Adds missing
py.typedmarkers - Backports the changes from the
agent-academy-2repository on the ledger connection - Ports
http_serveras a valory connection
AEA:
- Adds support for specifying extra dependencies and overriding dependencies via
-eflag onaea install - Updates the selection of dependencies in
aea installcommand to override the dependencies in theextra dependencies provided by flag > agent > skill > connection > contract > protocolorder instead of merging them.
AEA:
- Removes the
web3pyfork as a dependency - Bumps the protobuf to
protobuf>=4.21.6,<5.0.0 - Updates protocol buffers compiler to
v24.3 - Updates the protocol generator
- Removes unused layers from the user image and uses minimal python image as base
AEA:
- Pins
jsonschema<=4.19.0,>=4.16.0
AEA:
- Removes the rust installation layer from the user image
Framework:
- Deprecates the support for
Python 3.7and adds support forPython 3.11 - Adds support for multi platform docker images
Plugins:
- Replaces
web3py==5.31.4withopen-aea-web3==6.0.1 - Replaces
flashbots==1.1.1withopen-aea-flashbots==1.3.0 - Bumps
open-aea-cosmpytov0.6.5 - Deprecates the
apduboyas a dependency - Pins
ledgerwallet==0.1.3
Plugins:
- Replaces
cosmpywithopen-aea-cosmpy
AEA:
- pyyaml updated, tomte updated
Plugins:
- cosmpy updated to 0.6.0
Plugins:
- Adds support for multiple transaction builders on
flashbotsledger plugin - Pins
eth-accountto>=0.5.9,<0.6.0protobufto==3.19.5web3to==5.31.4constructto<=2.10.61
AEA:
- Fixes a bug on
aea fetchcommand which caused issue when using the--aliasflag if the package with original name already existed in the working directory #630 - Removes the need for intermediate agent for generating protocols #632
- Adds
-tlrflag on the aea generate command group - Adds support for registering packages to local registry on the package manager
- Updates the
ProtocolGeneratorimplementation to work with the local registry project structure
- Adds
- Fixes
IPFSlocal registry loader #634 - Updates the
scaffoldtool to register the newly scaffolded packages topackages.jsonto the local registry #635 - Sets the apply environment variables to true on
aea buildcommand #636
Plugins:
- Bumps
solanaandanchorpyto resolve dependency issues with theweb3pylibrary #637
AEA:
- Updates package manager to add newly found packages to the
packages.jsoninstead of raising error #622 - Updates the package manager to add new packages to third party #627
Packages:
- Fixes ACN slow queue issue #624
Plugin:
- Attaches the plugin loggers to the correct namespace #620
- Adds logic on the
flashbotsplugin to check that we are simulating against the current block, and we are targeting a future block when sending a bundle #625 - Adds support for specifying base URI for the IPFS client on the IPFS cli plugin #628
Chores:
- Update release flow parameters to use kebab case to avoid deprecation warnings #623
AEA:
- Updates the protocol generator to use
protobufdouble type to represent float values
Packages:
- Adds
SEND_SIGNED_TRANSACTIONSto the initial states on the ledger connection
Plugins:
- Removes unused dependencies from
solanaplugin - Adds the new plugin the the
new_envtarget on theMakefile - Adds support for raising on a simulation failure on the
flashbotsplugin - Makes
recursiveandwrap_with_directoryparameters configurable on the IPFS client - Attaches the plugin loggers to the correct namespace
Chores:
- Bumps
tomtetov0.2.4 - Fixes
pyproject.tomlsyntax - Fixes parsing issues on
check_pipfile_and_toxini.pyscript
AEA:
- Updates the error messages on the package manager for misconfigured
packages.jsonfiles - Adds support for initialising empty local packages repository using
aea packkages initcommand - Fixes licence headers on the newly introduced plugins
- Adds two new performatives to the ledger api protocol
SEND_SIGNED_TRANSACTIONSto send multiple transactions at onceTRANSACTION_DIGESTSto retrieve transaction digests for the transactions sent usingSEND_SIGNED_TRANSACTIONS
Plugin:
- Introduces
Solanaledger plugin - Introduces
Ethereum Flashbotsplugin
AEA:
- Adds support for syncing third party package hashes from
githubrepositories - Adds support for custom union types on the protocol generator
- Fixes message formatting on the configuration validator
Packages:
- Adds
pytest-asyncioas a dependency on the ledger connection
Plugin:
- Introduces the
open-aea-ledger-ethereum-hwiplugin to support hardware wallet interactions
AEA:
- Adds support for retries on the
aea push-allcommand using--retriesflag - Updates the
aea testcommand to load dependencies for an agent when running test for an agent package - Updated the protocol generator to generate tests
- Fixes for process termination in the test tools on windows
Packages:
- Replaces the usage of
time.sleepwithasyncio.sleepin asynchronous functions
Test:
- Adds more tests for
aea testcommand group
AEA:
- Fixes the module import issue on the
aea testcommand by removing the usage of spawned process to run the pytest command
Plugins:
- Pins proper version for cosmos plugin on the ledger plugin
- Updates the
LedgerApi.update_with_gas_estimationmethod to raise instead of logging the error if specified by the user
Chores:
- Pins
pywin32to>=304
AEA:
- Adds checks to make sure the author name and the package name are in snake case only
- Adds tools for automating the protocol tests
- Updates the test command to spawn a process for running the pytest command to make sure there are no issues with the test coverage
- Fixes a race condition found in the
AsyncMultiplexer
Plugins:
- Makes the fetchai ledger plugin dependent on the cosmos plugin to prevent code duplication
Tests:
- Adds a test to showcase a race condition in
AsyncMultiplexer
AEA:
- Adds auto-generated protobuf
*_pb2.pyand*_pb2_*.pyfiles tocoveragercignore template for aea test command. - Fixes comparison operators
__eq__,__ne__,__lt__,__le__,__gt__,__ge__for multiple classes includingPackageVersion. - Adds support to
test packagescommand for the--allflag and switches default behaviour to only run tests ondevpackages. - Fixes miscellaneous issues on base test classes and adds consistency checks via meta classes.
Plugins:
- Updates
open-aea-cli-ipfsto retry in case an IPFS download fails
Tests:
- Fills coverage gaps on core
aea - Fills coverage gaps on multiple packages
- Fills coverage gaps on all plugins
Chores:
- Merges the coverage checks with unit tests and removes the extra test coverage CI run.
- Cleans up release flow.
- Adds workflow for image building.
AEA:
- Adds support for hashing byte strings on
IPFSHashOnlytool - Introduces
CliTesttool to help with theCLItesting - Extends aea packages lock command to update fingerprints
- Adds support for appending test coverage with previous runs on
aea testcommand and fixes the coverage onaea test packagescommand - Updates the
BasePackageManager.add_packageto fetch packages recursively
Plugins:
- Updates the
cosmosandfetchailedger plugins to usePyCryptodomeforripemd160hash generation - Adds support for publishing byte strings directly to IPFS daemons without intermediate file storage on the
IPFSplugin
Chores:
- Pins
toxversion usingtomtein the CI to maintain version consistency - Pins
goversion tov1.17.7on the CI
AEA:
- Fixes the mechanism to convert the
jsonpath to environment variable string - Updates the process of agent subprocess termination to make sure we properly terminate agents across the various operating systems
- Introduces
reraise_as_click_exceptionto re-raise exceptions asclick.ClickExceptionson command definitions - Extends
CliRunnerto allow usage ofcapfdto capture test output - Introduces
generate_env_vars_recursivelymethod to auto generate the environment variable names for component overrides - Extends
aea generate-keyto support creating multiple keys - Extends the package manager API to
- Update the hashes for third party packages with a warning
- Update the dependency hashes when locking packages
- Verifying the dependency hashes when verifying packages
- Adds deprecation warning for
aea hash allcommand since the same functionality is now being provided byaea packages lockcommand
Tests:
- Updates
libp2ptests to usecapsysto readstdoutinstead of patchingsys.stdout - Re enables tests skipped with
# need remote registrycomment - Adds tests for package manager API
Chores:
- Updates the
toxenvironment setting for unit tests to report duration of tests - Deprecates the usage of
aea hash allcommand from the workflow
AEA:
- Adds deprecation warning for
--aevflag - Makes the usage of environment variables default
- Extends
push-allcommand to push only the development packages - Adds support for generating environment variable names if not provided by default
- Changes log level from
debugtoerroronExceptionhandling - Updates the configuration loader classes to make sure path string serialization is deterministic across the various platforms
Test:
- Fixes the tests skipped because of the wrongly configures ledger ID
- Adds tests to check if path string serialization is deterministic across the various platforms
Chores:
- Updates
scripts/check_ipfs_hashes_pushed.pyto use newpackages.jsonformat
AEA:
- Extracts package manager implementation into core module
- Extends the package manager implementation to introduce separation between development and third party packages
- Extends aea packages lock command to work with new
packages.jsonformat - Extends aea packages sync command with
--dev,--third-party,--allflags to specify what packages to sync avoid updating hashes for third party packages - Updates the
check-packagescommand to make sure we skipopen-aeawhen generating list for third party packages in package dependency check - Adds proper exception handling on
aea fetchcommand for bad packages
Chores:
- Updates dependencies in Dockerfile for documentation
AEA:
- Updates the cert request serialisation process to maintain consistency across different operating systems
- Updates the
get_or_create_cli_configmethod to return default config instead of creating one - Introduces the
copy_classutility function for testing different setup configurations - Updates the overridable policies for the configuration classes
Packages:
- Removes the unwanted autonomy dependency from the ledger connection
Tests:
- Updates the cli config fixture to retain user config
- Fixes outbox check test
- Adds test coverage for
aea/cliaea/configurationsaea/helpersaea/test_toolsaea/manager
Docs:
- Adds documentation on the usage of component overrides
Chores:
- Adds a script to automatically generate a package table for the docs
- Introduces the usage of
tomteto maintain third party dependency version consistency - Updates the script to check the broken links to use parallelization
AEA:
- Updates
aea scaffold contractto include contract ABIs
Packages:
- Adds support for running local ACN nodes
- Converts
ledgerandhttp_clientconnections andhttp,ledger_apiandcontract_apiprotocols to valory packages and syncs them withopen-autonomyversions of the same packages - Extends
ledgerconnection to automatically handle contract calls to methods not implemented in the contract package, redirecting them to a default contract method.
Plugins:
- Introduces test tools module for IPFS cli plugin
Tests:
- Fixes flaky timeout tests
- Fixes flaky
DHT (ACN/Libp2p)tests on windows - Introduces test for assessing robustness of the ACN setup without agents
Docs:
- Adds a guide on implementing contract packages
AEA:
- Ensures author and year in copyright headers are updated in scaffolded components
- Updates
check-packages- to check the presence of the constant
PUBLIC_IDfor connections and skills. - to validate author
- to check the presence of the constant
- Fixes CLI help message for
aea config setcommand - Extends test command to support consistency check skips and to run tests for a specific author
- Adds proper exception raising and error handling
- Exception handling when downloading from IPFS nodes
- Better error message when the
--aevflag is not provided
- Fixes file sorting to maintain consistency of links on
PBNodeobject onIPFSHashOnlytool
Plugins:
- Updates the IPFS plugin to make make sure we don't use the local IPFS node unless explicitly specified
Packages:
- Ports
libp2pconnection packages tests- Ports
p2p_libp2p_mailboxtests - Ports
p2p_libp2p_clienttests - Ports
p2p_libp2ptests
- Ports
- Introduces
test_libp2pconnection package to testlibp2pintegration
Chores:
- Fixes docstring formatting to make sure doc generator works fine
- Updated
check_ipfs_hashes.pyscript to usepackages.jsoninstead ofhashes.csv - Updates the command regex to align with the latest version
AEA:
- Updates the
aea initcommand to set the local as default registry and IPFS as default remote registry - Updates the
aea test packagesto include the agent tests - Introduces
aea packagescommand group to manage local packages repositoryaea packages lockcommand to lock all available packages and createpackages.jsonfileaea packages synccommand to synchronize the local packages repository
Chores:
- Fix README header link
- Removes
shebangsfrom non-script files - Adds a command validator for docs and Makefile
- Deprecates the usage of
hashes.csvto maintain packages consistency
Tests:
- Fixes test failures introduced on
v1.18.0
AEA:
- Reverts a problematic package loading logic introduced in
1.18.0
Tests:
- Fixes flaky tests
Chores:
- Restructures CI to avoid environment cross-effects between the package and framework tests
AEA:
- Fixes protocol header string regex.
- Adds
FIELDS_WITH_NESTED_FIELDSandNESTED_FIELDS_ALLOWED_TO_UPDATEin the base config class. - Introduces
aea testcommand group:aea test item_type public_id: Run all tests of the AEA package specified byitem_typeandpublic_idaea test by-path package_dir: Run all the tests of the AEA package located atpackage_diraea test packages: Runs all tests in thepackages(local registry) folder.aea test: Runs tests in thetestsfolder, if present in the agent folder.
Tests:
- Ports tests for the following packages into their respective package folders
packages/valory/protocols/acnpackages/valory/protocols/tendermintpackages/valory/connections/p2p_libp2p/libp2p_node/dht/dhttestspackages/open_aea/protocols/signingpackages/fetchai/skills/generic_sellerpackages/fetchai/skills/http_echopackages/fetchai/skills/echopackages/fetchai/skills/erc1155_clientpackages/fetchai/skills/gympackages/fetchai/skills/erc1155_deploypackages/fetchai/skills/generic_buyerpackages/fetchai/protocols/httppackages/fetchai/protocols/fipapackages/fetchai/protocols/defaultpackages/fetchai/protocols/state_updatepackages/fetchai/protocols/ledger_apipackages/fetchai/protocols/oef_searchpackages/fetchai/protocols/contract_apipackages/fetchai/protocols/gympackages/fetchai/protocols/tacpackages/fetchai/connections/ledgerpackages/fetchai/connections/http_serverpackages/fetchai/connections/localpackages/fetchai/connections/stubpackages/fetchai/connections/gympackages/fetchai/connections/http_clientpackages/fetchai/contracts/erc1155
AEA:
- Updates the deploy image Dockerfile to use Python 3.10
- Updates the deploy image Dockerfile to utilize remote registry when fetching components
- Improves handling for variables with potential none values
Chore:
- Bumps
mistuneto a secure version - Bumps
protobufdependencies to addressdependabotsecurity warning - Improves command regex on
scripts/check_doc_ipfs_hashes.py - Updates
toxdefinitions andMakefiletargets to align with the latest changes
AEA:
- Adds schema validation for global CLI config file
- Improves the dependency resolver
- Provides more useful error messages when circular package dependencies are present
- Adds check to make sure all the packages referenced in an AEA package's
config.yamlare being used as imports in the code, and vice versa that all imported packages are reference in theconfig.yaml - Adds check to make sure all the packages in an AEA project are listed in the
aea-config.yaml - Fixes a bug related to async function call on
TCPSocketProtocol - Updates transaction building to handle gas estimation properly
- Update
ContractConfigclass to include contract dependencies in the dependency list
Docs:
- Adds missing command on the
http-echo-demo.mddoc.
Chore:
- Add the gitleaks scan job
AEA:
- Updates the protocol generator to use
protocol generator versionas a header rather than using framework version
Chore:
- Cleans up remnants of py3.6
- Updated the release process
- Adds skaffold profiles for releases
AEA:
- Adds property to determine if skill is abstract in context
- Fixes ACN process termination
- Refactors ACN tests and adds auto multiplex
- Randomizes libp2p test directories
- Resolves an SSL issue
Chore:
- Updates the consistency-check script to verify that packages have been pushed to IPFS
AEA:
- Add test to check package hash on signing protocol constant
- Adds support for CID v1 IPFS hashes
Plugins:
- Updates the
IPFSDaemonto perform ipfs installation check only when initialised locally.
Packages:
- Upgrades certificate request dates on connection components
- Adds extra logging on internode communication
Docs:
- Adds a FAQ section
AEA:
- Updated the default IPFS node multiaddr to the production one
- Fixes CSV io issues on windows
- Makes
publishcommand patchable foropen-autonomy
Plugins:
- Introduces the
raise_on_retryparameter to the ledgers.
Docs:
- Updates the default font family
- Updates documentation to use IPFS hashes to work with the components
Chore:
- Fixes resolution issues for
packagingdependency - Introduces script to check IPFS hash consistency in the documentation
AEA:
- Makes
aea publish,aea fetch,aea push-allcommands patchable to support service packages onopen-autonomy
Plugins:
- Adds
Proof Of Authoritychain support on ethereum plugin - Adds gas pricing mechanism for
Polygonchain on ethereum plugin
Docs:
- Updates docs to use IPFS hashes to work with the packages
- Updates images are in .SVG
Chores:
- Updates the release guide
- Updates Dockerfiles to use
Python 3.10 - Adds skaffold config to build and tag images
AEA:
- Makes config loader patchable
- Adds support for Python 3.10 and removes support for Python 3.6
- Enables fingerprinting for files in
Agentcomponents - Adds support for specifying vendors when generating hashes
- Enables the usage of environment variables on
aea configcommand
Plugins:
- Introduces benchmark CLI plugin
Docs:
- Add docs for benchmark CLI plugin
Chore:
- Pins correct versions on CI workflow
- Bumps
pywin32version to304 - Bumps
blackandclickto stable versions - Separates tox environments for python{3.7, 3.8, 3.9} and Python3.10
AEA:
- Introduces
check-packagescommand to check package integrity - Introduces a new component type
service - Makes dialogues accessible via their respective handlers
- Fixes default remote registry setting bug
- Introduces
push-allcommand to publish all available packages to a specific registry - Updates
aea hash allcommand to extend public ids when hashing
Docs:
- Adds docs on IPFS registry usage
Chores:
- Updates
check_package_versions_in_docs.pyto use new PublicId format
AEA:
- Extends the
runcommand to print all available addresses at the AEA start up. - Introduces support for usage of hashes as a part of the
PublicId - Adds support for IPFS based registry
- Introduces dialogue cleanup
- Adds support for removing the temporal
Nonevalues in the dialogue label - Updated the profiler to
- Removing the unwanted variables in profiling
- Set counters also in the destructor
- Only iterate the gc one
- Use types blacklist
- Get info from all objects
- Adds support for memray in the profiler
- Ports the
generate_all_protocols.pyandgenerate_ipfs_hashes.pytoaea.clias a command line tools. - Adds support for the usage of environment variables in
issue-certificatescommand.
Pluging:
- Updates IPFS cli plugin tool to support remote registry and extended
PublicId
Packages:
- Updated
tendermint/protocolfor config sharing
Chores:
- Adds support for IPFS in CI for windows based environments
- Profile parser checks for non empty data before plotting
- The paths to download the packages folder with svn are now pointing to the version tag rather than main.
- Adds the missing search plugin for mkdocs.
- Adds new functionality to the log parser to add an extra plot with common objects in the garbage collector.
AEA:
- List all available packages at the AEA start up.
- Updates profiler module to use tracemalloc.
- Fixes dialogue cleanup.
Plugins:
- Fixes repricing bug on ethereum plugin.
- Adds support for lazy imports on cosmos plugin.
Packages:
- Adds protocol package for tendermint.
Docs:
- Adds docs for newly introduced ACN modules and packages.
AEA:
- Adds support for packages hashing with
IPFSHashOnlyfromaea.helpers.ipfs.base - Updates the
aea runcommand to print hash table for available packages in an agent project
Plugins:
- Makes error raising optional when sending transactions and adds error logging for the same
Docs:
- Adds documentation for the newly introduced profiling script
- Removes reference to
docs.fetch.ai
Chores:
- Adds a script to analyze and visualize profiling data from agent runs
- Updates authors list
AEA:
- Adds in null equivalents so that environment variables can default to a none value
- Adds support for remote IPFS registry usage in CLI tool
- Adds support to show IPFS hashes of each component yaml at start of
aea run
Plugins:
- Adds support for remote IPFS registry usage in IPFS plugin
- Fixes gas price repricing strategy in ethereum ledger plugin
Packages:
- Ports
acnpackages from fetchai repo - Bumps protobuf compiler version and updates protocols
Docs:
- Adds demo of http connections and skills
- Adds demo of environment variable usage
- Adds miscellaneous updates to documentation based on developer feedback
Chores:
- Updates copyright script to support all patterns
- Simplifies Dockerfiles and removes unneeded dependencies
Plugins:
- Bumps
open-aea-ethereum-ledgerto1.4.1after fixing a bug in the log retrieval logic.
AEA:
- Exposes agent data directory on skill context.
- Adds support for environment variables loading from aea-config files.
- Extends contract base class to support new plugin functionality.
Plugins:
- Adds support for transaction preparation and log retrieval into the ethereum plugin.
- Adds support for retrieving the revert reason when transaction is not verified in ethereum plugin.
Docs:
- Simplifies documentation further and updates with latest features
Plugins:
- Bumps
open-aea-ethereum-ledgerto1.3.2after adding tip increase logic
Plugins:
- Fixes dynamic gas pricing on open-aea-ethereum
- Improves daemon availability check in
IPFSDaemononopen-aea-cli-ipfs - Bumps
open-aea-cli-ipfsand open-aea-ethereum-ledger to1.3.1
Docs:
- Removes reference to fetch.ai.
AEA:
- Adds support to scaffold packages outside an AEA project
- Adds support for IPFS package hashing and IPFS based registry.
- Allows contracts to depend on other contracts.
Plugins:
- Adds support for EIP1559 based gas estimation strategy on aea-ledger-ethereum.
- Adds support for package hashing and local IPFS registry on
aea-cli-ipfs. - Bumps
aea-ledger-ethereumandaea-cli-ipfsto1.3.0.
Docs:
- Applies new styling
- Simplifies documentation and updates with latest features
AEA:
- Adds type hint for dialogue valid replies in protocol generator
- Adds generator fixes to pass darglint checks
- Adds various test fixes and fixes on MAM
- Allows additional entropy to be passed to key generation in plugins (including. via CLI)
- Fixes an issue with message key-value setter
- Fixes an issue with improper termination of subprocesses in the test tools
- Fixes typing issues
- Miscellaneous minor fixes
Plugins:
- Updates aea-ledger-ethereum for EIP1159 compatibility
- Bumps aea-ledger-ethereum dependencies
Packages:
- Miscellaneous minor fixes
Docs:
- Updates API documentation
Chores:
- Enables darglint for protocols
AEA:
- Forks 1.1.0 of legacy AEA with the aim of maintaining backwards compatibility where possible
- Removes GOP decision maker handler to reduce dependencies
- Removes hard-coded registry API URL
- Changes default ledger to ethereum
- Removes dependency on fetchai packages
- Removes interact command
Plugins:
- Forks plugins, unfortunately cannot maintain plugin support for legacy aea plugins due to their dependency on legacy aea
- Fixes typing issues
Packages:
- Removes most fetchai packages apart from those currently used in tests
- Adds
open_aea/signing:1.0.0protocol
Docs:
- Removes most demos
Chores:
- Makes all necessary changes to move to
open-aea
AEA:
- Adds public keys to agent identity and skill context
- Adds contract test tool
- Adds multiprocess support for task manager
- Adds multiprocess backed support to
MultiAgentManager - Adds support for excluding connection on
aea run - Adds support for adding a key that is being generated (
—add-keyoption forgenerate-keycommand) - Adds check for dependencies to be present in registry on a package push
- Makes more efficient installing of project dependencies on
aea install - Adds dependency conflict detection on
aea install - Improves pip install error details on
aea install - Adds validation of
aea_versionwhen loading configuration - Adds a check for consistency of package versions in
MultiAgent Manager - Adds better error reporting for aea registry requests
- Fixes IPFS hash calculation for large files
- Fixes protobuf dictionary serializer's uncovered cases and makes it deterministic
- Fixes scaffolding of error and decision maker handlers
- Fixes pywin32 problem when checking dependency
- Improves existing testing tools
Benchmarks:
- Adds agents construction and decision maker benchmark cases
Plugins:
- Upgrades fetchai plugin to use CosmPy instead of CLI calls
- Upgrades cosmos plugin to use CosmPy instead of CLI calls
- Upgrades fetchai plugin to use StargateWorld
- Upgrades cosmos plugin to Stargate
- Sets the correct maximum Gas for fetch.ai plugin
Packages:
- Adds support for Tac to be run against fetchai StargateWorld test-net
- Adds more informative error messages to CosmWasm ERC1155 contract
- Adds support for atomic swap to CosmWasm ERC1155 contract
- Adds an ACN protocol that formalises ACN communication using the framework's protocol language
- Adds
cosm_tradeprotocol for preparing atomic swap transactions for cosmos-based networks - Adds https support for server connection
- Adds parametrising of http(s) in soef connection
- Fixes http server content length response problem
- Updates Oracle contract to 0.14
- Implements the full ACN spec throughout the ACN packages
- Implements correct error code usage in ACN packages
- Refactors ACN packages to unify reused logic
- Adds tests for gym skills
- Adds dockerised SOEF
- Adds libp2p mailbox connection
- Multiple fixes and stability improvements for
p2p_libp2pconnections
Docs:
- Adds ACN internals documentation
- Fixes tutorial for HTTP connection and skill
- Multiple additional docs updates
- Adds more context to private keys docs
Chores:
- Various development features bumped
- Bumped Mermaid-JS, for UML diagrams to major version 8
- Applies darglint to the code
Examples:
- Adds a unified script for running various versions/modes of Tac
AEA:
- Bounds versions of dependencies by next major
- Fixes incoherent warning message during package loading
- Improves various incomprehensible error messages
- Adds debug log message when abstract components are loaded
- Adds tests and minor fixes for password related CLI commands and password usage in
MultiAgentManager - Adds default error handler in
MultiAgentManager - Ensures private key checks are performed after override setting in
MultiAgentManager - Applies docstring fixes suggested by
darglint - Fixes
aea push --localcommand to use correct author - Fixes
aea get-multiaddresscommand to consider overrides
Plugins:
- Bounds versions of dependencies by next major
Packages:
- Updates
p2p_libp2pconnection to use TCP sockets for all platforms - Multiple fixes on
libp2p_nodeincluding better error handling and stream creation - Adds sending queue in
p2p_libp2pconnection to handle sending failures - Adds unit tests for
libp2p_nodeutils - Adds additional tests for
p2p_libp2pconnection - Fixes location bug in AW5
- Improves connection check handling in soef connection
- Updates oracle and oracle client contracts for better access control
- Adds skill tests for
erc1155skills - Adds skill tests for
ariesskills - Fixes minor bug in ML skills
- Multiple additional tests and test stability fixes
Docs:
- Extends demo docs to include guidance of usage in AEA Manager
- Adds short guide on Kubernetes deployment
- Multiple additional docs updates
Chores:
- Adds
--no-bumpoption togenerate_all_protocolsscript - Adds script to detect if aea or plugins need bumping
- Bumps various development dependencies
- Adds Golang and GCC in Windows install script
- Adds
darglintto CI
Examples:
- Updates TAC deployment scripts and images
Packages:
- Adds node watcher to
p2p_libp2pconnection - Improves logging and error handling in
p2p_libp2pnode - Addresses potential overflow issue in
p2p_libp2pnode - Fixes concurrency issue in
p2p_libp2pnode which could lead to wrongly ordered envelopes - Improves logging in TAC skills
- Fixes Exception handling in connect/disconnect calls of soef connection
- Extends public DHT tests to include staging
- Adds tests for envelope ordering for all routes
- Multiple additional tests and test stability fixes
AEA:
- Fixes wheels issue for Windows
- Fixes password propagation for certificate issuance in
MultiAgentManager - Improves error message when local registry not present
AEALite:
- Adds full protocol support
- Adds end-to-end interaction example with AEA (based on
fetchai/fipaprotocol) - Multiple additional tests and test stability fixes
Packages:
- Fixes multiple bugs in
ERC1155version of TAC - Refactors p2p connections for better separation of concerns and maintainability
- Integrates aggregation with simple oracle skill
- Ensures genus and classifications are used in all skills using SOEF
- Extends SOEF connection to implement
oef_searchprotocol fully - Handles SOEF failures in skills
- Adds simple aggregation skills including tests and docs
- Adds tests for registration AW agents
- Adds tests for reconnection logic in p2p connections
- Multiple additional tests and test stability fixes
Docs:
- Extends car park demo with usage guide for AEA manager
- Multiple additional docs updates
Examples:
- Adds TAC deployment example
- Improves contributor guide
- Enables additional pylint checks
- Adds configuration support on exception behaviour in ledger plugins
- Improves exception handling in
aea-ledger-cosmosandaea-ledger-fetchaiplugins - Improves quickstart guide
- Fixes multiple flaky tests
- Fixes various outdated metadata
- Resolves a CVE (CVE-2021-27291) affecting development dependencies
- Adds end-to-end support and tests for simple oracle on Ethereum and Fetch.ai ledgers
- Multiple minor fixes
- Multiple additional tests and test stability fixes
- Extends CLI command
aea fingerprintto allow fingerprinting of agents - Improves
deploy-imageDocker example - Fixes a bug in
MultiAgentManagerwhich leaves it in an unclean state when project adding fails - Fixes dependencies of
aea-legder-fetchai - Improves guide on HTTP client and server connection
- Removes pickle library usage in the ML skills
- Adds various consistency checks in configurations
- Replaces usage of
pyaeswithpycryptodomein plugins - Changes generator to avoid non-idiomatic usage of type checks
- Multiple minor fixes
- Multiple additional tests and test stability fixes
- Adds CLI command
aea get-public-key - Adds support for encrypting private keys at rest
- Adds support for configuration of decision maker and error handler instances from
aea-config.yaml - Adds support for explicitly marking behaviours and handlers as dynamic
- Adds support for fetchai ledger to oracle skills and contract
- Adds timeout support on multiplexer calls to connections
- Fixes bug in regex constrained string for id validation
- Adds docs section on how AEAs satisfy 12-factor methodology
- Adds docs section on tradeoffs made in
v1 - Adds example for logs streaming to browser
- Removes multiple temporary hacks for backwards compatibility
- Adds skills tests coverage for
echoandhttp_echoskills - Adds
required_ledgersfield inaea-config.yaml - Removes
registry_pathfield inaea-config.yaml - Adds
message_formatfield to cert requests - Removes requirement for exact protocol buffers compiler, prints version used in protocols
- Adds support to configure task manager mode via
aea-config.yaml - Fixed spelling across docstrings in code base
- Multiple minor fixes
- Multiple docs updates to fix order of CLI commands with respect to installing dependencies
- Multiple additional tests and test stability fixes
- Fixes a package import issue
- Fixes an issue where
AgentLoopdid not teardown properly under certain conditions - Fixes a bug in testing tools
- Fixes a bug where plugins are not loaded after installation in
MultiAgentManager - Adds unit tests for weather, thermometer and car park skills
- Fixes a missing dependency in Windows
- Improves SOEF connections' error handling
- Fixes bug in ML skills and adds unit tests
- Adds script to bump plugin versions
- Adds gas price strategy support in
aea-ledger-ethereumplugin - Adds CLI plugin for IPFS interactions (add/get)
- Adds support for CLI plugins to framework
- Multiple additional tests and test stability fixes
- Bumps
aiohttpto>=3.7.4to address a CVE affectinghttp_server,http_clientandwebhookconnections - Adds script to ensure Pipfile and
tox.inidependencies align - Enforces presence of
protocol_specification_idinprotocol.yaml - Adds support for installation of agent-level PyPI dependencies in
AEABuilder - Sets default ledger plugin during
aea create - Updates various agent packages with missing ledger plugin dependencies
- Bumps various development dependencies
- Renames
coin_priceskill toadvanced_data_requestskill and generalises it - Updates
fetch_beaconskill to useledgerconnection - Multiple docs updates to fix order of CLI commands with respect to installing dependencies
- Multiple additional tests and test stability fixes
- Adds slots usage in frequently used framework objects, including
Dialogue - Fixes a bug in
aea upgradecommand where eject prompt was not offered - Refactors skill component configurations to allow for skill components (
Handler,Behaviour,Model) to be placed anywhere in a skill - Extends skill component configuration to specify optional
file_pathfield - Extracts all ledger specific functionality in plugins
- Improves error logging in http server connection
- Updates
Development - Use casedocumentation - Adds restart support to
p2p_libp2pconnection on read/write failure - Adds validation of default routing and default connection configuration
- Refactors and significantly simplifies routing between components
- Limits usage of
EnvelopeContext - Adds support for new CosmWasm message format in ledger plugins
- Adds project loading checks and optional auto removal in
MultiAgentManager - Adds support for reuse of threaded
Multiplexer - Fixes bug in TAC which caused agents to make suboptimal trades
- Adds support to specify dependencies on
aea-config.yamllevel - Improves release scripts
- Adds lightweight Golang AEALite library
- Adds support for skill-to-skill messages
- Removes CLI GUI
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Changes default URL of
soefconnection to https - Improves teardown, retry and edge case handling of
p2p_libp2pandp2p_libp2p_clientconnections - Adds auto-generation of private keys to
MultiAgentManager - Exposes address getters on
MultiAgentManager - Improves package validation error messages
- Simplifies default
DecisionMakerHandlerand extracts advanced features in separate class - Fixes task manager and its usage in skills
- Adds support for multi-language protocol stub generation
- Adds
data_dirusage to additional connections - Adds IO helper function for consistent file usage
- Extends release helper scripts
- Removes stub connection as default connection
- Adds support for AEA usage without connections
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Removes error skill from agents which do not need it
- Adds support for relay connection reconnect in ACN
- Multiplexer refactoring for easier connection handling
- Fix
erc1155skill tests on CosmWasm chains - Extends docs on usage of CosmWasm chains
- Adds version compatibility in
aea upgradecommand - Introduces protocol specification id and related changes for better interoperability
- Adds synchronous connection base class
- Exposes state setter in connection base class
- Adds Yoti protocol and connection
- Multiple updates to generic buyer
- Adds additional automation to
MultiAgentManager, including automated handling of certs, keys and other package specific data - Multiple test improvements and fixes
- Add stricter typing and checks
- Fixes to MacOS install script
- Adds threading patch for web3
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Fixes
CosmosApi, in particular for CosmWasm - Fixes error output from
add-keyCLI command - Update
aea_versionin non-vendor packages when callingupgradeCLI command - Extend
upgradecommand to fetch newer agent if present on registry - Add support for mixed fetch mode in
MultiAgentManager - Fixes logging overrides in
MultiAgentManager - Configuration overrides now properly handle
Nonevalues - Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Fixes multiple issues with
MultiAgentManagerincluding overrides not being correctly applied - Restructures docs navigation
- Updates
MultiAgentManagerdocumentation - Extends functionality of
aea upgradecommand to cover more cases - Fixes a bug in the
aea upgradecommand which prevented upgrading across version minors - Fixes a bug in
aea fetchwhere the console output was inconsistent with the actual error - Fixes scaffold connection constructor
- Multiple additional tests to improve stability
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds multiple bug fixes on
MultiAgentManager - Adds
AgentConfigManagerfor better programmatic configuration management - Fixes auto-filling of
aea_versionfield in AEA configuration - Adds tests for confirmation skills AW2/3
- Extends
MultiAgentManagerto support proper configuration overriding - Fixes ML skills demo
- Fixes environment variable resolution in configuration files
- Adds support to fingerprint packages by providing a path
- Adds
local-registry-syncCLI command to sync local and remote registry - Adds support to push vendorised packages to local registry
- Adds missing tests for code in documentation
- Adds prompt in
scaffold protocolCLI command to hint at protocol generator - Adds
issue-certificatesCLI command for Proof of Representation - Adds
cert_requestssupport in connections for Proof of Representation - Adds support for Proof of Representation in ACN (
p2p_libp2p*connections) - Adds automated spell checking for all
.mdfiles and makes related fixes - Multiple additional tests to improve stability
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds support for protocol dialogue rules validation
- Fixes URL forwarding in http server connection
- Revises protocols to correctly define terminal states
- Adds a build command
- Adds build command support for libp2p connection
- Adds multiple fixes to libp2p connection
- Adds prometheus connection and protocol
- Adds tests for confirmation AW1 skill
- Adds oracle demo docs
- Replaces pickle with protobuf in all protocols
- Refactors OEF models to account for semantic irregularities
- Updates docs for demos relying on Ganache
- Adds generic storage support
- Adds configurable dialogue offloading
- Fixes transaction generation on confirmation bugs
- Fixes transaction processing order in all buyer skills
- Extends ledger API protocol to query ledger state
- Adds remove-key command in CLI
- Multiple tac stability fixes
- Adds support for configurable error handler
- Multiple additional tests to improve stability
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds AW3 AEAs
- Adds basic oracle skills and contracts
- Replaces usage of Ropsten testnet with Ganache in packages
- Fixes multiplexer setup when used outside AEA
- Improves help command output of CLI
- Adds integration tests for simple skills
- Adds version check on CLI push
- Adds integration tests for tac negotiation skills
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Replaces error skill handler usage with built in handler
- Extends
MultiAgentManagerto support persistence between runs - Replaces usage of Ropsten testnet with Ganache
- Adds support for symlink creation during scaffold and add
- Makes contract interface loading extensible
- Adds support for PEP561
- Adds integration tests for launcher command
- Adds support for storage of unique page address in SOEF
- Fixes publish command bug on Windows
- Refactors constants usage throughout
- Adds support for profiling on
aea run - Multiple stability improvements to core asynchronous modules
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Extends AW AEAs
- Fixes overwriting of private key files on startup
- Fixes behaviour bugs
- Adds tests for tac participation skill
- Adds development setup guide
- Improves exception logging for easier debugging
- Fixes mixed mode in upgrade command
- Reduces verbosity of some CLI commands
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Fixes some AW2 AEAs
- Improves generic buyer AEA
- Fixes a few backwards incompatibilities on CLI (upgrade, add, fetch) introduced in 0.7.1
- Fixes geolocation in some tests
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds two AEAs for Agent World 2
- Refactors dialogue class to optimize for memory
- Refactors message class to optimize for memory
- Adds mixed registry mode to CLI and makes it default
- Extends upgrade command to automatically update references of non-vendor packages
- Adds deployment scripts for
kubernetes - Extends configuration set/get support for lists and dictionaries
- Fixes location specifiers throughout code base
- Imposes limits on length of user defined strings like author and package name
- Relaxes version specifiers for some dependencies
- Adds support for skills to reference connections as dependencies
- Makes ledger and currency ids configurable
- Adds test coverage for the tac control skills
- Improves quick start guidance and adds docker images
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds two AEAs for Agent World 1
- Adds support to apply configuration overrides to CLI calls transfer and get-wealth
- Adds install scripts to install AEA and dependencies on all major OS (Windows, MacOs, Ubuntu)
- Adds developer mailing list opt-in step to CLI
init - Modifies custom configurations in
aea-configto use public id - Adds all non-optional fields in
aea-configby default - Fixes upgrade command to properly handle dependencies of non-vendor packages
- Remove all distributed packages and add them to registry
- Adds public ids to all skill
initfiles and makes it a requirement - Adds primitive benchmarks for libp2p node
- Adds Prometheus monitoring to libp2p node
- Makes body a private attribute in message base class
- Renames
bodyytobodyin HTTP protocol - Adds support for abstract connections
- Refactors protobuf schemas for protocols to avoid code duplication
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds skill testing tools and documentation
- Adds human readable log output regarding configuration for
p2p_libp2pconnection - Adds support to install PyPI dependencies from
AEABuilderandMultiAgentManager - Adds CLI upgrade command to upgrade entire agent project and components
- Extends CLI remove command to include option to remove dependencies
- Extends SOEF chain identifier support
- Adds CLI transfer command to transfer wealth
- Adds integration tests for skills generic buyer and seller using skill testing tool
- Adds validation of component configurations when setting component configuration overrides
- Multiple refactoring of internal configuration and helper objects and methods
- Fix a bug on CLI push local with latest rather than version specifier
- Adds
README.mdfiles in all agent projects - Adds agent name in logger paths of runnable objects
- Fixes tac skills to work with and without ERC1155 contract
- Adds additional validations on message flow
- Multiple docs updates based on user feedback
- Multiple additional tests and test stability fixes
- Adds
MultiAgentManagerto manage multiple agent projects programmatically - Improves SOEF connection reliability on unregister
- Extends configuration classes to handle overriding configurations programmatically
- Improves configuration schemas and validations
- Fixes Multiplexer termination errors
- Allow finer-grained override of component configurations from
aea-config - Fixes tac controller to work with Ethereum contracts again
- Fixes multiple deploy and development scripts
- Introduces
isortto development dependencies for automated import sorting - Adds reset password command to CLI
- Adds support for abbreviated public ids (latest) to CLI and configurations
- Adds additional documentation string linters for improved API documentation checks
- Multiple docs updates including additional explanations of ACN architecture
- Multiple additional tests and test stability fixes
- Adds a standalone script to deploy an ACN node
- Adds filtering of out-dated addresses in DHT lookups
- Updates multiple developer scripts
- Increases code coverage of all protocols to 100%
- Fixes a disconnection issue of the multiplexer
- Extends soef connection to support additional registration commands and search responses
- Extends
oef_searchprotocol to include success performative and agent info in search response - Adds
README.mdfiles to all skills - Adds configurable exception policy handling for multiplexer
- Fixes support for http headers in http server connection
- Adds additional consistency checks on addresses in dialogues
- Exposes decision maker address on skill context
- Adds comprehensive benchmark scripts
- Multiple docs updates including additional explanations of soef usage
- Multiple additional tests and test stability fixes
- Makes
FetchAICryptodefault again - Bumps
web3dependencies - Introduces support for arbitrary protocol handling by DM
- Removes custom fields in signing protocol
- Refactors and updates dialogue and dialogues models
- Moves dialogue module to protocols module
- Introduces
MultiplexerStatusto collect aggregate connection status - Moves Address types from mail to common
- Updates
FetchAICryptoto work with Agentland - Fixes circular dependencies in helpers and configurations
- Unifies contract loading with loading mechanism of other packages
- Adds get-multiaddress command to CLI
- Updates helpers scripts
- Introduces
MultiInboxto unify internal message handling - Adds additional linters (eradicate, more
pylintoptions) - Improves error reporting in libp2p connection
- Replaces all assert statements with proper exceptions
- Adds skill id to envelope context for improved routing
- Refactors IPC pipes
- Refactors core dependencies
- Adds support for multi-page agent configurations
- Adds type field to all package configurations
- Multiple docs updates including additional explanations of contracts usage
- Multiple additional tests and test stability fixes
- Adds support for Windows in P2P connections
- Makes all tests Windows compatible
- Adds integration tests for P2P public DHT
- Modifies contract base class to make it cross-ledger compatible
- Changes dialogue reference nonce generation
- Fixes tac skills (non-contract versions)
- Fixes Aries identity skills
- Extends cosmos crypto API to support
cosmwasm - Adds full test coverage for framework and connection packages
- Multiple docs updates including automated link integrity checks
- Multiple additional tests and test stability fixes
- Adds support for re-starting agent after stopping it
- Adds full test coverage for protocols generator
- Adds support for dynamically adding handlers
- Improves P2P connection startup reliability
- Addresses P2P connection race condition with long running processes
- Adds connection states in connections
- Applies consistent logger usage throughout
- Adds key rotation and randomised locations for integration tests
- Adds request delays in SOEF connection to avoid request limits
- Exposes runtime states on agent and removes agent liveness object
- Adds readme files in protocols and connections
- Improves edge case handling in dialogue models
- Adds support for
cosmwasmmessage signing - Adds test coverage for test tools
- Adds dialogues models in all connections where required
- Transitions ERC1155 skills and simple search to SOEF and P2P
- Adds full test coverage for skills modules
- Multiple docs updates
- Multiple additional tests and test stability fixes
- Transitions demos to agent-land test network, P2P and SOEF connections
- Adds full test coverage for helpers modules
- Adds full test coverage for core modules
- Adds CLI functionality to upload
README.mdfiles with packages - Adds full test coverage for registries module
- Multiple docs updates
- Multiple additional tests and test stability fixes
- Adds support for agent name being appended to all log statements
- Adds redesigned GUI
- Extends dialogue API for easier dialogue maintenance
- Resolves blocking logic in OEF and gym connections
- Adds full test coverage on AEA modules configurations, components and mail
- Adds ping background task for soef connection
- Adds full test coverage for all connection packages
- Multiple docs updates
- Multiple additional tests and test stability fixes
- Refactors all connections to be fully asynchronous friendly
- Adds almost complete test coverage on connections
- Adds complete test coverage for CLI and CLI GUI
- Fixes CLI GUI functionality and removes OEF node dependency
- Refactors P2P go code and increases test coverage
- Refactors protocol generator for higher code reusability
- Adds option for skills to depend on other skills
- Adds abstract skills option
- Adds ledger connections to execute ledger related queries and transactions, removes ledger APIs from skill context
- Adds contracts registry and removes them from skill context
- Rewrites all skills to be fully message based
- Replaces internal messages with protocols (signing and state update)
- Multiple refactoring to improve
pylintadherence - Multiple docs updates
- Multiple test stability fixes
- Updates component package module loading for skill and connection
- Unifies component package loading across package types
- Adds connections registry to resources
- Upgrades CLI commands for easier programmatic usage
- Adds
AEARunnerandAEALauncherfor programmatic launch of multiple agents - Refactors
AEABuilderto support reentrancy and resetting - Fixes tac packages to work with ERC1155 contract
- Multiple refactoring to improve public and private access patterns
- Multiple docs updates
- Multiple test stability fixes
- Updates message handling in skills
- Replaces serialiser implementation; all serialization is now performed framework side
- Updates all skills for compatibility with new message handling
- Updates all protocols and protocol generator
- Updates package loading mechanism
- Adds
p2p_libp2p_clientconnection - Fixes CLI bugs and refactors CLI
- Adds eject command to CLI
- Exposes identity and connection cryptos to all connections
- Updates connection loading mechanism
- Updates all connections for compatibility with new loading mechanism
- Extracts multiplexer into its own module
- Implements list all CLI command
- Updates wallet to split into several crypto stores
- Refactors component registry and resources
- Extends soef connection functionality
- Implements
AEABuilderreentrancy - Updates
p2p_libp2pconnection - Adds support for configurable runtime
- Refactors documentation
- Multiple docs updates
- Multiple test stability fixes
- Adds option to pass ledger APIs to
AEABuilder - Refactors decision maker: separates interface and implementation; adds loading mechanisms so framework users can provide their own implementation
- Adds asynchronous and synchronous agent loop implementations; agent can be run in both
syncandasyncmode - Completes transition to atomic CLI commands (fetch, generate, scaffold)
- Refactors dialogue API: adds much simplified API; updates generator accordingly; updates skills
- Adds support for crypto module extensions: framework users can register their own crypto module
- Adds crypto module and ledger support for cosmos
- Adds simple-oef (soef) connection
- Adds
p2p_libp2pconnection for true P2P connectivity - Adds PyPI dependency consistency checks for AEA projects
- Refactors CLI for improved programmatic usage of components
- Adds skill exception handling policies and configuration options
- Adds comprehensive documentation of configuration files
- Multiple docs updates
- Multiple test stability fixes
- Adds dialogue generation functionality to protocol generator
- Fixes add CLI commands to be atomic
- Adds Windows platform support
- Stability improvements to test pipeline
- Improves test coverage of CLI
- Implements missing doc tests
- Implements end-to-end tests for all skills
- Adds missing agent projects to registry
- Improves
AEABuilderclass for programmatic usage - Exposes missing AEA configurations on agent configuration file
- Extends Aries demo
- Adds method to check stdout for test cases
- Adds code of conduct and security guidelines to repo
- Multiple docs updates
- Multiple additional unit tests
- Multiple additional minor fixes and changes
- Adds
p2p_stubconnection - Adds
p2p_noiseconnection - Adds webhook connection
- Upgrades error handling for error skill
- Fixes default timeout on main agent loop and provides setter in
AEABuilder - Adds multithreading support for launch command
- Provides support for keyword arguments to AEA constructor to be set on skill context
- Renames
ConfigurationTypewithPackageTypefor consistency - Provides a new
AEATestCaseclass for improved testing - Adds execution time limits for act/react calls
- TAC skills refactoring and contract integration
- Supports contract dependencies being added automatically
- Adds HTTP example skill
- Allows for skill inactivation during initialisation
- Improves error messages on skill loading errors
- Improves
README.mdfiles, particularly for PyPI - Adds support for Location based queries and descriptions
- Refactors skills tests to use
AEATestCase - Adds fingerprint and scaffold CLI command for contract
- Adds multiple additional docs tests
- Makes task manager initialize pool lazily
- Multiple docs updates
- Multiple additional unit tests
- Multiple additional minor fixes and changes
- Introduces IPFS based hashing of files to detect changes, ensure consistency and allow for content addressing
- Introduces
aea fingerprintcommand to CLI - Adds support for contract type packages which wrap smart contracts and their APIs
- Introduces
AEABuilderclass for much improved programmatic usage of the framework - Moves protocol generator into alpha stage for light protocols
- Switches CLI to use remote registry by default
- Comprehensive documentation updates on new and existing features
- Additional demos to introduce the contracts functionality
- Protocol, Contract, Skill and Connection inherits from the same class, Component
- Improved APIs for Configuration classes
- All protocols now generated with protocol generator
- Multiple additional unit tests
- Multiple additional minor fixes and changes
- Breaking change to all protocols as we transition to auto-generated protocols
- Fixes to protocol generator to move it to alpha status
- Updates to documentation on protocols and OEF search and communication nodes
- Improvements and fixes to AEA launch command
- Multiple docs updates and restructuring
- Multiple additional minor fixes and changes
- Fixes stub connection file I/O
- Fixes OEF connection teardown
- Fixes CLI GUI subprocesses issues
- Adds support for URI based routing of envelopes
- Improves skill guide by adding a service provider agent
- Protocol generator bug fixes
- Add
aea_versionfield to package YAML files for version management - Multiple docs updates and restructuring
- Multiple additional minor fixes and changes
- Fixes registry to only load registered packages
- Migrates default protocol to generator produced version
- Adds http connection and http protocol
- Adds CLI
initcommand for easier setting of author - Refactoring and behind the scenes improvements to CLI
- Multiple docs updates
- Protocol generator improvements and fixes
- Adds CLI launch command to launch multiple agents
- Increases test coverage for AEA package and tests package
- Make project comply with PEP 518
- Multiple additional minor fixes and changes
- Add minimal
aea install - Updates finite state machine behaviour to use any simple behaviour in states
- Adds example of programmatic and CLI based AEAs interacting
- Exposes the logger on the skill context
- Adds serialization (encoding/decoding) support to protocol generator
- Adds additional docs and videos
- Introduces test coverage to all code in docs
- Increases test coverage for AEA package
- Multiple additional minor fixes and changes
- Skills can now programmatically register behaviours
- Tasks are no longer a core component of the skill, the functor pattern is used
- Refactors the task manager
- Adds nonces to transaction data so transactions can be verified
- Adds documentation for the protocol generator
- Fixes several compatibility issues between CLI and registry
- Adds skills to connect a thermometer to an AEA
- Adds generic buyer and seller skills
- Adds much more documentation on AEA vs MVC frameworks, core components, new guides and more
- Removes the wallet from the agent constructor and moves it to the AEA constructor
- Allows behaviours to be initialized from a skill
- Adds multiple improvements to the protocol generator, including custom types and serialization
- Removes the default crypto object
- Replaces
SharedClasswithModeltaxonomy for easier transition for web developers - Adds bandit to CLI for security checks
- Makes private key paths in configurations a dictionary so values can be set from CLI
- Introduces Identity object
- Increases test coverage
- Multiple additional minor fixes and changes
- Add programmatic mode flag to AEA
- Introduces vendorised project structure
- Adds further tests for decision maker
- Upgrades sign transaction function for Ethereum API proxy
- Adds black and bugbear to linters
- Applies public id usage throughout AEA business logic
- Adds guide on how to deploy an AEA on a raspberry pi
- Addresses multiple issues in the protocol generator
- Fixes
aea-config - Adds CLI commands to create wealth and get wealth and address
- Change default author and license
- Adds guide on agent vs AEAs
- Updates docs and improves guides
- Adds support for inactivating skills programmatically
- Makes decision maker run in separate thread
- Multiple additional minor fixes and changes
- Completes tac skills implementation
- Adds default ledger field to agent configuration
- Converts ledger APIs to dictionary fields in agent configuration
- Introduces public ids to CLI and deprecate usage of package names only
- Adds local push and public commands to CLI
- Introduces ledger API abstract class
- Unifies import paths for static and dynamic imports
- Disambiguates import paths by introducing pattern of
packages.author.package_type_pluralized.package_name - Adds agent directory to packages with some samples
- Adds protocol generator and exposes on CLI
- Removes unused configuration fields
- Updates docs to align with recent changes
- Adds additional tests on CLI
- Multiple additional minor fixes and changes
- Moves non-default packages from AEA to packages directory
- Supports get & set on package configurations
- Changes skill configuration resource types from lists to dictionaries
- Adds additional features to decision maker
- Refactors most protocols and improves their API
- Removes multiple unintended side-effects of the CLI
- Improves dependency referencing in configuration files
- Adds push and publish functionality to CLI
- Introduces simple and composite behaviours and applies them in skills
- Adds URI to envelopes
- Adds guide for programmatic assembly of an AEA
- Adds guide on agent-oriented development
- Multiple minor doc updates
- Adds additional tests
- Multiple additional minor fixes and changes
- Removes dependency on OEF SDK's FIPA API
- Replaces dialogue id with dialogue references
- Improves CLI logging and list/search command output
- Introduces multiplexer and removes mailbox
- Adds much improved tac skills
- Adds support for CLI integration with registry
- Increases test coverage to 99%
- Introduces integration tests for skills and examples
- Adds support to run multiple connections from CLI
- Updates the docs and adds UML diagrams
- Multiple additional minor fixes and changes
- Adds envelope serialiser
- Adds support for programmatically initializing an AEA
- Adds some tests for the GUI and other components
- Exposes connection status to skills
- Updates OEF connection to re-establish dropped connections
- Updates the car park agent
- Multiple additional minor fixes and changes
- Adds TCP connection (server and client)
- Fixes some examples and docs
- Refactors crypto modules and adds additional tests
- Multiple additional minor fixes and changes
- Adds Python 3.8 test coverage
- Adds almost complete test coverage on AEA package
- Adds filter concept for message routing
- Adds ledger integrations for Fetch.ai and Ethereum
- Adds car park examples and ledger examples
- Multiple additional minor fixes and changes
- Compatibility fixes for Ubuntu and Windows platforms
- Multiple additional minor fixes and changes
- Stability improvements
- Higher test coverage, including on Python 3.6
- Multiple additional minor fixes and changes
- Multiple bug fixes and improvements to GUI of CLI
- Adds full test coverage on CLI
- Improves docs
- Multiple additional minor fixes and changes
- Adds GUI to interact with CLI
- Adds new connection stub to read from/write to file
- Adds ledger entities (fetchai and Ethereum); creates wallet for ledger entities
- Adds more documentation and fixes old one
- Multiple additional minor fixes and changes
- Adds several new skills
- Extended docs on framework and skills
- Introduces core framework components like decision maker and shared classes
- Multiple additional minor fixes and changes
- Adds scaffolding command to the CLI tool
- Extended docs
- Increased test coverage
- Multiple additional minor fixes and changes
- Adds CLI functionality to add connections
- Multiple additional minor fixes and changes
- Adds Jenkins for CI
- Adds docker develop image
- Parses dependencies of connections/protocols/skills on the fly
- Adds validations of configuration files
- Adds first two working skills and fixes gym examples
- Adds docs
- Multiple additional minor fixes and changes
- Adds AEA CLI tool.
- Adds AEA skills framework.
- Introduces static typing checks across AEA, using
Mypy. - Extends gym example
- Provides examples and fixes.
- Initial release of the package.