driver: ignore wrong-suffix files as named sources
This commit is contained in:
@@ -302,6 +302,53 @@ multiple named sources, finite FIFOs, and hidden regular sources are not
|
||||
claimed by this existing-directory slice. The general direct-driver `.new`
|
||||
interruption residue also remains open.
|
||||
|
||||
The raw source front also applies one positive requested-spelling gate before
|
||||
physical adoption. An existing non-directory operand whose exact requested
|
||||
spelling does not end `.ww` is not a raw source and cannot hijack its ordinary
|
||||
dotted provider. Build, run, raw test, the historical second-positional raw
|
||||
test filter, `test -c`, and `test -S` therefore resolve and consume the same
|
||||
logical file or directory they consume when the collision is absent. Logical
|
||||
files keep the existing `__root` action/artifact family; logical directories
|
||||
keep dotted package/import/action identity. The ignored object's bytes,
|
||||
package, imports, tests, runtime status, mode, and timestamp supply no package
|
||||
membership, edge, producer input, artifact, publication, or persistence key.
|
||||
|
||||
Requested suffix owns the gate through symlinks. Wrong-suffix links to regular
|
||||
or special non-directories remain logical requests, while a link to a directory
|
||||
retains stat-first direct-directory routing; a visible `.ww` link to a regular
|
||||
source remains raw source. Each stage's existing visible `.ww` special-file
|
||||
handling is outside this slice. Mutation/reuse invariance is limited to absent
|
||||
or stat-successful non-directory collision states. A transition to a directory
|
||||
uses the directory owner and receives no new concurrent-kind snapshot promise.
|
||||
|
||||
No-provider rows deliberately separate the ordinary single-target path from
|
||||
the second-positional compatibility path. The first retains direct cannot-find
|
||||
diagnostics, running-test `FAIL`, and producer/artifact absence. The second
|
||||
retains the existing package-coordinator process, canonicalization or usage
|
||||
diagnostic, status, selection state, and cleanup; the gate does not turn that
|
||||
route into a direct raw-file error. Logical producer failure preserves prior
|
||||
public and semantic bytes. A retained running-test runtime failure instead
|
||||
keeps the complete newly built semantic generation committed and reusable but
|
||||
skips deferred installation, preserving prior retained public bytes; restoring
|
||||
the old source requires a later successful rebuild and commit. Normal and
|
||||
controlled-failure cleanup is unchanged. External driver signals after action
|
||||
start retain the open fixed
|
||||
`.new` leakage and later-request poisoning behavior.
|
||||
|
||||
The focused `wrong_suffix_physical_files_do_not_hijack_dotted_requests`
|
||||
package observer owns this boundary for both driver stages. It compares absent
|
||||
controls with regular, symlinked-regular, and symlinked-special collisions;
|
||||
checks build, run, raw/filter test, `-c`, and `-S` streams, statuses, runtime,
|
||||
public bytes, complete comparable semantic artifacts, `__root` file identity,
|
||||
and dotted directory identity; separates direct and coordinator no-provider
|
||||
rows; exercises warm non-directory mutation, producer-failure rollback,
|
||||
retained-runtime-failure public-byte preservation with committed semantic-
|
||||
generation reuse and later successful restoration, request-local concurrent
|
||||
builds, positive `.ww` and direct-directory controls, and normal residue
|
||||
cleanup. It makes no finite-FIFO or signal-recovery claim.
|
||||
The rule changes no package coordinator, test harness/process topology,
|
||||
test-result caching, or build/test/semantic format (18/19/3).
|
||||
|
||||
List mode uses that same product process and initialization boundary but starts
|
||||
no per-test child. The shared language harness emits only selected qualified
|
||||
test names, one per line in descriptor order. A valid filter selecting no tests
|
||||
|
||||
Reference in New Issue
Block a user