Monorepo for Tangled tangled.org

knot: clone by the new name 404s when the registry missed the rename #4756

Open duskyelf.com
Open opened by duskyelf.com

After renaming my repo I can't clone it with the new name. The old name works fine.

^ the discord message

$ git clone duskyelf.com@tangled.org:r0chd.pl/wren
Cloning into 'wren'...
knot: repository not found
fatal: Could not read from remote repository.

This repo is r0chd.pl/wren, renamed from r0chd.pl/wisp. The appview resolves the new name, so the web page works. knot1's own registry still only knows r0chd.pl/wisp, so clones by name have to use r0chd.pl/wisp. Cloning by the repo DID still works: git@tangled.org:did:plc:ifzzucji4u26fi6zbytvcvgc.

GET https://knot1.tangled.sh/did:plc:fnisooa4grtasycojol44ezq/wren/info/refs?service=git-upload-pack  -> 404
GET https://knot1.tangled.sh/did:plc:fnisooa4grtasycojol44ezq/wisp/info/refs?service=git-upload-pack  -> 200

The other four repos on the account have the same problem: apogee, sessiond-seatd, sessiond-hooks and libudev-zero-rs.

investigation ... #

knot1 switched to knot-rs on 2026-07-28 (infra 2015030), one day after knot2 landed in the monorepo (b98ef54e0). The knot had no manifest surface to receive a rename until 2026-10-13 (0ca4b20cf), and the web only started writing the manifest on rename on 2026-10-19 (146b8d529), so every rename in between only changed the appview. On this account the last rename the registry kept is 2026-07-18 and the first it missed is 2026-08-01.

The manifests say the right name because the one-time 2026-10-28 foster pull wrote them (lib.rs:513), not a settings save. That pull copies cobs and reconciles the chain without a rename (handover.rs:1187), and the five manifests here each have one version written that day. Boot only reconciles policy (materialize.rs:135).

A possible fix? #

Reconcile declaration.name with the registry at boot, next to reconcile_policy, and keep the old name as the alias

Sign up or Sign in to add to the discussion.