Story Crater Bot
22f5afdb58
fix: use origin/main workflow with env vars for registry credentials
...
CI / Test (pull_request) Failing after 28s
CI / Build & Push Image (pull_request) Skipped
Resolved merge conflicts by using current origin/main workflow which:
- Includes test job (npm ci + npm test)
- Has delete old latest image step
- Uses --build-arg for COMMIT_SHA
- Uses env vars for registry credentials (FORGEJO_REGISTRY_USER/TOKEN)
All features from main preserved, registry login fixed.
2026-09-06 23:40:51 -07:00
Story Crater Bot
b3e5d63e86
fix: use env vars for docker registry credentials
2026-09-06 23:37:56 -07:00
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