Summary
PR #801 described removing the target segment from artifact output paths, but buildArtifactSubdir() in artifact-writer.ts still includes safeTargetId(result.target) as a path segment.
Current behavior
runs/<timestamp>/<evalset>/<test-id>/<target>/grading.json
Expected behavior (per PR #801)
runs/<timestamp>/<evalset>/<test-id>/grading.json
Target should be in manifest.json only, not in the directory path. One run = one target.
Location
apps/cli/src/commands/eval/artifact-writer.ts, line 476:
```typescript
function buildArtifactSubdir(result: EvaluationResult): string {
const segments = [];
const evalSet = getDataset(result);
if (evalSet) {
segments.push(safeArtifactPathSegment(evalSet, 'default'));
}
segments.push(safeTestId(result.testId), safeTargetId(result.target)); // ← target still here
return path.posix.join(...segments);
}
```
Fix
Remove safeTargetId(result.target) from the segments array. Ensure manifest.json records the target name.
Related
Summary
PR #801 described removing the target segment from artifact output paths, but
buildArtifactSubdir()inartifact-writer.tsstill includessafeTargetId(result.target)as a path segment.Current behavior
Expected behavior (per PR #801)
Target should be in
manifest.jsononly, not in the directory path. One run = one target.Location
apps/cli/src/commands/eval/artifact-writer.ts, line 476:```typescript
function buildArtifactSubdir(result: EvaluationResult): string {
const segments = [];
const evalSet = getDataset(result);
if (evalSet) {
segments.push(safeArtifactPathSegment(evalSet, 'default'));
}
segments.push(safeTestId(result.testId), safeTargetId(result.target)); // ← target still here
return path.posix.join(...segments);
}
```
Fix
Remove
safeTargetId(result.target)from the segments array. Ensuremanifest.jsonrecords the target name.Related