Tags: git-pkgs/proxy
Tags
Polish UI: lucide icons, sticky footer, hamburger nav, clickable logo (… …#162) - Move third-party JS into static/vendor/ and add lucide for icons; refine .gitignore so embedded vendor dirs aren't caught by the Go vendor rule. - Replace folder/file emojis in the source browser with lucide icons. - Wrap the header logo and title in a single anchor so the icon is clickable. - Drop the redundant "Powered by git-pkgs" footer block; add a GitHub repo link to the About column and bump the ecosystem count from 16+ to 17+. - Sticky footer pattern: body is min-h-full flex column with main growing to fill, so the footer sits at the bottom of short pages. - Hamburger menu under md: search and nav links collapse into a drawer toggled by a menu button; theme toggle stays visible at both sizes.
Verify cached artifacts on read (#111) checkCache opened the storage reader and streamed it to the client without checking that the bytes still matched what was originally stored, or what the upstream registry declared. Disk corruption, accidental overwrites, or local tampering would go unnoticed. Wrap the storage reader in a verifyingReader that computes SHA256 (against artifact.content_hash) and, when version.integrity holds an SRI string, the corresponding sha256/384/512 digest as bytes flow through. At EOF the digests are compared; on mismatch we log at error level, bump proxy_integrity_failures_total, and clear the artifact's cache entry so the next request refetches from upstream. Verification is skipped when the stream was not fully consumed (client disconnect) to avoid evicting good artifacts on partial reads. The DirectServe presigned-URL path is unverified since the proxy never sees those bytes. Refs #42 (part 1)