fix(app-repo): fetch the v2 channels — the parser was being fed a v1 file set - #80
Merged
Merged
Conversation
…file set
fetchRepoFiles() only ever fetched the descriptor, manifest and schemas/. The
serializer emits data-registers/, connectors/, automations/ and skills/, and the
parser knows how to read them — but nothing fetched them, so a v2 repository
installed as if it carried nothing but a manifest, and reported success.
Caught by round-tripping the real published artefacts, not by tests:
buildiq-spectr fetched 2 files -> 0 data-registers, 0 connectors
(the repository holds 46 blobs)
buildiq-hydra fetched 2 files -> 0 skills
(the repository holds 748 blobs, 94 skills)
After the fix:
buildiq-spectr 45 files -> dataRegisters 1, connector kinds 4
buildiq-hydra 746 files -> dataRegisters 1, skills 94
Uses ONE recursive tree call rather than a contents walk per directory: a v2
artefact can carry ~750 blobs and per-directory listing would multiply round
trips before a single file is read. Bounded at 2048 with truncation LOGGED — an
install that quietly drops half an app is the exact failure this format exists
to prevent.
Contributor
Quality Report — ConductionNL/openbuild @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ❌ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 659/659 | |||
| PHPUnit | ⏭️ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Quality workflow — 2026-08-01 19:13 UTC
Download the full PDF report from the workflow artifacts.
… shape phpstan level 5 rejects reading $connectors['missingCount'] at line 185 because the annotation never declared it — although both the real return and the $empty early-return have always contained it. The docblock was the thing that was wrong. Pre-existing on development, not introduced here: this PR touches only GitHubCatalogService. It surfaced because openbuild has no vendor/ checked out, so the local gate suite never runs phpstan and CI is the first place it fires.
Contributor
Quality Report — ConductionNL/openbuild @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 659/659 | |||
| PHPUnit | ✅ | ||||
| Newman | ⏭️ | ||||
| Playwright | ⏭️ |
Coverage: 89.4% (17/19 statements)
Quality workflow — 2026-08-01 19:21 UTC
Download the full PDF report from the workflow artifacts.
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.
Caught by round-tripping the real published artefacts, not by tests.
The gap
fetchRepoFiles()only ever fetched the descriptor, manifest andschemas/. The serializer emitsdata-registers/,connectors/,automations/andskills/, and the parser knows how to read them — but nothing fetched them. So a v2 repository installed as if it carried nothing but a manifest, and reported success.buildiq-spectr(46 blobs)buildiq-hydra(748 blobs, 94 skills)This is the third instance of one structural pattern in this workstream: one half of a round trip extended, the other left behind. Publish looked perfect from the publish side every time.
Implementation notes
..are skipped; the parser re-validates independentlyVerification