Commit Graph

608 Commits

Author SHA1 Message Date
juanatsap ddd109d6a3 fix: GitHub+stars badge gold background with white icons/text 2026-05-04 14:41:32 +01:00
juanatsap c8e680f7ea feat: 3-letter category tags, merged GitHub+stars badge, pastel colors
- Category badges: CLI, APP, WEB, PLG, SDK, OSS in pastel tones
- GitHub + stars merged into single dark badge with gold star count
- La Porra fixed to "web" category
2026-05-04 14:37:36 +01:00
juanatsap 542419de45 feat: category icon badges on projects — CLI, App, Web, Plugin, SDK
Each project now shows a colored icon badge indicating its type:
- CLI (purple terminal), App (blue apple), Web (cyan globe)
- WebApp (teal app), Plugin (amber puzzle), SDK (violet package)
- Contrib (gray pull request)
2026-05-04 14:28:37 +01:00
juanatsap 29aa3d1fd7 fix: stars badge on all projects with a GitHub repo, not just openSource 2026-05-04 14:19:26 +01:00
juanatsap 57db625997 fix: restore SoundInbox GitHub link (no stars badge since not openSource) 2026-05-04 14:17:24 +01:00
juanatsap 96ca60babe fix: stars badge shows "13 stars" (number first), SoundInbox not open source
- Badge text order: number before "stars"
- SoundInbox: removed gitRepoUrl, removed "open-source" from descriptions
- SoundInbox is a native app, not an open-source project
2026-05-04 14:08:22 +01:00
juanatsap 7322c1a158 fix: stars count rendered server-side with 30min cache, no client-side API calls 2026-05-04 13:52:53 +01:00
juanatsap 76d9649ec2 feat: custom gold stars badge matching other badges, live count via GitHub API 2026-05-04 13:47:05 +01:00
juanatsap 9a2343a71e feat: GitHub stars badge on open-source projects via shields.io
- New openSource field in project model distinguishes OS from private
- shields.io badge shows live star count for open-source projects
- SoundInbox marked as NOT open source (no badge, no stars)
- Immich Photo Manager, Cmux Resurrect, Gotify Commander, CDC Starter Kit → open source
- Stars badge hidden in print view
2026-05-04 13:42:40 +01:00
juanatsap c1a32988cb feat: add SoundInbox project logo 2026-05-04 13:35:09 +01:00
juanatsap 7a242ca7b4 fix: enforce project link format (#proj-ID) so icons appear in chat responses 2026-05-04 13:32:12 +01:00
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