Commit Graph

597 Commits

Author SHA1 Message Date
juanatsap af456cafc2 fix: chat responds in CV language (en/es), not random 2026-05-04 13:27:06 +01:00
juanatsap 3aebc82068 fix: background toggle button dev-only, photo always visible in production 2026-05-02 15:00:02 +01:00
juanatsap 65eadcada7 fix: chat tone — neutral intros, no exclamatory openers, open-source chip
- Agent avoids "¡Claro que sí!" / "Absolutely!" openers
- Decline message says "aquí sólo puedo responder"
- Replaced Certifications chip with Open source suggestion
2026-04-27 00:44:05 +01:00
juanatsap 9547bc7130 feat: remove Commando project, add Gotify Commander logo, drolosoft linked
- Remove unreleased Commando project from CV
- Add gotify-commander.png logo from GitHub repo
- "drolosoft" lowercase with link to drolosoft.com in summary
- Replace Certifications chip with Open source chip in chat
2026-04-27 00:32:54 +01:00
juanatsap 5c5f99b626 fix: English disclaimer matches Spanish tone 2026-04-27 00:23:28 +01:00
juanatsap a35db95ca4 fix: chat disclaimer — "soy el yo digital de Juan, y sólo sé responder..." 2026-04-27 00:22:36 +01:00
juanatsap ae7d0a9ab7 fix: white avatar circle background + dark theme uses same grid as light 2026-04-27 00:07:59 +01:00
juanatsap 668eb56c9f fix: disclaimer tooltip — 'soy el yo digital de Juan' 2026-04-27 00:00:52 +01:00
juanatsap 13c409065e fix: chat avatar shows full face with neck and shoulders 2026-04-26 23:58:37 +01:00
juanatsap e9154b04f4 fix: chat avatar crop starts from top to show full face 2026-04-26 23:50:54 +01:00
juanatsap 614edac5b6 fix: chat avatar larger (36px) with face fully visible 2026-04-26 23:49:49 +01:00
juanatsap bc29ca4a05 feat: add Gotify Commander project + fix chat avatar + bold footer
- New project: Gotify Commander — bidirectional Gotify plugin (Go)
- Fix chat avatar: properly cropped square thumbnail (was squished)
- Footer text: bold + white + text-shadow for readability over bg photos
2026-04-26 23:46:40 +01:00
juanatsap 6204ffdd6c fix: chat uses second person (tú/you), footer text visible over background
- Chat suggestions and help modal questions now address Juan directly
- Footer text/links use white with text-shadow for readability over photos
2026-04-26 23:39:38 +01:00
juanatsap 6cd949c5ea feat: background photo toggle available everywhere, not just dev 2026-04-26 23:33:37 +01:00
juanatsap f5c78e6845 feat: chat speaks as Juan — first person, CV photo avatar, disclaimer tooltip
- Agent prompt rewritten to first person ("I worked at...", "I built...")
- Bot avatar replaced with dni-thumb.jpeg (2.6KB, 56x56 retina)
- Greeting: "Pregúntame lo que quieras sobre mi currículum"
- Underlined "mi currículum" with floating tooltip disclaimer
- Every response ends with cordial email contact invitation
- Background photos now visible in production (random per load)
- Toggle button remains dev-only
2026-04-26 23:32:48 +01:00
juanatsap 3b6d5e781a feat: background photo system — random Lanzarote landscapes behind CV grid
Dev-only toggle button enables/disables photo backgrounds. Photos are
auto-discovered from static/images/backgrounds/ and randomly selected
on each page load. Production is unaffected — no button, no photo.
2026-04-25 14:46:33 +01:00
juanatsap fc1ca90b38 fix: chat bubbles crushed to 6px — flex-shrink: 0 prevents row collapse
overflow: hidden on .chat-row made min-height resolve to 0 (CSS Flexbox §4.5),
so the flex column container crushed rows instead of scrolling. Also fix all
test selectors (.chat-agent→.chat-row-bot .chat-msg) and add bubble dimension
assertions.
2026-04-14 03:13:04 +01:00
juanatsap 9164344375 fix: summary tense — "I currently work on" Olympic platforms, shorter Drolosoft line
- Past tense "I've worked on" → present "I currently work on" (OBS is current job)
- Shortened last sentence to avoid text-justify gap before "Drolosoft"
2026-04-13 00:44:32 +01:00
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