Skip to content

feat(gateway): songs/images survive the caller restarting; GET /v1/result/{id}; v0.2.91 - #188

Merged
ralyodio merged 2 commits into
masterfrom
feat/detached-results
Nov 9, 2026
Merged

ralyodio merged 2 commits into
masterfrom
feat/detached-results

Conversation

@ralyodio

@ralyodio ralyodio commented Nov 9, 2026

Copy link
Copy Markdown
Collaborator

When a request to /v1/music or /v1/images carries an x-request-id, the job now runs in a detached task that holds its queue slot to the end. A dropped connection no longer cancels it. On 2026-11-09, infernetprotocol.com redeploys cut every song in flight three times in 20 minutes.

The finished result is kept for 30 minutes (at most 48 entries). GET /v1/result/{id} returns:

  • 200 with the bytes when the job is finished,
  • 202 with live progress while it's still running,
  • 404 for an unknown or expired id.

Infernet's follow-up PR uses this to pick a song back up after it restarts.

Checks: clippy is clean. c0mpute-core lib tests pass 359 of 359, including a new result-store test.

Bumps the version to v0.2.90.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

ThreatCrush Security Scan

13 finding(s)

HIGH/CRITICAL: 1 | MEDIUM: 8 | LOW: 4

Severity Rule Location
HIGH js-ssrf-outbound-request apps/web/public/sw.js:24
MEDIUM js-unescaped-html-sink apps/web/src/app/blog/[slug]/page.tsx:53
MEDIUM js-unescaped-html-sink apps/web/src/app/layout.tsx:80
MEDIUM sh-remote-script-execution scripts/dev-setup.sh:25
MEDIUM sh-eval-expansion scripts/dev-setup.sh:35
MEDIUM sh-remote-script-execution scripts/install.sh:181
MEDIUM sh-remote-script-execution scripts/install.sh:206
MEDIUM sh-remote-script-execution scripts/install.sh:324
MEDIUM sh-remote-script-execution scripts/install.sh:366
LOW py-ssrf-outbound-request examples/business-strategist-agent/chat.py:37
LOW py-ssrf-outbound-request examples/business-strategist-agent/train.py:54
LOW secret-generic-credential node/crates/c0mpute-core/src/webhook.rs:1165
LOW py-path-traversal node/crates/c0mpute-core/tests/fixtures/fake-infernet-text:29

Snippets are redacted; ThreatCrush never prints matched credential material.

ralyodio and others added 2 commits November 9, 2026 08:33
…1/result/{id}; v0.2.90

With an x-request-id, /v1/music and /v1/images now run the job in a
detached task that holds its queue slot to the end: a dropped connection
(infernetprotocol.com redeploys cut every song in flight three times in
20 minutes on 2026-11-09) no longer cancels the job. The finished result is
kept 30 min (bounded, 48 entries) and GET /v1/result/{id} returns it (200),
its live progress while it runs (202) or 404.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ralyodio ralyodio changed the title feat(gateway): songs/images survive the caller restarting; GET /v1/result/{id}; v0.2.90 feat(gateway): songs/images survive the caller restarting; GET /v1/result/{id}; v0.2.91 Nov 9, 2026
@ralyodio
ralyodio merged commit a638db3 into master Nov 9, 2026
13 of 14 checks passed
@ralyodio
ralyodio deleted the feat/detached-results branch November 9, 2026 08:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant