Repository navigation
v0.7.0 fix: avoid full catalogue reload for product publication - #6
Open
herefindalex wants to merge 1 commit into
Open
herefindalex wants to merge 1 commit into
herefindalex wants to merge 1 commit into
Conversation
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.
Summary
Publishing each Product reloaded and revalidated every active publication, then rebuilt catalogue-wide machine output and the spec-search digest. Installing the sample catalogue therefore repeated database and filesystem work for previously admitted Products.
Install Product visibility through bounded Product/history reads and validate only the changed immutable unit. Preserve synchronous route/revision activation and shared-asset authorization. Pre-generate machine output and refresh the spec digest once per bounded worker batch outside the admission gate; reconcile durable dependencies after convergence. Startup and Website activation continue to verify the full publication set.
Performance evidence
Paired Linux/amd64 runs of the existing actual-worker benchmark, using SQLite, 200 Products and 1,000 intents:
Elapsed decreased 62.4%. Both runs verified 200 activations, completed queues, public revisions, complete units and search results. This is one run per revision with randomized fixture identities; it is not a Windows runtime or 1,020-Product benchmark. Copy-on-write maps still have catalogue-size cost.
Machine endpoints can return 503 between a Product change and aggregate consolidation. Core Product access remains available after activation; invalidated aggregates cannot expose revoked content.
Validation
go vet, license policy and four-platform cross-builds.0e02f27701c617e742c5cf621e09571ce524c07c, including frontend/embedded assets and deterministic sample data.Independent review's spec-refresh convergence finding is resolved and re-reviewed. Windows is cross-compiled, with native runtime verification outstanding. This PR is ready for Thomas to review and merge; no tag or release is created by this change.
Documentation
No documentation files changed under the source-only contribution scope. Operational caveat: Sitemap, robots.txt, llms.txt and catalog aggregate endpoints may temporarily return HTTP 503 while machine output is regenerated after Product visibility changes. Product activation and revocation retain their atomic visibility boundary. The three operations guides should document this temporary response in follow-up documentation.