chore: версия 0.38.0 единая + warning-fixes + mold для release-job

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 d9c5294e7e
commit c4e43f3637
13 changed files with 23 additions and 19 deletions

View file

@ -199,6 +199,15 @@ jobs:
- name: Install Rust toolchain
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
with:
workspaces: _primitives/_rust

View file

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

View file

@ -65,6 +65,7 @@ impl Firmware {
///
/// For `.jsonl`, extracts user turns only. For `.md`, drops
/// `### 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> {
let text = load_corpus_text(path)
.with_context(|| format!("load corpus from {}", path.display()))?;

View file

@ -8,7 +8,7 @@ use crate::error::AppError;
use crate::state::AppState;
use super::tool_apply_atomic::atomic_write_nofollow;
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 axum::extract::State;
use axum::Json;

View file

@ -29,11 +29,11 @@ use toml::Value as TomlValue;
const SPAWN_TIMEOUT: Duration = Duration::from_secs(120);
#[derive(Debug, Deserialize)]
struct Input {
description: String,
prompt: String,
pub(crate) struct Input {
pub(crate) description: String,
pub(crate) prompt: String,
#[serde(default)]
subagent_type: Option<String>,
pub(crate) subagent_type: Option<String>,
}
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).
/// 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> {
if path.is_empty() {
return Err(ToolError::InvalidInput("empty path".into()));

View file

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

View file

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

View file

@ -1,6 +1,6 @@
{
"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",
"type": "module",
"main": "./dist/index.js",

View file

@ -1,6 +1,6 @@
{
"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)",
"type": "module",
"main": "./dist/index.js",

View file

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

View file

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

View file

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