Description
Owner ruling Q04 (loop58): a bound function’s reserved concurrency stays one resource per function, but real unreserved functions share the account’s regional concurrency pool, so one busy function can throttle others. Add a shared account-level concurrency resource that several unreserved functions bind to. Owner wants this emitted promptly into the next loop.
Acceptance Criteria
- #1 Several unreserved functions bound to one account pool throttle together when their combined concurrency exceeds it
- #2 Reserved-concurrency bindings and unbound functions unchanged
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/
Implementation Plan
Choose the smallest generic shared-concurrency grouping seam over heterogeneous per-function resources, preserve unbound behavior and scope identity, implement the Lambda account projection from joint group windows, and prove borrowing, enforcement, rejection/resends and account isolation through public loading.
Implementation Notes
Owner closeout: Shared concurrency-pool implementation held behind unlanded causal model; resume after composition and cost admission.
Loop60 closeout: No shared-pool implementation or API freeze this run. Retained proposal keeps per-function resources, exclusive account-region projection and labelled proportional-fluid admission assumptions. Resume after evaluator/causal admission and timing-owner integration, never as a workaround for owner stops.
Final loop closeout: retained unlanded causal candidateaf34 has native/component review and final CodeRabbit passes, but the exact integrated full gate fails app-race600.139s. No candidate source was pushed or deployed. Preserve task-specific earlier evidence/limits; resume only after the aggregate owner stop and relevant dependency/owner decisions are resolved, with no timeout/assertion/case/isolation reduction or unchanged full-gate retry.