You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Lark manager can receive a question about a concrete pull request in a repository connected to an authorized Goal, but its bounded read tool exposes only sources, portfolio, todos, deliveries, and handoffs. If the PR was not previously materialized into a Core Todo/delivery record, the manager cannot inspect the PR body or diff. In the observed incident it paginated unrelated Goal records, then answered from the user's quoted sentence while saying it could not obtain the PR record.
This is not a transient GitHub/network failure. The current manager contract intentionally says arbitrary external links are not fetched and grants no shell. The product gap is that the manager did not convert the unsupported evidence request into a typed handoff to the capability-matched repository engineering Agent. A second configuration/source problem then exposed only the finance research Agent in the handoff directory, so the repair request was routed to the wrong responsibility lane.
Reproduction
Bind a Lark Goal Topic to a Goal with two registered Agents: a research Agent and a steward engineering Agent.
Ask the manager why a concrete LoopX PR preserves a compatibility behavior, using only #<number> in the message.
Ensure that PR has no exact Core Todo/delivery evidence row in the authorized manager projection.
Observe the manager Turn.
Observed on LoopX 1.0.3:
manager.context was healthy but intentionally partial (complete=false);
the model issued six successful loopx_manager_read calls over finance and LoopX-meta Todos/deliveries;
no repository/PR evidence view or capability was available;
the final answer correctly disclosed that the PR body/diff was unavailable, but still offered an architecture inference rather than opening a typed evidence-acquisition handoff;
the follow-up repair was handed to the only projected candidate, finance-research-explorer, even though it was steward engineering work.
Root-cause allocation
Manager behavior gap: a concrete artifact question without exact evidence should not degrade into repeated broad pagination plus inference.
Product capability gap: the bounded manager read surface has no repository artifact view and no explicit evidence_unavailable -> capability-matched handoff route.
Configuration/source amplification: the delegation directory may be built from a stale/global projection and omit an Agent registered in the canonical Goal source. PR fix(configuration): preserve settings through canonical Goal source #4303 addresses that source-authority loss but does not by itself add the fallback policy.
Expected behavior
Keep the manager sandbox bounded: do not grant arbitrary shell, credentials, or unconstrained network access.
Resolve an explicit PR reference against the Goal's registered repository identity through one reviewed repository-evidence capability, or emit a typed unavailable result.
When evidence is unavailable locally, offer/perform an authorized context_handoff to the registered Agent whose responsibility/capability matches repository engineering.
Never select the sole visible Agent merely because it is the sole candidate; fail closed with a typed routing-gap receipt if no compatible receiver exists.
Return the acquired conclusion through the existing inbox/link/conclusion receipt path and original Lark conversation, without rerunning the original request.
Acceptance coverage
A fixture with two Agents and a PR-only question routes to the steward engineering Agent, not the research Agent.
An unavailable PR record emits a typed evidence gap and one handoff, not repeated unrelated pagination or an unsupported factual claim.
The receiving Agent's evidence link and conclusion return to the original Lark audience exactly once.
Negative tests prove the manager still cannot read arbitrary paths, use raw shell, widen Goal scope, or infer a receiver from list position.
Evidence boundary
The reproduction was derived from bounded local manager Turn receipts: one healthy manager context, six successful Core reads, no tool/provider errors, and no PR/repository read tool in the advertised schema. Private message bodies and workspace paths are intentionally omitted.
Summary
The Lark manager can receive a question about a concrete pull request in a repository connected to an authorized Goal, but its bounded read tool exposes only
sources,portfolio,todos,deliveries, andhandoffs. If the PR was not previously materialized into a Core Todo/delivery record, the manager cannot inspect the PR body or diff. In the observed incident it paginated unrelated Goal records, then answered from the user's quoted sentence while saying it could not obtain the PR record.This is not a transient GitHub/network failure. The current manager contract intentionally says arbitrary external links are not fetched and grants no shell. The product gap is that the manager did not convert the unsupported evidence request into a typed handoff to the capability-matched repository engineering Agent. A second configuration/source problem then exposed only the finance research Agent in the handoff directory, so the repair request was routed to the wrong responsibility lane.
Reproduction
#<number>in the message.Observed on LoopX 1.0.3:
manager.contextwas healthy but intentionally partial (complete=false);loopx_manager_readcalls over finance and LoopX-meta Todos/deliveries;finance-research-explorer, even though it was steward engineering work.Root-cause allocation
evidence_unavailable -> capability-matched handoffroute.Expected behavior
context_handoffto the registered Agent whose responsibility/capability matches repository engineering.Acceptance coverage
Evidence boundary
The reproduction was derived from bounded local manager Turn receipts: one healthy manager context, six successful Core reads, no tool/provider errors, and no PR/repository read tool in the advertised schema. Private message bodies and workspace paths are intentionally omitted.