Fix install

This commit is contained in:
2026-01-16 17:26:22 +00:00
parent 07240d1268
commit df631eec9e

View File

@@ -25,8 +25,9 @@ class InstalledRepo:
url: str
domains: list[str]
installed_at: int
installed_version: str | None = None
ref: str | None = None
installed_version: str | None = None # BCS "installed ref" (tag/release/branch)
installed_manifest_version: str | None = None # informational only
ref: str | None = None # kept for backward compatibility / diagnostics
class BCSStorage:
@@ -110,13 +111,24 @@ class BCSStorage:
domains = []
domains = [str(d) for d in domains if str(d).strip()]
installed_version = entry.get("installed_version")
ref = entry.get("ref")
# Backward compatibility:
# If installed_version wasn't stored, fall back to ref.
if (not installed_version) and ref:
installed_version = ref
installed_manifest_version = entry.get("installed_manifest_version")
return InstalledRepo(
repo_id=str(entry.get("repo_id") or repo_id),
url=str(entry.get("url") or ""),
domains=domains,
installed_at=int(entry.get("installed_at") or 0),
installed_version=str(entry.get("installed_version")) if entry.get("installed_version") else None,
ref=str(entry.get("ref")) if entry.get("ref") else None,
installed_version=str(installed_version) if installed_version else None,
installed_manifest_version=str(installed_manifest_version) if installed_manifest_version else None,
ref=str(ref) if ref else None,
)
except Exception:
return None
@@ -127,8 +139,8 @@ class BCSStorage:
out: list[InstalledRepo] = []
if not isinstance(installed, dict):
return out
for repo_id in list(installed.keys()):
item = await self.get_installed_repo(str(repo_id))
for rid in list(installed.keys()):
item = await self.get_installed_repo(str(rid))
if item:
out.append(item)
return out
@@ -140,6 +152,7 @@ class BCSStorage:
url: str,
domains: list[str],
installed_version: str | None,
installed_manifest_version: str | None = None,
ref: str | None,
) -> None:
data = await self._load()
@@ -153,7 +166,11 @@ class BCSStorage:
"url": str(url),
"domains": [str(d) for d in (domains or []) if str(d).strip()],
"installed_at": int(time.time()),
# IMPORTANT: this is what BCS uses as "installed version" (ref/tag/branch)
"installed_version": installed_version,
# informational only
"installed_manifest_version": installed_manifest_version,
# keep ref too (debug/backward compatibility)
"ref": ref,
}
await self._save(data)