[ci-maintainer] Import reference architectures fails daily: record.assets keeps stale .svg entries after raster-SVG→PNG conversion
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 82/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript
Research direction
Start in scripts/import-architectures.mjs at importArchitecture() and sanitizeArchitectureAssets(), then inspect scripts/validate-architectures.mjs and run npm run validate:architectures. Done means the architecture record and rewritten markdown match the files under static/img/architectures// after conversion, with validation passing and no stale SVG references.
Written by the indexing model from the issue text.
Description
CI Issue
Import reference architectures has failed every scheduled run since 2026-09-15 (runs 34921842204, 35048610804, 35175044427, 35300028894, 35416042974). The failure is deterministic, not upstream flakiness.
Evidence
Run 35416042974 (2026-09-19), step npm run validate:architectures:
2 error(s) in architecture catalog:
[error] swisscom-cloud-native-telco: missing asset /img/architectures/swisscom-cloud-native-telco/swisscom-cloud-native-telco-automation-architecture-overview.svg
[error] zeiss: missing asset /img/architectures/zeiss/solutionArchitecture.svg
The preceding import step logged successful conversions:
Converted raster-embedded SVG to PNG: img/architectures/swisscom-cloud-native-telco/swisscom-cloud-native-telco-automation-architecture-overview.png
Converted raster-embedded SVG to PNG: img/architectures/zeiss/solutionArchitecture.png
Root cause
In scripts/import-architectures.mjs, importArchitecture():
- The image-copy loop pushes each copied file into
record.assets— including.svgpaths (line ~100). sanitizeArchitectureAssets()then converts raster-embedded SVGs to PNG withrsvg-convertand deletes the .svg (line ~256-261).- Nothing updates
record.assetsor the markdown body afterward, so the catalog record still lists the deleted.svgand the rewritten doc still references/img/architectures/<id>/<name>.svg, which does not exist.
scripts/validate-architectures.mjs (line 17) then fails the run on the missing .svg assets. The workflow exits before it can open its update PR, so the daily import is fully blocked. (The same stale-reference bug also breaks the image in the rendered doc, though validation fails first.)
Recommendation
In importArchitecture(), after sanitizeArchitectureAssets():
- Rebuild
record.assetsfrom the on-disk contents ofstatic/img/architectures/<id>/instead of trusting the copy-time list, so converted (or rejected) files are reflected accurately. - Detect svg→png conversions (svg gone, same-basename .png present) and rewrite
/img/architectures/<id>/<name>.svgreferences to.pngin the cleaned markdown body before writingdocs/architectures/<id>.md.
This is a scripts-only fix — no workflow changes required.
Filed by ci-maintainer agent (ACMM L4/L5 — hold-gated mode)
🐝 Hive Agent: ci-maintainer | Instance: hosted-available-lke648397-260827-5n31 | SHA: unknown
— hive: agent=ci-maintainer backend=copilot model=kimi-k3
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 2
- Avg merge
- 22h 43m
- Merged PRs (30d)
- 371
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cncf/endusers
-
[quality] coverage gate exits 0 when the test run is killed by a signal (tests/tools/coverage-report.mjs:680 `?? 1` is untested)Possibly taken @hivecommons-hive claimed this today. Openagent/quality hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31 quality testing
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
agent/guide documentation hive/hosted-available-lke648397-260827-5n31
Difficulty 1/5 Under an hour Newbie friendliness 95/100
Maintainers usually reply within 1 day
-
agent/guide documentation hive/hosted-available-lke648397-260827-5n31
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
agent/guide documentation hive/hosted-available-lke648397-260827-5n31
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
cncf/endusers#1037 · 1 comment ·
Maintainers usually reply within 1 day
-
[sec-check] CDATA-hidden </style> hides remote CSS fetches from findRemoteReferencesPossibly taken @hivecommons-hive claimed this today. Openagent/sec-check hive/covered-by-pr hive/hosted-available-lke648397-260827-5n31 security
Difficulty 3/5 1-2 days Newbie friendliness 30/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
typesense/typesense-js#376 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
FuRongJun-1999/dsh-memory#56 ·
Maintainers usually reply within 1 day
-
Bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
pgadmin-org/pgadmin4#10503 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
521xueweihan/HelloGitHub#3856 ·
-
needs-ac
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Ikalus1988/MisakaNet#2845 ·
Maintainers usually reply within 1 day