The backward-compat redirect from www.ityb.me/careerbot/* to
career.ityb.me/careerbot/* has been removed per user request.
Now all /careerbot paths on the main domain return 404, except
/careerbot/uploads/* which is served by branch1's secondary mount
so trunk-uploaded photo URLs still render on branch1 pages.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
crypto.randomUUID() requires secure context (HTTPS).
Use Date.now + Math.random fallback for session ID generation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
var hoisting still conflicts with const from main.js.
chat.js now relies on BASE_PATH declared in main.js.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
main.js and chat.js both declared const BASE_PATH at top level.
When both load on index.html, the second const throws SyntaxError,
preventing chat.js from executing (chat FAB button unresponsive).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add www.ityb.me domain info and /careerbot subpath architecture docs
- Document BASE_PATH routing prefix mechanism in DESIGN.md
- Update all URLs from IP to domain in OPS_MANUAL.md
- Update Nginx config section to reflect subpath proxy
- Update new project deployment guide with subpath pattern
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add BASE_PATH config, include all routers with prefix
- Inject {{ base }} Jinja2 global for all template URLs
- Add window.BASE_PATH for static JS files
- Update Nginx to proxy /careerbot/ path
- Add OPS_MANUAL.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- FastAPI backend with SQLAlchemy ORM and SQLite
- AI chatbot with OpenAI-compatible LLM integration (SSE streaming)
- Admin panel for content management, LLM config, token management
- Anonymous access with 3-question limit, token-based access control
- Recruiter intent detection with admin notification
- Resume generator (JD-based, Markdown to Word export)
- Chinese localized public interface
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>