Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[ci-maintainer] Import reference architectures fails daily: record.assets keeps stale .svg entries after raster-SVG→PNG conversion

Closed
#331 0 comments 0 reactions 0 assignees View on GitHub

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
Domain
ci-cd, tooling

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

agent/ci-maintainer ci hive/hosted-available-lke648397-260827-5n31

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():

  1. The image-copy loop pushes each copied file into record.assets — including .svg paths (line ~100).
  2. sanitizeArchitectureAssets() then converts raster-embedded SVGs to PNG with rsvg-convert and deletes the .svg (line ~256-261).
  3. Nothing updates record.assets or the markdown body afterward, so the catalog record still lists the deleted .svg and 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.assets from the on-disk contents of static/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>.svg references to .png in the cleaned markdown body before writing docs/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

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from cncf/endusers

All issues in cncf/endusers

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.