Spaces:
Running on Zero
Running on Zero
Commit History
28 days ago
-
sync: from ael backend/space/ Running
25910d6 -
sync: from ael backend/space/
7af8059 -
sync: from ael backend/space/
8141a5d -
sync: from ael backend/space/
43f97a4 -
sync: from ael backend/space/
cc68a12 -
sync: from ael backend/space/
be92d5f -
sync: from ael backend/space/
d409fec -
sync: from ael backend/space/
dbcfcbe -
sync: from ael backend/space/
558fffa -
chore: retrigger build to surface the failure
0b4e612 -
feat(search): relevance reranking with Laya, and restore files the last commit clobbered
Adds the reranker, and puts back what 4dba37a overwrote. 4dba37a was a mistake: it synced the whole of backend/space/ over the Space, and this repo's copy of that folder is a STALE FORK. It reverted app.py's _KEY_HEADERS alias (the x-respite-key / x-ael-key fix), its _is_protected fix, the raised request_timeout in searxng_settings.yml, and the explicit mojeek/marginalia/rightdao/mwmbl/presearch engine list. Restored here from 17b0658; this commit touches only the three files it meant to. The reranker itself: - rerank.py scores each (query, passage) pair with convaiinnovations/laya, a non-autoregressive System 1 decision model (421M English / 322M multilingual, Apache-2.0), using a `noul` question for the calibrated P(yes) that the passage contains what the query needs. - The race only ever asked "is this set big enough", so the winner was whoever answered first and a small index won on speed alone. "what is the capital of Peru" came back as NPR transcripts about mummy lice…184d40c
30 days ago
-
fix(search): give engines room to finish, and add ones a datacenter IP is allowed
piTwo separate problems shared one symptom, so they were being read as one. SearXNG's outgoing.request_timeout was 5.0. DuckDuckGo from a datacenter IP routinely takes 5-7s, so SearXNG gave up on it and listed it unresponsive — the identical "engine is broken" report a block produces, for an engine that was only slow. Raised to 9.0, with Ael's race budget raised to match, so an engine is judged on the results it returns rather than on our impatience. The happy path is unaffected: the race still finishes on the first viable set. Google and Wikipedia answer 200-with-nothing from Hugging Face's shared egress IP. That left Bing carrying every query with no redundancy, which is not resilience — a single-IP block on the one working engine takes out search entirely. Added mojeek, marginalia, rightdao, mwmbl, presearch and qwant: the engines that still answer a datacenter IP without a CAPTCHA, and deliberately redundant with each other. The pre-existing google/duckduckgo/bing/wikipedia entrie…17b0658 -
fix(gate): accept x-ael-key alongside x-respite-key; drop dead key read
piThe Respite -> Ael rename renamed the app's copy of the shared-key header to X-Ael-Key while this gate kept reading x-respite-key. Those are different header *names*, so every protected request was rejected with 401 from a perfectly correct key — search and audio, on every deployment, silently. Header names are case-insensitive, so the rename looked harmless in review; it was not. c9fb4ed already restarted the Space so SEARX_API_KEY is loaded, which is why the only remaining fault was the header name. - Accept either spelling, x-respite-key first as canonical. The app now sends the canonical one; the alias keeps any build in flight during a rename from 401ing, and must not be dropped without checking deployed builds. - Drop the module-level _SPACE_KEY read of "RESpite_SPACE_KEY" — a case-mangled secret name that never existed and always read "". It was masked because the middleware rebinds the same name per request, so the broken read was dead code one deleted line away from…b3596ff
-
chore: restart the Space so SEARX_API_KEY is read by the running process
The secret was added after the previous rebuild finished; the running process never loaded it, so the gate answered 401 to the real key too.c9fb4ed -
security: give the searx bridge its own gate key
RESPIRE_SPACE_KEY guards the audio and inference routes; the searx bridge now checks SEARX_API_KEY instead, so search access can be rotated without touching the audio path. Both fail closed when unset. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>64e2bf0 -
security: key-gate the searx bridge
The shared-secret gate covered /respite/search but the searx bridge mounts under /respite/v2/searx/, which the prefix list missed — the search endpoint answered unauthenticated requests. Same fix shape as the audio gate: same compute, same key. 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>d2bc83a
-
chore: remove agent scratch committed to the Space
agent7093758 -
chore: remove the temporary env diagnostic
Verified signature8251b07 -
chore: temporary names-only env diagnostic
Verified signature977bce0 -
fix: read the shared secret per request; add a names-only env diagnostic
Verified signature3fee5c9 -
chore: rebuild so the container picks up RESPIRE_SPACE_KEY
Verified signaturebb7d60b -
security: require a server-held shared secret for the compute routes
Verified signature13dcd95 -
security: overwrite Gradio's reflected CORS on /respite/*
Verified signaturef1ffefe -
security: stop the Space being an open, credentialed relay to the app API
Verified signature9cc3625
-
Prompt 3.0.4: impulsive broad search rule
Buffy6baa2e1 -
Rebuild backend bundle: plan-finder tools + billing routes
Buffya218032
-
Ship paced-reveal fix bundle
506027a -
nudge runtime
8063f78 -
Ship smoother v2 (paced tail drain) bundle
Buffy7984739 -
rebuild trigger
Buffy1673361 -
diag: route-entered marker
Buffy8686316 -
diag: surface socket errors
Buffy271301b -
diag: dump raw frames
Buffyf9312e5
-
diag: temp live-frames route (frame timings only, no key exposure)
Buffy79c96e0 -
backend: frontend bundle with constant-tick stream smoother
Buffy6c42c91 -
backend: streaming emitter + phrase-table sync (~1.5s TTFT)
Buffy8bac814
-
backend: rebuild with api/search rename
Buffy7f3d5e6 -
search: drop bing from the race — it wins with bot-degraded junk
Buffy6ae5e3d -
backend: ship race-enabled standalone as respite-backend.tar.xz (runtime contract)
Buffy6cd9c9d -
search: cap instant-answer wait at 1.5s so the race latency wins
Buffya14c48b -
search: bundle Next backend with SearXNG engine race (linux-only natives)
Buffyc2a2cde
-
Fix backend bundle: include standalone .next (BUILD_ID was dropped by the glob copy)
Buffy6708c46 -
Rebuild backend bundle: theme fix + SearXNG search
Buffyaed1a35 -
Rebuild backend bundle with SearXNG-backed search route
Buffy66e1f1e -
Bootstrap searxng venv without pip + get-pip fallback (slim image lacks ensurepip)
Buffy363d9ef -
Recreate stale searxng venv when its python predates 3.11
Buffy1df1e19 -
Pick newest python for the searxng venv (master needs 3.11+; base has 3.10)
Buffyaccae83 -
Surface searxng bootstrap errors in status route
Buffy79019c5 -
Add SearXNG userspace runtime with DDG + Google engines
BuffyBootstrap pattern mirrors node_runtime: fetch source tarball, pip-install into a userspace venv on first boot, launch bound to 127.0.0.1:8888. FastAPI bridge exposes /respite/v2/searx/search (JSON API proxy).42f6abb -
CORS on the proxy so the Vercel frontend can call the space directly
Buffy60e15d5