fix(owner): pin mt-core/llm-cascade rev, remove stray nested owner workspace - #26
Merged
Conversation
…rkspace release-owner.yml падав на кожному owner-релізі з owner@0.16.0: PR #17 (67e3744) повернув owner/Cargo.toml зі своїм [workspace], видаленим ще в 1efb2bd — Cargo відтоді резолвив owner/src-tauri й owner/owner-llm у незафіксований вкладений воркспейс замість кореневого. Без Cargo.lock там git-залежності mt-core/llm-cascade (без rev) щоразу тягнули живий HEAD nitra/mt і nitra/7n-rules — а структура nitra/mt відтоді розійшлась, тому cargo не міг знайти Cargo.toml за очікуваним шляхом. - видалено owner/Cargo.toml (вкладений workspace) - pin rev на mt-core (app/src-tauri, owner/src-tauri) і llm-cascade (owner/owner-llm) — той самий канон, що вже в tauri-plugin-agent - перевірено cargo check --workspace з чистим CARGO_HOME (як на CI-раннері) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This was referenced Jul 27, 2026
vitaliytv
added a commit
that referenced
this pull request
Jul 29, 2026
…28) Чотири CI-перевірки падали на PR #26 незалежно від mt-core фіксу: - eslint/knip: knip.json ігнорував .pi/extensions/n-cursor-adr/** — тека давно перейменована на n-rules-adr, плюс rtk.ts ніколи не був у ignore; @7n/rules-ci-github/-lang-js/-lang-rust помилково вважались unused devDependencies (насправді підключаються плагінами @7n/rules, не імпортом). - lint-ga / lint-js / lint-text: on.pull_request.paths був відсутній або неповний у трьох workflow — push.paths фільтрував тригер, а pull_request ганяв лінт на кожен PR незалежно від зачеплених файлів (і одразу падав на policy-deny drift-перевірці на невідповідність канону). - text: .cspell.json бракувало кількох легітимних українських слів (мейнтейнера, недовірений, стрімоване, доставки, залежнісного) — частина з'явилась у щойно перегенерованих доках; oxfmt/eslint/stylelint дрейф у PullRequestsDialog.vue/TaskGraph.vue (сумісний формат для всіх трьох лінтерів одночасно). - k8s: k8s/teleport/ingress.yaml насправді містив NetworkPolicy (не Ingress) під невірною назвою файлу — мандатор-перевірка не бачила її для StatefulSet teleport. Перейменовано на networkpolicy.yaml + додано intra-replica ingress/egress правила зі stateful-set-канону. Поза скоупом (свідомо відкладено, обговорено з користувачем): - kubescape виявляє ~17 контролів security posture по всьому k8s/ дереву (RBAC, securityContext, naked pods, missing NetworkPolicy для naked Pod у dev-pod/) — не квапливий CI-фікс, потребує функціональних рішень поза скоупом цієї задачі. - doc-files: ще ~19 файлів (app/src/*.js, owner/src/*.js) мають застарілі доки не повʼязані з цим PR — залишено як є. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
release-owner.ymlhas failed on the "Build and upload DMG" step on everyownerrelease sinceowner@0.16.0(last working release:owner@0.15.0), with:Root cause is a workspace-resolution regression, not just a stale pin:
1efb2bd(2026-07-21) consolidated the repo into a single root Cargo workspace and deletedowner/Cargo.toml, which used to declare its own nested[workspace].67e3744, landed right beforeowner@0.16.0) re-createdowner/Cargo.tomlwith a[workspace]block. Cargo resolves against the nearest ancestor[workspace], soowner/src-tauri/owner/owner-llmsilently started resolving in this orphaned nested workspace instead of the root one — with no committed lockfile for it.mt-core(git dep fromnitra/mt) andllm-cascade(git dep fromnitra/7n-rules) had norevpinned inCargo.toml. With no lockfile to anchor them, Cargo re-resolved both to their upstream HEAD on every fresh CI runner.nitra/mt's HEAD has since drifted structurally, so resolution now fails identically on every run.Changes
owner/Cargo.toml(the stray nested workspace) — restores the single-root-workspace invariant from1efb2bd.owner/src-tauriandowner/owner-llmare already listed as members in the rootCargo.toml, so nothing else needed to change.mt-coretorev = "03050b869db4828b351defe639b6d09a1c963b4c"inapp/src-tauri/Cargo.tomlandowner/src-tauri/Cargo.toml.llm-cascadetorev = "c47c5248ecb45cd076dbc2558e3c2d04f010ddfe"inowner/owner-llm/Cargo.toml. Matches the existing house convention (see the comment above thetauri-plugin-agentpin inapp/src-tauri/Cargo.toml)..changes/entries forappandowner.Verification
CARGO_HOMEbefore the fix.cargo metadataandcargo check --workspaceboth succeed from a cleanCARGO_HOME(simulating a cold CI runner), with no strayowner/target/orowner/Cargo.lockreappearing.Test plan
release-owner.ymlviaworkflow_dispatchon an existingowner@X.Y.Ztag (or wait for the next release) to confirm the DMG actually builds and uploadsowner-latestupdater channel picks up a release newer thanowner-v0.15.0🤖 Generated with Claude Code