Releases: rodmen07/portfolio
Release list
v1.3.2: Client Portal Dashboard
v1.3.1 — Productionizer Agent
v1.3.1 — Productionizer Agent
Autonomous Gemini 2.5 Flash agent runs on a daily GitHub Actions cron. Each run picks one microservice + one gap from a 55-task matrix (11 services × 5 gap types), generates the fix via tool calling, verifies it with cargo clippy + cargo test, and opens a PR against the microservices repo. The agent self-reverts on any verification failure.
Highlights
- agents/productionizer/ — Python module using google-genai SDK with gemini-2.5-flash
- 55-task matrix: 11 Rust/Axum services × 5 gap types (structured-logging, dynamic-health, error-details, audit-error-handling, error-path-tests)
- Verification pipeline: clippy → integration tests → commit → push → PR. Failure = auto-revert
- productionizer.yml: daily cron at 06:00 UTC +
workflow_dispatchwithforce_service/force_gapoverrides - State persisted in repo (
state.json) — skips already-completed tasks across runs
v1.2 — Operational Maturity
v1.2 — Operational Maturity
Four sub-releases shipping production operations capabilities across all 11 microservices.
v1.2.1 — Data Export Pipeline
- Bulk CSV & JSON export from
reporting-service(GET /api/v1/reports/export?format=csv|json) - Admin export modal in the frontend
v1.2.2 — Audit Trail & Compliance
- New Rust/Axum
audit-service— immutable CRM mutation log in PostgreSQL (Cloud SQL) - All CRM services fire-and-forget audit events after each mutation
- Admin audit trail page in InfraPortal
v1.2.3 — Portfolio Observability
- CRM services emit structured events to Observaboard after each mutation
- New admin service health dashboard polling all 11
/healthendpoints with 30s auto-refresh
v1.2.4 — Service Resilience & Testing
- E2E integration test suite covering all 11 services
- k6 load test suite (smoke / load / spike scenarios, p95 < 2s target)
- Chaos engineering runbook:
docs/chaos-runbook.md
Stack: Rust · Axum · PostgreSQL · Google Cloud Run · GitHub Actions
v1.1.1 — Vertex AI SecondBrain Phase A
What's new
Phase A of the Vertex AI SecondBrain prototype: a FastAPI service that grounds query responses in a Google Drive document corpus via Vertex AI Agent Builder. Drive file ingestion, agent query, and graceful degradation when GCP credentials are absent are all wired and covered by tests.
Vertex AI Agent Builder
app/agent.py: query routed throughgoogle-cloud-discoveryengine; returns answer + citations. Gracefully degrades to a stub response whenVERTEX_PROJECT_ID/VERTEX_DATA_STORE_IDenv vars are absent — safe for local dev without GCP credentials._TEST_AGENT_CLIENThook allows unit tests to inject a mock client without patching internals.requirements.txt:google-cloud-discoveryengine>=0.11.0added.
Drive connector & ingest endpoint
app/drive_connector.py:DriveConnector.from_env()— loads credentials fromGOOGLE_APPLICATION_CREDENTIALSor falls back to Application Default Credentials.POST /ingest/drive: downloads a Drive file by ID, runs it throughingest_file(), returns{ answer, citations, source, file_id }.- All 8 tests passing: test_agent, test_drive_connector, test_drive_ingest, test_ingest.
v1.1 — CI/CD Pipeline & DevEx
What's new
Two-stage CI runner image pipeline shipped across the full workspace. A custom Docker runner image (Rust + Go + Python toolchain baked in) is built once and pushed to GCP Artifact Registry via OIDC, then reused across all test/lint/audit jobs — eliminating per-job toolchain install time.
CI/CD pipeline
build-runner-image.yml: builds a project-specific Docker image with Rust, Go, Python, and all toolchain deps pre-installed; pushes to Artifact Registry via OIDC.run-tests-with-runner-image.yml: pulls the runner image and runs all workspace tests in a single container — cargo test, pytest, go test — with log artifacts collected per project.run_workspace_tests.sh: auto-inits submodules on first run, creates cross-platform Python venv, caps test log output at 100KB per project to prevent artifact bloat.gcp-setup.shgainsNONINTERACTIVE=1mode for use in headless CI environments without TTY prompts.- Docs added:
docs/ci-test-summary.md(latest run summary + artifact pointers),docs/gcp-setup.md(Cloud Run + IAM + OIDC reference).
Frontend UX
- Motion override toggle: lets users pause all CSS animations site-wide; state persists across navigation.
- Animation replay: replay button re-triggers entrance animations on demand without a page reload.
- Dynamic hero tagline: cycles through tagline variants on a configurable interval.
- Gradient pulse badge + slide-over panel: new visual components added to the marketing home page.
v1.0 — Client Portal
What's in v1.0
Client portal — clients sign in via GitHub or Google OAuth, receive a client-role JWT, and see their assigned projects, milestones, and deliverables.
projects-service — new Rust/Axum service: projects, milestones, and deliverable CRUD with client-scoped JWT access. Deployed to GCP Cloud Run (us-central1).
Admin provisioning UI — admin dashboard page to create projects, add milestones/deliverables inline, and assign each project to a specific client user (by OAuth subject ID).
GCP Cloud Run migration — all 11 backend services migrated from Fly.io to Cloud Run (scale-to-zero). GitHub Actions OIDC + Workload Identity Federation — zero long-lived credentials. Artifact Registry for images, Secret Manager for secrets. Fly.io fully decommissioned (11 apps destroyed).
Services
- auth-service, go-gateway, projects-service, accounts-service, contacts-service, activities-service, automation-service, integrations-service, opportunities-service, reporting-service, search-service → GCP Cloud Run
- dashboard, task-api-service, ai-orchestrator, observaboard, event-stream-service → remain on Fly.io
Tech
Rust · Axum 0.8 · SQLite · Go · Python · FastAPI · React 19 · GitHub Actions · OIDC · GCP Cloud Run · Artifact Registry · Secret Manager
v0.4.3 — Go Service
Adds event-stream-service: a standalone Go SSE hub with goroutine-based fan-out, JWT-authenticated publishing, and ring buffer replay. Third backend language in the portfolio alongside Rust and Python.