Work in Progress¶
Active tasks and ongoing work. Updated as development progresses.
In Progress¶
Nothing currently in progress.
Recently Completed¶
| Task | PR | Merged |
|---|---|---|
| Certification sync — Credly (20 badges), Databricks via Playwright (41 creds), MS Learn OAuth infra, ACA scheduled job, badge images + dates on frontend | #606 | 2026-07-03 |
| PR preview + Strapi draft preview — Phases 1-4: frontend preview mode, token provisioning, preview-button plugin, label-triggered auto-deploy | #604 | 2026-07-02 |
| Stable release v0.21.0 — manual tag, GitHub release, release-workflow.md rewritten | #585 | 2026-06-29 |
| docs(release): document manual stable release process (6-step) | — | 2026-06-29 |
| feat(content): blog images, webinar seed, interactive embeds | #562 | 2026-06-12 |
| fix(ci/frontend): docs submodule PAT scoped + experience title fix | #559 | 2026-06-11 |
| fix(ci/data): docs submodule PAT auth + W+B role title migration | #556 | 2026-06-11 |
| feat(content): Content & Presentations section — landing page, detail page, Strapi collection, seed | #560 | 2026-06-11 |
| IaC Platform Framework project page V2 | #484 | 2026-06-02 |
| project-page-v2 feature flag + all 7 projects V2 migration | #485 | 2026-06-02 |
| Strapi CMS Azure infrastructure (Bicep, MI, KV secrets, DNS) | #486 | 2026-06-02 |
| Add Strapi CMS to PR preview pipeline | #489 | 2026-06-02 |
| Skip UIGen CRUD E2E tests in CI (local-dev only) | #490 | 2026-06-02 |
| feat: CMS managed certificate for cms.dev.sven-relijveld.com (stage 3) | #516 | 2026-06-02 |
| feat: enable cms.dev.sven-relijveld.com hostname for dev CMS (stage 2) | #512 | 2026-06-02 |
| fix(cms): Dockerfile.strapi build fixes — --legacy-peer-deps + explicit esbuild dep | #514, #515 | 2026-06-02 |
| feat(cms): install and configure Strapi plugins (documentation, color-picker, graphql, config-sync, preview-button, schema-visualizer, duplicate-button) | — | 2026-06-02 |
| fix(cms): CMS Postgres Managed Identity auth chain — AAD token, IMDS http.request, MI principal name, Entra admin registration | #507, #508, #509, #510 | 2026-06-02 |
| fix(ci): expose uigen_url as job output so post-deploy E2E skips UIGen tests correctly | #511 | 2026-06-02 |
| chore: ignore *.local.md files | #480 | 2026-05-30 |
| chore(deps): Dependabot bulk — axios, ws, qs, idna, pip patch, npm minor-patch | #459, #465, #466, #468, #478, #479 | 2026-05-30 |
| docs(cms): revise content management plan — Strapi v5, no sync job | #475 | 2026-05-24 |
| fix(uigen): upgrade to v0.16.0 + known issues docs + create-projects guard | #474 | 2026-05-24 |
| feat: support alpha and stable release channels (main→alpha, release→stable) | #472 | 2026-05-23 |
| fix(workflows): add environment context to validate job for OIDC authentication | #471 | 2026-05-23 |
| fix(infra): split enable_auth into enable_frontend_auth and enable_uigen_auth | #469 | 2026-05-23 |
| fix(infra): add enable_uigen_auth=true to prod params so UIGen shim gets client secret | #463 | 2026-05-22 |
| hotfix: update ENV_SHORT from prd to prod in workflow scripts | — | 2026-05-22 |
| fix(experience): W+B DevOps role, Databricks completed, Albron → HAI | #456 | 2026-05-19 |
| fix(uigen): feature-flags override panel + proxy routing | #455 | 2026-05-19 |
| feat(hero+nav): type-in treatment, sliding pill, SkillBar, role cycler | #454 | 2026-05-16 |
| fix(uigen): OAuth login loop — PyJWT validation + sessionStorage bearer injection | #451 | 2026-05-15 |
| fix(entra): requestedAccessTokenVersion=2 + move localhost redirect to SPA platform | #449, #452 | 2026-05-15 |
| fix(uigen): userInfoUrl, Bearer injection, sessionValidationEndpoint, landing page | #443–#448 | 2026-05-14 |
| fix(api): register auth router at root for UIGen session validation | #439 | 2026-05-13 |
| fix(infra): exclude /auth/token and /auth/callback from UIGen EasyAuth | #438 | 2026-05-13 |
| fix(e2e,ci): admin modal E2E tests + deploy-release gh CLI repo context | #437 | 2026-05-13 |
| ci(test): skip Chromatic when no UI files changed | #393 | 2026-05-07 |
| feat(storybook): Phase 3 stories + custom dual-mode theme + nav fixes | #392 | 2026-05-07 |
| feat(auth): Phase 1 — Entra ID JWT admin auth | #384 | 2026-05-07 |
| feat(observability): Application Insights tracing + content-api prod flag | #389 | 2026-05-07 |
| feat(storybook): Phase 1 — component library, vitest browser tests, Chromatic CI, site theming, Azure SWA deploy | #390 | 2026-05-06 |
| refactor(api): Phase 6 — loguru structured logging, RequestIdMiddleware, DB-backed UIGen tokens | #381 | 2026-05-05 |
| refactor(api): Phase 5 — seed.json single source of truth, ProjectPhase child table, migration 0005 | #380 | 2026-05-05 |
| refactor(api): Phase 4 — repository + service layers, EmailService, async CV gen, get_optional_db | #379 | 2026-05-05 |
| refactor(api): Phase 3 — per-domain routers, domain exception hierarchy, shared Limiter | #377 | 2026-05-05 |
| refactor(api): Phase 2 — Pydantic v2 response schemas (from_attributes=True), kill _x_to_y helpers | #375 | 2026-05-05 |
| refactor(api): Phase 1 — extract Settings, package skeleton, OpenAPI + email templates | #370 | 2026-05-04 |
| ci(release): add workflow_dispatch trigger to release-please | #361 | 2026-05-04 |
| fix(backend): skip Alembic when DATABASE_URL is not set | #360 | 2026-05-04 |
| feat(uigen): annotate content API endpoints for UIGen | #363 | 2026-05-04 |
| feat(content-api): API-backed portfolio content (experience, skills, projects, awards, certs) | #358 | 2026-05-04 |
| UIGen v0.6.0: /api/docs proxy, /admin/config GUI, auth shim, PATCH CV endpoints | #326 | 2026-05-03 |
| zod v3→v4, zod-validation-error v3→v5, ecdsa security fix | #304 | 2026-04-26 |
| Improve API annotations for UIGen + fix code review issues | #299 | 2026-04-26 |
| fix(infra): add app_config_resource_id to dev + prod bicepparams | #300 | 2026-04-26 |
| Dependabot bulk: npm, pip, uv, GitHub Actions updates | #278–#294, #301, #303 | 2026-04-26 |
| fix(frontend): retry feature-flags fetch after EasyAuth redirect | #277 | 2026-04-24 |
| chore(ci): reduce revision health check schedule to 12h | #276 | 2026-04-24 |
| fix(ci): ENV_SHORT (prd) for MI resource name lookups in prod | #274 | 2026-04-23 |
| fix(ci): MI name as Postgres username in workflow DATABASE_URL | #273 | 2026-04-23 |
| fix(infra): MI principal name as Postgres username in DATABASE_URL | #270 | 2026-04-23 |
| fix(db): use azure-identity for Postgres MI token fetch | #269 | 2026-04-23 |
| fix(backend): retry Alembic on IMDS timeout at cold start | #267 | 2026-04-23 |
| fix(ci): correct smoke test expected HTTP codes | #266 | 2026-04-23 |
| fix: IMDS retry backoff (5×) + UIGen theme.css in image | #265 | 2026-04-23 |
| fix(uigen): bust CI image cache + UIGen 0.5.0 bump | #261 | 2026-04-22 |
| docs(api): foldable endpoint callouts + ADR-007 nav entry | #259 | 2026-04-22 |
| docs-update skill: add planning phase, parallel edits, reviewer agent, nav update, ADR suggestions | — | 2026-04-21 |
| LlamaPReview P0/P1 handover: CI artifact detection robustness | — | 2026-04-21 |
| Docs update: UIGen, App Config, Postgres, CI fixes | #257 | 2026-04-21 |
| CI: always full redeploy on prod — artifact-based env detection | #255 | 2026-04-21 |
| fix(db): pass client_id to IMDS token request for user-assigned MI | #254 | 2026-04-21 |
| fix(prod): backend crash loop (Alembic env.py token auth) + UIGen guest routing | #253 | 2026-04-21 |
| Enable UIGen custom domain on prod (admin.sven-relijveld.com) | — | 2026-04-21 |
| Azure App Configuration feature flags + UIGen custom domain (v0.5.0-alpha) | #247 | 2026-04-20 |
| UIGen admin portal: AdminModal, /api/uigen-token, Node.js auth shim | #207 | 2026-04-19 |
| CV template: cover page, dot-rating matrix, skills grid, photo, typography polish | #191 | 2026-04-15 |
| Weekly Azure cost report embedded in docs (cost-report.yml + cost-dashboard.md) | #190 | 2026-04-15 |
| Add Cline kanban ↔ memory sync skills | #189 | 2026-04-15 |
| Consolidate test workflows into parallel test.yml with fail-fast gate | #186 | 2026-04-13 |
| Fix CV pagedjs-cli dependency and nodejs runtime for CV generation | #187 | 2026-04-13 |
| PostgreSQL CRUD backend — Phase 3: Tests + CI postgres service container | #184 | 2026-04-13 |
| CV generation: publishpipe build pipeline with branded OneDNA cover page template | #183 | 2026-04-13 |
| PostgreSQL CRUD backend — Phase 2: Azure Bicep infra (postgres.bicep, MI RBAC) | #181 | 2026-04-12 |
| PostgreSQL CRUD backend — Phase 1: DB layer (SQLAlchemy, Alembic, Managed Identity) | #178 | 2026-04-12 |
| GitHub Codespaces devcontainer | #180 | 2026-04-12 |
| End-to-end typing: pydantic-settings, ContactRequest hardening, OpenAPI→TS gen, ESLint | #163 | 2026-04-10 |
| Fix DeploymentActive race condition: unified concurrency groups, enriched PR comments | #161 | 2026-04-10 |
| Deploy failure notifications via GitHub Issues (dedup, try/catch) | #162 | 2026-04-10 |
| Docker layer caching via ACR registry cache + PR cache cleanup on close | #159 | 2026-04-10 |
| Runbook: secret rotation and full redeploy from scratch | #160 | 2026-04-10 |
Blocked / On Hold¶
Nothing currently blocked.
This page is updated manually when work is started, completed, or blocked. See Roadmap for planned future work.