Production promotion — prod-20260822-083432
What's Changed
- chore: sync main back into dev after promotion #1664 by @d-hinders in #1665
- fix(release): make the lockfile bump deterministic and guarded (#1663) by @AntonioSaaranen in #1668
- docs(auth): accept the signup enumeration disclosure, with the reasoning written down (#1654) by @AntonioSaaranen in #1671
- fix(x402): deploy the counterfactual delegate account on erc7710 authorize (#1667) by @d-hinders in #1675
- docs+hooks: one canonical home for releases, and an unconditional reviewer rule by @d-hinders in #1666
- feat(auth): per-client rate limits on signup/login, armed by a trusted proxy (#1670) by @AntonioSaaranen in #1676
- fix(config): make the trust-proxy state observable, and its parsing refuse to guess (#1670) by @AntonioSaaranen in #1678
- feat(connect): detection-first runtime resolution — the setup command drops --runtime (#1672) by @d-hinders in #1677
- feat(rate-limit): share the counters across replicas (#1680) by @AntonioSaaranen in #1683
- fix(hybrid): serialize concurrent deploys of the same counterfactual account (#1673) by @AntonioSaaranen in #1687
- feat(connect): name-first runtime picker — pick your app by name; modality is the row's property (#1682) by @d-hinders in #1689
- test(rate-limit): prove the plugin → store → Postgres wiring end to end (#1680) by @AntonioSaaranen in #1691
- test(qa): cover the fresh agent whose first-ever payment is erc7710 (#1674) by @AntonioSaaranen in #1703
- Passkey terminology: "Passkey · added {date}" replaces "Face ID / Touch ID" credential names (#1679) by @d-hinders in #1692
- fix(catalog): label the stranded-funds test fixture so agents know it will not settle (#1669) by @AntonioSaaranen in #1718
- docs(scaling): record the accepted cost of the deploy lock's pooled connection (#1686) by @d-hinders in #1723
- feat(signer): refuse to sign another agent's quote — payer identity in the x402 expected context (#1690) by @AntonioSaaranen in #1724
- feat(connect): a superseded agent with a live key fails the doctor, and setup names it (#1688) by @AntonioSaaranen in #1728
- feat(connect): tombstone retired agent directories and restart-every-host guidance (#1681) by @AntonioSaaranen in #1729
- feat(connect): named MCP server pairs in every runtime config writer (#1695) by @AntonioSaaranen in #1730
- docs(ops): a drained relayer blocks grants AND the first erc7710 payment of an undeployed account (#1721) by @AntonioSaaranen in #1731
- test(screenshot): capture the Backup & recovery card unobstructed (#1693) by @d-hinders in #1727
- fix(connect): visible step connectors, one gate name, and a promoted restart (#1684) by @d-hinders in #1733
- feat(connect): --name wiring slug end to end (#1696) by @AntonioSaaranen in #1732
- feat(api): add settlementScheme to the transaction wire contract (#1705) by @AntonioSaaranen in #1734
- fix(rails): bound the hybrid deploy's confirmation wait and hand expiry to the bump worker (#1722) by @AntonioSaaranen in #1737
- docs(casp): cover the delegation rail, approvals and outbound machinery so money-path changes are actually gated (#1736) by @AntonioSaaranen in #1744
- fix(ui): give Button sm/md a 44px tap target without moving any pixels by @AntonioSaaranen in #1740
- fix(passport): a wait timeout leaves the anchor reconcilable instead of failed (#1735) by @AntonioSaaranen in #1751
- feat(connect): per-agent doctor inventory and a hosted-vs-local identity check (#1697) by @AntonioSaaranen in #1752
- fix(frontend): capture the whole page for rendered evidence, and prove it is not blank (#1738) by @d-hinders in #1748
- fix(frontend): make var()-backed colour tokens alpha-capable and restore the brand focus ring (#1708) by @AntonioSaaranen in #1747
- fix(passport): bound the revoke's confirmation wait, hand expiry to the bump worker, and sweep the repo for the same defect (#1742) by @AntonioSaaranen in #1759
- fix(sdk): bound the delegate sweep's confirmation waits and report an expiry instead of hanging the caller (#1756) by @AntonioSaaranen in #1764
- fix(passport): a re-mint requires positive evidence the prior attest is dead (#1745) by @AntonioSaaranen in #1765
- fix(frontend): make the mobile navigation toggle reachable, on a named z-index scale (#1749) by @AntonioSaaranen in #1769
- ci(frontend): gate every PR on a real mobile viewport (#1768) by @AntonioSaaranen in #1770
- test(frontend): make the horizontal-overflow guard able to fail inside the app shell (#1771) by @AntonioSaaranen in #1776
- fix(frontend): stop /transactions clipping 106px of its table on mobile (#1772) by @AntonioSaaranen in #1775
- fix(frontend): give the mobile sidebar toggle a 44px tap target without moving a pixel (#1766) by @AntonioSaaranen in #1778
- feat(connect): resolve the runtime itself — agent self-report, installed-client prompt, real failure vocabulary (#1719) by @d-hinders in #1780
- test(frontend): anchor the mobile-shell guards against the viewport (#1779) by @AntonioSaaranen in #1781
- fix(backend): a no-database test run fails, and says what it skipped after the summary (#1763) by @AntonioSaaranen in #1782
- chore(release): bump all published packages to 0.1.29-alpha.0 by @d-hinders in #1783
- Promote dev → main: release 0.1.29-alpha.0 + 63 commits by @d-hinders in #1784
Full Changelog: prod-20260821-070302...prod-20260822-083432