chore(deps): update Crawlkit to v0.14.8 - #193
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. |
|
Codex review: needs maintainer review before merge. Reviewed August 31, 2026, 5:26 AM ET / 09:26 UTC. ClawSweeper reviewWhat this changesThe PR upgrades Crawlkit from v0.14.7 to v0.14.8 and documents the inherited 30-second timeout for Discrawl release-check requests. Merge readinessKeep open for normal merge review: the focused dependency update has source-connected terminal proof of the new bounded failure behavior and no blocking defect identified. Priority: P2 Review scores
Verification
How this fits togetherDiscrawl’s update-check command and passive terminal notice delegate GitHub release lookup to Crawlkit’s release-check package. A stalled release API request now returns a bounded error rather than waiting indefinitely. flowchart LR
A[Discrawl CLI] --> B[Release check command]
B --> C[Crawlkit release checker]
C --> D[GitHub release API]
D --> E[Update status or notice]
C --> F[30-second timeout error]
Before merge
Agent review detailsSecurityNone. Review metrics
Technical reviewBest possible solution: Merge the small Crawlkit patch update once the remaining required checks complete on this exact head, preserving the documented bounded timeout behavior. Do we have a high-confidence way to reproduce the issue? Yes: route Is this the best way to solve the issue? Yes: updating the shared release-check dependency addresses the behavior at its owning HTTP-client boundary without adding Discrawl-specific timeout wrappers or configuration. AGENTS.md: not found in the target repository. Codex review notes: model internal, reasoning high; reviewed against 1359f06f593b. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
Update Crawlkit from v0.14.7 to v0.14.8 so release-check HTTP requests time out after 30 seconds instead of hanging indefinitely. Document that inherited behavior in the changelog and installation guide; no Discrawl application code or CI assertions change.
Dependency audit:
GOWORK=off go get -u -t ./...andGOWORK=off go mod tidyupdated Crawlkit and regenerated go.sum. Every direct/indirect requirement in go.mod is now current within its module path. Go 1.27.0, pinned analysis tools, all GitHub Actions references (including CodeQL's action tags), and Docker image digests were already current. The selected module graph also inherits age v1.3.2 from Crawlkit; Discrawl does not import its backup package. No new direct dependencies.No major upgrade was taken. Defer Bubble Tea v2.0.9, Bubbles v2.2.1, and Lip Gloss v2.0.6: Crawlkit owns the shared TUI and still uses v1. Their v2 migration changes import paths, view types, and key/mouse APIs; migrate Crawlkit upstream first, then consume its release here. Upstream migration guide.
Validation on Go 1.27.0 / macOS arm64:
GOWORK=off go test -count=1 ./... -coverprofile=.discrawl/deps-refresh-20260830/coverage.out: pass; aggregate coverage 85.6%, above the unchanged 85% floor.GOWORK=off go test -count=1 -race ./...: pass for every package.make fmt lint,make tidy-check,make smoke, andactionlint: pass..agents/skills/autoreview/scripts/autoreview --engine codex --mode local: clean, no accepted/actionable findings. Reviewer could not fetch upstream source; the timeout was independently verified against the built binary below.Govulncheck reports zero affected symbols and zero affected imported packages. Its module-only advisory GO-2026-5932 concerns the unused, unmaintained
golang.org/x/crypto/openpgppackage, has no fixed version, and does not affect Discrawl's imported packages.Live proof used an isolated config with
token_source = "none", auto-update disabled, and a synthetic Desktop cache containing one guild message and one DM. These are actual command/output excerpts (paths shortened to a repo-relative shell variable):The terminal script launched
discrawl --config "$p/config.toml" tui --dm, waited for the imported text, sentq, and verified exit 0. No personal archive was read.For the behavioral change, a loopback HTTP proxy accepted
CONNECT api.github.com:443 HTTP/1.1and deliberately sent no response:A separate direct public GitHub lookup returned
github returned 403 Forbidden; response headers confirmedx-ratelimit-remaining: 0for the host's unauthenticated quota. This external check is recorded as blocked, not passing; no credentials or production settings were changed.CI reasoning: default-branch build/test CI was already green at 1359f06 (run 33373230652). The PR's build/test CI, Docker build, CodeQL analysis, and secret scan all passed at 328fa03. This PR retains all lint, coverage, race, module-verification, vulnerability, snapshot-build, and secret-scan gates. Docker and CodeQL are additional build/security workflows; backup publication/reports, stale triage, and ClawSweeper dispatch are scheduled or operational workflows, not substitutes for build/test CI. No workflow required a version or policy change.
Prepared for maintainer review; do not auto-merge.