Repository navigation
List releases published only as a Hugging Face tag in the release picker - #258
Merged
Merged
Conversation
Microcosm can publish a release as a tag alone: releases/<release id>/ exists at the tag's commit and never on main. The calibration tree publisher already publishes these from their tags, but the release list reads folders on main plus only those manifest builds stored under another folder, so such releases have a tree and no entry in the release picker. The same applies to a folder on main that lacks calibration diagnostics while its tag has them. These tests fail until the dashboard manifest reader receives the folder listing and returns the manifest releases it does not name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The release list read releases/ folders on Hugging Face main and added only the dashboard manifest's builds stored under another folder. Microcosm publishes candidate releases with --no-latest --tag-only, which writes releases/<release id>/ at the tag's commit and never on main, so their published calibration trees had no picker entry. For the US that is populace-us-2024-spm-receipts-20260923, populace-us-2024-0fb05b6-4b57d15a287c-20260930T150401Z and populace-us-2024-buildo-acs-local-766b7c7-20261017T030317Z. - loadPublishedCutReleases now receives the folder listing and returns every manifest release build it does not name: cuts as before, plus builds whose folder is not a calibrated folder on main, which matches how the publisher enumerates tags. - The releases route and the staging comparison's newest local-area release pass the folder listing in. - mergeReleaseInventory lists each release once: a folder on main without calibration diagnostics gives way to the published build of that release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Comments only: name Microcosm's per-attempt release tags and their shared release folder directly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The dashboard manifest keeps the build published from a release series' shared folder (microcosm-uk-2024-25-national) before the series had per-attempt tags. loadPublishedCutReleases now returns any release build whose folder is not a calibrated folder on main, so if that folder's copy on main lacks calibration_diagnostics.json the shared folder build is returned, and mergeReleaseInventory lists it beside the series' tags. The shared folder should leave the picker once the tags are listed, unless the dashboard's latest release points at it. This test fails until mergeReleaseInventory applies that rule to manifest builds as well as to folders on main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mergeReleaseInventory hid a release series' shared folder only when it came from the folder listing on main. loadPublishedCutReleases now also returns the shared folder's own published build when the folder's copy on main has no calibration diagnostics, and that build was listed beside the series' per-attempt tags. The same rule now applies to both sources: the shared folder leaves the picker once its tags are listed, unless the dashboard's latest release points at it, and it is then listed once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
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.
Fixes #257
What changes
The release list (
/api/microcosm/releases) now includes every release build in the dashboard manifest that thereleases/folder listing on Hugging Facemaincannot name. Before, it added only builds stored under a different folder (releaseDirectory≠releaseId), so releases Microcosm publishes with--no-latest --tag-only(folder present only at the tag's commit) had a published tree and no Release picker entry.loadPublishedCutReleases(revalidate, country, manifest, folders)takes the folder listing and returns builds whose folder differs from their release id (as before) plus builds that are not a calibrated folder onmain. This is the same rule the tree publisher uses when it enumerates tags (enumerateReleaseCandidatesskips a tag whose calibrated folder is onmain). It setsrelease_directoryonly when the folder differs from the release id.newestPublishedLocalAreaRelease) passes the listing too, so both readers use the same set of releases. This changes nothing in production today: only the UK registers local-area Staging pipelines (staging.local_area_pipelines), and the new rule adds no UK local-area release build. The US registers none, so US Staging candidates are still compared with the current release,populace-us-2024-spm-20260915. If the US registers a local-area pipeline later, its newest published local-area release ispopulace-us-2024-buildo-acs-local-766b7c7-20261017T030317Z.mergeReleaseInventorylists each release once: a folder onmainwithout calibration diagnostics gives way to the published build of the same release. A release series' shared folder (the UK'smicrocosm-uk-2024-25-national) leaves the picker once that series' per-attempt tags are listed, unless the dashboard's latest release points at it, whether it comes from the folder listing or from its own manifest build.latest_release_id,default_release_idandupdated_atare unchanged. They still come from the manifest'slatestReleaseBuildArtifactId(populace-us-2024-spm-20260915, matchinglatest.jsonon Hugging Facemain).Effect on production data (2026-10-21)
all_releases29)populace-us-2024-spm-receipts-20260923,populace-us-2024-0fb05b6-4b57d15a287c-20260930T150401Z,populace-us-2024-buildo-acs-local-766b7c7-20261017T030317Z(all tag-only)all_releases32)microcosm-uk-2024-25-national: the shared folder build for that release series, hidden on purpose once its tagged builds are listedmainholdsThe two national tag-only releases (
spm-receipts,0fb05b6) are listed without the " · non-default" suffix. That suffix reflects the release manifest's dataset role, not whetherlatest.jsonnames the release: both manifests set nodataset_roleand setdefault_datasets.national, like the older national releases onmain(for examplepopulace-us-2024-spm-20260909).766b7c7is labelled " · local area · experimental".Tests
ff967c9adds only the tests. They fail onmain:loadPublishedCutReleasesreturns[]for a manifest with a tag-only build and an uncalibrated folder's build, and the route calls it without the folder listing (86 pass, 2 fail across the two files).09f35c0is the fix (88 pass in the two files).19949b7rewords the new code comments only.c97a330adds only a test (88 pass, 1 fail in the two files);f310332is the fix. Onf310332:bun test app/api/microcosm/releases/route.test.ts packages/calibration-tree/src/latest-artifact.test.ts: 89 pass, 0 failbun testinpackages/calibration-tree: 375 pass, 0 failbun test app/api/microcosm/staging/compare/route.test.ts lib/microcosm/reviewed-repository-import.test.ts: 5 pass, 0 failbun run lint(tsc --noEmitfor the app and the package): cleanmain(7537692, no conflicts): the two changed test files and the staging compare route test, 93 pass, 0 fail;bun run lintclean.Overlap with #241
Draft #241 rewrites the same route and both
loadPublishedCutReleasescalls. A trial merge conflicts inroute.ts,route.test.tsandstaging-artifact.ts;latest-artifact.tsmerges cleanly. In #241 the UK readsreleases.jsoninstead, but the US and Belgium still use the folder listing plusloadPublishedCutReleases(folderInventory), so this fix is still needed afterwards.Whichever merges second must:
folderInventory, read the folder listing first (in parallel with the manifest) and pass it as the fourth argument toloadPublishedCutReleases; keep the manifest-unavailable fallback to the folder listing;stagingBaselineReleases, do the same before callingloadPublishedCutReleases;releaseLayout,loadRecordedReleases).If this PR merges first,
tscfails on #241's two three-argument calls, becausefoldersis a required parameter.Review
microcosm-uk-2024-25-nationalwould have been listed as a sixth UK release if that folder's copy onmainlackedcalibration_diagnostics.json. Onmainit stays hidden in that case.mergeReleaseInventorynow applies the shared-folder rule to manifest builds as well as to folders (c97a330test,f310332fix). Production is not known to be affected: the UK repository is private, so its folder listing could not be checked.releases/folders onmain(29; one page, noLinkheader). The new rule adds exactly the three tag-only releases, each once.🤖 Generated with Claude Code