Commit Graph

629 Commits

Author SHA1 Message Date
juanatsap 2fbd88f28e feat: CV overhaul — modernize skills, add projects, fix proficiency scale
- Title: "Senior Technical Consultant & Full-Stack Developer"
- Add Swift & macOS Development skill category (SoundInbox, Commando)
- Rename "AI-Assisted Development" → "AI Engineering & Integration" with MCP, ADK, Gemini, CLIP
- Remove "Design Tools" (Corel Draw, GIMP) and "Legacy Enterprise" (Struts, Yii, Zend)
- Remove jQuery, Assembler, Groovy; add Swift to programming languages
- Rewrite Team Management with professional language
- Proficiency scale: 1-5 → 1-10 (validation, tests, chat agent prompt)
- Add SoundInbox (Swift) and Commando (Go+SwiftUI) to projects
- Remove personal details: dateOfBirth, placeOfBirth, domestika, driverLicense
- Trim weak LinkedIn Learning courses (speed reading, persuasive UX)
- Fix Spanish soft_skills duplicates
- Chat agent: 11 new assertions (proficiency scale, new projects, removed skills)
- Fix hardcoded year 2025 in TestDefaultCVShortcut → time.Now().Year()
2026-04-13 00:07:51 +01:00
juanatsap aae818fbc0 feat: email as mailto link + chat response rules tests (21 assertions)
- Email txeo.msx@gmail.com rendered as clickable mailto: link in chat
- New test: 86-chat-response-rules.test.mjs covering:
  contact (email shown, no contact form), phone (private),
  location (Lanzarote), language matching (EN/ES),
  off-topic redirect, tech search, no hallucination, years
- Tests are non-deterministic (live LLM) — may need re-runs
2026-04-10 00:01:49 +01:00
juanatsap 562552add8 fix: agent prompt — Lanzarote location, email always, no contact form reference
- "Where does he live?" → Lanzarote, Canary Islands, Spain
- Never mention contact form/page (doesn't exist)
- Always use txeo.msx@gmail.com for contact
2026-04-09 23:55:11 +01:00
juanatsap 574f97d5cd fix: mobile chat overflow — break long links, constrain msg width, scroll chips 2026-04-09 23:27:13 +01:00
juanatsap 42fe69f5a0 fix: mobile viewport overflow — no horizontal scroll on iPhone
- Replace 100vw with 100% on mobile chat panel (avoids scrollbar width)
- Add overflow-x: hidden on html/body for mobile
- Add box-sizing: border-box on mobile panel
- Add overflow: hidden and max-width: 100% on chat rows
- Add overflow-x: hidden on messages container
2026-04-09 23:19:23 +01:00
juanatsap 837e6fac9d fix: deploy waits for port 1999 to be free before starting service 2026-04-09 23:10:47 +01:00
juanatsap 9018edd21a fix: chat agent — show email on contact questions, hide phone, update LLM context
- Email (txeo.msx@gmail.com) is now shared when users ask for contact info
- Phone remains private (never revealed)
- Updated bonus context: ADK Go 1.0 with Gemini (prod) / Gemma 4 (dev)
2026-04-09 21:01:16 +01:00
juanatsap ff7cd4287b docs: add LLM provider evolution & benchmarks (section 16)
Document the full history of local LLM selection:
- Mistral → GLM → Gemma 4 26B MoE with reasons for each change
- Side-by-side benchmarks: Gemini vs Gemma4 vs GLM vs Mistral
- Quality comparison (language, tool calling, links, hallucination)
- Resource usage (params, RAM, disk, offline capability)
- Configuration examples for dev and prod
2026-04-09 20:48:52 +01:00
juanatsap 1f17277a19 config: switch default Ollama model to Gemma 4 26B MoE (3-4x faster than GLM) 2026-04-09 20:42:41 +01:00
juanatsap 7b6062d0f2 privacy: remove phone number from CV — private data
- Clear phone field in both EN/ES JSON data
- Conditional rendering in footer, plain text, and JSON-LD
- Chat agent already configured to not reveal contact details
2026-04-09 20:20:15 +01:00
juanatsap 0b672447f6 feat: cog menu for layout modes, mobile viewport fix, better separation
Header UX:
- Replace 5 icon buttons with single cog (gear) dropdown menu
- Cog menu shows all layout options with icons + labels
- Help and Close buttons stay visible outside the cog
- Active mode highlighted in green

Mobile fixes:
- Fix viewport overflow (100vw + max-width: 100vw)
- Stronger shadow (0 -4px 20px) for clear CV/chat separation
- Rounded corners (12px) on top for recognizable chat window
- Hide desktop-only modes (side panel, floating, full) from cog on mobile
- max-height: 50vh ensures CV always visible above

Dark mode:
- Cog menu styled for dark backgrounds
2026-04-09 18:39:51 +01:00
juanatsap ef25a9e233 fix: add wiggle animation to zoom button, ensure icon animations on mobile 2026-04-09 14:05:58 +01:00
juanatsap c044f785f3 fix: chat X rotates clockwise, robot wiggles; PDF rotation now animated 2026-04-09 14:03:07 +01:00
juanatsap 9f6b44b478 fix: button hover animations — PDF 45°, wiggle for info/keyboard/bot 2026-04-09 14:01:25 +01:00
juanatsap e865e0d9e0 feat: hover animations on all floating buttons
- Rotate 90°: PDF, leaf, info, theme, chat (symmetric icons)
- Wiggle: email envelope (notification feel)
- Scale pulse: keyboard shortcut (key press feel)
- Bounce up: back-to-top arrow (reinforces direction)
2026-04-09 13:59:31 +01:00
juanatsap 65e6d174a3 feat: chat module portability guide + mobile wave fix (final merge) 2026-04-09 13:08:27 +01:00
juanatsap 328faae953 feat: chat module portability guide + fix mobile wave position
- doc/30-CHAT-MODULE-PORTABILITY.md: step-by-step guide to port the
  chat agent to other Go apps (files, dependencies, customization)
- Fix wave emoji position on mobile (follows button to bottom:5rem right:1rem)
2026-04-09 13:08:17 +01:00
juanatsap 16530c6f03 fix: chat nav scroll to top 2026-04-09 12:56:59 +01:00
juanatsap e56a86860f fix: scroll to CV section aligns to top instead of center 2026-04-09 12:56:56 +01:00
juanatsap b146264072 docs: SEO guide update 2026-04-09 12:56:25 +01:00
juanatsap f8b48b92a3 docs: update SEO guide — duplicate content fix, Search Console, AI-era strategy
- Document /text noindex + canonical header solution
- Add duplicate content prevention checklist
- Document Google Search Console verification setup
- Update files overview table with correct paths
- Add AI chat agent as modern SEO signal
2026-04-09 12:56:22 +01:00
juanatsap 6781b632d5 feat: Google Search Console verification 2026-04-09 12:37:58 +01:00
juanatsap ded519758b feat: add Google Search Console verification meta tag 2026-04-09 12:37:55 +01:00
juanatsap 7d0c2179cd fix: /text crawlable but noindex 2026-04-09 12:24:45 +01:00
juanatsap cfb1817daa fix: keep /text crawlable for LLMs, only noindex for search engines 2026-04-09 12:24:41 +01:00
juanatsap af72c74799 fix: SEO — noindex /text, robots.txt disallow, sitemap update 2026-04-09 12:24:12 +01:00
juanatsap 08b39653ba fix: SEO — prevent Google from indexing /text instead of main page
- Add X-Robots-Tag: noindex, nofollow header to /text endpoint
- Add Link: canonical header pointing to HTML version
- Add Disallow: /text to robots.txt
- Update sitemap.xml lastmod to 2026-04-09
2026-04-09 12:24:06 +01:00
juanatsap 7e78bcdadf feat: mobile chat — split mode, adaptive buttons, 79 tests 2026-04-09 12:21:38 +01:00
juanatsap 6e922fd1cb feat: mobile-first chat layout — split mode, hidden desktop modes, 79 tests
Mobile (≤480px):
- Hide Side Panel, Floating, Full Screen buttons
- Show Split button (50vh vertical split, CV visible above)
- Compact mode: 55vh max bottom sheet
- Force desktop modes to compact if somehow activated
- Disable tooltips on mobile (overflow prevention)
- Tighter header padding

Desktop (>480px):
- Split button hidden, all modes available as before

Tests: 85-chat-mobile.test.mjs — 79 assertions across
iPhone SE (320x568), iPhone 14 (393x852), iPhone 14 Pro Max (430x932),
plus desktop sanity check
2026-04-09 12:21:28 +01:00
juanatsap 070dd9f1d8 fix: dark mode chat contrast 2026-04-09 12:17:26 +01:00
juanatsap edf302b302 fix: dark mode chat — lighter panel to distinguish from CV background 2026-04-09 12:17:22 +01:00
juanatsap b50326fb5c feat: chat close button in header v1.2.0 2026-04-09 11:45:51 +01:00
juanatsap 5dd845a4b7 feat: add close button to chat header 2026-04-09 11:45:48 +01:00
juanatsap f6375a9047 fix: chat welcome message wording 2026-04-09 11:43:11 +01:00
juanatsap 988f8acb80 fix: welcome message — 'about Juan' instead of 'about this CV' 2026-04-09 11:43:08 +01:00
juanatsap c24df3c8e8 fix: wave opacity and double animation 2026-04-09 11:41:21 +01:00
juanatsap ddb2b843a4 fix: wave fully opaque (outside button), animation plays twice with pause 2026-04-09 11:41:18 +01:00
juanatsap b4e28aafce fix: wave positioning and timing 2026-04-09 11:39:29 +01:00
juanatsap 023c445a88 fix: wave — left side, 2s delay, larger emoji 2026-04-09 11:39:25 +01:00
juanatsap 642d0cc90c fix: wave animation refinement 2026-04-09 11:37:40 +01:00
juanatsap 33fd31d246 fix: wave animation — fade in, swing clockwise/counter, fade out 2026-04-09 11:37:37 +01:00
juanatsap 94043ddc3e feat: wave greeting on chat button 2026-04-09 11:35:30 +01:00
juanatsap 84d69fa8db feat: wave greeting animation on chat button to attract clicks
Emoji 👋 pops up 3 times with a waving motion (3s delay after page load),
then disappears. Hidden when chat is open.
2026-04-09 11:35:21 +01:00
juanatsap fafc23bd92 feat: chat icons — image fallbacks, external links, compact sizing 2026-04-09 11:34:26 +01:00
juanatsap 21c33d2833 feat: chat icons — image fallbacks, external links, smaller inline size
- Support image file fallback when no sprite index exists
  (Immich Photo Manager, Cmux Resurrect now show their logos)
- Render external links [text](https://...) as clickable links
  (fixes Third Party Contributions raw markdown)
- Smaller inline icons (20px) to fit chat bubble aesthetic
- Separate icon-chat CSS class for chat-specific sizing
2026-04-09 11:34:14 +01:00
juanatsap 660fa74afc data: fix incorrect React tag in CDC Starter Kit 2026-04-09 11:24:17 +01:00
juanatsap c3f4134daa data: remove incorrect React tag from CDC Starter Kit project
CDC Starter Kit uses vanilla JavaScript + SAP CDC SDK, not React.
This caused the chat agent to incorrectly report React usage in that project.
2026-04-09 11:24:08 +01:00
juanatsap 6bc4f29def fix: correct Go binary path in systemd service (/snap/bin/go) 2026-04-09 11:18:36 +01:00
juanatsap 508e0e873e test+fix: chat layout modes — 38 tests, CSS positioning fixes 2026-04-09 11:09:40 +01:00
juanatsap 823030dcf2 test: 38 layout mode tests + fix half/full/float CSS positioning
- Fix side panel and full screen not covering full viewport
- Fix floating mode initial position (near chat button, not top-right)
- Reset width/height inline styles when switching modes
- Add 84-chat-layout-modes.test.mjs: 38 assertions covering
  compact, side panel, full screen, floating, drag, rapid switching,
  and user avatar rendering
2026-04-09 11:09:30 +01:00