Skip to content

feat: crates/mt-protocol-check — smoke-звʼязок зі специфікацією nitra/mt - #1

Closed
vitaliytv wants to merge 1 commit into
mainfrom
claude/mt-protocol-dep
Closed

feat: crates/mt-protocol-check — smoke-звʼязок зі специфікацією nitra/mt#1
vitaliytv wants to merge 1 commit into
mainfrom
claude/mt-protocol-dep

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Що зроблено

Новий ізольований workspace-член crates/mt-protocol-check:

  • Cargo.toml — залежність mt-protocol як git-dependency на nitra/mt (гілка claude/mt-protocol-crate, PR nitra/mt#62).
  • src/lib.rs — один #[test], що викликає mt_protocol::get("index.md") і перевіряє Some + непорожній вміст — доводить, що git-залежність резолвиться, компілюється, а контент docs/ доступний.
  • Cargo.toml (корінь): crates/mt-protocol-check додано в workspace.members.

Жоден інший крейт (mt-core, agent-*, mt-napi, mt-cli) не змінювався.

⚠️ Блокер мерджу

Залежність зараз вказує на branch claude/mt-protocol-crate у nitra/mt (PR ще не змерджений). Перед мерджем цього PR:

  1. дочекатись мерджу nitra/mt#62 в main;
  2. переставити crates/mt-protocol-check/Cargo.toml з branch = "claude/mt-protocol-crate" на main (або тег, якщо буде реліз);
  3. оновити Cargo.lock.

Позначено // TODO: перевести на main/тег після мерджу nitra/mt#62 прямо біля залежності.

Верифікація

  • cargo build -p mt-protocol-check — OK, git-залежність фетчиться й компілюється
  • cargo test -p mt-protocol-check — 1/1 passed
  • cargo build --workspace — OK
  • cargo test --workspace — усі проходять, крім одного пре-існуючого й непов'язаного падіння agent-server::graph::tests::failing_check_blocks_done_until_fixed (відтворюється так само на чистому main без цих змін — не пов'язано з цим PR)
  • cargo fmt -p mt-protocol-check -- --check / cargo clippy -p mt-protocol-check --all-targets --all-features -- -D warnings — OK
  • .github/workflows/npm-publish.yml: build-binaries збирає лише -p mt-cli і -p mt-napi — новий крейт на нього не впливає, змін не потребує

Не мерджити

Дивись блокер вище — мердж заблокований до мерджу nitra/mt#62 і репойнту залежності.

🤖 Generated with Claude Code

…/mt через git-dependency

Ізольований workspace-член, що споживає mt-protocol (nitra/mt) як
git-залежність на гілку claude/mt-protocol-crate й одним #[test]
доводить, що залежність резолвиться, компілюється, а контент docs/
(index.md) доступний через mt_protocol::get(). Інших крейтів не
торкався.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vitaliytv

Copy link
Copy Markdown
Member Author

Закрито: npm-залежність @7n/mt (#2, змерджено) обрана як фактичний канал доступу до специфікації. Rust-крейт mt-protocol не приземлився в nitra/mt (PR #62 закрито), тому git-dependency тут ніколи не зрезолвиться.

@vitaliytv vitaliytv closed this Jul 23, 2026
@vitaliytv
vitaliytv deleted the claude/mt-protocol-dep branch July 23, 2026 07:31
vitaliytv added a commit that referenced this pull request Aug 9, 2026
…22)

Відкрите питання #1 з docs/conformance.md закрито на користь спеки.

graph.md визначає «прийнятий fact» як актуальний fact_N (max NNN) без
pending-audit_N або з audit-result_N: success, і рахує failed_streak
від нього. Код брав межею будь-який останній fact_NNN незалежно від
вердикту аудиту.

Наслідок старої поведінки — livelock: цикл «провал → провал → сирий
fact → аудит відхилив → провал…» обнуляв лічильник на кожному fact,
тому вузол ніколи не досягав agent_retry_max, тобто ніколи не доходив
ні до EngineerAgent, ні до unresolvable. Драбина ретраїв не
термінувала. Тепер відхилений аудитом fact межу не рухає.

Межа обчислюється через наявний accepted_fact_state — та сама умова,
що визначає стан resolved, тож два визначення не можуть розійтись.

Тести: rejected_fact_does_not_reset_streak,
rejected_fact_livelock_terminates, streak_counts_only_runs_after_
accepted_fact. 148 passed у mt-core, workspace зелений, clippy чистий.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant