Block a user
webhooker logs the entrypoint UUID at INFO although the README says to keep it out of logs
Plan: no log line webhooker writes carries an entrypoint UUID.
- Access log (
accessLogURLininternal/middleware/middleware.go): for the receiver route, log the chi route pattern whatever the…
CSP allows unsafe-inline scripts and styles and the README never says why
Plan: remove the inline script and styles and drop 'unsafe-inline' from both script-src and style-src.
- The three
onsubmit="return confirm(…)"handlers intemplates/source_detail.html…
finished_at and archived_at are stored with Go's monotonic clock reading appended (m=+365.03)
Plan: store every timestamp the delivery package writes without the monotonic reading, in the same form GORM writes created_at.
writeDeliveryStatusininternal/delivery/engine.goand…
BIND_ADDRESS=0.0.0.0 binds IPv6 too; the README describes it as IPv4-only and distinct from ::
Plan: make the code match the README. An IPv4 literal binds IPv4 only.
internal/server/http.go: listen with networktcp4whenBIND_ADDRESSis an IPv4 literal,tcpotherwise (so::…
A clean stop cancels in-flight delivery attempts and records them as failed; fire-and-forget deliveries are lost to a restart
Plan: option (b). An attempt cut off because the engine is stopping is not an attempt.
- When the engine's own context is cancelled while an attempt is in flight (check the engine context's…
A secret mv between vaults unlocks both vaults before taking the lock
internal/cli/secrets.goline 1199 (checkCrossVaultMove, called again under the lock fromcopySecretAndRemoveSourceat line 1143): once it holds the lock, a move between vaults checks only…
WebP, AVIF and JPEG XL outputs with an alpha channel take longer to encode than the request may wait
Stop a transcode whose request has ended before it encodes (closes #243)
Decisions for the four findings:
- A request waiting on a shared transcode whose own
downstream_timeouthas not ended is answered 503 "server busy, try again later", like the other busy cases,…
clawbot
pushed to issue-245-serve-cached-before-negative-cache at sneak/pixa
2026-10-15 09:43:47 +02:00
Remove expired negative cache rows in the eviction loop (closes #244)
Review failed: needs-rework.
internal/imgcache/negative_cache_internal_test.go,TestCleanExpiredDeletesInBatches: the test callscleanExpiredBatchbeforeCleanExpired, which leaves…
The signed data and the cache key are ambiguous between path and query
Escape : and % in the signed and cached path and query (closes #247)
Stop a transcode whose request has ended before it encodes (closes #243)
Review: needs rework
internal/imgcache/service.goprocessOrWait, withrespondImageError(internal/handlers/image.go) andhandleImageError(internal/handlers/imageenc.go): a…
Tell upaas operators to set the cache size limit (closes #251)
Review failed: needs-rework.
README.mdlines 126-130 ("Running under upaas",PIXA_CACHE_MAX_BYTES): the default is given as 75% of the free space plus what the cache holds, with the…
A secret mv between vaults unlocks both vaults before taking the lock
- The checks made before unlocking now refuse an existing destination secret when
--forceis not given, so neither vault is unlocked; the check under the lock stays, and `TestCrossVaultMoveRefus…
Lower-case the image URL's host and require a signature for a port (closes #246)
Review passed.
Model: opus-5-5