Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
3dd6b8d
chore(deps): bump axum from 0.7.9 to 0.8.9
dependabot[bot] Jul 9, 2026
4896393
chore(deps): bump tower-http from 0.6.11 to 0.7.0
dependabot[bot] Jul 9, 2026
019427f
Merge remote-tracking branch 'origin/dependabot/cargo/tower-http-0.7.…
ravituringworks Jul 9, 2026
23939cc
Migrate axum 0.8 route syntax + WS message types
ravituringworks Jul 9, 2026
0a386a8
update branch (#157)
ravituringworks Jul 12, 2026
f8bf955
chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /vibeui
dependabot[bot] Jul 13, 2026
6a5ab2a
chore(deps): bump org.jetbrains.kotlin.android in /vibemobile/android
dependabot[bot] Aug 8, 2026
3cc9570
chore(deps): bump actions/setup-python from 6 to 7
dependabot[bot] Aug 9, 2026
9372290
chore(deps): bump actions/setup-java from 5.3.0 to 5.7.0
dependabot[bot] Aug 9, 2026
781772e
chore(deps): bump actions/setup-node from 6.4.0 to 7.0.0
dependabot[bot] Aug 9, 2026
fc48e08
chore(deps-dev): bump jsdom from 29.1.1 to 30.0.1 in /vibecoder
dependabot[bot] Aug 9, 2026
fbd3b9e
chore(deps): bump EmbarkStudios/cargo-deny-action from 2.0.20 to 2.1.1
dependabot[bot] Aug 9, 2026
1017672
chore(deps): bump tree-sitter from 0.25.10 to 0.26.11
dependabot[bot] Aug 9, 2026
b3716c0
chore(deps): bump sysinfo from 0.36.1 to 0.39.6
dependabot[bot] Aug 9, 2026
0a332d8
chore(deps): bump tokio-tungstenite from 0.28.0 to 0.29.0
dependabot[bot] Aug 9, 2026
5378600
chore(deps): bump rustyline from 14.0.0 to 17.0.2
dependabot[bot] Aug 9, 2026
32f573d
chore(deps-dev): bump typescript from 6.0.3 to 7.0.2 in /vibecoder
dependabot[bot] Aug 10, 2026
5599a80
chore(deps): bump chacha20poly1305 from 0.10.1 to 0.11.0
dependabot[bot] Aug 10, 2026
8ecc68c
chore(deps): bump gradle-wrapper in /vibewatch/VibeCodyWear
dependabot[bot] Aug 10, 2026
069f24c
chore(deps): bump flutter_secure_storage in /vibemobile
dependabot[bot] Aug 10, 2026
c1ddbca
chore(deps): bump the vibecoder-minor group across 1 directory with 5…
dependabot[bot] Aug 10, 2026
082f934
chore(deps): bump gradle-wrapper in /jetbrains-plugin
dependabot[bot] Aug 10, 2026
0eb4b96
chore(deps): bump gradle-wrapper in /vibemobile/android
dependabot[bot] Aug 10, 2026
12d3f71
chore(deps-dev): bump vite in /vibeaichat in the vibeaichat-minor group
dependabot[bot] Aug 10, 2026
95c2c5a
chore(deps): bump the vibedesk-minor group across 1 directory with 2 …
dependabot[bot] Aug 10, 2026
55550dd
fix(release): `shell: bash` — the conditional export block broke Windows
ravituringworks Aug 10, 2026
4a5f1e0
Use ring for RS256 JWT signing; add tests
ravituringworks Aug 10, 2026
912fff4
build(deps): bump similar from 2.7.0 to 3.1.2
dependabot[bot] Aug 10, 2026
c929575
build(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /vibeaichat
dependabot[bot] Aug 10, 2026
fe9a7e9
ci(release): make Apple signing verifiable, and stop shipping ad-hoc …
ravituringworks Aug 10, 2026
2f9a2f3
fix(skills): every installed build shipped an empty skill catalogue
ravituringworks Aug 10, 2026
32643ff
feat(bugbot): committable fixes, full-diff coverage, and a real --bug…
ravituringworks Aug 10, 2026
a9def8a
feat(daemon): wire two modules that had been counted as shipped
ravituringworks Aug 10, 2026
c7a1c61
fix(bugbot): a failed model call is not coverage
ravituringworks Aug 10, 2026
7ac77cf
feat(skills): import 433 Jobs-To-Be-Done skills — catalogue goes 710 …
ravituringworks Aug 10, 2026
44c313e
ci(security): finish the audit.toml migration — one suppression list,…
ravituringworks Aug 10, 2026
4757947
docs(bugbot): document that a failed model call is not coverage
ravituringworks Aug 10, 2026
5dd9f99
ci(release): audit and attest the lockfile the release actually builds
ravituringworks Aug 10, 2026
9bd1a35
test(skills): assert reachability, not catalogue size
ravituringworks Aug 11, 2026
20d8943
perf(skills): cache the built-in catalogue instead of re-reading it p…
ravituringworks Aug 11, 2026
9969a7b
build(deps): bump actions/checkout from 7.0.0 to 7.0.1
dependabot[bot] Aug 11, 2026
5e690c3
build(deps): bump hmac from 0.12.1 to 0.13.0
dependabot[bot] Aug 11, 2026
ab38b19
build(deps): bump p256 from 0.13.2 to 0.14.0
dependabot[bot] Aug 11, 2026
406c45b
build(deps): bump base64 from 0.22.1 to 0.23.1
dependabot[bot] Aug 11, 2026
0f16816
build(deps): bump zip from 2.4.2 to 8.6.0
dependabot[bot] Aug 11, 2026
2c64fd6
Sync provider lists and add 'poolside' provider
ravituringworks Aug 11, 2026
82bbd6a
Backfill skill frontmatter and wire ACP stdio mode
ravituringworks Aug 11, 2026
f3e8128
Merge remote-tracking branch 'origin/main' into feat/competitive-pari…
ravituringworks Aug 11, 2026
892b9f0
build(deps-dev): bump typescript in /vscode-extension
dependabot[bot] Aug 11, 2026
b7e8bdf
Merge remote-tracking branch 'origin/main' into feat/competitive-pari…
ravituringworks Aug 11, 2026
fd4b548
Merge remote-tracking branch 'origin/dependabot/github_actions/action…
ravituringworks Aug 11, 2026
987d843
Merge remote-tracking branch 'origin/dependabot/github_actions/action…
ravituringworks Aug 11, 2026
1a9ad69
Merge remote-tracking branch 'origin/dependabot/github_actions/action…
ravituringworks Aug 11, 2026
1e5732c
Merge remote-tracking branch 'origin/dependabot/github_actions/action…
ravituringworks Aug 11, 2026
0ffbebc
Merge remote-tracking branch 'origin/dependabot/github_actions/Embark…
ravituringworks Aug 11, 2026
8ae35a2
Merge remote-tracking branch 'origin/dependabot/gradle/jetbrains-plug…
ravituringworks Aug 11, 2026
beaa602
Merge remote-tracking branch 'origin/dependabot/gradle/vibemobile/and…
ravituringworks Aug 11, 2026
3ab693e
Merge remote-tracking branch 'origin/dependabot/gradle/vibemobile/and…
ravituringworks Aug 11, 2026
e83b211
Merge remote-tracking branch 'origin/dependabot/gradle/vibewatch/Vibe…
ravituringworks Aug 11, 2026
21c5296
Merge remote-tracking branch 'origin/dependabot/pub/vibemobile/flutte…
ravituringworks Aug 11, 2026
1960de1
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vscode-e…
ravituringworks Aug 11, 2026
0ac3578
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vibeaich…
ravituringworks Aug 11, 2026
f20b318
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vibeaich…
ravituringworks Aug 11, 2026
a7865c4
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vibecode…
ravituringworks Aug 11, 2026
0fbbad1
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vibecode…
ravituringworks Aug 11, 2026
d29a515
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vibecode…
ravituringworks Aug 11, 2026
70427ad
Add explicit-trigger inline completion (ghost text)
ravituringworks Aug 11, 2026
90e141a
fix(deps): TypeScript 7 cannot resolve against typescript-eslint
ravituringworks Aug 11, 2026
524b7ab
fix(deps): same TypeScript 7 / typescript-eslint clash in vscode-exte…
ravituringworks Aug 11, 2026
7d38557
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/vibedesk…
ravituringworks Aug 11, 2026
1e74974
Merge remote-tracking branch 'origin/dependabot/cargo/base64-0.23.1' …
ravituringworks Aug 11, 2026
e4e9c7f
Merge remote-tracking branch 'origin/dependabot/cargo/chacha20poly130…
ravituringworks Aug 11, 2026
20b8720
Merge remote-tracking branch 'origin/dependabot/cargo/hmac-0.13.0' in…
ravituringworks Aug 11, 2026
53d5214
Merge remote-tracking branch 'origin/dependabot/cargo/p256-0.14.0' in…
ravituringworks Aug 11, 2026
ea4d174
Merge remote-tracking branch 'origin/dependabot/cargo/rustyline-17.0.…
ravituringworks Aug 11, 2026
f1a2194
Merge remote-tracking branch 'origin/dependabot/cargo/similar-3.1.2' …
ravituringworks Aug 11, 2026
4724cf4
Merge remote-tracking branch 'origin/dependabot/cargo/sysinfo-0.39.6'…
ravituringworks Aug 11, 2026
82d0436
Merge remote-tracking branch 'origin/dependabot/cargo/tokio-tungsteni…
ravituringworks Aug 11, 2026
f957fc4
Merge remote-tracking branch 'origin/dependabot/cargo/tree-sitter-0.2…
ravituringworks Aug 11, 2026
ac542b3
Merge remote-tracking branch 'origin/dependabot/cargo/zip-8.6.0' into…
ravituringworks Aug 11, 2026
a8186ac
Merge branch 'dependabot/npm_and_yarn/vibeui/typescript-7.0.2'
ravituringworks Aug 11, 2026
5ad0f2a
Merge branch 'release/v0.5.8-ci-fixes' into feat/competitive-parity-2026
ravituringworks Aug 11, 2026
12abf5c
Add explicit-trigger ghost text inline completion
ravituringworks Aug 11, 2026
aa9d20d
fix(vibeaichat): declare Vite client types so TS 7 accepts CSS imports
ravituringworks Aug 11, 2026
86b8106
Merge branch 'dependabot/cargo/axum-0.8.9' into feat/competitive-pari…
ravituringworks Aug 11, 2026
d6eeb78
Add explicit-trigger ghost text docs & tests
ravituringworks Aug 11, 2026
81481f6
fix(crypto): port HMAC/SHA-2 call sites to the digest 0.11 API
ravituringworks Aug 11, 2026
10361f2
fix(vibecli): port remaining call sites to the bumped dependency APIs
ravituringworks Aug 11, 2026
d8540d0
refactor(skills): add name/description frontmatter and factor out sha…
ravituringworks Aug 11, 2026
0ccb438
fix(models): drop the never-shipped gemini-3.5-pro, restore claude-fa…
ravituringworks Aug 11, 2026
90c9c29
fix(deps): finish the p256 0.14 migration in test code
ravituringworks Aug 11, 2026
a0c8951
fix(skills): collapse duplicated shared-pattern pointers
ravituringworks Aug 11, 2026
1949878
test(models): restore the hook-behaviour and retired-model coverage
ravituringworks Aug 11, 2026
664bb70
refactor(deps): move off SigningKey::random, deprecated in ecdsa 0.17
ravituringworks Aug 11, 2026
937c744
Merge branch 'main' into feat/competitive-parity-2026
ravituringworks Aug 11, 2026
0973af2
Merge branch 'feat/competitive-parity-2026' of github.com:TuringWorks…
ravituringworks Aug 11, 2026
e66aa95
Merge origin/main into feat/competitive-parity-2026
ravituringworks Aug 11, 2026
3a9ac91
fix(skills): Generate import was missing at two call sites
ravituringworks Aug 11, 2026
57184de
Use try_generate_from_rng for P256 SigningKey
ravituringworks Aug 11, 2026
7833456
Merge remote-tracking branch 'origin/main' into feat/competitive-pari…
ravituringworks Aug 11, 2026
c296ef5
Workspace build warnings fixes
ravituringworks Aug 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions crates/vibe-profile-store/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ fn encrypt(key: &[u8; 32], plaintext: &str) -> Result<Vec<u8>, String> {
let mut nonce_bytes = [0u8; 12];
rand::rng().fill(&mut nonce_bytes);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::from_slice(&nonce_bytes);
let nonce = Nonce::from(nonce_bytes);
let mut ct = cipher
.encrypt(nonce, plaintext.as_bytes())
.encrypt(&nonce, plaintext.as_bytes())
.map_err(|e| format!("encrypt: {e}"))?;
let mut blob = Vec::with_capacity(12 + ct.len());
blob.extend_from_slice(&nonce_bytes);
Expand All @@ -86,9 +86,9 @@ fn decrypt(key: &[u8; 32], blob: &[u8]) -> Result<String, String> {
}
let (nonce_bytes, ct) = blob.split_at(12);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::from_slice(nonce_bytes);
let nonce = Nonce::try_from(nonce_bytes).map_err(|_| "bad nonce".to_string())?;
let pt = cipher
.decrypt(nonce, ct)
.decrypt(&nonce, ct)
.map_err(|e| format!("decrypt: {e}"))?;
String::from_utf8(pt).map_err(|e| format!("utf8: {e}"))
}
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/context_assembler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -985,7 +985,7 @@ mod tests {
fs::create_dir_all(src.join("rules")).unwrap();
fs::write(src.join("rules/r.md"), rule_body).unwrap();

let key = SigningKey::generate_from_rng(&mut rand::rng());
let key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let manifest = crate::plugin_manifest::PluginManifest {
name: name.to_string(),
version: "1.0.0".into(),
Expand Down
8 changes: 4 additions & 4 deletions vibecli/vibecli-cli/src/diff_chain_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ fn encrypt(key: &[u8; 32], plaintext: &[u8]) -> Result<Vec<u8>, String> {
let mut nonce_bytes = [0u8; 12];
rand::rng().fill(&mut nonce_bytes);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::from_slice(&nonce_bytes);
let nonce = Nonce::from(nonce_bytes);
let mut ct = cipher
.encrypt(nonce, plaintext)
.encrypt(&nonce, plaintext)
.map_err(|e| format!("encrypt: {e}"))?;
let mut blob = Vec::with_capacity(12 + ct.len());
blob.extend_from_slice(&nonce_bytes);
Expand All @@ -92,9 +92,9 @@ fn decrypt(key: &[u8; 32], blob: &[u8]) -> Result<Vec<u8>, String> {
}
let (nonce_bytes, ct) = blob.split_at(12);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::from_slice(nonce_bytes);
let nonce = Nonce::try_from(nonce_bytes).map_err(|_| "bad nonce".to_string())?;
cipher
.decrypt(nonce, ct)
.decrypt(&nonce, ct)
.map_err(|e| format!("decrypt: {e}"))
}

Expand Down
5 changes: 3 additions & 2 deletions vibecli/vibecli-cli/src/job_manager.rs
Original file line number Diff line number Diff line change
Expand Up @@ -376,7 +376,7 @@ fn encrypt(key: &[u8; 32], plaintext: &str) -> Result<Vec<u8>, String> {
rand::rng().fill(&mut nonce);
let cipher = ChaCha20Poly1305::new(key.into());
let mut ct = cipher
.encrypt(Nonce::from_slice(&nonce), plaintext.as_bytes())
.encrypt(&Nonce::from(nonce), plaintext.as_bytes())
.map_err(|e| format!("encrypt: {e}"))?;
let mut blob = Vec::with_capacity(12 + ct.len());
blob.extend_from_slice(&nonce);
Expand All @@ -390,8 +390,9 @@ fn decrypt(key: &[u8; 32], blob: &[u8]) -> Result<String, String> {
}
let (nonce, ct) = blob.split_at(12);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::try_from(nonce).map_err(|_| "bad nonce".to_string())?;
let pt = cipher
.decrypt(Nonce::from_slice(nonce), ct)
.decrypt(&nonce, ct)
.map_err(|e| format!("decrypt: {e}"))?;
String::from_utf8(pt).map_err(|e| format!("utf8: {e}"))
}
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/mcp_governance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1168,7 +1168,7 @@ mod tests {
use p256::elliptic_curve::Generate;
use tempfile::tempdir;

let key = SigningKey::generate_from_rng(&mut rand::rng());
let key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let manifest = PluginManifest {
name: plugin_name.into(),
version: "1.0.0".into(),
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/plugin_install.rs
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ mod tests {
}

fn fixture_key() -> SigningKey {
SigningKey::generate_from_rng(&mut rand::rng())
SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible")
}

fn fixture_manifest(name: &str, key: &SigningKey, policy: DefaultPolicy) -> PluginManifest {
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/plugin_runtime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ mod tests {
}

fn fixture_key() -> SigningKey {
SigningKey::generate_from_rng(&mut rand::rng())
SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible")
}

/// Build a signed MCPB bundle with all five component kinds, one
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/plugin_signing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ mod tests {
// (OS entropy), so it does not qualify; `ThreadRng`'s error is
// `Infallible`, so it does. p256 0.14 put elliptic-curve on the
// same rand_core generation as the workspace `rand`.
SigningKey::generate_from_rng(&mut rand::rng())
SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible")
}

fn fixture_manifest_with(key: &SigningKey) -> PluginManifest {
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/session_resume_protocol.rs
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ mod tests {
// signed_agent_card.rs for why the OS RNG does not satisfy the bound.

fn keypair() -> (Vec<u8>, Vec<u8>) {
let sk = SigningKey::generate_from_rng(&mut rand::rng());
let sk = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let sk_bytes = sk.to_bytes().to_vec();
let pk_sec1 = sk
.verifying_key()
Expand Down
2 changes: 1 addition & 1 deletion vibecli/vibecli-cli/src/signed_agent_card.rs
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ mod tests {
// (OS entropy), so it does not qualify; `ThreadRng`'s error is
// `Infallible`, so it does. p256 0.14 put elliptic-curve on the
// same rand_core generation as the workspace `rand`.
SigningKey::generate_from_rng(&mut rand::rng())
SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible")
}

#[test]
Expand Down
8 changes: 5 additions & 3 deletions vibecli/vibecli-cli/src/skill_catalog.rs
Original file line number Diff line number Diff line change
Expand Up @@ -740,7 +740,7 @@ Just markdown body.
let store = WorkspaceStore::open_with(&db, [11u8; 32]).unwrap();

// Build + sign a plugin bundle that ships one skill.
let key = SigningKey::generate_from_rng(&mut rand::rng());
let key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let manifest = PluginManifest {
name: "demo".into(),
version: "1.0.0".into(),
Expand Down Expand Up @@ -823,14 +823,15 @@ Just markdown body.
use crate::signed_agent_card::jwk_from_verifying_key;
use crate::workspace_store::WorkspaceStore;
use p256::ecdsa::SigningKey;
use p256::elliptic_curve::Generate;

let builtin = tempdir().unwrap();
let ws = tempdir().unwrap();
let db = ws.path().join(".vibecli").join("workspace.db");
std::fs::create_dir_all(db.parent().unwrap()).unwrap();
let store = WorkspaceStore::open_with(&db, [22u8; 32]).unwrap();

let key = SigningKey::generate_from_rng(&mut rand::rng());
let key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let manifest = PluginManifest {
name: "muted".into(),
version: "1.0.0".into(),
Expand Down Expand Up @@ -904,6 +905,7 @@ Just markdown body.
use crate::signed_agent_card::jwk_from_verifying_key;
use crate::workspace_store::WorkspaceStore;
use p256::ecdsa::SigningKey;
use p256::elliptic_curve::Generate;

let builtin = tempdir().unwrap();
write_skill(builtin.path(), "agent-loops", SAMPLE_AGENT);
Expand All @@ -913,7 +915,7 @@ Just markdown body.
std::fs::create_dir_all(db.parent().unwrap()).unwrap();
let store = WorkspaceStore::open_with(&db, [33u8; 32]).unwrap();

let key = SigningKey::generate_from_rng(&mut rand::rng());
let key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let manifest = PluginManifest {
name: "clash".into(),
version: "1.0.0".into(),
Expand Down
10 changes: 5 additions & 5 deletions vibecli/vibecli-cli/src/watch_auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -907,7 +907,7 @@ mod tests {
use p256::elliptic_curve::Generate;

// Generate a real P256 keypair
let signing_key = SigningKey::generate_from_rng(&mut rand::rng());
let signing_key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let verifying_key = signing_key.verifying_key();

// Swift uses: SHA256.hash(data: msg) → sign the hash directly.
Expand Down Expand Up @@ -936,7 +936,7 @@ mod tests {
use p256::ecdsa::{signature::Signer, SigningKey};
use p256::elliptic_curve::Generate;

let signing_key = SigningKey::generate_from_rng(&mut rand::rng());
let signing_key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let verifying_key = signing_key.verifying_key();

let msg = b"correct message";
Expand All @@ -957,8 +957,8 @@ mod tests {
use p256::ecdsa::{signature::Signer, SigningKey};
use p256::elliptic_curve::Generate;

let signing_key = SigningKey::generate_from_rng(&mut rand::rng());
let wrong_key = SigningKey::generate_from_rng(&mut rand::rng());
let signing_key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let wrong_key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let wrong_verifying = wrong_key.verifying_key();

let msg = b"some message";
Expand All @@ -984,7 +984,7 @@ mod tests {
let ch = mgr.issue_challenge().unwrap();

// Simulate what Swift does: generate key, build message, sign
let signing_key = SigningKey::generate_from_rng(&mut rand::rng());
let signing_key = SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible");
let verifying_key = signing_key.verifying_key();
let device_id = "deadbeef12345678deadbeef12345678";

Expand Down
8 changes: 4 additions & 4 deletions vibecli/vibecli-cli/src/workspace_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ fn encrypt(key: &[u8; 32], plaintext: &str) -> Result<Vec<u8>, String> {
let mut nonce_bytes = [0u8; 12];
rand::rng().fill(&mut nonce_bytes);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::from_slice(&nonce_bytes);
let nonce = Nonce::from(nonce_bytes);
let mut ct = cipher
.encrypt(nonce, plaintext.as_bytes())
.encrypt(&nonce, plaintext.as_bytes())
.map_err(|e| format!("encrypt: {e}"))?;
let mut blob = Vec::with_capacity(12 + ct.len());
blob.extend_from_slice(&nonce_bytes);
Expand All @@ -78,9 +78,9 @@ fn decrypt(key: &[u8; 32], blob: &[u8]) -> Result<String, String> {
}
let (nonce_bytes, ct) = blob.split_at(12);
let cipher = ChaCha20Poly1305::new(key.into());
let nonce = Nonce::from_slice(nonce_bytes);
let nonce = Nonce::try_from(nonce_bytes).map_err(|_| "bad nonce".to_string())?;
let pt = cipher
.decrypt(nonce, ct)
.decrypt(&nonce, ct)
.map_err(|e| format!("decrypt: {e}"))?;
String::from_utf8(pt).map_err(|e| format!("utf8: {e}"))
}
Expand Down
6 changes: 3 additions & 3 deletions vibecli/vibecli-cli/tests/watch_p256_auth_bdd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ fn a_fresh_manager(world: &mut P256World) {

#[given("a P256 signing key is generated")]
fn generate_p256_key(world: &mut P256World) {
world.signing_key = Some(SigningKey::generate_from_rng(
&mut rand::rng(),
));
world.signing_key = Some(
SigningKey::try_generate_from_rng(&mut rand::rng()).expect("ThreadRng is Infallible"),
);
}

#[given("a registration challenge is issued")]
Expand Down
3 changes: 2 additions & 1 deletion vibecoder/crates/vibe-core/benches/index_bench.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
//! Run with: `cargo bench -p vibe-core`
//! Compile-check only: `cargo bench -p vibe-core --no-run`

use criterion::{black_box, criterion_group, criterion_main, Criterion};
use criterion::{criterion_group, criterion_main, Criterion};
use std::hint::black_box;
use std::path::PathBuf;
use vibe_core::diff::DiffEngine;
use vibe_core::index::symbol::extract_symbols;
Expand Down
Loading