Changelog
- 266ae1e Add dz-ledger-program-review skill for on-chain program reviews (#3991)
- 8404ae2 FPGA Agent RFC (#2757)
- 88cd339 RFC25: Edge Filtering for Multicast Traffic (#3562)
- 337b81e RFC: FPGA Routing Architecture (#2519)
- 49be287 build(deps): bump ctor from 0.13.1 to 1.0.8 (#3889)
- 563c6f1 build(deps): bump the rust-minor-patch group across 3 directories with 15 updates (#3992)
- acee68c ci(release.docker.client): auto-publish mainnet-beta base + notify edge-connect (#3990)
- 9945a22 ci: add testnet release orchestrator (#3879)
- 3c17fbd ci: build testnet release programs with agave v3.0.4 and platform-tools v1.54 (#4039)
- 66f7811 ci: fix dry-run job graph, embed deploy commands in DEPLOY.md, correct runbook (#4040)
- 96d725a ci: skip e2e for rfcs image changes in docs-only PRs (#4006)
- 392d619 ci: thread testnet release Slack posts under a per-run parent in #bots (#4036)
- 5925170 ci: use existing testnet environment for release orchestrator gates (#4034)
- 99ef120 cli: block device delete while enabled in shred-subscription (#3989)
- fec0b1e client/doublezero connect: surface underlying CreateUser error (#3988)
- 29f8501 controller: write config agent version info to ClickHouse (#3578)
- 1b60fff daemon-cli: move connect verb into daemon-cli crate (#4010)
- 352bd59 daemon-cli: move disconnect verb into daemon-cli crate (#4008)
- 24a8862 daemon-cli: move enable/disable verbs into doublezero-daemon-cli crate (#3838)
- 8dd108d daemon-cli: move latency and routes verbs into daemon-cli crate (#3995)
- 354190e daemon-cli: move multicast transport verbs into daemon-cli crate (#4037)
- c4be890 daemon-cli: move status verb and shared output helpers into crate (#3839)
- 254e521 daemon-cli: scaffold doublezero-daemon-cli crate with DaemonClient trait and types (#3828)
- 2fae6fa deps: bump mockall to 0.15.0 (#3993)
- d282439 deps: migrate rust workspace to solana 3.0 (#3830)
- 36542b0 e2e/qa: fix settlement ack-wait short-circuiting on stale seat read (#3972)
- 9c19549 e2e/qa: run testnet shred-subscription settlement on solana devnet (#3965)
- 1cc421c e2e: add feed CRUD lifecycle test (#3994)
- 966ccb8 e2e: scheduled flake gap-filler (default-off) (#3968)
- 3be82e9 e2e: tolerate multiple tunnel statuses in all-devices unicast QA test (#3976)
- 27e0eb3 internet-latency-collector: bound ledger RPC timeout and add per-attempt deadline (#3973)
- a3d0a68 permission: restrict FOUNDATION grant and add pre-activation audit (#3975)
- 2912ae5 sdk/shreds: bound RPC client request timeout and connection pool (#3974)
- 11f1a6d sdk: Feed and EdgeSeat read support for Go, Python, and TypeScript (#3956)
- 8be32ff sdk: don't cache RPC failures as absent permission account (#4029)
- 8939270 sdk: invalidate permission-account cache on create/delete (#4002)
- 88a9029 sdk: recover permission cache from cross-process create/delete (#4031)
- 567a45b sdk: rename permission flag bit 6 from reservation to feed authority (#3985)
- d9162f6 sentinel: enable reqwest json feature (#3986)
- f584321 serviceability: EdgeSeat feed-seat data model and SetAccessPassFeeds (#3954)
- 48a02fd serviceability: add Feed catalog account and CRUD (#3953)
- 8166b46 serviceability: authorize contributor instructions via Permission accounts (#3978)
- 1eed644 serviceability: authorize device and interface instructions via Permission accounts (#3980)
- 05a7e66 serviceability: authorize governance instructions via Permission accounts (#3977)
- 53f25a3 serviceability: authorize link instructions via Permission accounts (#3981)
- bc443b0 serviceability: authorize location and exchange instructions via Permission accounts (#3979)
- 223382a serviceability: authorize multicast instructions via Permission accounts (#3982)
- 9ee735a serviceability: authorize tenant instructions via Permission accounts (#3983)
- 1afe607 serviceability: authorize user instructions via Permission accounts (#3984)
- 0e488f6 serviceability: enforce EdgeSeat feed metro gate at connect (#3955)
- 0a93a25 serviceability: fix device update account parsing vs trailing permission (#4001)
- b2978cd serviceability: guard permission suspend/update against self-lockout (#4000)
- 8b795a3 serviceability: per-feed billing state on the EdgeSeat FeedSeat (#4030)
- 7f86733 serviceability: verify account type in closeaccount resource extension (#4028)
- acf3d73 smartcontract: enforce Permission flags on multicast subscribe and create-user handlers (#3966)