bin/seed: createdFrom records the API endpoint it was invoked over — an ephemeral port-forward URL costs daughters the tier-1 fork + full genealogy at depth #76
Labels
No labels
bug
discussion
duplicate
enhancement
goal
help wanted
horizon:backlog
horizon:governance
horizon:mvp
invalid
operator-decision
question
roadmap
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
open-platform/mitosis#76
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
What happened (depth-2 validation for #46)
Minted a granddaughter seed FROM a running daughter (
d2a, PORTS=none) the only way a PORTS=none parent can be reached — akubectl port-forwardon the host:The manifest recorded the invocation endpoint verbatim (
bin/seed:echo "createdFrom: $FORGEJO_URL"):Germinating granddaughter
d2bfrom that seed, the #70 fork chain behaved exactly as designed — and that design surfaced the fidelity gap. The parent was alive and the port-forward was up, so the HOST-side probe passed and germinate committed to tier-1; the migrate is performed by the daughter's Forgejo POD, for which127.0.0.1:3100is itself:d2b still came up whole (13/13 gate PASS — that is #70's fallback working as intended). The cost of losing tier-1 is genealogy, not availability:
plat/mitosisrecordsoriginal_url = https://git.open-platform.sh/plat/mitosis.git— the ROOT, not its actual parent d2a.d2a.local germinated-from open-platform.sh …) is absent, because only a tier-1 fork of the actual parent carries the parent's ORIGIN forward:So at depth >= 2, every seed minted over a port-forward (the standard way to reach a PORTS=none parent) silently downgrades daughters from tier-1 to tier-2/3 and truncates both the forge-level (
original_url) and plain-text (ORIGIN) genealogy to the root.Fix direction
bin/seedalready fetches the parent's durable identity —SEED_DOMAINfromreserved-names.yaml(bareDomain). Record a durable URL increatedFrominstead of the invocation endpoint:https://git.<SEED_DOMAIN>— the address a daughter's Forgejo pod would actually need to reach for repo-migrate (and the daughter-side[migrations] ALLOW_LOCALNETWORKSshim from #70 already tolerates LAN parents).$FORGEJO_URLonly whenSEED_DOMAINis UNKNOWN.createdFrom+createdVia) so operators still see how the seed was minted.germinateneeds no change: tier-1 probes createdFrom and falls through exactly as today; a durable createdFrom just makes tier-1 succeed whenever the parent is genuinely reachable.Evidence: depth-2 chain run on #46 (genesis -> d2a -> seed-d2.tar.gz -> d2b, vxrail, 2026-07-02; both clusters PORTS=none, torn down after).