release: cut community v0.2.0
This commit is contained in:
+1
-1
@@ -17,7 +17,7 @@ resolver = "3"
|
|||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
rust-version = "1.85"
|
rust-version = "1.85"
|
||||||
version = "0.1.0"
|
version = "0.2.0"
|
||||||
|
|
||||||
[workspace.dependencies]
|
[workspace.dependencies]
|
||||||
aes-gcm = "0.10"
|
aes-gcm = "0.10"
|
||||||
|
|||||||
@@ -161,4 +161,6 @@ Progress:
|
|||||||
- Phase 1 / tasks `1.1`–`1.3`: strict-REST Community cleanup уже был закрыт ранее — non-REST adapters и `crank-proto` удалены из workspace, descriptor/premium UI surface убран из Community build, wizard и i18n приведены к REST-only baseline
|
- Phase 1 / tasks `1.1`–`1.3`: strict-REST Community cleanup уже был закрыт ранее — non-REST adapters и `crank-proto` удалены из workspace, descriptor/premium UI surface убран из Community build, wizard и i18n приведены к REST-only baseline
|
||||||
- Phase 1 / task `1.4`: создан crate `crank-community-auth`; в него вынесены password hashing/session cookie primitives и `PasswordIdentityProvider`, `admin-api` переключен на этот crate, а `login()` теперь реально делегирует credential check через `IdentityProvider` seam
|
- Phase 1 / task `1.4`: создан crate `crank-community-auth`; в него вынесены password hashing/session cookie primitives и `PasswordIdentityProvider`, `admin-api` переключен на этот crate, а `login()` теперь реально делегирует credential check через `IdentityProvider` seam
|
||||||
- Phase 1 / task `1.5`: создан crate `crank-community-mcp`; в него вынесены `build_app`, `catalog`, `jsonrpc`, `session` и `auth` из `apps/mcp-server`, а `apps/mcp-server/src/main.rs` стал thin launcher с env parsing и DI wiring
|
- Phase 1 / task `1.5`: создан crate `crank-community-mcp`; в него вынесены `build_app`, `catalog`, `jsonrpc`, `session` и `auth` из `apps/mcp-server`, а `apps/mcp-server/src/main.rs` стал thin launcher с env parsing и DI wiring
|
||||||
|
- Phase 1 / task `1.6`: Community test surface уже приведен к честному baseline — `test = false` удален ранее, premium-only tests вычищены, `just verify` проходит на текущем составе workspace
|
||||||
|
- Phase 1 / task `1.7`: workspace version bumped to `0.2.0`; release gate пройден (`just verify`, `npm run build`, `npm run e2e`), release commit и tag `v0.2.0` подготовлены в `crank-community`
|
||||||
- backward-compatible alias `CommunityMachineCredentialVerifier` сохранен, поведение Community не изменено
|
- backward-compatible alias `CommunityMachineCredentialVerifier` сохранен, поведение Community не изменено
|
||||||
|
|||||||
@@ -666,6 +666,7 @@ impl AdminService {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
pub fn new_with_runtime(
|
pub fn new_with_runtime(
|
||||||
registry: PostgresRegistry,
|
registry: PostgresRegistry,
|
||||||
storage_root: PathBuf,
|
storage_root: PathBuf,
|
||||||
@@ -687,10 +688,6 @@ impl AdminService {
|
|||||||
&self.auth_settings
|
&self.auth_settings
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn identity_provider(&self) -> Option<&Arc<dyn IdentityProvider>> {
|
|
||||||
self.identity_provider.as_ref()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn policy_engine(&self) -> &Arc<dyn PolicyEngine> {
|
pub fn policy_engine(&self) -> &Arc<dyn PolicyEngine> {
|
||||||
&self.policy_engine
|
&self.policy_engine
|
||||||
}
|
}
|
||||||
@@ -735,21 +732,25 @@ impl AdminServiceBuilder {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
pub fn with_policy_engine(mut self, policy_engine: Arc<dyn PolicyEngine>) -> Self {
|
pub fn with_policy_engine(mut self, policy_engine: Arc<dyn PolicyEngine>) -> Self {
|
||||||
self.policy_engine = Some(policy_engine);
|
self.policy_engine = Some(policy_engine);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
pub fn with_audit_sink(mut self, audit_sink: Arc<dyn AuditSink>) -> Self {
|
pub fn with_audit_sink(mut self, audit_sink: Arc<dyn AuditSink>) -> Self {
|
||||||
self.audit_sink = Some(audit_sink);
|
self.audit_sink = Some(audit_sink);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
pub fn with_token_issuer(mut self, token_issuer: Arc<dyn MachineTokenIssuer>) -> Self {
|
pub fn with_token_issuer(mut self, token_issuer: Arc<dyn MachineTokenIssuer>) -> Self {
|
||||||
self.token_issuer = Some(token_issuer);
|
self.token_issuer = Some(token_issuer);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(dead_code)]
|
||||||
pub fn with_capability_profile(
|
pub fn with_capability_profile(
|
||||||
mut self,
|
mut self,
|
||||||
capability_profile: Arc<dyn CapabilityProfile>,
|
capability_profile: Arc<dyn CapabilityProfile>,
|
||||||
@@ -4418,6 +4419,7 @@ fn validate_response_cache_policy(
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
|
#[allow(clippy::items_after_test_module)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
|
|||||||
@@ -177,12 +177,12 @@ mod tests {
|
|||||||
use tracing_subscriber::{filter::LevelFilter, fmt::MakeWriter, prelude::*};
|
use tracing_subscriber::{filter::LevelFilter, fmt::MakeWriter, prelude::*};
|
||||||
|
|
||||||
use crank_community_mcp::{
|
use crank_community_mcp::{
|
||||||
build_app,
|
|
||||||
auth::{
|
auth::{
|
||||||
CommunityMachineCredentialVerifier, MachineCredentialVerifier,
|
CommunityMachineCredentialVerifier, MachineCredentialVerifier,
|
||||||
MachineCredentialVerifierError, SharedMachineCredentialVerifier,
|
MachineCredentialVerifierError, SharedMachineCredentialVerifier,
|
||||||
VerifiedMachineCredential,
|
VerifiedMachineCredential,
|
||||||
},
|
},
|
||||||
|
build_app,
|
||||||
catalog::PublishedToolCatalog,
|
catalog::PublishedToolCatalog,
|
||||||
session::{InMemorySessionStore, SharedSessionStore, TransportSessionStore},
|
session::{InMemorySessionStore, SharedSessionStore, TransportSessionStore},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ struct AgentRoutePath {
|
|||||||
agent_slug: String,
|
agent_slug: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub fn build_app(
|
pub fn build_app(
|
||||||
registry: PostgresRegistry,
|
registry: PostgresRegistry,
|
||||||
refresh_interval: Duration,
|
refresh_interval: Duration,
|
||||||
@@ -471,6 +472,7 @@ async fn mcp_post(
|
|||||||
with_request_id_header(response, &transport_request_id)
|
with_request_id_header(response, &transport_request_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[allow(clippy::too_many_arguments)]
|
||||||
async fn handle_tool_call(
|
async fn handle_tool_call(
|
||||||
state: Arc<AppState>,
|
state: Arc<AppState>,
|
||||||
session: &SessionState,
|
session: &SessionState,
|
||||||
|
|||||||
Reference in New Issue
Block a user