chore: версия 0.38.0 единая + warning-fixes + mold для release-job
Some checks are pending
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / preflight (push) Waiting to run
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / vps-smoke (push) Waiting to run
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:frustration-matrix,kei-frustration-loop,kei-skill-importer,kei-projects-index,kei-projects-watcher,kei-gdrive-import,kei-leak-matrix,kei-skills,kei-gateway,kei-cron-scheduler,kei-export-trajectories,kei-backend-daytona,kei-d… (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:kei-compute-baremetal,kei-compute-vultr,kei-compute-linode,kei-compute-digitalocean,kei-svc-systemd,kei-llm-bridge-mlx name:hosted-sleep-compute]) (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:kei-diff,kei-scheduler,kei-watch,kei-prune,kei-discover,kei-brain-view,kei-hibernate,kei-ledger-sign,kei-fork name:wave13-15]) (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:kei-git-gitea,kei-git-forgejo,kei-git-gitlab,kei-git-bitbucket,kei-memory-sled,kei-memory-redis,kei-memory-postgres,kei-memory-sqlite,kei-auth-google,kei-auth-apple,kei-auth-magiclink,kei-auth-webauthn,kei-notify-slack,kei-n… (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:kei-ledger,kei-migrate,kei-changelog,kei-memory,kei-store,kei-conflict-scan,kei-refactor-engine,kei-graph-check,kei-shared,kei-dna-index,kei-pet name:core]) (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:kei-machine-probe,kei-llm-ollama,kei-llm-llamacpp,kei-llm-mlx,kei-llm-router,kei-model name:llm-stack]) (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:kei-router,kei-sage,kei-task,kei-chat-store,kei-crossdomain,kei-search-core,kei-content-store,kei-social-store,kei-curator,kei-auth,kei-artifact name:mcp-lbm]) (push) Blocked by required conditions
CI (Forgejo Actions — self-hosted runner on Mac, host mode) / rust-primitives (map[crates:keisei,kei-forge,kei-runtime,kei-runtime-core,kei-atom-discovery,kei-agent-runtime,kei-capability,kei-provision,kei-entity-store,kei-pipe,kei-cache,kei-spawn,kei-replay name:atom-substrate]) (push) Blocked by required conditions

1. Версии npm-пакетов приведены к 0.38.0 (был зоопарк 0.14.0/0.14.6):
   _ts_packages/{,packages/{gmail,grok,mcp-server,recall,telegram,youtube}-adapter}

2. Rust warnings (cargo check workspace):
   - kei-cortex: deprecated validate_path → validate_path_lexical,
     удалён orphan-wrapper в read.rs, struct Input → pub(crate)
   - frustration-matrix: #[allow(dead_code)] на confusion_* поля
     EvalReport + train_from_dir (будущий CLI)

3. CI release.yml job 'release' падал на Build kei-changelog:
   clang invalid linker '-fuse-ld=mold' — в .cargo/config.toml
   жёстко прописан mold для linux. Добавлен Install mold шаг
   (как уже сделано в build-release matrix).
This commit is contained in:
Denis Parfionovich 2026-05-18 13:41:37 +08:00
parent d1cbdd8892
commit fc0758d2bb
13 changed files with 23 additions and 19 deletions

View file

@ -199,6 +199,15 @@ jobs:
- name: Install Rust toolchain - name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable # exception to SHA-pin: named-branch convention (validator V-2026-04-22) uses: dtolnay/rust-toolchain@stable # exception to SHA-pin: named-branch convention (validator V-2026-04-22)
# _primitives/_rust/.cargo/config.toml жёстко прописывает `-fuse-ld=mold`
# для linux targets — без этой установки `cargo build` падает с
# `clang: error: invalid linker name in argument '-fuse-ld=mold'`.
# CI run 26014724470 fix.
- name: Install mold linker (для linux target в .cargo/config.toml)
run: |
sudo apt-get update
sudo apt-get install -y mold clang
- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1 - uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with: with:
workspaces: _primitives/_rust workspaces: _primitives/_rust

View file

@ -39,6 +39,7 @@ pub struct EvalInput {
} }
/// Full report produced by `evaluate`. /// Full report produced by `evaluate`.
#[allow(dead_code)] // confusion_* поля для будущего CLI subcommand --confusion-matrix
pub struct EvalReport { pub struct EvalReport {
pub total_gold_rows: usize, pub total_gold_rows: usize,
pub regex_metrics: Metrics, pub regex_metrics: Metrics,

View file

@ -65,6 +65,7 @@ impl Firmware {
/// ///
/// For `.jsonl`, extracts user turns only. For `.md`, drops /// For `.jsonl`, extracts user turns only. For `.md`, drops
/// `### Assistant` blocks. See `firmware_corpus` for the extractor. /// `### Assistant` blocks. See `firmware_corpus` for the extractor.
#[allow(dead_code)] // публичное API для будущего CLI `firmware train --dir`
pub fn train_from_dir(path: &Path, max_depth: usize) -> Result<Self> { pub fn train_from_dir(path: &Path, max_depth: usize) -> Result<Self> {
let text = load_corpus_text(path) let text = load_corpus_text(path)
.with_context(|| format!("load corpus from {}", path.display()))?; .with_context(|| format!("load corpus from {}", path.display()))?;

View file

@ -8,7 +8,7 @@ use crate::error::AppError;
use crate::state::AppState; use crate::state::AppState;
use super::tool_apply_atomic::atomic_write_nofollow; use super::tool_apply_atomic::atomic_write_nofollow;
use crate::tool::edit::count_occurrences; use crate::tool::edit::count_occurrences;
use crate::tool::read::validate_path as validate_abs_path; use crate::tool::read::validate_path_lexical as validate_abs_path;
use crate::tool::write::deny_system_dirs; use crate::tool::write::deny_system_dirs;
use axum::extract::State; use axum::extract::State;
use axum::Json; use axum::Json;

View file

@ -29,11 +29,11 @@ use toml::Value as TomlValue;
const SPAWN_TIMEOUT: Duration = Duration::from_secs(120); const SPAWN_TIMEOUT: Duration = Duration::from_secs(120);
#[derive(Debug, Deserialize)] #[derive(Debug, Deserialize)]
struct Input { pub(crate) struct Input {
description: String, pub(crate) description: String,
prompt: String, pub(crate) prompt: String,
#[serde(default)] #[serde(default)]
subagent_type: Option<String>, pub(crate) subagent_type: Option<String>,
} }
pub async fn run(raw: Value) -> Result<String, ToolError> { pub async fn run(raw: Value) -> Result<String, ToolError> {

View file

@ -55,13 +55,6 @@ pub async fn run(raw: Value, project_root: &Path) -> Result<String, ToolError> {
/// Lexical-only path checks (cheap pre-filter before canonicalisation). /// Lexical-only path checks (cheap pre-filter before canonicalisation).
/// Reject relative paths, parent traversal, and empty paths. /// Reject relative paths, parent traversal, and empty paths.
/// ///
/// `validate_path` kept as a deprecated alias for `tool_apply.rs`
/// (wave44b territory, will be reconciled at merge).
#[deprecated(note = "use validate_path_lexical")]
pub(crate) fn validate_path(path: &str) -> Result<(), ToolError> {
validate_path_lexical(path)
}
pub(crate) fn validate_path_lexical(path: &str) -> Result<(), ToolError> { pub(crate) fn validate_path_lexical(path: &str) -> Result<(), ToolError> {
if path.is_empty() { if path.is_empty() {
return Err(ToolError::InvalidInput("empty path".into())); return Err(ToolError::InvalidInput("empty path".into()));

View file

@ -1,7 +1,7 @@
{ {
"name": "@keisei/ts-packages", "name": "@keisei/ts-packages",
"private": true, "private": true,
"version": "0.14.0", "version": "0.38.0",
"description": "KeiSeiKit TypeScript layer — MCP server and external-API adapters", "description": "KeiSeiKit TypeScript layer — MCP server and external-API adapters",
"type": "module", "type": "module",
"workspaces": [ "workspaces": [

View file

@ -1,6 +1,6 @@
{ {
"name": "@keisei/gmail-adapter", "name": "@keisei/gmail-adapter",
"version": "0.14.0", "version": "0.38.0",
"description": "Gmail API adapter for the KeiSei MCP server", "description": "Gmail API adapter for the KeiSei MCP server",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{ {
"name": "@keisei/grok-adapter", "name": "@keisei/grok-adapter",
"version": "0.14.0", "version": "0.38.0",
"description": "xAI Grok adapter (deep research + image gen) for the KeiSei MCP server", "description": "xAI Grok adapter (deep research + image gen) for the KeiSei MCP server",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{ {
"name": "@keisei/mcp-server", "name": "@keisei/mcp-server",
"version": "0.14.6", "version": "0.38.0",
"description": "MCP server exposing KeiSeiKit Rust primitives as Model Context Protocol tools — published to keigit.com (Forgejo npm registry, public DNS)", "description": "MCP server exposing KeiSeiKit Rust primitives as Model Context Protocol tools — published to keigit.com (Forgejo npm registry, public DNS)",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{ {
"name": "@keisei/recall-adapter", "name": "@keisei/recall-adapter",
"version": "0.14.0", "version": "0.38.0",
"description": "Recall.ai adapter (Zoom meeting capture) for the KeiSei MCP server", "description": "Recall.ai adapter (Zoom meeting capture) for the KeiSei MCP server",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{ {
"name": "@keisei/telegram-adapter", "name": "@keisei/telegram-adapter",
"version": "0.14.0", "version": "0.38.0",
"description": "Telegram Bot API adapter for the KeiSei MCP server", "description": "Telegram Bot API adapter for the KeiSei MCP server",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{ {
"name": "@keisei/youtube-adapter", "name": "@keisei/youtube-adapter",
"version": "0.14.0", "version": "0.38.0",
"description": "YouTube Data API v3 adapter for the KeiSei MCP server", "description": "YouTube Data API v3 adapter for the KeiSei MCP server",
"type": "module", "type": "module",
"main": "./dist/index.js", "main": "./dist/index.js",