# Roadmap [← Home](README.md) · [Architecture](Architecture.md) · [DevOps Reference](DevOps-Reference.md) · [Operations](Operations.md) ## Done - [x] Composite actions: `checkout`, `setup-go`, `setup-node`, `setup-aws` - [x] Lambda dispatcher with Spot instance routing by `runs-on` label - [x] Ephemeral runners (one job, self-terminate) - [x] Git auth for private repos (`url.insteadOf`) - [x] DynamoDB run tracking + cleanup cron - [x] Runner image Dockerfiles: base, go, node, docker, deploy, godot - [x] Zombie runner incident resolved (25 May 2026) - [x] `deploy`-label jobs routed through Spot (was dead-Lambda dry-run) (07 Jun 2026) - [x] Unique Spot runner names per dispatch (07 Jun 2026) - [x] Template deploy repointed off deleted ECS → EC2 via SSM (07 Jun 2026) ## Next | Priority | Task | Impact | |----------|------|--------| | P1 | Pre-warm Go module + build cache in the AMI | −30s build time | | P1 | Automate AMI build (Packer or script) | Repeatable, no manual SSH | | P2 | Internal DNS for git clones | Faster than public HTTPS | | P2 | CloudWatch agent on the runner AMI | Persistent logs after instance death | | P3 | `tinqs/ci/deploy-s3` action | S3 sync + CloudFront invalidation wrapper | | P3 | `tinqs/ci/deploy-ssm` action | Reusable SSM-to-prod deploy (generalise the template-deploy step) | | P3 | `tinqs/ci/notify` action | Post build status to GChat | ## Watch / cleanup - **Repo size** — `tinqs/studio` now commits the arikigame site assets (~75 MB) as regular files because the CI `checkout` does no `git lfs pull`. If this grows, add `git lfs pull` to the checkout action, then LFS-track `web/arikigame/public/img/**`. - **DEVOPS doc drift** — keep this wiki current when AWS topology changes (the ECS→EC2 move went unnoticed in docs for two days and broke deploys).