-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Comparing changes
Open a pull request
base repository: Chainlit/chainlit
base: main
head repository: puneetrinity/chainlit
compare: main
- 18 commits
- 9 files changed
- 2 contributors
Commits on Oct 12, 2025
-
Add Chainlit HR Assistant with RunPod integration and Railway deployment
Features: - Token streaming UI with word-by-word display - Settings sidebar: temperature, top_p, max_tokens, validation toggles - HR task quick actions: Resume, Job Description, ATS Keywords, Job-Resume Match, Recruiting Strategy - Blocked response handling with policy messages - Validation status display (intent, valid flag, issues) - Token usage tracking (input/output counts) - Inline temperature override via temp=X.X in messages Configuration: - Environment-based config (RUNPOD_BASE, ENDPOINT_ID, API_KEY, CLIENT_TIMEOUT_S) - Domain defaults: 180 max_tokens, temp=0.3, validation enabled, low-trust intents blocked - Railway deployment ready with Procfile, railway.json, requirements.txt 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 046f36c - Browse repository at this point
Copy the full SHA 046f36cView commit details -
Fix Railway deployment: chainlit command not found
- Use 'python -m chainlit' instead of 'chainlit' command - Add nixpacks.toml with proper Python 3.12 setup - Update Procfile and railway.json start commands - Install packages with pip --user flag 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for d5fdc27 - Browse repository at this point
Copy the full SHA d5fdc27View commit details -
Remove railway.json to let nixpacks.toml handle start command
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 644146a - Browse repository at this point
Copy the full SHA 644146aView commit details -
Fix Pydantic validation error: use payload instead of value for Actions
- Changed cl.Action parameter from 'value' to 'payload' - Updated all action callbacks to use action.payload - Fixes: 1 validation error for Action - Field required 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 4d86339 - Browse repository at this point
Copy the full SHA 4d86339View commit details -
Fix Action payload type: must be dict not string
- Changed payload to dict: payload={'prompt': ...} - Updated callbacks to extract prompt: action.payload['prompt'] - Fixes Pydantic validation error: Input should be a valid dictionary 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>Configuration menu - View commit details
-
Copy full SHA for 928eb03 - Browse repository at this point
Copy the full SHA 928eb03View commit details
Commits on Oct 13, 2025
-
Remove validation and usage metadata from UI
- Removed validation display (intent, valid flag, issues) - Removed usage tracking display (input/output token counts) - Cleaner UI with just the streamed response 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for cfdeef3 - Browse repository at this point
Copy the full SHA cfdeef3View commit details
Commits on Oct 15, 2025
-
Upgrade to ChatML with domain-specific prompts and validation
- Implement ChatML formatting with system prompts for 5 HR domains - Add validators for all domains (resume, JD, match, recruiting, ATS) - Add micro-retry logic with clarifiers for failed validations - Update to vLLM endpoint with ChatML support - Add domain detection from user prompts - Enhance UI with validation status indicators - Update settings: remove block_low_trust, add micro_retry toggle - Add 1-shot examples for resume and JD domains - Test results: 4/5 domains passing validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 7d3197a - Browse repository at this point
Copy the full SHA 7d3197aView commit details -
Fix job_resume_match validator and add score explanation
- Lower word threshold from 80 to 60 words (more realistic) - Add rationale validator to ensure score explanation is included - Update system prompt to explicitly request score reasoning - Update clarifier to emphasize explanation requirement - Test result: Now passes validation with clear score rationale 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for f2a9c7e - Browse repository at this point
Copy the full SHA f2a9c7eView commit details -
Add dual-format response parsing for endpoint compatibility
- Update extract_text to support both raw vLLM and handler endpoint formats - Update extract_usage to support both response shapes - Handler format: output as dict with choices[0].text - Raw vLLM format: output as list with choices[0].tokens - Tested with both formats - all passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 22c88f0 - Browse repository at this point
Copy the full SHA 22c88f0View commit details -
Add LLM-based router for intent classification
- Implement classify_with_llm() with temp=0, 60 tokens for fast classification - Add router labels: resume, jd, match, recruiting, ats, small_talk, general_qna - Add confidence-based routing: high (≥60%) → LLM, medium (≥40%) → hybrid, low → heuristic - Add LLM Router toggle in settings (default: enabled) - Skip HR validation for small_talk and general_qna domains - Show detected domain with confidence in response footer - Update build_chatml to handle small_talk and general_qna - Test results: 95% accuracy on all HR domains, correctly identifies small talk Fixes domain detection issues - no more false positives on casual conversation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 6d958f8 - Browse repository at this point
Copy the full SHA 6d958f8View commit details -
Rebrand as EvalMatch Career Copilot
- Update welcome message with EvalMatch Career Copilot branding - Emphasize natural language interaction with LLM router - Add clear capability descriptions with emojis - Professional, user-friendly messaging 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 57a3403 - Browse repository at this point
Copy the full SHA 57a3403View commit details -
Fix router misclassification with explicit recruiting rules
- Add explicit routing rules for recruiting_strategy domain - Include 'strategy to hire/recruit/get/find/attract/source developers' patterns - Add 'hiring pipeline / talent acquisition / onboarding plan' patterns - Improve heuristic fallback with 'find developers', 'get developers', 'strategy to' - Update small_talk and general_qna prompts to be concise (1-3 sentences) - Remove seeding for non-HR domains - Improve JSON parsing with better error handling Test results: 95% confidence on all recruiting queries - 'Help me create a strategy to get relevant new age AI developers' → recruiting_strategy ✅ - 'How can I develop a pipeline for full stack developers' → recruiting_strategy ✅ - 'Strategy to hire senior DevOps engineers' → recruiting_strategy ✅ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 18bf18f - Browse repository at this point
Copy the full SHA 18bf18fView commit details -
Fix critical bugs in response parsing and streaming
Critical Fixes: - Fix extract_text to join all tokens instead of returning only first token This was truncating all responses to the first token only - Add missing edge cases: string output, root-level text, handler format - Fix streaming to preserve whitespace and formatting using re.split(r'(\s+)') Previous implementation removed line breaks and bullet formatting Minor Improvements: - Fix 'hi' detection to work without trailing space (exact match at boundaries) - Make ATS keyword detection more specific (avoid generic 'keyword' term) - Remove ats_keywords from SEEDED (comma-separated output doesn't need '1. ' prefix) Test Results: ✅ extract_text correctly joins token arrays ✅ extract_text handles all edge cases (string, dict, root-level) ✅ Streaming preserves newlines and formatting ✅ Heuristics more accurate with edge case fixes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 65c477d - Browse repository at this point
Copy the full SHA 65c477dView commit details -
Polish variant system: proper logging, variant caps, and sampling exa…
…mples Final improvements to variant hint pack system: - Replace print with proper logging.Logger with basicConfig - Add max_variants support to template system (enforced in select_variant) - Add sampling override example (repetition_penalty for ATS keywords) - Remove redundant DEBUG_VARIANTS boolean guard (rely on logger level) - Ensure console handler always exists for dev environments All 33 unit tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 35e8eba - Browse repository at this point
Copy the full SHA 35e8ebaView commit details -
Refactor logging and add merge_sampling helper with tests
Improvements to logging and sampling configuration: - Replace basicConfig with logger-specific StreamHandler to avoid clobbering embedded host logging - Extract merge_sampling() helper function for cleaner, testable code - Add 4 comprehensive unit tests for merge_sampling (min_tokens, direct overrides, multiple overrides, no mutation) All 37 unit tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 123c0bf - Browse repository at this point
Copy the full SHA 123c0bfView commit details -
Add defensive merge_sampling validation and prevent logger double emi…
…ssion Defensive improvements to logging and sampling: - Set logger.propagate = False to prevent double emission if parent handlers exist - Add temperature/top_p clamping to [0, 1] range in merge_sampling - Add stop coercion to list for decoder compatibility - Add 3 comprehensive tests for defensive behaviors (temperature, top_p, stop) All 40 unit tests pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for df5a721 - Browse repository at this point
Copy the full SHA df5a721View commit details -
Add timeout retry logic and fix upload MIME type warnings
Improvements for reliability and browser compatibility: - Add CLIENT_RETRY_ATTEMPTS and CLIENT_RETRY_BACKOFF_S environment variables - Implement exponential backoff retry for timeout exceptions in call_endpoint() - Add timeout-specific error messaging with guidance for users - Fix upload accept config: replace "*/*" with specific MIME categories - Sanitize accept patterns in useUpload to prevent react-dropzone warnings Timeout retry behavior: - Only retries on httpx.TimeoutException (not other errors) - Exponential backoff: 0.75s, 1.5s, 3s, 6s... - Default: 1 retry attempt (configurable via CLIENT_RETRY_ATTEMPTS) - Logs debug messages when backing off between retries 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 3e4c190 - Browse repository at this point
Copy the full SHA 3e4c190View commit details -
Expand streaming_aware variant and enhance extract_text for chat formats
Major improvements to recruiting strategy and response parsing: Streaming-aware variant enhancements: - Add comprehensive Boolean sourcing patterns (JMS, ActiveMQ, RabbitMQ, Kinesis, Pulsar, Reactor, Netty, backpressure, CDC/Debezium, etc.) - Include 4-6 specific channels with cadence (LinkedIn Recruiter, GitHub code search, Stack Overflow tags, Kafka/Reactive meetups, Java user groups, conference speakers) - Add personalized outreach guidance mapping event-driven/JMS/Reactive signals to Kafka/Pulsar - Include screening prompts for backpressure/idempotent consumers and batch→near-real-time migration - Add metrics tracking (response rate %, pass-through %, time-to-hire) - Update clarifier to match expanded hint structure Extract_text improvements: - Add support for chat-style responses (message.content, delta.content) - Add support for streaming responses (delta content) - Enhanced fallback chain: text → output_text at multiple levels - Better null safety with isinstance checks - Comprehensive docstring documenting all supported formats These changes improve recruiting strategy quality for streaming/event-driven roles and ensure compatibility with both completions and chat API formats. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 18129be - Browse repository at this point
Copy the full SHA 18129beView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...main