Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Commit History
-
Retire hosted ML Intern web app (#363)
Unverified signature* Retire hosted ML Intern web app Replace the active Space UI with a HuggingChat migration notice and start a minimal status-only backend. Co-authored-by: OpenAI Codex <codex@openai.com> * Add retirement page preview Store the verified desktop screenshot for the pull request description. Co-authored-by: OpenAI Codex <codex@openai.com> * Cover retired static serving Exercise the retirement page mount in CI and document the hosted entrypoint separately from the rollback backend. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>b85312c
-
[codex] Switch defaults to GLM 5.2 (#333)
Unverified signature* Switch defaults to GLM 5.2 Co-authored-by: OpenAI Codex <codex@openai.com> * Rename default model alias Co-authored-by: OpenAI Codex <codex@openai.com> * Drop user threading from default model helper Co-authored-by: OpenAI Codex <codex@openai.com> * Track selected chat model by path Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>550a209 -
[codex] Harden agent prompt guidance (#331)
Unverified signature* Harden agent prompt guidance Co-authored-by: OpenAI Codex <codex@openai.com> * Handle streaming LLM read timeouts Co-authored-by: OpenAI Codex <codex@openai.com> * Address autonomous prompt review feedback Co-authored-by: OpenAI Codex <codex@openai.com> * Address prompt review comments Co-authored-by: OpenAI Codex <codex@openai.com> * Address reviewer feedback on prompt guidance Co-authored-by: OpenAI Codex <codex@openai.com> * Stop activation from resetting usage windows Co-authored-by: OpenAI Codex <codex@openai.com> * Harden ML dependency freshness guidance Co-authored-by: OpenAI Codex <codex@openai.com> * Constrain kernels dependency guidance Co-authored-by: OpenAI Codex <codex@openai.com> * Exclude T4 for flash attention kernels Co-authored-by: OpenAI Codex <codex@openai.com> * Use shell-safe kernels dependency spec Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>ece0775
-
Remove unused model provider metadata (#330)
Unverified signatureCo-authored-by: OpenAI Codex <codex@openai.com>13ff73d -
[codex] Update hosted web model defaults (#328)
Unverified signature* Update hosted web model defaults Co-authored-by: OpenAI Codex <codex@openai.com> * Pin hosted web models to Novita Co-authored-by: OpenAI Codex <codex@openai.com> * Use GLM as the free web default Co-authored-by: OpenAI Codex <codex@openai.com> * Use plan-aware model for LLM health check Co-authored-by: OpenAI Codex <codex@openai.com> * Refresh Kimi test fixtures Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>433a22b
-
Remove ~900 lines of dead code across agent, backend, and frontend (#318)
Unverified signature* Remove dead code across agent, backend, and frontend A vulture/knip audit with manual repo-wide verification found ~900 lines of dead code: - Delete agent/tools/private_hf_repo_tools.py (650 lines): disabled when hf_repo_files/hf_repo_git replaced it, never imported since. - Drop orphaned functions, constants, and type aliases across agent/ and backend/ (record_jobs_access_blocked, last_fetch_error, update_local_save_status, verify_session_access, OperationType aliases, OpType.INTERRUPT in both enums, etc.). - Trim unused Sandbox client surface (pause/restart/to_dict/ tool_definitions and unused constants); keep Sandbox.connect, which the live auth integration test uses. - Remove production code only its own tests kept alive: _needs_approval (tests retargeted to _base_needs_approval / production path), fetch_hf_user_plan, _cleanup_user_orphan_sandboxes (superseded by scripts/sweep_orphan_sandboxes.py), DEFAULT_MODEL_ID alias. - Drop unused boto3 dependency (still …7943555 -
Instrument dataset usage and billing analytics (#316)
Unverified signature* Instrument session usage analytics Add durable usage_metrics snapshots, backend HF billing refreshes, and shared dataset row usage columns. Co-authored-by: OpenAI Codex <codex@openai.com> * Address usage billing review feedback Timebox billing refreshes, keep user-facing saves fire-and-forget, and share sandbox lifecycle aggregation semantics. Co-authored-by: OpenAI Codex <codex@openai.com> * Simplify HF Jobs usage label Display HF Jobs without the estimated qualifier while preserving fallback usage logic. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>4ecc3bd -
Enforce YOLO cap across session usage (#313)
Unverified signature* Enforce YOLO cap across session usage Co-authored-by: OpenAI Codex <codex@openai.com> * Address YOLO budget review feedback Co-authored-by: OpenAI Codex <codex@openai.com> * Switch YOLO LLM cap checks to post-call warnings Co-authored-by: OpenAI Codex <codex@openai.com> * Improve YOLO cap reached CTA Co-authored-by: OpenAI Codex <codex@openai.com> * Fix YOLO blocked approval flow Show cap extension controls for pre-execution budget blocks and preserve approved tool parts during approval continuation streams. Co-authored-by: OpenAI Codex <codex@openai.com> * Sync usage meter with YOLO ledger Co-authored-by: OpenAI Codex <codex@openai.com> * Fix YOLO usage accounting drift Co-authored-by: OpenAI Codex <codex@openai.com> * Emit YOLO updates for observed spend Co-authored-by: OpenAI Codex <codex@openai.com> * Handle YOLO updates in active chat stream Co-authored-by: OpenAI Codex <codex@openai.com> * Reconcile YOLO ledger from usage fetches Co-authored-by: OpenAI Codex…d76b37c -
Use session billing endpoint for inference usage (#314)
Unverified signature* Use session billing endpoint for inference usage Replace current-session inference billing estimates with the Hugging Face session usage endpoint and ensure HF Router requests carry session IDs across providers. Co-authored-by: OpenAI Codex <codex@openai.com> * Rotate inference billing session IDs Co-authored-by: OpenAI Codex <codex@openai.com> * Address session billing review feedback Co-authored-by: OpenAI Codex <codex@openai.com> * Send Router billing session ID header Co-authored-by: OpenAI Codex <codex@openai.com> * Fix duplicate streamed assistant text Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>9e28f0f
-
Add sandbox costs to usage meter (#311)
Unverified signature* Add sandbox costs to usage meter Co-authored-by: OpenAI Codex <codex@openai.com> * Remove usage rollup buckets Co-authored-by: OpenAI Codex <codex@openai.com> * Remove obsolete usage rollup assertions Co-authored-by: OpenAI Codex <codex@openai.com> * Remove unused usage window aggregation Co-authored-by: OpenAI Codex <codex@openai.com> * Update usage event sort test Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>1b98491
-
Add session usage threshold approvals (#310)
Unverified signature* Add session usage threshold approvals Co-authored-by: OpenAI Codex <codex@openai.com> * Address usage threshold review feedback Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>18716c3 -
Add plan-aware CLI billing CTA (#309)
Unverified signature* Add plan-aware CLI billing CTA Co-authored-by: OpenAI Codex <codex@openai.com> * Address billing CTA review feedback Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>ebc9798
-
Rename idle reaper timeout to minutes (#305)
Unverified signatureCo-authored-by: OpenAI Codex <codex@openai.com>c7f69d4
-
Enable FAL prompt cache validation (#301)
Unverified signature* Enable FAL prompt cache validation Co-authored-by: OpenAI Codex <codex@openai.com> * Address FAL prompt cache review Co-authored-by: OpenAI Codex <codex@openai.com> * Clarify session usage estimate copy Co-authored-by: OpenAI Codex <codex@openai.com> * Update usage estimate copy Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>66cb9ac -
Reset usage billing window on session activation (#296)
Unverified signature* Reset usage billing window on session activation Co-authored-by: OpenAI Codex <codex@openai.com> * Avoid resetting usage on browser refresh Co-authored-by: OpenAI Codex <codex@openai.com> * Use billing baselines for session usage resets Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>1a8fb0c -
Fix billing usage visibility (#294)
Unverified signature* Fix billing usage visibility Request the HF read-billing OAuth scope and make the usage meter surface HF billing API failures while still showing live telemetry estimates. Co-authored-by: OpenAI Codex <codex@openai.com> * Tighten billing usage fallback Keep inference cost display tied to HF billing usage, expose app-observed calls and tokens when readback is unavailable, and pin usage error codes in backend tests. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>3a4d158 -
Add app-attributed usage display (#292)
Unverified signature* Add app-attributed usage display Co-authored-by: OpenAI Codex <codex@openai.com> * Fix usage windows for local timestamps Co-authored-by: OpenAI Codex <codex@openai.com> * Add HF billing usage to usage display Co-authored-by: OpenAI Codex <codex@openai.com> * Simplify usage popover Co-authored-by: OpenAI Codex <codex@openai.com> * Remove token row from usage popover Co-authored-by: OpenAI Codex <codex@openai.com> * Move session billing note to usage header Co-authored-by: OpenAI Codex <codex@openai.com> * Optimize usage popover rollup loading Co-authored-by: OpenAI Codex <codex@openai.com> * Round usage costs to cents Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>7d506e1
-
Make LLM health check use request token (#290)
Unverified signature* Make LLM health check use request token Co-authored-by: OpenAI Codex <codex@openai.com> * Document skipped LLM health checks Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>a999dba -
Implement user-billed model policy (#289)
Unverified signature* Implement user-billed model policy - bill hosted inference to user tokens and remove subsidy quota state - switch web and CLI defaults and remove Sonnet from model lists - add plan-aware inference credit CTAs Co-authored-by: OpenAI Codex <codex@openai.com> * Recommend Opus in model picker Co-authored-by: OpenAI Codex <codex@openai.com> * Remove minimum plan from model config Co-authored-by: OpenAI Codex <codex@openai.com> * Link message failures to Space discussions Co-authored-by: OpenAI Codex <codex@openai.com> * Remove compatibility quota endpoint Co-authored-by: OpenAI Codex <codex@openai.com> * Remove obsolete bill_to_user argument Co-authored-by: OpenAI Codex <codex@openai.com> * Remove model tier metadata Co-authored-by: OpenAI Codex <codex@openai.com> * Remove model picker provider subtitles Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>ded9881
-
Enforce premium quota across sessions daily (#287)
Unverified signatureCo-authored-by: OpenAI Codex <codex@openai.com>cbf5d33 -
Restore prompt caching for FAL router models (#286)
Unverified signature* Restore prompt caching for FAL router models Co-authored-by: OpenAI Codex <codex@openai.com> * Tune prompt caching hints for GPT-5.5 Co-authored-by: OpenAI Codex <codex@openai.com> * Address backlog prompt caching import review Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>e6f00a2 -
Set Sonnet as default premium model (#284)
Unverified signature* Set Sonnet as default premium model Co-authored-by: OpenAI Codex <codex@openai.com> * Address pro-only premium review feedback Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>b103510
-
Remove old Claude model support (#283)
Unverified signature* Remove Claude Opus 4.6 model support Co-authored-by: OpenAI Codex <codex@openai.com> * Remove Claude Opus 4.7 model support Co-authored-by: OpenAI Codex <codex@openai.com> * Remove Claude Sonnet 4.6 model support Co-authored-by: OpenAI Codex <codex@openai.com> * Remove stale Sonnet model tag test Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>d32b803 -
Route LLM inference through HF Router (#282)
Unverified signature* Route LLM inference through HF Router Co-authored-by: OpenAI Codex <codex@openai.com> * Address HF router PR review Co-authored-by: OpenAI Codex <codex@openai.com> * Address router cleanup review Remove no-op prompt caching and reasoning replay paths, genericize router model handling, and update docs/tests for HF Router-only setup. Co-authored-by: OpenAI Codex <codex@openai.com> * Fix READEM --------- Co-authored-by: OpenAI Codex <codex@openai.com>437a804
-
Add Opus 4.8 as premium model (#281)
Unverified signature9c72f5f -
Fix endpoint for free calls (#279)
Unverified signature* Recover endpoint for subsidized callsf247952 -
Enable FAL endpoint to lift limits (#278)
Unverified signature* Bill premium models through the HF router on the user's HF account Route Claude Opus 4.6 and GPT-5.5 off Bedrock/native APIs onto the HF Inference Router (huggingface/anthropic/claude-opus-4.6:fal-ai and huggingface/openai/gpt-5.5:fal-ai). The same daily allowance as before (free=1, pro=20) stays company-subsidized via INFERENCE_TOKEN; once a user is past it, the session's premium_user_billed flag flips and the call bills the user's own HF OAuth token (no X-HF-Bill-To) instead of returning the old 429 cap. - llm_params: bill_to_user routes premium (anthropic/ + openai/) router calls to the user's token; free models stay subsidized. - premium_user_billed is persisted/restored and threaded through the main loop, context compaction, the research sub-agent (now downgraded to router Sonnet 4.6), and effort probes. - Frontend: per-session BillingBanner (dismissible daily); remove the now unreachable ClaudeCapDialog + 429 quota-exhausted plumbing; the model chip shows "Billed" p…c9a83ae -
Reclaim idle sessions to fix session-capacity overshoot (#277)
Unverified signature* Reclaim idle sessions and fix session-capacity overshoot Users hit "Server is at capacity (379/200)" and couldn't create sessions: idle/forgotten runtimes never left the global pool, the frontend reactivated every historical session on load, and concurrent creates could overshoot the cap. Backend: - Idle-session reaper (2h): releases the sandbox + RAM of inactive sessions and evicts them from the live pool, leaving them resumable from Mongo (persisted resumable, never "ended"). Teardown uses asyncio.wait so a shutdown cancel can't be swallowed; submit() enqueues under the lock and refuses sessions being reaped. Reaping is skipped when persistence is disabled and aborts if the resumable snapshot (incl. the message bulk_write, via save_snapshot strict mode) can't be durably written. - Global create-slot reservation closes the check-then-create race that let concurrent creates exceed MAX_SESSIONS. - last_active_at drives the reaper, stamped on genuine activity only. - Re…6cf406a
-
Add `/clear` and `/new` commands (#256)
Unverified signature021580f
-
Add dataset uploads to Hub (#255)
Unverified signature* Add dataset uploads to Hub Co-authored-by: OpenAI Codex <codex@openai.com> * Address dataset upload review items Co-authored-by: OpenAI Codex <codex@openai.com> * Show dataset upload progress Co-authored-by: OpenAI Codex <codex@openai.com> * Move dataset upload button to composer corner Co-authored-by: OpenAI Codex <codex@openai.com> * Fix dataset upload file handoff Co-authored-by: OpenAI Codex <codex@openai.com> * Show upload alerts below composer Co-authored-by: OpenAI Codex <codex@openai.com> * Improve dataset upload errors and chips Co-authored-by: OpenAI Codex <codex@openai.com> * Link dataset chips to repo Co-authored-by: OpenAI Codex <codex@openai.com> * Expose dataset uploads as configs Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>2b4c539 -
Add CLI sandbox runtime and fix HF Jobs script paths (#237)
Unverified signature* Resolve bare Python job scripts Co-authored-by: OpenAI Codex <codex@openai.com> * Update HF Jobs script description Co-authored-by: OpenAI Codex <codex@openai.com> * Clarify HF Jobs script path prompt Co-authored-by: OpenAI Codex <codex@openai.com> * Add CLI sandbox tool runtime Co-authored-by: OpenAI Codex <codex@openai.com> * Document CLI sandbox tool runtime Co-authored-by: OpenAI Codex <codex@openai.com> * Wait for initial CLI sandbox preload Co-authored-by: OpenAI Codex <codex@openai.com> * Strengthen GPU sandbox preflight guidance Co-authored-by: OpenAI Codex <codex@openai.com> * Guard against text-only stops with unfinished plans Co-authored-by: OpenAI Codex <codex@openai.com> * Route sandbox deletion logs through tool events Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>b05b6f5
-
Use hyphenated ml-intern Trackio prefixes (#250)
Unverified signature* Use hyphenated ml-intern Trackio prefixes Co-authored-by: OpenAI Codex <codex@openai.com> * Drop legacy Trackio prefix handling Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>11112c6 -
Use duplicate_repo for sandbox Spaces (#249)
Unverified signature* Use duplicate_repo for sandbox Spaces Co-authored-by: OpenAI Codex <codex@openai.com> * Tighten duplicate_repo sandbox fakes Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>d684c1a -
Align CLI help output (#248)
Unverified signature* Align CLI help output Co-authored-by: OpenAI Codex <codex@openai.com> * Address CLI help review feedback Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>fde34dc -
Fix GPU sandbox hardware OAuth failure (#246)
Unverified signature* Fix GPU sandbox hardware OAuth failure Co-authored-by: OpenAI Codex <codex@openai.com> * Address sandbox sleep-time review Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>60f7188 -
Create Hub artifact collections lazily (#245)
Unverified signature* Create Hub artifact collections lazily Co-authored-by: OpenAI Codex <codex@openai.com> * Cache lazy Hub collection slugs in child hooks Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>60474c1 -
Implement `/resume` command for CLI (#233)
Unverified signature* Add /resume command to CLI * Refine /resume feature * Refine /resume implementation * Address review comments --------- Co-authored-by: lewtun <lewis.c.tunstall@gmail.com>0321690
-
Fix Pro entitlement checks (#239)
Unverified signature* Fix Pro entitlement checks Normalize HF Pro and paid org plan detection, allow premium model selection with quota enforcement, and clarify HF Jobs credit billing copy. Co-authored-by: OpenAI Codex <codex@openai.com> * Limit premium quota to personal Pro Ignore org membership for premium-model quota so users need personal HF Pro for the higher cap, while dev mode uses the Pro tier for local testing. Co-authored-by: OpenAI Codex <codex@openai.com> * Scope model switch errors to model picker Show model switch failures through local ChatInput state instead of rendering the shared agent error field globally. Co-authored-by: OpenAI Codex <codex@openai.com> * Restrict premium quota detection to Pro accounts Co-authored-by: OpenAI Codex <codex@openai.com> * Use boolean Pro signal for premium quota Co-authored-by: OpenAI Codex <codex@openai.com> * Use documented isPro field for quota tier Co-authored-by: OpenAI Codex <codex@openai.com> * Remove dead global chat error state Co-…d7637ba -
Skip sandbox spaces for artifact metadata (#241)
Unverified signature* Skip sandbox spaces for artifact metadata Co-authored-by: OpenAI Codex <codex@openai.com> * Address sandbox metadata PR feedback Co-authored-by: OpenAI Codex <codex@openai.com> * Avoid sandbox title metadata updates Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>1e1fe1f
-
Add CLI local model support (#228)
Unverified signature* Add CLI local model support Co-authored-by: OpenAI Codex <codex@openai.com> * Add shared local model endpoint fallback Support LOCAL_LLM_BASE_URL and LOCAL_LLM_API_KEY as shared fallbacks while preserving provider-specific local overrides. Co-authored-by: OpenAI Codex <codex@openai.com> * Address local model review feedback Clarify local probe failure behavior, add regression coverage for rejected local switches, and simplify local model validation. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>4668dbd -
Add backlog prioritization report tooling (#222)
Unverified signature* Add backlog prioritization script Co-authored-by: OpenAI Codex <codex@openai.com> * Fix backlog prioritizer LLM output handling Co-authored-by: OpenAI Codex <codex@openai.com> * Add backlog resolved-in-main checks Co-authored-by: OpenAI Codex <codex@openai.com> * Add GitHub issue publishing for backlog reports Co-authored-by: OpenAI Codex <codex@openai.com> * Address backlog prioritization review Handle GitHub rate limits gracefully, validate publish tokens early, and tighten resolution-link detection. Co-authored-by: OpenAI Codex <codex@openai.com> * Exclude generated backlog reports Apply a default label to generated report issues and skip that label during future GitHub backlog collection. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>6aebbdf -
Force OAuth refresh after scope changes (#227)
Unverified signature* Force OAuth refresh after scope changes Co-authored-by: OpenAI Codex <codex@openai.com> * Address OAuth scope review comments Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>e90638c
-
Add collection OAuth scope (#226)
Unverified signature* Add collection OAuth scope Co-authored-by: OpenAI Codex <codex@openai.com> * Document GitHub PR-first workflow Co-authored-by: OpenAI Codex <codex@openai.com> * Document Space OAuth scope checks Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>8b35696 -
Add ML Intern Hub artifact metadata (#225)
Unverified signature* Add ML Intern Hub artifact metadata Co-authored-by: OpenAI Codex <codex@openai.com> * Extend Hub artifact hooks to sandbox bash Co-authored-by: OpenAI Codex <codex@openai.com> * Create Hub artifact collections at session start Co-authored-by: OpenAI Codex <codex@openai.com> * Address Hub artifact PR review comments Co-authored-by: OpenAI Codex <codex@openai.com> * Respect Hub collection title limits Co-authored-by: OpenAI Codex <codex@openai.com> * Shorten collection session UUID fragments Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>4fc6e96
-
Add CI for tests and Ruff (#217)
Unverified signature* Add CI for tests and Ruff Co-authored-by: OpenAI Codex <codex@openai.com> * Enforce Ruff formatting in CI Co-authored-by: OpenAI Codex <codex@openai.com> * Document Ruff pre-commit checks Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>754345f -
Preserve HF token across restored sessions (#218)
Unverified signature* Preserve HF token across restored sessions Carry the authenticated HF token internally through request dependencies without exposing it from auth/me, and retry CPU sandbox preload when a session previously failed only because the token was missing. Co-authored-by: OpenAI Codex <codex@openai.com> * Address HF token restore review feedback Only restart CPU sandbox preload after the specific missing-token failure and remove the dead user hf_token fallback. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>5de6e8f -
Skip redundant CPU sandbox hardware request (#216)
Unverified signature* Skip redundant CPU sandbox hardware request Avoid calling the Hub hardware endpoint for default cpu-basic sandboxes because duplicate_space already requests that tier. Keep the hardware retry path for non-default tiers. Co-authored-by: OpenAI Codex <codex@openai.com> * Address sandbox hardware review feedback Use the CPU hardware constant as the Sandbox.create default and document why the auto-sleep guard still needs the hardware endpoint. Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>6ea1c42 -
Retry sandbox hardware requests (#210)
Unverified signature* Retry sandbox hardware requests Retry transient Hub errors when requesting hardware for a newly duplicated private sandbox Space. This covers the deployed OAuth path where duplicate succeeds but /hardware can briefly return 401/Repository Not Found before the private Space is manageable. Co-authored-by: OpenAI Codex <codex@openai.com> * Address sandbox retry review feedback Narrow transient hardware retry handling to 401 and 404, add coverage for timeout propagation, and fix top-level spacing. Co-authored-by: OpenAI Codex <codex@openai.com> * Ensure auto CPU sandboxes are cleaned up Persist sandbox identity on session records, clean stale sandboxes during restore, skip preloading when delete/teardown restores a session, and clean live sandboxes during backend shutdown. Add a scheduled orphan sweeper workflow as a backstop. Co-authored-by: OpenAI Codex <codex@openai.com> * Remove scheduled sandbox sweeper Delete the GitHub Actions cron workflow for orphan sandbox cleanup and…7636865 -
Stop attaching timestamps to LLM messages (#209)
Unverified signature* Strip internal message metadata before LLM calls Co-authored-by: OpenAI Codex <codex@openai.com> * Simplify timestamp handling for provider messages Co-authored-by: OpenAI Codex <codex@openai.com> * Remove timestamp metadata regression test Co-authored-by: OpenAI Codex <codex@openai.com> --------- Co-authored-by: OpenAI Codex <codex@openai.com>93d536c -
fix(compaction): break infinite loop + truncate oversized messages (#213)
Guillaume SalouUnverified signature* fix(compaction): break the infinite-compaction loop, truncate oversized messages Sessions stuck in a compaction retry loop have been silently burning Bedrock budget while staying invisible in the session dataset. Pod logs from 2026-05-03 on prod-114 showed the pattern firing minute-after-minute on multiple replicas: Context compacted: 200001 -> 215566 tokens Context compacted: 215566 -> 215572 tokens ContextWindowExceededError — forcing compaction Context compacted: 200001 -> 215544 tokens ... Root cause: a single message in the "untouched" tail (typically a tool output of 80k+ tokens — bash dump, file content, CSV) keeps the post-compact context above the 90% threshold. Compaction triggers again, calls Bedrock again, gets the same 215k result, loops. ~$3 per Opus retry, indefinitely. Sessions never reach _run_session.finally → save_and_upload_detached never fires → cost is real but never lands in total_cost_usd. Cross-check: dataset Bedrock-only coverage on 2026-05-01 …d84b454