Repository navigation
Resolve the launch's immutable base SHA vector and pin every participant - #1093
Merged
Merged
Conversation
At launch each cloneable repo's tip commit is resolved ONCE over the same git transport the clones use (git ls-remote with the same URL/credential), frozen into the definition snapshot as the agent node's pinnedSha (primary + per related entry), and honored by the existing PinnedSha substrate at clone time — so the planner, the grounded plan reviewer, and every agent the run dispatches materialize the SAME base even when the remote advances mid-run. Session-soft refs stay unpinned (their branch-or-default disjunction cannot be one commit); URL-less repos stay unpinned; a missing hard ref or unreachable remote fails the launch loud.
- git ships in the API image (the one sanctioned synchronous use: read-only ls-remote at launch); a missing binary now names the topology bug - WorkspaceException maps to 422 with the operator-actionable message - an IMPLICIT default branch the remote lacks (empty/new repo, stale record) launches unpinned; only authored refs fail loud - ls-remote lines matched by EXACT full ref name (patterns are tail-glob); 15s timeout on the synchronous path; sha256 OIDs accepted; stored-URL userinfo stripped from error messages - pinned clones stay SHALLOW when the pin is the fetched tip, deepening only when the tip advanced (fetch-by-sha, then unshallow) — the common launch pays nothing over the pre-S1 clone - the vector resolves only for projections that consume it (single-agent + plan-map); the supervisor lane is threaded in the follow-up
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
git ls-remotewith the same URL/credential —RemoteTipResolver), frozen into the definition snapshot as the agent node'spinnedSha(primary + per related entry), and honored by the existing PinnedSha substrate (Add the immutable-base pin substrate to workspace provisioning #1086) at clone time — the planner, the grounded plan reviewer, and every agent the run dispatches materialize the SAME base even when the remote advances mid-runLaunchBasePinResolver): the primary pins at the operator'sBaseBranch(else the default branch), related repos at their authored refs; session-soft refs stay unpinned (their branch-or-default disjunction cannot be one commit), URL-less repos stay unpinned; a missing AUTHORED ref or unreachable remote fails the launch loud (422workspace_unresolvable), while a missing IMPLICIT default (empty/new repo, stale record) launches unpinnedPlannerConfig → PlanAuthorNode → WorkflowPlanRequest → CriticPlannerDecorator → PlanReviewRequest → AgentReviewSpec), closing the review-tree-vs-execution-tree driftTest plan
LaunchBasePinFlowTests(7): freeze-at-launch vs advanced tip, operator-BaseBranch pin, missing-BaseBranch loud, URL-less unpinned, session-continue unpinned, empty-remote unpinned, deep-lane gate; zero regressions--is-shallow-repositorytrueFollow-ups (named, non-blocking)
referenceparam onIRepoGroundingProviderlands with S2 (its first real consumer)