Commit Graph

626 Commits

Author SHA1 Message Date
juanatsap 982257b4c1 feat: update repo URL to repos.txeo.club/txeo/cv-site
Deploy CV Server / Pull and Restart (push) Failing after 0s
Test CV Site / Test on Go 1.25.1 (push) Failing after 0s
Migrate all user-facing links from GitHub to self-hosted Forgejo.
Go module imports unchanged (separate concern).
2026-05-20 18:30:25 +01:00
juanatsap 450ae2a738 feat: add Go-Docs MCP project to CV (EN/ES)
Multi-format document MCP server — 13 tools, single Go binary,
PDF/DOCX/MD/CSV/image support with OCR.
2026-05-20 12:24:54 +01:00
juanatsap 37ef0648d7 docs: add Phase 11 (self-hosted deps) and ADR-005 for HTMX/Hyperscript vendoring
Document why HTMX and Hyperscript are self-hosted instead of CDN-loaded:
zero external SPOF, faster same-origin loading, reduced CSP surface,
and controlled version upgrades.
2026-05-14 13:06:20 +01:00
juanatsap 8f4d0e9433 feat: self-host HTMX 2.0.10 and Hyperscript 0.9.91, remove unpkg CDN
- Download htmx.min.js v2.0.10 and _hyperscript.min.js v0.9.91 locally
- Update head-scripts.html to load from /static/ instead of unpkg CDN
- Remove https://unpkg.com from CSP script-src whitelist
- Update all documentation references to reflect self-hosted paths
- No breaking changes: all hx-* attributes are HTMX 2.0 compatible
2026-05-14 12:59:30 +01:00
juanatsap 20f0e79343 fix: remove private github.txeo.club URL from gh-dashboard description 2026-05-07 23:15:37 +01:00
juanatsap 46912f0bf3 feat: add collab category for gh-dashboard project
New COL badge (soft green) for collaboration projects, distinct from
OSS contributions.
2026-05-07 23:12:32 +01:00
juanatsap ad9a46f554 fix: condense gh-dashboard responsibilities into CV-style bullets 2026-05-07 23:10:35 +01:00
juanatsap 33354509ce fix: replace gh-dashboard logo with GitHub octocat icon 2026-05-07 23:08:13 +01:00
juanatsap d768908b1c feat: add gh-dashboard project logo from upstream repo 2026-05-07 22:59:58 +01:00
juanatsap f3fc6a2632 feat: add gh-dashboard project, language switch partial, header alignment fix
- Add gh-dashboard (debba/gh-dashboard) as collaboration project in EN/ES CV data
- Add head-language-switch.html template partial with test
- Change CV header text-align-last from justify to left
- Update .gitignore to exclude prompt symlinks and cv-site binary
2026-05-07 22:52:46 +01:00
juanatsap c6685e40d1 fix: strong anti-hallucination rules — AI must only use query_cv tool data 2026-05-04 16:17:28 +01:00
juanatsap aae1a28627 feat: Cmd+K search — rich keywords, real logos, category icons
- Projects searchable by technologies, "open source", category (cli/app/web)
- Experience searchable by technologies, shows company logo + position
- Courses show institution logos
- Project logos used as icons instead of generic mdi:web
- Category-specific fallback icons (console, apple, puzzle, etc.)
2026-05-04 15:23:15 +01:00
juanatsap b9db689981 fix: remove emojis from chat loading phrases 2026-05-04 15:20:04 +01:00
juanatsap 88ecfed5c5 fix: icons toggle also hides all badges (LIVE, GitHub, stars, category) 2026-05-04 15:18:54 +01:00
juanatsap ef958dffe5 feat: language switch reloads page (fixes chat), fun loading phrases
- Language switch now does full page reload so chat reinitializes
- Replaced boring "Initializing AI model..." with 14 fun random phrases
- Phrases are bilingual (ES/EN), CV-themed, with emojis
2026-05-04 15:00:46 +01:00
juanatsap 075a58efe4 fix: category badge before project title 2026-05-04 14:53:01 +01:00
juanatsap ea5e0c5aab fix: category badge moved to end of badge row (after GitHub+stars) 2026-05-04 14:49:04 +01:00
juanatsap 27cd4d06e8 fix: badge order — GitHub icon, number, star icon 2026-05-04 14:46:53 +01:00
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