8867 commits in all time Dec 23, 2025 13:44 – Mar 23, 2026 13:44 UTC
Merge 2e44a45c00fc44dde03cf9576d0b6bfe55d18183 into b0b54f19889eb1403e98242ba0f77089eaaef5f8
Git Commit 4cb327af Branch pull/111/merge Document 165/5,032 ++ 4,513 --
Merge 6d912355c9fb3713dddc88b461382c6654d08639 into b0b54f19889eb1403e98242ba0f77089eaaef5f8
Git Commit 69a5fd42 Branch pull/111/merge Document 165/5,032 ++ 4,513 --
Merge 2d8b645146c09662f39580c52f2b2aed532ed574 into 3bf1157b95555887deec818841b5654d76849938
Git Commit 7c4f7efe Branch pull/108/merge Document 6/7,397 ++ 4,718 --
yasincaliskan connect
perf(connect): eagerly prefetch and continuously reprime config promises (#188)
Git Commit 7f79ac47 Branch main Document 3/16 ++ 5 --
TruszczynskiA pera-ios
Merge ca0897e9db5b353af3eb2a4aa8d3664d18d34832 into 874abef32aff2e6d66aa9c9d97772ff05bfe8e85
Git Commit 54596515 Branch pull/315/merge Document 3/15 ++ 7 --
TruszczynskiA pera-ios
PERA-3810 - [IOS] - Joint Account - Finding 23 - Bottom Sheet should adjust once transaction has been completed or cancelled
- Updated JointAccountPendingTransactionOverlayRow. Now it will not show spinner when transaction is no longer in progress.
Git Commit ca0897e9 Branch feature/PERA-3810 Document 3/15 ++ 7 --
mitsinsar pera-android
Merge 4e1f861ab7c407711a8b19bbcb3365301621a2b4 into 7b8775192b13d3cc3deea2718968193562345d10
Git Commit eac99c88 Branch pull/527/merge Document 12/101 ++ 54 --
mitsinsar pera-android
PERA-3887 Implement displaying pera fee in asset
Git Commit 4e1f861a Branch pera-3887 Document 9/101 ++ 34 --
mitsinsar pera-android
PERA-3887 Remove exchange fee
Git Commit dd7380c2 Branch pera-3887 Document 3/0 ++ 20 --
Merge 3bfbad261a8654cb38b702fc47e11b7f7d7a69f5 into b0b54f19889eb1403e98242ba0f77089eaaef5f8
Git Commit 569eec57 Branch pull/111/merge Document 164/5,020 ++ 4,500 --
feat: migrate from poetry to uv - support upcoming uv-first algokit version (#112)
* build: migrate root project from Poetry to uv

- Convert pyproject.toml from Poetry to uv/hatchling build system
- Replace poetry.lock with uv.lock
- Remove poetry.toml configuration
- Add [tool.uv] and [tool.hatch.metadata] sections

* feat: migrate template to uv-only, drop Poetry support

- Rewrite pyproject.toml.jinja from Poetry to uv/hatchling format
- Cap requires-python to >=3.12,<3.14 (coincurve lacks 3.14 wheels)
- Replace all 'poetry run' with 'uv run' in .algokit.toml.jinja
- Bump min_version to v2.11.0 (old CLIs warn on version mismatch)
- Simplify audit description (remove poetry-plugin-export reference)
- Update CI/CD templates: astral-sh/setup-uv@v5, uv tool install algokit
- Update pre-commit hooks: poetry run -> uv run
- Update README.md.jinja: uv install guide, version references
- Delete template_content/poetry.toml

* test: switch PY_PKG_MGR_ARGS to uv in test configuration

- Update PY_PKG_MGR_ARGS from poetry to uv in both test files
- Tests now configure generated projects to use uv as package manager

* docs: update root README to reference uv instead of Poetry

* chore: regenerate all 6 example directories for uv migration

Auto-regenerated by running test_templates.py and test_generators.py
against the updated template with algokit-cli decoupling branch.

Changes across all examples:
- .algokit.toml: min_version v2.11.0, poetry run -> uv run
- pyproject.toml: Poetry format -> uv/hatchling with [project],
  [dependency-groups], [tool.hatch.metadata], [tool.uv]
- README.md: Poetry -> uv install guide and tool references
- poetry.toml: deleted
- uv.lock: added (replaces Poetry lock)

Production examples additionally:
- .pre-commit-config.yaml: poetry run -> uv run
- CI/CD workflows: astral-sh/setup-uv@v5, uv tool install algokit

* fix: resolve TypeScript generator test failures

- Add npm install step in check_codebase for TypeScript deployment
  projects (package.json present) to install @algorandfoundation/
  algokit-client-generator before build
- Patch jest.config.ts at test time to handle ESM node_modules:
  extend transform to cover .js files and add transformIgnorePatterns
  for @noble/hashes and @algorandfoundation packages (upstream
  generator template produces config without ESM support)

All 6 tests now pass: 2 template + 4 generator (python+typescript × starter+production)

* feat!: remove TypeScript deployer option from template

The Python template no longer offers TypeScript as a deployment language.
All TS deployer files, TS jest test scaffolding, generated TS examples,
and the deployment_language/use_typescript_jest copier questions have been
removed. The template now generates Python-only deployer code.
Git Commit 3bfbad26 Branch prep/beta-release Document 158/4,988 ++ 4,490 --
TruszczynskiA pera-ios
Merge 8affffdb5b6cab31892740804c40bf952949867a into 654ac173084ee7663d46cf1821d89684994b05cb
Git Commit a3635573 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 8affffdb Branch feature/PERA-3709 Document 1/10 ++ 2 --
achidlow puya
feat: extend GVN to eliminate redundant pure subroutine calls
InvokeSubroutine with target.pure and identical argument VNs now
receives the same value number, eliminating duplicate calls.
Catches redundant _puya_lib.bytes_.is_substring calls across
three test contracts.

Net impact: -72 bytes / -51 ops at O1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit f2c216d2 Branch gvn Document 79/1,236 ++ 2,948 --
achidlow puya
feat: extend GVN to handle multi-target assignments
Operations like addw and decode_bytes return multiple values. GVN now
numbers these by storing all target registers in the expression table,
enabling elimination of duplicate multi-return ops.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit 8f87164a Branch gvn Document 168/11,234 ++ 11,820 --
achidlow puya
feat: extend GVN to number pure zero-arg intrinsics
Remove the `and args` guard so GVN numbers immediate-only pure ops
like txn, txna, arg, etc. These are deterministic within a transaction
and frequently duplicated after inlining.

Net impact: -1177 bytes / -773 ops at O1 across the test suite.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit cce6d066 Branch gvn Document 300/129,596 ++ 168,141 --
achidlow puya
refactor: simplify GVN internals
- Remove unused get_register_vn method
- Replace save/restore full-dict-copy scoping with delta-based
  push_scope/pop_scope (tracks only keys added per scope)
- Extract _try_replace helper to unify replacement logic (4 call sites)
- Extract _index_vns helper for shared ExtractValue/ReplaceValue pattern
- Add _ScopeDelta attrs class and _Snapshot TypeAlias to eliminate
  repeated tuple type annotations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit bcb3434a Branch gvn Document 1/95 ++ 93 --
achidlow puya
chore: compile all
Git Commit f4f90506 Branch gvn Document 300/39,550 ++ 49,471 --
achidlow puya
disable CSE but retain redundant assert removal
Git Commit b909538f Branch gvn Document 2/68 ++ 66 --
achidlow puya
fix: exclude slot-backed ArrayLength from GVN
ArrayLength can read through slot indirection when its base has a
SlotType. The underlying value changes across stores, so these are
not pure functions of their operand VNs. Only number ArrayLength
when the base is a stack value.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit b8a8c6c3 Branch gvn Document 104/15,192 ++ 11,177 --
achidlow puya
chore: update from_awst snapshots for GVN
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git Commit a34f1152 Branch gvn Document 1/9 ++ 9 --