workspace: tool routing (precedence/engine-probes) ignores the IDE extension's pin, so a pinned session can name one workspace and route to another
メンテナーはふだん 1 日以内に返信
@saravmajestic がすでに取り組んでいます。
2026年9月21日 から。
評価
この issue はまだ評価されていません。
説明
Problem
#1320 makes the IDE extension's pin (ALTIMATE_PINNED_WORKSPACE_{ID,NAME,ROOT}) outrank the project's stored binding inside resolveBindingOutcome, so skill-sync, memory-sync and (since #1330) the identity section all follow the pinned workspace. Warehouse tool routing does not. precedence.ts currentBinding() (~line 441) and engine-probes.ts resolveBinding() (~line 42) read the on-disk binding cache directly through readLocalBindingScopedStrict and never consult the pin; neither file changed in #1320, and the pin is deliberately never persisted, so routing cannot see it.
Observable in a pinned serve session (found in the v0.12.1 release review by two reviewers independently):
- Fresh pin, no prior local link (pin → 42): identity says "This project is linked to Altimate Workspace id 42";
derive()sees no binding →unbound→ the routing section is silent and every warehouse call goes to the local tools. The pin changes what is remembered and which skills load, not what executes. - Returning user, local cache still names workspace 7 (pin → 42): identity names 42, the routing section names 7 ("Altimate workspace "…" (id 7) serves the warehouse tools named below"), or — if the live engine is attributed to 42 — the attribution check fails and routing settles
unattributed. Two different datamate ids in one prompt, with nothing telling the model which governs execution.
Routing behaviour is unchanged from v0.12.0 (the pin never affected it), so this is not a regression and nothing executes against a workspace the project was not already linked to — but it defeats the stated purpose of the pin for warehouse queries, and #1330 now makes the contradiction visible to the model every turn. v0.12.1's identity copy states the limitation for pinned sessions ("warehouse tool routing follows the project's own link, not the pin") as a stop-gap.
Expected
currentBinding() in precedence.ts and resolveBinding() in engine-probes.ts honour a valid pin the same way resolveBindingOutcome does (pin outranks the cached binding and auto-adoption; invalid/non-member pin fails closed to unbound routing), so identity, routing, skills and memory agree on one workspace within a turn. The redirect-guard and attribution tests in precedence.test.ts need the pinned case added.
Related: #1335 (workspace name in the system prompt), and the #1320 known gaps (no backfill on pin, no purge-before-fetch in skill-sync).
🤖 Generated with Claude Code
- 主要言語
- TypeScript
- スター
- 813
- フォーク
- 134
- 平均マージ
- 2日 8分
- マージ済み PR(30日)
- 65
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
AltimateAI/altimate-code のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
AltimateAI/altimate-code#1359 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
AltimateAI/altimate-code#1323 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
AltimateAI/altimate-code#1288 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
AltimateAI/altimate-code#1285 ·
メンテナーはふだん 1 日以内に返信
-
privacy: Altimate Base consent dialog no longer discloses persistent per-installation identifierオープン
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
AltimateAI/altimate-code#1284 ·
メンテナーはふだん 1 日以内に返信
AltimateAI/altimate-code の issue をすべて見る
似ている issue
-
ADD openalgoオープンtemplate
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
factory-active factory-automatic task-bug-reproduction-success task-identify-harness-labels-done task-identify-issue-type-done
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
bug Needs: Triage :mag:
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/fluentui-contrib#671 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
sveltejs/acorn-typescript#150 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100