Name the input whose development home has no ref #15
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Meta/Campaign
Meta/Epic
Meta/Session
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Curated
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Scope/Campaign
Status/Abandoned
Status/Blocked
Status/Conflicted
Status/In Progress
Status/In Review
Status/Need Grooming
Status/Need More Info
Status/Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Ting/Jostoph!15
Loading…
Reference in a new issue
No description provided.
Delete branch "agent.teyla/fastlane-ref-probe"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #14.
assembleappends?ref={{ref}}to every manifest input unconditionally, so the manifest silently assumes every listed repo carries afastlanebranch. Some repos aremain-only by design, so the rule is really "leave those out" — an implicit rule, written nowhere, enforced by nothing, and when broken the failure names nothing useful:It fails the whole evaluation, in every repo declaring the input, mentioning neither fastlane nor this file nor the missing branch. This makes the seam say it, at the one moment the manifest is in hand and the cause is obvious.
+40 lines, one file, most of it the reasoning.
In scope
refbranch, warning on stderr with the input, the repo and the branch.Out of scope
flake_overriderunsassembleon everyjustin a wired repo. The refresh already pays a network cost once a day; the probe rides that and nothing else.ref, a[published]section). No input wants it — a repo consumed as published is not a development home, so the correct entry is no entry. Schema for a case with no instances is invented work.Boundary
This adds
gitto what the seam assumes, and it has deliberately assumed onlynuandjustbecause it ships everywhere. So the probe is best-effort by construction: no git, no key, no network → it says nothing and behaves exactly as before.What makes that safe is that
git ls-remote --exit-codedistinguishes the two failures, which I measured rather than assumed:02128BatchMode=yesso a passphrase prompt can never hang a build.The probe validates the default ref.
just ref=<other> assemblestays unvalidated and fails the old way — a cache cannot pre-validate every ref someone might pass.Acceptance
Ran, not reasoned. Test 1 is the real manifest; test 2 stubs only the
http getline (every other line is the shipped file) so a deliberately broken manifest could be fed in.jostoph-rs(main-only) →fastlane: jostoph-rs names ssh://[email protected]/lar.ad/jostoph-rs, which has nofastlanebranch — every repo declaring this input will fail to evaluate…, exit 0, flags still emitted. ✅diffagainst the output of the currentmaincopy: identical. ✅env -iwith a PATH containing onlyjustandnu(git provably absent — evenshwas not there): exit 0, empty stderr, correct flags. ✅Not run: the
ref=<other>path, which is out of scope above and unchanged.