Bring outstanding.md up to the decisions of 2026-09-19
Its plugin section still asked for the contradiction to be resolved, its render-path section still asked whether FR-DSP-2 was a requirement and said NFR-RES-2 had no answer, and its closing section still called D12 open. Each now records what was decided and keeps the argument that was weighed, so the document reads as the history it says it is rather than as a plan the register has moved past.
This commit is contained in:
+26
-11
@@ -30,7 +30,15 @@ one most likely to be reported as closed.
|
||||
|
||||
---
|
||||
|
||||
## 1. Plugins — 21 requirements, and a contradiction to resolve before any of them
|
||||
## 1. Plugins — post-v1 since 2026-09-19
|
||||
|
||||
> **Resolved, in the register.** The contradiction below was settled on 2026-09-19 the way the
|
||||
> last paragraph of this section asked: §3.10 is marked `(post-v1)` clause by clause, §7's row
|
||||
> says so with a reason, D16 defers with it, and the traceability tool lists deferred clauses in
|
||||
> their own table instead of counting them. Coverage went from 72.2% of 194 to 80.6% of 170 on
|
||||
> that edit alone. What follows is kept as the record of what was decided and why; nothing in it
|
||||
> is owed a tag.
|
||||
|
||||
|
||||
**Untagged:** FR-PLG-1, -1a, -2a, -2b, -2c, -3, -3a, -4, -4a, -5, -5a, -5b, -5c, -6, -6a, -7, -8,
|
||||
-9, -10, -11, -12.
|
||||
@@ -153,7 +161,7 @@ What exists is the declaration and not the mechanism: `DetailPass::radius` is do
|
||||
a tile would have to be grown by, with a test that pins it, and there is no scheduler to read it.
|
||||
That is deliberate plumbing, not an oversight.
|
||||
|
||||
**So the open question here is not "when is tiling built" but "is FR-DSP-2 still a requirement".**
|
||||
**So the open question here is not "when is tiling built" but "is FR-DSP-2 still a requirement" — and on 2026-09-19 the answer was: as written, until S6 runs.** FR-DSP-2 now carries a status note saying exactly that, and R5's note no longer claims it was rewritten.
|
||||
Two measurements say it costs more than it saves on the interactive path. Neither says anything
|
||||
about the export path or about a device under memory pressure, which is where the case for it
|
||||
actually lives — and that is spike S6, which has not run.
|
||||
@@ -163,9 +171,11 @@ quarter-resolution base are adjacent and are not it: both are fixed choices abou
|
||||
compute at, where FR-DSP-4 asks for a first frame that is deliberately cheap and a second that
|
||||
replaces it. Nothing tracks a "this frame is provisional" state.
|
||||
|
||||
**NFR-RES-2 — Images larger than GPU memory.** No answer, and §4.3 knows it: the requirement text
|
||||
itself asks the reader to "decide explicitly" how ARCH §6.4 and NFR-RES-2 are reconciled. There is
|
||||
no headroom budget, no allocation-failure fallback, and no spill. Spike S6 — a tiled pipeline on a
|
||||
**NFR-RES-2 — Images larger than GPU memory.** Half answered. NFR-R8's "decide explicitly" was
|
||||
decided on 2026-09-19: there is no CPU render pipeline, the degraded mode is the viewer on
|
||||
embedded previews with develop withheld, and NFR-RES-2 no longer promises a fallback render. What
|
||||
remains unbuilt is the memory half: there is no headroom budget, no allocation-failure staging,
|
||||
and no spill. Spike S6 — a tiled pipeline on a
|
||||
mid-range Android device with an image larger than available GPU memory — is the one that would
|
||||
settle both this and FR-DSP-2, and there is no evidence it has run.
|
||||
|
||||
@@ -445,9 +455,14 @@ whether something *should* be built — which is the opposite of the order §9 a
|
||||
|
||||
---
|
||||
|
||||
## 11. D12, which governs all of the above
|
||||
## 11. D12, which governed all of the above
|
||||
|
||||
[Decision D12 — scope versus pace](requirements.md) is still **OPEN**, and says:
|
||||
> **Decided 2026-09-19, by events.** The scope stands as calibrated, v1 has no date, and `(post-v1)`
|
||||
> in §7 is the one way a clause leaves the count — used for the plugin API and nothing else. The
|
||||
> argument below is kept because it is what the decision weighed; its prediction about tablet
|
||||
> editing was right, and the cluster was built anyway.
|
||||
|
||||
[Decision D12 — scope versus pace](requirements.md) said, while it was open:
|
||||
|
||||
> The calibration selected an ambitious feature set — full tablet editing, full ingest, culling as a
|
||||
> differentiator, complete GPU masking, AI denoise, Fuji-first colour, deep sync, sidecar durability
|
||||
@@ -461,7 +476,7 @@ execution limits and two GPU vendors to validate (§5), and every one of those i
|
||||
The parts that *were* built — the develop pipeline, sync, faces, the catalog — are the parts that
|
||||
did not need a decision first.
|
||||
|
||||
D12 is not resolved by choosing to work faster. It is resolved by moving requirements across the
|
||||
line into §7, which costs nothing but the admission, and which this document is intended to make
|
||||
easy: every cluster above is a candidate, and each says what it would take to build and what it
|
||||
would cost to drop. Resolving D12 sets D3 and [architecture.md §10](architecture.md)'s Phase 2.
|
||||
D12 was not resolved by choosing to work faster, and in the end not by moving clusters into §7
|
||||
either, except the one: plugins. Every other cluster above stays in scope, and each still says what
|
||||
it would take to build. That is the list. D3 is delivered, and
|
||||
[architecture.md §11](architecture.md)'s build order is what followed.
|
||||
|
||||
Reference in New Issue
Block a user