Summary
docs/findings/r5-003-no-model-level-background-job-seam.md carries disposition: open, but the issue it links — #129 — is closed, and was closed on architectural grounds rather than by a fix. examples/FINDINGS.md admits no open disposition at rung exit, so this needs a decision from the repo owner.
Raising rather than changing it, because FINDINGS.md is explicit that this call is not mine to make:
Every finding gets a disposition within one triage pass (the repo owner decides; the ladder never self-triages).
The state
docs/findings/r5-003-no-model-level-background-job-seam.md front matter, on master c429195c:
id: r5-003
title: No framework seam for a model's own execute() to post background work and later update its own state
subsystem: core
severity: minor
source: ledger rung 5, design spec §9
disposition: open
test: spec-cited
issue: https://github.com/LASTRADA-Software/morph/issues/129
#129 is closed. It was closed as wrong-layer: a model updating its own state from background work is off-strand mutation, which the concurrency model forbids — docs/spec/concurrency_and_lifetimes.md guarantees execute() is never re-entered concurrently for a given ModelId, so the unit of later work is another action, not a background write. The narrower needs that survived that analysis were filed separately as #160 and #161.
92422c4b (#329) closed out r5-001, r5-002 and r5-004's bookkeeping and deliberately left r5-003 alone — its commit message records that as an explicit decision, which is why this is a question rather than an oversight report.
Why it needs resolving
FINDINGS.md's rung exit criteria:
A rung is done when: ... 3. its findings are triaged (no open dispositions left).
So rung 5 does not currently satisfy its own exit criteria on paper. The three dispositions available are fix-scheduled, documented-limitation, and wontfix.
wontfix with rationale looks like the honest landing spot: the finding asks for a seam the architecture forbids, #129 established that in writing, and nothing is scheduled. documented-limitation would be the alternative if the intent is that concurrency_and_lifetimes.md already is the documentation of the limitation — in which case the finding's test: field should probably point at whatever pins that behaviour rather than staying spec-cited.
What would close this
A disposition set on r5-003, with a one-line rationale, by whoever owns the contract. If it is wontfix, the front matter and a sentence in the body are the whole change.
What would change the verdict
If keeping it open is deliberate — e.g. the seam is genuinely still under consideration despite #129's closure, and #160/#161 do not fully cover it — then this should close and FINDINGS.md's exit criteria should say that a finding may stay open when its issue is closed wrong-layer but the underlying need is unsettled.
Summary
docs/findings/r5-003-no-model-level-background-job-seam.mdcarriesdisposition: open, but the issue it links — #129 — is closed, and was closed on architectural grounds rather than by a fix.examples/FINDINGS.mdadmits noopendisposition at rung exit, so this needs a decision from the repo owner.Raising rather than changing it, because
FINDINGS.mdis explicit that this call is not mine to make:The state
docs/findings/r5-003-no-model-level-background-job-seam.mdfront matter, on masterc429195c:#129 is closed. It was closed as
wrong-layer: a model updating its own state from background work is off-strand mutation, which the concurrency model forbids —docs/spec/concurrency_and_lifetimes.mdguaranteesexecute()is never re-entered concurrently for a givenModelId, so the unit of later work is another action, not a background write. The narrower needs that survived that analysis were filed separately as #160 and #161.92422c4b(#329) closed outr5-001,r5-002andr5-004's bookkeeping and deliberately leftr5-003alone — its commit message records that as an explicit decision, which is why this is a question rather than an oversight report.Why it needs resolving
FINDINGS.md's rung exit criteria:So rung 5 does not currently satisfy its own exit criteria on paper. The three dispositions available are
fix-scheduled,documented-limitation, andwontfix.wontfixwith rationale looks like the honest landing spot: the finding asks for a seam the architecture forbids, #129 established that in writing, and nothing is scheduled.documented-limitationwould be the alternative if the intent is thatconcurrency_and_lifetimes.mdalready is the documentation of the limitation — in which case the finding'stest:field should probably point at whatever pins that behaviour rather than stayingspec-cited.What would close this
A disposition set on
r5-003, with a one-line rationale, by whoever owns the contract. If it iswontfix, the front matter and a sentence in the body are the whole change.What would change the verdict
If keeping it
openis deliberate — e.g. the seam is genuinely still under consideration despite #129's closure, and #160/#161 do not fully cover it — then this should close andFINDINGS.md's exit criteria should say that a finding may stay open when its issue is closed wrong-layer but the underlying need is unsettled.