Commit Graph
65 Commits
Author SHA1 Message Date
Story Crater Bot 1f66db0ba4 fix: validate registry credentials before docker login
Add credential validation step to catch missing secrets early with clear error message.
Use direct secret injection (not env vars) for better security.
Isolate docker config to /tmp/docker-config.
2026-09-06 23:34:54 -07:00
Story Crater Bot 4ad8a4f4a4 fix: move LLM config to encrypted ConfigMap (CI-friendly)
Build & Push Portfolio Image / Test (pull_request) Failing after 34s
Build & Push Portfolio Image / Build & Push Image (pull_request) Skipped
Problem: LLM_API_URL hardcoded to external HTTPS endpoint
- https://api.riotpiao.com/v1/chat/completions (TLS hairpin through nginx)
- Not externalizable for CI or environment-specific deployment

Solution: Move to SOPS-encrypted ConfigMap with in-cluster endpoint
- LLM_API_URL: http://api-gateway.api.svc.cluster.local:8080/v1/chat/completions
- No TLS overhead, direct cluster communication
- Encrypted for security (SOPS + age key)
- Externalizable: CI can update values without app redeployment

Changes:
1. Create configmap.enc.yaml (SOPS-encrypted)
   - Data: LLM_API_URL, LLM_MODEL
   - Encrypted with .sops.yaml age key
2. Update deployment.yaml
   - Change from 'value:' to 'valueFrom: configMapKeyRef'
   - Reference portfolio-llm-config ConfigMap
3. Update kustomization.yaml
   - Add configmap.enc.yaml to resources
   - Add sops: version: 3 for decryption

Benefits:
- ArgoCD auto-decrypts via SOPS before applying
- CI can auto-patch ConfigMap without app changes
- Environment-specific config (dev/staging/prod)
- Secrets encrypted in git (never plain text)
2026-09-06 23:25:35 -07:00
Story Crater Bot 6e1e7506c3 fix: add PR trigger, separate test job, fix workflow structure
Build & Push Portfolio Image / Test (push) Failing after 46s
Build & Push Portfolio Image / Build & Push Image (push) Skipped
Changes:
- Add 'pull_request' trigger (test-only on PRs)
- Separate 'test' job (npm ci + npm test)
- Separate 'build-push' job with condition: push to main only
- Remove redundant Node.js install in push job
- Proper dependency chain: test → build-push on main

Now: PRs run tests without pushing. Main pushes build image to registry.
2026-09-06 22:50:10 -07:00
Story Crater Bot cd600e4807 fix: add LLM_API_URL and LLM_MODEL to portfolio deployment
Build & Push Portfolio Image / build-push (push) Failing after 1m11s
Missing env vars caused LLM calls to fail even with valid OAuth tokens.
Now pod has:
- Auth credentials (Authentik client_id/secret/token_url) 
- LLM endpoint (api.riotpiao.com/v1/chat/completions) 
- Model (qwen2.5:3b-instruct) 

Chat API will now successfully authenticate and call LLM gateway.
2026-09-06 06:00:06 -07:00
Story Crater Bot 04b848e23b ci: fix node-runner docker, add image prune post-action
Build & Push Portfolio Image / build-push (push) Failing after 1m9s
- Installs docker.io on node runner (base forgejo/runner:6 lacks it)
- Adds image prune step after push to clean unused images
- Squashes 5 previous failed CI attempts into single working fix
2026-09-06 05:54:03 -07:00
Story Crater Bot bb15056c6c refactor: streamline help to terminal-style conciseness with kubectl examples
Build & Push Portfolio Image / build-push (push) Successful in 3m26s
2026-09-03 23:40:10 -07:00
Story Crater Bot 054c94dc7f feat: add ! kubectl command to terminal + restrict RBAC (no secrets/configmaps)
Build & Push Portfolio Image / build-push (push) Successful in 3m29s
2026-09-03 23:19:56 -07:00
Story Crater Bot 0dd9391fdc refactor: streamline help command with project-based questions
Build & Push Portfolio Image / build-push (push) Successful in 3m28s
2026-09-03 23:11:23 -07:00
Story Crater Bot bfe776be69 fix: resize handle text selection + add homelab-frontend CI badge
Build & Push Portfolio Image / build-push (push) Successful in 3m24s
2026-09-03 21:19:19 -07:00
Story Crater Bot d5f97d2073 fix: add error handling and local dev fallback for auth
Build & Push Portfolio Image / build-push (push) Successful in 3m26s
- Handle getAccessToken failure gracefully
- Support LLM_API_TOKEN env var for local dev (bypasses OAuth)
- Better error messages for missing credentials
2026-09-03 20:38:42 -07:00
Story Crater Bot 32636832fc auth: switch to Authentik OAuth for LLM API
Build & Push Portfolio Image / build-push (push) Successful in 3m28s
- Add lib/auth.ts: OAuth client with token caching
- Use client_credentials grant with portfolio-agent service account
- Mount portfolio-agent-oidc secret for credentials
- Remove static LLM_API_TOKEN dependency
2026-09-03 19:32:12 -07:00
Story Crater Bot 41faf00c9a fix: enforce 150-word hard limit + max_tokens=400 for Poimen responses
Build & Push Portfolio Image / build-push (push) Successful in 3m24s
2026-09-03 18:41:08 -07:00
Story Crater Bot a599c2257b fix: caveman response style for Poimen - spit facts not essays
Build & Push Portfolio Image / build-push (push) Successful in 3m29s
2026-09-03 18:36:39 -07:00
Story Crater Bot db2f6f4530 feat: rewrite Poimen system prompt with full story arc + update experience descriptions
Build & Push Portfolio Image / build-push (push) Successful in 3m51s
- Humble, learning-curious tone throughout
- Chapter arc: AWS (customer obsession) → RBC (IaC/drift) → Homelab (AI at scale) → Poimen (agent system)
- Homelab: hardware journey, etcd latency lesson, GitOps evolution, paperless.riotpiao.com
- RBC: apply resilience (JFrog, plan/apply split) + drift detection (nightly cron → Slack)
- AWS: deployment alignment story, redrive execution, backward compat
- Poimen: memory-augmented routing, skill factory vision
- Updated EN + ZH experience descriptions
2026-09-03 18:07:24 -07:00
Story Crater Bot 33912d95dd fix: replace placeholder publication with Additive Depth Maps (VIVA Lab)
Build & Push Portfolio Image / build-push (push) Successful in 3m27s
2026-09-03 08:25:41 -07:00
Story Crater Bot 7f0c12d029 feat: CI badges per project card, reorder Poimen after Homelab
Build & Push Portfolio Image / build-push (push) Successful in 3m31s
2026-09-03 08:18:58 -07:00
Story Crater Bot b3631211af feat: add CI status badge with commit SHA on homelab experience card
Build & Push Portfolio Image / build-push (push) Successful in 4m8s
2026-09-02 20:30:21 -07:00
Story Crater Bot c33185533b feat: replace go-flink with Poimen Memory + Poimen Workflow project cards
Build & Push Portfolio Image / build-push (push) Successful in 3m29s
2026-09-02 17:48:48 -07:00
Story Crater Bot 0a599ee9b3 feat: show publication card on master's degree hover (ISSTA 2021)
Build & Push Portfolio Image / build-push (push) Successful in 3m46s
2026-09-02 11:56:08 -07:00
Story Crater Bot 2defd4d074 feat: Experience clicks smooth-scroll to Explore Experience section
Build & Push Portfolio Image / build-push (push) Successful in 3m31s
2026-09-02 10:39:11 -07:00
Story Crater Bot 406f0db52d fix: hide SHA when unavailable (show CI fallback), Home scrolls to top
Build & Push Portfolio Image / build-push (push) Successful in 3m29s
2026-09-02 10:32:11 -07:00
Story Crater Bot 7e8d6c3afa fix: pass COMMIT_SHA build arg to Docker for CI status display
Build & Push Portfolio Image / build-push (push) Successful in 3m27s
2026-09-02 10:14:36 -07:00
Story Crater Bot da64fe930b feat: smooth collapse/expand animation for terminal toggle
Build & Push Portfolio Image / build-push (push) Successful in 3m41s
2026-09-02 10:05:00 -07:00
Story Crater Bot 82cd8940c2 fix: delete old latest image before rebuild, use --no-cache for fresh builds
Build & Push Portfolio Image / build-push (push) Successful in 3m38s
2026-09-02 09:58:34 -07:00
Story Crater Bot 1c16b71ce4 feat: replace CI label with commit SHA hyperlink, remove from footer
Build & Push Portfolio Image / build-push (push) Successful in 2m44s
2026-09-02 09:57:04 -07:00
Story Crater Bot aa67c4551d feat: show commit SHA in footer with link to repo commit
Build & Push Portfolio Image / build-push (push) Successful in 2m42s
2026-09-01 17:03:37 -07:00
Story Crater Bot a10f5454cd fix: dropdowns close on click-outside instead of hover-away
Build & Push Portfolio Image / build-push (push) Successful in 2m40s
2026-09-01 17:00:19 -07:00
Story Crater Bot 44ecc6416d fix: move resize handle to top-left corner (anchored bottom-right)
Build & Push Portfolio Image / build-push (push) Successful in 2m47s
2026-09-01 11:25:09 -07:00
Story Crater Bot 47dd6aee9e fix: update system prompt to use markdown formatting in responses
Build & Push Portfolio Image / build-push (push) Successful in 2m47s
2026-09-01 11:21:20 -07:00
Story Crater Bot 6d0204a068 fix: use internal api-gateway cluster IP for LLM API
Build & Push Portfolio Image / build-push (push) Successful in 2m47s
2026-09-01 11:09:32 -07:00
Story Crater Bot f0c73f3c70 revert: use external api.riotpiao.com URL again
Build & Push Portfolio Image / build-push (push) Successful in 2m41s
2026-09-01 11:03:29 -07:00
Story Crater Bot 21b337e441 fix: remove path filter - always build on main push
Build & Push Portfolio Image / build-push (push) Successful in 2m42s
2026-09-01 11:00:11 -07:00
Story Crater Bot f0735b48a9 chore: trigger Docker image build
Build & Push Portfolio Image / build-push (push) Successful in 2m47s
2026-09-01 10:57:49 -07:00
Story Crater Bot f1f427d0b5 chore: remove and retire resume files from repo 2026-09-01 10:53:28 -07:00
Story Crater Bot ad73f8c06c fix: use internal Kubernetes DNS for api-gateway in production 2026-09-01 10:50:08 -07:00
Story Crater Bot db574ca04f feat: make terminal resizable with drag handle
Build & Push Portfolio Image / build-push (push) Successful in 2m44s
2026-09-01 10:33:14 -07:00
Story Crater Bot 989109352b refactor: use real api.riotpiao.com in both dev and production
Build & Push Portfolio Image / build-push (push) Successful in 31s
2026-09-01 10:31:07 -07:00
Story Crater Bot 8cad006334 feat: add dev fallback for chat API (mock streaming response)
Build & Push Portfolio Image / build-push (push) Successful in 2m48s
2026-09-01 10:30:05 -07:00
Story Crater Bot 4933846dcf trigger: rebuild with LLM_API_TOKEN in deployment
Build & Push Portfolio Image / build-push (push) Successful in 2m45s
2026-09-01 09:49:58 -07:00
Story Crater Bot 4cf792f21d fix: add infra/** to workflow paths to trigger on deployment changes 2026-09-01 09:47:05 -07:00
Story Crater Bot e55f774b42 feat: add LLM_API_TOKEN env to portfolio deployment 2026-09-01 09:45:52 -07:00
Story Crater Bot 429a14650c feat: integrate Poimen LLM chat with reasoning model + deep technical depth
Build & Push Portfolio Image / build-push (push) Successful in 3m20s
- Terminal: hook to api.riotpiao.com reasoning model with streaming
- Add markdown rendering via react-markdown + typography plugin
- Show thinking spinner (⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏) + V100 32GB context during reasoning
- Interview-style help: cert rotation, Talos, SQS failover, vLLM, exactly-once, deploy root cause, K8s CRD
- Chat route: ultra-compressed caveman prompt (60% token reduction)
  - K8s deep expertise: CRDs, operators, reconciliation, Talos, Cilium
  - Cert management: cert-manager, 30d renewal, SOPS, Git audit trail
  - Multi-region queues: SQS FIFO, exactly-once, QueueTask CRD
  - AWS: CDK, CloudFormation, CloudWatch across 57+ regions
- Remove dark mode toggle button (system preference only)
- Update hire-me.png (dark/light auto-switch)
- Add tailwind typography for prose styling
2026-09-01 09:32:07 -07:00
Story Crater Bot 9f900df351 Revert "feat: theme-aware terminal + agent knowledge doc"
Build & Push Portfolio Image / build-push (push) Successful in 29s
This reverts commit 72cc1bbe76.
2026-08-31 22:41:25 -07:00
Story Crater Bot 72cc1bbe76 feat: theme-aware terminal + agent knowledge doc
Build & Push Portfolio Image / build-push (push) Successful in 2m37s
- Terminal adapts to dark/light mode
- Add docs/poimen-knowledge.md for memory-service upload
2026-08-31 22:40:45 -07:00
Story Crater Bot 0a5102fef0 feat: add FORGEJO_TOKEN env var from secret 2026-08-31 22:33:01 -07:00
Story Crater Bot 072d668cdd fix: rename Explore More to About Rock
Build & Push Portfolio Image / build-push (push) Successful in 2m36s
2026-08-31 22:30:16 -07:00
Story Crater Bot 479979cad4 fix: dropdown close on mouse leave + imagePullPolicy Always
Build & Push Portfolio Image / build-push (push) Successful in 2m41s
- Add onMouseLeave to close dropdowns when hover away
- Change imagePullPolicy to Always for latest tag updates
2026-08-31 22:29:04 -07:00
Story Crater Bot a09d29d9e9 feat: add CI status indicator and favicon
Build & Push Portfolio Image / build-push (push) Successful in 2m40s
- Add CI status badge in header (auto-syncs from Forgejo)
- Add rock-svg-icon.svg as favicon for Chrome
- Add SOPS encrypted secrets for Forgejo token
- Add decrypt script for local dev
2026-08-31 22:04:57 -07:00
Story Crater Bot cd8e21200d fix: persist dark mode theme across page reloads
Build & Push Portfolio Image / build-push (push) Successful in 2m36s
- Save theme preference to localStorage on toggle
- Load from localStorage or system preference on mount
- Add blocking script to prevent flash of wrong theme
2026-08-31 20:17:44 -07:00
Story Crater Bot e8dbc2100c feat: consolidate homelab projects, add skills dropdown, update timeline animations
Build & Push Portfolio Image / build-push (push) Successful in 2m33s
- Consolidate 3 homelab projects into single 'Self-Hosted Cloud' card
- Add /homelab deep dive page with full tech stack
- Update to 4 nodes (3 control plane + 1 worker)
- Add organized skills dropdown (6 categories)
- Update timeline skills for riotpiao.com experience
- Add 'Learn more' links for all major experiences
- Change timeline animation to scroll-reveal (y-axis)
2026-08-31 19:39:34 -07:00