Repository navigation
Conversation
The VI Browser always shows a 2.0 tab, but VI Snapshots 2.0 was an optional capability, so a repository could carry the viewer with no render workflow behind it. Dispatching from the 2.0 panel then 404s and the viewer blames the token, which is never the real cause. The omission was self-perpetuating. Every path that touches an existing repo reads `activities` back out of .github/labview-ci.yml and reuses it: the configurator's "keep current settings", install.py --update via the prior manifest, and reconfigure.yml. A repository set up before the capability existed could never gain it, however many times it was updated. Capabilities can now be marked `required` in the catalog, and snapshots-2 is the first. required_activities() forces them into resolve_activities() and default_activities(), so any install, update, or explicit --activities list heals. The configurator renders them checked, locked and badged "Always installed", and unions them into effectiveValues() so keeping a prior manifest cannot carry the omission forward. Configure and reconfigure write them into the manifest they emit. Retiring build-toimages-image.yml is part of the same change rather than a tidy-up. It is a leftover from before the render engine was baked into the Linux worker, and its push filter is .github/labview/toimages/** -- installing 2.0 everywhere would hand it a valid build context and start a 90-minute image build in every repository still carrying it. It survives reinstalls because the configurator's stale scan matches tooling files by content signature and that file matches none of the markers, so the catalog now lists retired paths explicitly and installs delete them. Verified against a copy of elijah286/mini-system-manager's manifest: the update adds snapshots-2, installs vi-snapshots-json-windows.yml, and prunes the orphan. Catalog validator passes; both configurator scripts and the reconfigure step's embedded Python parse. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This branch has not been 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.
Why
The VI Browser always shows a 2.0 tab, but VI Snapshots 2.0 was an optional capability — so a repository could carry the viewer with no render workflow behind it. Dispatching from the 2.0 panel 404s, and the viewer reports
Token cannot see <repo>, or the workflow is not on the default branch, which is never the real cause.Found on
elijah286/mini-system-manager: installed at v4.18.2 today, novi-snapshots-json-windows.ymlanywhere in the repo.The omission was self-perpetuating. Every path that touches an existing repo reads
activitiesback out of.github/labview-ci.ymland reuses it — the configurator's "keep current settings" (effectiveValues),install.py --update(viaprev), andreconfigure.yml. A repository set up before the capability existed could never gain it, however many times it was updated.What changed
catalog.json— capabilities can be marked"required": true;snapshots-2is the first. New top-levelretiredFilesblock.install.py—required_activities()forces required ids intoresolve_activities()anddefault_activities(), so any install, update, or explicit--activitieslist heals. Newprune_retired_files().integrate.html— required capabilities render checked, disabled and badged Always installed; forced throughresolveActivities()and unioned intoeffectiveValues()so "keep current settings" can't carry the omission forward.configure.html/reconfigure.yml— union required ids into the manifest they write, so a stale manifest is corrected on save.validate-catalog-source-sync.py— fails if no capability is required, if a required one isplanned/experimental/defaultOff, or if aretiredFilespath still exists in source or is still installed by the catalog.Why retiring
build-toimages-image.ymlis part of this changeIt is a leftover from before the render engine was baked into the Linux worker, and its push filter is
.github/labview/toimages/**. Installing 2.0 everywhere would hand it a valid build context and start a 90-minute image build in every repository still carrying it. It survives reinstalls because the configurator's stale scan matches tooling files by content signature and that file matches none of the markers — so the catalog now lists retired paths explicitly and installs delete them.Verification
Against a copy of
mini-system-manager's real manifest:vi-snapshots-json-windows.ymlinstalled, manifest rewritten withsnapshots-2, orphan gone. A minimal fresh install (--activities dashboard,masscompile) also pulls it in. Catalog validator passes; both configurator scripts and the reconfigure step's embedded Python parse.Note on the twin pages
actions/dashboard/configure.htmlis ahead of.github/pages/configure.htmlonmain— it carries theexplainDispatch404"exists but unregistered" probe from #62 and the pages copy does not. This PR patches each file in place rather than copying one over the other, so that drift is preserved, but it is worth reconciling separately.🤖 Generated with Claude Code