Synced from monorepo

Changes:
- grok-shell: request workspaces:read/write OAuth2 scopes
- security: fix SSRF bypass via HTTP redirect in hook runner
- fix(grok-build): enterprise STT WSS URL + API-key voice bearer
- Harden identity-change purge and sync-marker invariants
- sandbox + workspace-server: delete the legacy ready-file arm
- Show billing URL when browser cannot open
- fix(pager): show folder-trust UI in minimal mode
- fix(pager): drain task_backgrounded before no-wait headless exit
- grok-agent-sdk: stop SDK-spawned agents from staging self-updates they can never adopt
- Split settings_modal into directory module
- Delegate VS Code SSH file links
- grok-shell: release the workspace session binding when a session is removed
- keep skills reachable when their name collides with a client builtin
- Preserve semantic link targets
This commit is contained in:
grokkybara[bot] 2026-07-16 20:27:30 +01:00
commit 8adf9013a0
117 changed files with 16998 additions and 14540 deletions

View file

@ -5,6 +5,9 @@ version = "0.1.0"
edition.workspace = true
[features]
# Exposes `#[cfg(test)]`-only helpers (`MemoryStorage::with_paths`,
# `MockEmbeddingProvider`) to downstream crates' test targets.
test-support = []
[dependencies]
anyhow = { workspace = true }

View file

@ -214,12 +214,12 @@ impl EmbeddingProvider for ApiEmbeddingProvider {
/// A mock embedding provider for testing that returns deterministic vectors.
/// Uses blake3 hash of text → float values for reproducible results.
#[cfg(test)]
#[cfg(any(test, feature = "test-support"))]
pub struct MockEmbeddingProvider {
pub dimensions: usize,
}
#[cfg(test)]
#[cfg(any(test, feature = "test-support"))]
#[async_trait]
impl EmbeddingProvider for MockEmbeddingProvider {
async fn embed_batch(

View file

@ -74,7 +74,7 @@ impl MemoryStorage {
}
/// Create a `MemoryStorage` with explicit paths (for testing).
#[cfg(test)]
#[cfg(any(test, feature = "test-support"))]
pub fn with_paths(global_dir: PathBuf, workspace_dir: PathBuf) -> Self {
Self {
global_dir,