Repository navigation
chore: upgrade project dependencies and toolchains - #601
Conversation
|
Tick the box to add this pull request to the merge queue (same as
|
There was a problem hiding this comment.
ℹ️ Minor suggestions only — nothing blocking. The load-bearing compatibility claims (SQLite native delivery after the
sqlite3_flutter_libsremoval,flutter_secure_storage10 → 11, and the Linux keyring store swap) were independently verified against primary sources and all hold.
Reviewed changes
Reviewed the complete 69-file diff at b7486f0 (5 commits).
- Toolchain and bridge pins — Rust 1.96 → 1.98.0 synchronized across both
rust-toolchain.tomlfiles,rust/cargokit.yaml, the sccache action,cloud.yml,setup_windows.ps1and the cloud Dockerfile; flutter_rust_bridge 2.12.0 → 2.13.0 with regenerated committed bindings (content hash unchanged at1213617933, so the bridge API is identical). - Rust crypto stack —
sha20.11,hmac0.13 (KeyInit),hkdf0.13,chacha20poly13050.11 (&Nonce::from),x25519-dalek3,rand0.10 viaUnwrapErr(SysRng), which preserves OS-backed randomness and the previous panic-on-hard-RNG-failure behavior. Known-answer vectors and the cross-language relay suite are unchanged and passing; the SHA-256 fingerprint helpers moved tohex::encode, which emits the same lowercase hex as the old{:x}formatting. - Linux keyring swap —
keyringv3 →keyring-core+dbus-secret-service-keyring-storeon Linux only, through a sharednative_credential_entryadapter that keeps the service/user mapping and per-attempt construction; macOS and Windows keep the certified v3 backends. Source comparison confirms v3-written entries stay readable; one behavioral delta noted inline. - Cloud —
reqwest0.13 with the newly separateformfeature,sqlx0.9 feature renames (runtime-tokio+tls-rustls-aws-lc-rs),tower-http0.7,base640.23,ed25519-dalek3, andrand0.10 for refresh tokens, enrollment codes and secrets. No protocol or auth-flow changes. - Dart upgrades — routine bumps across desktop, mobile, shared packages and the packager.
sqlite3_flutter_libsremoval is correct: upstream 0.6.0+eol is a documented no-op andsqlite33.x build hooks bundle native SQLite on all three desktop platforms with no extra configuration on Dart 3.13.flutter_secure_storage11.0.0 is safe for this codebase: every call site uses default options, v11 only removes deprecated algorithms that v10 already migrated, and thecompileSdk = 37pin matches upstream's requirement. The FirebasePlatformExceptiontolerance anddeniedPermanentlymapping come with channel-level regression tests that exercise the new branches. - Validation record — the new
docs/dependency-upgrade-2026-08/report, inventories and hosted-run evidence are thorough and honest about intermittents and scope exclusions; the temporary validation workflow is confirmed absent from.github/workflows/.
ℹ️ Nitpicks
.agents/setup:9still pinsRUST_TOOLCHAIN="1.96"— the one pin the upgrade report's synchronization list misses (it enumerates toolchain files, Cargokit configs, CI, the Windows setup script and the cloud image). The same value feedsRUSTUP_TOOLCHAIN=1.96into the portable_pty prebuilt build at.agents/setup:135. Repo builds override throughrust/rust-toolchain.toml, so the fallout is limited to that provisioning path, but updating it would make the report's "synchronized" claim true.
openai-compatible/glm-5.3-flash | 𝕏
There was a problem hiding this comment.
✅ No new issues found. The new commit cleanly addresses both findings from the prior review, and the load-bearing crate-contract claims behind the keyring fix were verified against primary sources.
Reviewed changes
Reviewed the delta since the prior review at b7486f0: one commit (d40be281) touching .agents/setup, rust/alera-cli/src/native_credential_entry.rs, and the upgrade report.
- Rust provisioning pin synchronized —
.agents/setupnow pinsRUST_TOOLCHAIN="1.98.0", completing the synchronization claim across all seven pin sites plus the cloud Dockerfile. The value also feeds the portable_pty prebuilt build viaRUSTUP_TOOLCHAINat.agents/setup:135; the separatePORTABLE_PTY_RUST_TOOLCHAIN="1.92.0"remains unchanged as documented. - Linux keyring scoping restored —
native_credential_entrynow builds the Secret Service entry withtarget=default, restoring v3-equivalent matching. Verified against thedbus-secret-service-keyring-store1.0.1 source: the modifier is written as an item attribute on create and included in the search backing every get/set/delete (search_attributes→get_unique_item), so a same-service/user item with a different target no longer producesError::Ambiguous. This directly fixes the behavioral delta flagged in the prior review thread. - Old/new interoperability holds — verified against the keyring 3.6.3 source: v3 wrote entries with a
target="default"attribute and searched on target + service + username, so existing Alera entries match the new filter and new entries stay readable after a rollback. - Regression test added —
default_target_ignores_unrelated_credentialsexercises read/update/delete against an item with identical service/username buttarget=unrelated, and would fail withError::Ambiguousbefore the fix. It compiles in the Linux CI workspace run and is correctly gated (#[ignore]plusALERA_KEYRING_TEST_DISPOSABLE=1) since it needs a real unlocked keyring; the isolated-session run procedure is documented in the upgrade report. - Upgrade report updated — documents both fixes, the completed pin synchronization, and the disposable-session evidence for the credential probes.
One informational note, no action requested: keyring 3.6.3 also had a legacy fallback that re-searched the default collection without the target filter when the scoped search found nothing, recovering items carrying no target attribute. The new store has no equivalent, so such an item reads as NoEntry and the next sign-in creates a fresh entry, degrading gracefully through the existing 0600-file fallback. Since Alera introduced keyring at 3.6.3 (which always wrote the attribute), no Alera-written entry can hit this; only third-party items could, and the validation docs' interoperability probes don't cover that corner.
openai-compatible/glm-5.3-flash | 𝕏

Summary
Validation
Full results, skips, security advisories and deferred dependency migrations: validation report. The normal build, analysis and test checks passed for commit
b7486f09, includingpr-readyandcloud-ready. Pullfrog completed with no blocking findings. Follow-up commitd40be281also synchronizes the agent setup Rust pin and preserves the Linux v3target=defaultcredential filter; its new isolated duplicate-entry regression fails before the fix and passes after it, and old/new credential interoperability, format and strict Clippy pass. The final commit is going through the hosted checks again.No visual design changes. Compatibility review retains the old macOS/Windows keyring backends where migration could not be certified. The security audit found only the pre-existing
paste1.0.15 maintenance advisory andrsa0.9.10 timing advisory, with no patched stable releases; their scope is documented in the report.