Skip to content

test: isolate pricing and hosting E2E assumptions - #357

Merged
ralyodio merged 8 commits into
masterfrom
riotcoder/e2e-pricing-cap
Nov 12, 2026
Merged

ralyodio merged 8 commits into
masterfrom
riotcoder/e2e-pricing-cap

Conversation

@ralyodio

@ralyodio ralyodio commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

This PR repairs buyer-budget and LAN-isolation assumptions in loopback E2E tests exposed by the $0.001 node floor and dev2 test runs:

  • Set explicit $1 buyer caps in the container, inference, workflow, OCR, and render E2Es. Their previous zero-dollar caps correctly received no bids under the new node floor; production zero-cap defaults remain unchanged.
  • Disable mDNS in the container, inference, workflow, OCR, render, and hosting E2Es. On dev2, LAN discovery pulled live workers and real site traffic into local tests; these tests now stay on their loopback meshes.
  • Set C0MPUTE_DISABLE_MDNS=1 for the full Rust workspace test job so loopback tests cannot discover live LAN workers.
  • Make the hosting E2E establish and verify a complete loopback peer mesh before publishing, so Kademlia chunk-provider lookups do not depend on multicast discovery.

Verified locally:

  • C0MPUTE_REQUIRE_FUSE=1 cargo test --locked -p c0mpute-core --test container_run_e2e -- --nocapture — passed.
  • env -u C0MPUTE_INFERENCE_LIVE_URL cargo test --locked -p c0mpute-core --test inference_e2e -- --nocapture — passed.
  • cargo test --locked -p c0mpute-core --test hosting_e2e -- --nocapture — passed twice with mDNS disabled and the explicit mesh.

@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

ThreatCrush Security Scan

17 finding(s)

HIGH/CRITICAL: 1 | MEDIUM: 12 | 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:109
MEDIUM sql-template-interpolation apps/web/src/lib/chat/convo-store.ts:116
MEDIUM sql-template-interpolation apps/web/src/lib/chat/convo-store.ts:117
MEDIUM sql-template-interpolation apps/web/src/lib/chat/push.ts:476
MEDIUM js-dynamic-code-execution apps/web/src/lib/router/verify.ts:91
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:185
MEDIUM sh-remote-script-execution scripts/install.sh:210
MEDIUM sh-remote-script-execution scripts/install.sh:408
MEDIUM sh-remote-script-execution scripts/install.sh:450
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:1171
LOW py-path-traversal node/crates/c0mpute-core/tests/fixtures/fake-infernet-text:29

Snippets are redacted; ThreatCrush never prints matched credential material.

@ralyodio ralyodio changed the title test(container): set an explicit job price cap test: isolate pricing and hosting E2E assumptions Nov 12, 2026
sh1pt-actions-fleet Bot pushed a commit that referenced this pull request Nov 12, 2026
#355 made PricingConfig::default() carry a $0.001 minimum; the e2e workers
built with it stopped bidding on the buyers' zero caps (inference_e2e:
'no bids received within 2s'). Same fix shape as #357 for container_run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ralyodio added a commit that referenced this pull request Nov 12, 2026
* feat(chat): model router behind model "auto" (DIP 0035)

`model: "auto"` (or absent, or auto:fast|standard|high|max) now routes each
request: classify the task, score every live model for it (size/family
priors, house specialists, learned per-category quality, price, speed,
health), pick single / cascade / critique / fuse by expected quality, cost
and latency for the effort, run it with deterministic checks, escalation,
fallbacks and hedged requests, learn from the outcome, and return a receipt.

- lib/router: framework-free classify, registry, stats, planner, verify,
  engine; 20 tests
- lib/chat/routed.ts: Infernet calls billed per user, live pool + price
  cache, router_stats in SQLite Cloud, JSON/SSE responses, streamed
  pass-through that still learns; 6 tests
- /v1/chat/completions and resumable runs route; any router error falls
  back to the direct path; C0MPUTE_ROUTER=off disables
- POST /api/v1/route explains a plan for free; /v1/models lists auto entries;
  /chat picker offers auto:fast/high/max

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(container): set an explicit job price cap

* test(e2e): test workers keep a zero price floor after #355

#355 made PricingConfig::default() carry a $0.001 minimum; the e2e workers
built with it stopped bidding on the buyers' zero caps (inference_e2e:
'no bids received within 2s'). Same fix shape as #357 for container_run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@ralyodio
ralyodio merged commit 0b09feb into master Nov 12, 2026
12 checks passed
@ralyodio
ralyodio deleted the riotcoder/e2e-pricing-cap branch November 12, 2026 13:47
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