Skip to content

Install VI Snapshots 2.0 in every repository - #68

Open
elijah286 wants to merge 1 commit into
mainfrom
fix/snapshots-2-always-installed
Open

elijah286 wants to merge 1 commit into
mainfrom
fix/snapshots-2-always-installed

Conversation

@elijah286

Copy link
Copy Markdown
Collaborator

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, no vi-snapshots-json-windows.yml anywhere in the repo.

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" (effectiveValues), install.py --update (via prev), and reconfigure.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-2 is the first. New top-level retiredFiles block.
  • install.py — required_activities() forces required ids into resolve_activities() and default_activities(), so any install, update, or explicit --activities list heals. New prune_retired_files().
  • integrate.html — required capabilities render checked, disabled and badged Always installed; forced through resolveActivities() and unioned into effectiveValues() 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 is planned/experimental/defaultOff, or if a retiredFiles path still exists in source or is still installed by the catalog.

Why retiring build-toimages-image.yml is part of this change

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.

Verification

Against a copy of mini-system-manager's real manifest:

activities: dashboard, masscompile, vi-analyzer, vidiff, snapshots, custom-image, unit-tests, antidoc, snapshots-2
prune (retired) .github/workflows/build-toimages-image.yml
Update complete: 183 new, 1 removed file(s) pruned.

vi-snapshots-json-windows.yml installed, manifest rewritten with snapshots-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.html is ahead of .github/pages/configure.html on main — it carries the explainDispatch404 "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

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>
@elijah286 elijah286 added the release:minor Publish this merge as a MINOR version bump (new capability) label Sep 4, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release:minor Publish this merge as a MINOR version bump (new capability)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant