8819 commits in all time Dec 24, 2025 20:34 – Mar 24, 2026 20:34 UTC
mrcointreau puya-ts
Merge 2d567b2fb8ea9f5db2f2e3240d0bc0c9ea2674f9 into c126c0e7cdb69c245338f207e10ddcbbc9ff2b35
Git Commit 6f7ab5f5 Branch pull/341/merge Document No file changes
mrcointreau puya-ts
chore: add example compilation outputs and test:examples script
Git Commit 2d567b2f Branch updated-examples Document 300/216,178 ++ 3 --
algorandskiy go-algorand
Merge 7432012fb8cf7a3e904f629dd76f2d1918553d59 into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
Git Commit 7e31340c Branch pull/6584/merge Document 1/106 ++ 53 --
onetechnical go-algorand
Merge 029447df17196c41992a7dbfc18dff83b43483b0 into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
Git Commit 6ed39f79 Branch pull/6567/merge Document 12/1,301 ++ 3 --
chore: add independent schema validation script for api client models (#263)
* feat: adds runtime validation using Pydantic schemas

Implements runtime validation of API client responses using Pydantic schemas.
This provides an additional layer of sanity checks on top of generated API clients.

The schemas are generated from OpenAPI specifications using a new script.
Adds a new `poe` task to easily regenerate schemas.
Adds tests to validate the generated schemas.

Pydantic is added as a development dependency.

Validation schemas are optional, requiring `pydantic>=2.0` to be installed.

* chore: generate the validation schemas

* chore: move schemas to tests folder to avoid polluting prod packages exposed to end users

* fix: unblock check-python after alpha merge

* fix: enforce required fields, fix docs, restore targeted lint rules

- Generator: required fields no longer get default=None (Pydantic
  actually validates them now)
- Generator: only emit `from typing import Any` when used
- Generator: add timeout and error handling to fetch_spec
- Docs: fix stale import paths in README.md and VALIDATION.md after
  schema move to tests/fixtures/
- Lint: revert global PLC0415/FBT001/FBT002/PLW1641 suppression,
  restore targeted noqa comments on specific lines
- Tests: provide all required fields, add test_missing_required_fields
- Snapshots: update mock server snapshots to match current HAR data

* feat: add schema validation to polytests, aligned with TS approach

Mirrors the TypeScript variant's pattern of calling Schema.parse(result)
in every polytest to validate real API responses against OAS-generated
schemas, closing the gap between spec and implementation.

Schema generator improvements:
- Use IdentifierSanitizer-compatible _to_snake() for field naming
  (handles camelCase, Python builtins, x-algokit-field-rename)
- Handle string/enum types as RootModel[str]
- Handle byte arrays (uint8[]) as RootModel[str] (base64)
- Handle opaque empty schemas as RootModel[str]

Polytest changes:
- Added validate_with_schema() to 55 polytests across algod, indexer,
  and kmd clients
- Serializer now handles Python Enum values correctly
- Updated snapshots for enum serialization changes
- 1 known OAS spec mismatch documented (apps-local-states required
  but API returns null)

* chore: deduplicate RootModel templates, fix missing newlines at EOF

- Refactor generate_schema() to extract _root_model() and
  _is_byte_array() helpers, eliminating 3 copies of identical
  RootModel[str] template
- Fix missing newline at EOF in 6 docs/config files (pre-commit)

* fix: update snapshots for enum serialization (repr → value)

Snapshots now use enum .value ("noop") instead of repr
("<OnCompletion.NOOP: 'noop'>") to match the corrected
_dataclass_to_dict serializer. Only enum formatting changed —
no mock server data diffs.

* refactor: consolidate 211 schema files into 3 modules

Replace per-class file structure (algod/82 files + indexer/72 files +
kmd/54 files + 3 __init__.py) with one module per client (algod.py,
indexer.py, kmd.py).

Benefits:
- 211 files → 3 files
- Eliminates __init__.py boilerplate (imports, model_rebuild, __all__)
- Eliminates forward reference strings — topological sort enables
  direct class references
- from __future__ import annotations handles remaining edge cases
- No ruff per-file overrides needed (was 9 suppressed rules)
- Import paths unchanged: `from tests.fixtures.schemas.algod import X`

Generator improvements:
- Topological sort of schemas by dependency order
- PascalCase class names (ed25519PublicKey → Ed25519PublicKey)
- Docstring escaping and truncation for ruff compliance
- Cleaner module assembly — shared imports at top
Git Commit 7f660b75 Branch alpha Document 85/3,172 ++ 181 --
mrcointreau puya
Merge ef0e3c28d2c42ed183d7d04d2b8a91879ffc95d5 into 849e87ab2dbe46afc5cd7f06cbdb2dc8247a70f7
Git Commit 676a8ed7 Branch pull/670/merge Document 70/13,389 ++ 5 --
giuliop go-algorand
Merge 74bc65a4f7ec45e141a96c4a7b155f69e43c9f6f into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
Git Commit e583e0b6 Branch pull/6592/merge Document 10/560 ++ 207 --
github go-algorand
add Go Benchmark (go) benchmark result for 35fbfd45094f0af0dfcd38755360acb1c7ac0747
Git Commit 71295203 Branch gh-pages Document 1/445 ++ 1 --
github go-algorand
add Go Benchmark (go) benchmark result for ace361f345406f9349f593d892002f9ca2badb97
Git Commit e488b618 Branch gh-pages Document 1/445 ++ 1 --
algorandskiy go-algorand
Merge 1ceabbca9cafb7ffdd3271b35337a34623681192 into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
Git Commit daf95500 Branch pull/6581/merge Document 2/51 ++ 37 --
algorandskiy go-algorand
Merge 11e5f64c137a98310aae1c29efaf1de965a043d6 into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
Git Commit ed931013 Branch pull/6589/merge Document 2/10 ++ 0 --
algorandskiy go-algorand
network: fix double logging with elevated level (#6583)
Git Commit 35fbfd45 Branch master Document 3/88 ++ 33 --
algorandskiy go-algorand
tests: fix TestDiscardUnrequestedBlockResponse race (#6591)
Git Commit ace361f3 Branch master Document 1/1 ++ 0 --
renovate[bot] use-wallet
Merge 9175f99ccd8f280c66f56624ccb605d2435b5a41 into 5073ca134b7c4c5721fcfbe976d5c364a5cc777a
Git Commit bbf208e3 Branch pull/421/merge Document 14/1,395 ++ 1,109 --
renovate[bot] use-wallet
chore(deps): update non-major dependencies
Git Commit 9175f99c Branch renovate/non-major-dependencies Document 14/1,395 ++ 1,109 --
mitsinsar pera-android
PERA-2983 | Log notification type on click (#526)
Git Commit d965927e Branch dev Document 13/120 ++ 18 --
algorandskiy go-algorand
Merge 72481725ee89da575ff025e3f51c3904cf0cd15a into ba9a28ae3f474997c78b6da0ee28f270f2d7b53f
Git Commit 5143d7cf Branch pull/6583/merge Document 3/88 ++ 33 --
TruszczynskiA pera-ios
Updated app version to v6.19.0
Git Commit 4f332ec7 Branch main Document 1/15 ++ 15 --
TruszczynskiA pera-ios
Merge ca0897e9db5b353af3eb2a4aa8d3664d18d34832 into df51dd07e5d83638d4605a1dd5e9d63838d7dcfb
Git Commit d60fa121 Branch pull/315/merge Document 3/15 ++ 7 --
TruszczynskiA pera-ios
Merge 663678825137303e334617bdb27882052a252d1c into b88fb1005db40e8a1b27bad7684ba7fc96b0f047
Git Commit abfcef77 Branch pull/314/merge Document 1/10 ++ 2 --
TruszczynskiA pera-ios
PERA-3709 - Joint Account - Unkey rekeyed account
- Fixed issue with unkeying joint account. Now JA unkey transaction will be sign with correct owner accounts.
Git Commit 66367882 Branch feature/PERA-3709 Document 1/10 ++ 2 --
TruszczynskiA pera-ios
Joint Account - Ledger Account as co-owner
- Added support for ledger devices for joint accounts.
Git Commit b3675778 Branch feature/PERA-3709 Document 20/782 ++ 498 --
TruszczynskiA pera-ios
Merge b88fb1005db40e8a1b27bad7684ba7fc96b0f047 into df51dd07e5d83638d4605a1dd5e9d63838d7dcfb
Git Commit bd73558e Branch pull/313/merge Document 20/782 ++ 498 --