Spaces:
Sleeping
Sleeping
Commit History
24 days ago
-
Add zero-credit discovery fallback with central spend policy
Claude +1: Claude Sonnet 5.5Unverified signatureRunning out of credits now stops new paid spending instead of the product. - discover-spend-gate: one atomic authorization per run, reusing tryDeductCredits and the credit-guard marker. Out of credits or unreadable ledger => zero_cost (fail closed). Retries never double charge or refund. - spend-policy / provider: zero_cost runs only reach free sources (atsdirect by default, optional webindex); enforced in settleProviders plus a per-provider guard. - discover tool: zero_cost skips LLM scoring, embeddings, inner planner, Firecrawl page fetch and crawl; results carry a structured `spend` summary and an honest note. - SearchRun stores spendMode; background chunks and resume never upgrade it and no longer dead-end at zero balance. - Separate bounded daily budget for zero-cost searches. - /api/score/subscriber returns a labelled heuristic score instead of 429. - Provider errors are not treated as the user's balance (isJobScorerCreditDenial). Co-Authored-By: Claude Sonnet 5.5 <no…db1d726
25 days ago
-
Durable search runs: execution lease and stale-write guards
Claude +1: Claude Sonnet 5.5Unverified signatureQStash delivers at least once and Resume can race a queued chunk, so two workers could run the same SearchRun concurrently, and late writers could overwrite newer state. - Execution lease (cas.ts): one chunk worker per run via a Redis NX lease (TTL 420s: above maxDuration 300s, below the 8-min "worker died" stale threshold). Duplicate deliveries return ok/skipped with no retry. The run is re-read after the lease is taken. Fails open without Redis. - queueNextChunk now pauses, releases the lease, then schedules. Before, it scheduled first, so the next worker could mark the run running before the pause landed (stuck "paused"); the lease must also be free by then. - Final states stay final: cancelled/completed runs can no longer be flipped by markSearchRunRunning / pauseSearchRun / completeSearchRun / failSearchRun / cancelSearchRun from a stale writer. "failed" remains resumable (Resume route relies on it). - Checkpoints merge instead of replace: discovered/hits/closeMat…e7ef20a
-
Rewrite marketing, FAQ, and Terms for credits and Hunt Pass.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureReplace subscription pricing UI and user-facing Subscribe/monthly copy with Start free, credit packs, and Hunt Pass; Terms note legal review. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>ec7ce69 -
Make discover background continue reliable without requiring Resume.
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureCheckpoint discovered listings as soon as providers return them, retry QStash scheduling with backoff, and fall back to an inline/after() chunk worker so timeout mid-score keeps scoring without a manual Resume click. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>8daf7b1
-
fix(search): retry a failed background chunk and show Resume when it stops
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureA worker failure used to answer success, so the queue never retried, and a missed continuation stayed on "still searching" with no Resume. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>9e94fef -
fix(search): keep searching after the page closes
Cursor Agent +1: Zimuzo EjinkeonyeUnverified signatureClosing the page aborted the chat and left the current pass running in that request, then marked the search stopped. Leave the request immediately and continue the same run in the background. Stop still cancels the search. Co-authored-by: Zimuzo Ejinkeonye <zimejin07@users.noreply.github.com>2bc82be
-
Ship production-readiness: credit guards, packs, budgets, and AI disclaimer.
Enforce credits when commercial mode is on, reset monthly grants on invoice.paid, add provider daily budgets and exhausted-credit pause/resume, wire Stripe credit packs plus capacity banner, and default Firecrawl Search scrape off. Co-authored-by: Cursor <cursoragent@cursor.com>1d1f9e0
-
Improve job discovery strategy and result cards
Co-authored-by: Cursor <cursoragent@cursor.com>c708e76 -
fix(agent): skip the planner tax and offer next steps when inference dies
Search turns now execute tools immediately and surface retry, background search, and paste-URL actions instead of a dead Something went wrong bubble. Co-authored-by: Cursor <cursoragent@cursor.com>6c17b6d
-
Let users rename chats and keep drafting without losing their place in the thread.
Co-authored-by: Cursor <cursoragent@cursor.com>d114205 -
Let users delete chats from the history rail.
Sessions already expire after 7 days of inactivity; this adds an explicit delete so old threads do not have to sit in the sidebar until then. Co-authored-by: Cursor <cursoragent@cursor.com>5826e59 -
Harden the agent chat loop around 24h recency, honest stops, credits, and timeouts.
Clamp search windows to 24h/48h, stop digest from stealing chat SearchRuns, and align discover timeouts so partials and refunds surface instead of silent failures. Co-authored-by: Cursor <cursoragent@cursor.com>69bb4f2
-
Add an Agent session history rail so you can reopen past chats.
Co-authored-by: Cursor <cursoragent@cursor.com>44ff9cf
-
Add AGENT_SUITE_LOCKED flag to keep Job Scorer live while gating agent suite.
Enables a public Vercel URL with scoring available and discovery/digest/email Coming soon, without using all-or-nothing DEMO_MODE. Co-authored-by: Cursor <cursoragent@cursor.com>4f6ef0c
-
Add durable search runs with resumable agent execution.
Introduce Redis-backed SearchRun checkpoints, QStash workers, session transcript restore, and reconnectable chat UX so discovery can resume after failures without redoing completed work. Co-authored-by: Cursor <cursoragent@cursor.com>bcdd291
-
Upgrade discovery yield, digest reliability, and runtime UI.
Improve search pivots, heuristic scoring fallback, unified global-remote rubric, segmented seen-url TTLs, feedback loops from save/dismiss/apply, and live agent status on dashboard and chat. Co-authored-by: Cursor <cursoragent@cursor.com>b7bf6e2
-
Tighten agent bootstrap, extraction gates, and unified user model prompts.
Server-inject profile digest, memory, and suggested intents on every agent session; harden CV extraction with sparse retry and 422; add review UI, USER_MODEL scoring alignment, and test:profile selftests. Co-authored-by: Cursor <cursoragent@cursor.com>50fe116 -
Unify user profile across agent, scorer, and UI with Clerk as canonical store.
Server routes read fresh jobScorerProfile from Clerk; clients hydrate via GET /api/profile and reload after save. Adds readiness gates, job preferences modal separate from CV upload, and profile_updated agent stream events. Co-authored-by: Cursor <cursoragent@cursor.com>96aaa90
-
Wire agent session context from Supabase run history.
Load cached run history and findings for smarter session planning, contextual init messages, and discover_jobs filters for dismissed domains and recently seen strong-match URLs (chat and digest). Co-authored-by: Cursor <cursoragent@cursor.com>cbeaf59
-
Add agent observability (Redis run logs, lab debugger) and copy session export
Persist agent runs to Redis with optional verbose LLM traces when LAB_LOG_INFERENCE is enabled. Instrument runAgentConversation with completion steps and tool timeline; expose X-Agent-Run-Id on chat responses. Add lab GET /api/lab/agent-runs and AgentRunsDebugger UI. Lab admins get Copy debug trace in AgentChat; all users keep markdown Copy session export. Co-authored-by: Cursor <cursoragent@cursor.com>888d34f
-
feat(commercial): add alpha cost protections
Enforce per-action credits for agent search tools, cap daily batch searches per user, and harden agent chat rate limiting with clean 429 responses. Co-authored-by: Cursor <cursoragent@cursor.com>02db70a
-
Harden agent: discover timeout hints, batch marker UI, errors, blocked domains
Co-authored-by: Cursor <cursoragent@cursor.com>88fc77f
-
feat(onboarding): add resume-first profile extraction
Made-with: Cursor3bedff6
-
feat(agent): proactive planning agent with init snapshot and tool budget
- API: init flag, session snapshot from shortlist + credit usage - Runner: plan-first for search-like intent, MAX 10 tool calls, progress/plan NDJSON - Groq/OpenRouter: optional tool_choice none for init and summaries - UI: mount init stream, plan checklist, progress rows; remove hardcoded welcome Made-with: Cursor6e665d0 -
fix(agent-chat): humanize tool failures
Map tool/network failures to friendly assistant responses and render them as normal chat messages (no raw labels like 'fetch failed'). Made-with: Cursorcabdc21
-
feat(job-launcher): agent chat UI + API; refine Job Scorer home layout
- Add /api/agent/chat NDJSON stream with Groq tools (OpenRouter fallback) and same-origin calls to existing launcher/score/shortlist routes. - Add AgentChat, AgentJobCard, context strip, and lab admin Agent/Classic toggle. - Add lib/agent-chat helpers (search_jobs via Serper + generateSearchStrings). - Extend ShortlistSaveButton emphasize prop; shortlist hook savedCount. - Rate-limit /api/agent/chat in middleware. - Job Scorer: agentic profile panel, score shell, batch below results; main landmark. - globals: job-app and agent UI tokens, visually-hidden, result enter animation. Made-with: Cursorc78b3b6