Web frontend and supporting services for lance.blue

fix(match-launch)!: size a match up to sixteen vCPUs, and round memory up master

Eight human seats demand 8500 milli-vCPU. The tier table stopped at 8192, so the pick fell off the end of it and served eight client JVMs on eight vCPUs without saying so. Fargate's 16 vCPU tier is in the table now. The table also carries each tier's memory step, which is what the old code got wrong in the other direction: memory was a spelled-out match over 1024-steps, and 24576 MiB — a legal 8192-tier figure, and exactly what eight client heaps want — fell through its catch-all to 20480. Less than was asked for is the one direction rounding must never go. `fit_memory` rounds up onto the tier's step, caps before it rounds so it cannot overflow, and `TaskSize::memory` is an owned String because the legal values are a range per tier rather than a list worth spelling out. Breaking for any caller of `TaskSize`, which is `aws::run_task` and nothing else; a match of any shape that already fitted keeps the size it had. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>


+154 -48
3 changed files