[app/visualize] Bundled template loads Lucide from the network despite the no-network contract
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- PR merge metrics
- PR metrics pending
Description
Installed version
- Codex Desktop app: 26.810.41047, bundle 6570, macOS arm64
- Bundled Visualize plugin: 1.0.21
Reproduction
The installed Visualize skill says at line 481:
Never load Lucide or another icon library from the network.
Its bundled template at skills/visualize/assets/visualize.html line 225 contains:
<script id="codex-visualization-lucide" async src="https://unpkg.com/lucide@1.17.0/dist/umd/lucide.js"></script>
Lines 229-237 then wait for that network script before initializing icons. No local Lucide asset is bundled under the plugin.
Rendering the template therefore embeds an external unpkg dependency even though the normative skill contract explicitly forbids it. The generated document also requires a CSP exception for that host.
Expected behavior
Visualize output should work offline and under the documented no-network policy, using a sandbox-provided or locally bundled icon implementation.
Actual behavior
Icon rendering depends on a third-party network request. Offline use, a restrictive CSP, or unpkg availability can leave placeholders or missing icons.
Proposed narrow fix
Bundle the pinned icon code with the plugin or use the documented sandbox-provided global. Remove the remote script and its CSP allowance. If network loading is intentionally required, change the skill contract explicitly rather than contradicting it.
Acceptance test
- Render a fixture with icons while network access is disabled.
- Assert the output has no external Lucide URL.
- Assert icon initialization completes and visible icons are present.
- Add a static check that bundled Visualize assets do not reference unpkg or another remote icon CDN.
This report does not request editing the managed cache; the fix belongs in the upstream bundle/package source.
Contributor 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.
Research direction
Start with skills/visualize/assets/visualize.html around lines 225 and 229-237, then locate the upstream bundle or package source rather than editing the managed cache. Check how the icon initialization is loaded and run the acceptance checks: offline rendering, no external Lucide URL, visible icons, and no remote icon CDN references in bundled assets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- html, javascript
- Domain
- devtools, frontend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100