C1. One notification on terminal state so a researcher need not babysit a multi-hour solve. S3 FINISHED object event → SNS; the extension subscribes.
Acceptance (TDD): a run reaching FINISHED{completed|failed|aborted} emits exactly one notification carrying {task_id, status}.
⛔ Gate: blocked by the wk-3 freeze — run-dir contract + SchemaPackage v0 (amicode #15 + the #28–31 stack). RemoteExecutor/the S3 layout is the run-dir contract, so do not start until that lands.
📄 Refs: Spec armonissima/specs/spec-20260628-amicode-cloud-solve-service.md (Δ5) · phased plan §5a (plan-20260603-124231-amicode-phased-build) · aws-infra/INFRASTRUCTURE.md → The Analysis Pipeline (reuse step_function/ec2_launch_template/dynamodb/runner_image).
Evolve, not build — a working v0 (the aws-infra Analysis Pipeline) already does size→S/M/L EC2→julia→S3→email→terminate. Validate on staging (mirrors prod), then two-step promote.
🏗 Implementation repo: aws-infra (Terraform / lambda / Image Builder). Infra-side reference: harmoniqs/aws-infra#128.
C1. One notification on terminal state so a researcher need not babysit a multi-hour solve. S3
FINISHEDobject event → SNS; the extension subscribes.Acceptance (TDD): a run reaching
FINISHED{completed|failed|aborted}emits exactly one notification carrying{task_id, status}.⛔ Gate: blocked by the wk-3 freeze — run-dir contract + SchemaPackage v0 (amicode #15 + the #28–31 stack).
RemoteExecutor/the S3 layout is the run-dir contract, so do not start until that lands.📄 Refs: Spec
armonissima/specs/spec-20260628-amicode-cloud-solve-service.md(Δ5) · phased plan §5a (plan-20260603-124231-amicode-phased-build) ·aws-infra/INFRASTRUCTURE.md→ The Analysis Pipeline (reusestep_function/ec2_launch_template/dynamodb/runner_image).🏗 Implementation repo:
aws-infra(Terraform / lambda / Image Builder). Infra-side reference: harmoniqs/aws-infra#128.